diff --git a/.htaccess b/.htaccess
index 3aed662e90d9973eebb8ed8b473a254b55ad87c7..bf4e0e33fa2dd89ce8efaf49004cec9609dbdbcf 100644
--- a/.htaccess
+++ b/.htaccess
@@ -1,6 +1,6 @@
 RewriteEngine on
 RewriteCond %{REQUEST_URI} !/(xhprof_html|ckeditor)
-RewriteRule !(userfiles|public|tmp|temp|skins)/.*\.(js|ico|txt|gif|jpg|jpeg|png|css|xml|swf|mov|pdf|doc|docx|woff|eot|svg|ttf|xls|wsdl|mp3|m4v|ogg|ogv|epub|html|xhtml|asmx|zip|sql)$ index.php [NC,NE]
+RewriteRule !(userfiles|public|tmp|temp|skins)/.*\.(js|ico|txt|gif|jpg|jpeg|png|css|xml|swf|mov|pdf|doc|docx|woff|eot|svg|ttf|xls|wsdl|mp3|m4v|ogg|ogv|epub|html|xhtml|asmx|zip|sql|bro)$ index.php [NC,NE]
 
 
 AddType application/x-javascript .js
diff --git a/VERSIONS b/VERSIONS
index f10a14ee8548e09287feb45997ecdfa24f7c528c..9633c7e28e247c3e23ac2caaa84a4ba12756b7ee 100644
--- a/VERSIONS
+++ b/VERSIONS
@@ -1,3 +1,86 @@
+19/03/2015 - v7.1.19
+ - ticket #22829: Correction d'une régression dans l'import des fichiers d'abonnés
+ 
+ - ticket #22437: Correction du style de représentation javascript Cover flow
+ 
+ - ticket #22644: Nettoyage des propriétés inutilisées dans le fichier de configuration par défaut
+
+
+
+17/03/2015 - v7.1.18
+ - ticket #16499: SIGB Karvi : Prise en charge du choix des sites de retrait d'une réservation suivant une liste fournie par le SIGB.
+
+ - ticket #19281: la date de modification d'un article n'est mise à jour seulement sur modification manuelle (et non les traitements automatiques). Affichage de la date de création de l'article dans l'interface d'édition.
+
+ - ticket #20971 fix :lors de la visualisation du calendrier par date, les évenement dont la date de publication > date du jour ne doivent pas etre publiés.
+ 
+
+
+16/03/2015 - v7.1.17
+ - ticket #16861 : Ajout du connecteur SSO Kidilangues
+
+ - ticket #17872 : Ajout du connecteur SSO Cas PlanetNemo.fr
+
+ - ticket #21987: implement Dilicom declareIP webservice acces for PNB.
+
+ - ticket #21988: implement Dilicom consultBook access
+
+ - ticket #19281: la date de modification d'un article n'est mise à jour seulement sur modification manuelle (et non les traitements automatiques). Affichage de la date de création de l'article dans l'interface d'édition.
+
+
+09/03/2015 - v7.1.16
+ - ticket #16325: Amélioration inspector gadget : affichage des informations d'exemplaires
+
+ - ticket #21286: SIGB Pergame : Correction de l'intégration totale de fichiers de réservations
+
+ - ticket #20851: Améliore le contenu partagé à facebook des articles.
+
+ - ticket #22214: Correction de l'api récupération des résumés provenant de la Fnac.
+
+
+
+05/03/2015 - v7.1.15
+ - ticket #22036 : Correction de ponctuation lors de l'affichage du nombre de résultat de recherche (espace de chaque coté des ':')
+
+ - ticket #18020 : Amélioration de la connectivité AfiMultimedia <-> Bokeh
+
+ - ticket #22055 : Correction du bug d'écran blanc lors de l'édition d'une nouvelle variable
+
+
+
+03/03/2015 - v7.1.14
+ - ticket #16321: Correction des caractères 'ç' mal encodés dans la codification dewey.
+ 
+ - ticket #18602: Correction de la disparition de la clé de configuration dans le rendu ajax du calendrier.
+
+
+
+02/03/2015 - v7.1.13
+
+ - ticket #14946 : Ajout de la fonctionnalité d'upload de médias à partir d'une page de notice en front.
+
+ - ticket #21332 : Ajout du moissonnage des ressources ONED touch.
+
+ - ticket #18087 : Ajout du moissonnage des ressources Orphea.
+
+ - ticket #16860 : Ajout du connecteur SSO MyCOW.EU
+
+ - ticket #19675 :  Les notices d'articles bénéficient d'une vignette. 
+   Celle-ci se compose d'un redimensionnement (160 pixels de large et hauteur automatique) de la première image 
+   trouvée dans l'article.
+   Lorsqu'une notice ne possède pas d'image, Bokeh générait une image avec un fond gris et le titre de la notice
+   en orange. Cette image reprend maintenant les codes de la charte graphique par défaut de Bokeh à savoir un fond 
+   blanc et le titre en gris.
+
+ - ticket #21086: SIGB Koha : Correction de l'impossibilité de réserver un exemplaire déjà réservé.
+
+ - ticket #21534: Corrige la suppression des utilisateurs liés manuellement à un groupe supprimé. Désormais, seuls les liens entre groupe et utilisateurs disparaissent.
+
+ - ticket #21462: Correction d'un bug d'affichage de la disponibilité des exemplaires en prêt avec le SIGB Pergame.
+
+ - ticket #21691: Optimisation de la performance de la réindexation des données dans les domaines
+
+
 19/02/2015 - v7.1.11
 
  - ticket #21501 : Correction du bug supprimant la définition des permissions lors de la suppression d'un groupe d'utilisateur.
diff --git a/application/modules/admin/controllers/AccueilController.php b/application/modules/admin/controllers/AccueilController.php
index de17d8ce4886e1f5502d4d8a8c9327ade917176c..547bb2c5d789635d43d4bb9fa4fe4b7999f690d2 100644
--- a/application/modules/admin/controllers/AccueilController.php
+++ b/application/modules/admin/controllers/AccueilController.php
@@ -461,7 +461,7 @@ class Admin_AccueilController extends Zend_Controller_Action {
 		$styles["java"]["mycarousel_vertical"] = "Barre verticale";
 
 		// Styles flash
-		$styles["flash"]["coverflow"] = "Cover flow";
+//		$styles["flash"]["coverflow"] = "Cover flow";
 		$styles["flash"]["carrousel_horizontal"] = "Carrousel horizontal";
 		$styles["flash"]["carrousel_vertical"] = "Carrousel vertical";
 		$styles["flash"]["dockmenu_horizontal"] = "Barre d'images horizontale";
diff --git a/application/modules/admin/controllers/AlbumController.php b/application/modules/admin/controllers/AlbumController.php
index 0feb05be36b53b070e308bc05eed3869f1b533cf..3999e6c1ebe1670dead484ef5067e4ecf78ca2b4 100644
--- a/application/modules/admin/controllers/AlbumController.php
+++ b/application/modules/admin/controllers/AlbumController.php
@@ -25,6 +25,7 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 		                            'controller' => 'album'];
 
 	public function init() {
+		parent::init();
 		$this->view->titre = 'Collections';
 
 		Class_ScriptLoader::getInstance()
@@ -37,8 +38,8 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 		$categories []= Class_AlbumCategorie::defaultCategory()
 			->setAlbums(Class_Album::findAllBy(['cat_id' => 0]));
 
-		$this->view->categories = [['bib' => Class_Bib::getPortail(),
-																'containers' => $categories]];
+		$this->view->categories = [ [ 'bib' => Class_Bib::getPortail(),
+																  'containers' => $categories]];
 		$this->view->containersActions = $this->_getTreeViewContainerActions();
 		$this->view->itemsActions = $this->_getTreeViewItemActions();
 		$this->view->headScript()->appendScript('var treeViewSelectedCategory = '
@@ -68,6 +69,39 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 	}
 
 
+	public function importDilicomAction() {
+		$this->view->titre = $this->_('Import des offres Dilicom/PNB');
+		$form = $this->_formImportDilicom();
+		$this->view->form_import_dilicom = $form;
+
+		if (!$this->_request->isPost())
+			return;
+
+		if ($form->isValid($this->_request->getPost()) && $form->offers->receive()) {
+			$xml = file_get_contents($form->offers->getFileName());
+			$books = Class_WebService_BibNumerique_Dilicom_PNBOffersFile::booksFromXML($xml);
+			$errors = [];
+			$import_count = 0;
+			foreach($books as $book) {
+				$album = $book->import();
+				if (!$album->hasErrors())
+					$import_count++;
+
+				$errors = $errors + $album->getErrors();
+			}
+
+			$this->_helper->notify($this->view->_('%d livres numériques importés. %s',
+																						$import_count,
+																						implode(',', $errors)));
+			$this->_redirect('admin/album');
+			return;
+		}
+
+		$this->_helper->notify('Le fichier reçu n\'est pas valide');
+		$this->_redirect('admin/album/import-onix');
+	}
+
+
 	public function importeadAction() {
 		$this->view->titre = 'Import/Export EAD';
 
@@ -90,6 +124,19 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 	}
 
 
+
+	protected function _formImportDilicom() {
+		return $this->view
+			->newForm(['id' => 'import_dilicom', 'class' => 'form'])
+			->setMethod('post')
+			->setAttrib('enctype', 'multipart/form-data')
+			->setAction($this->view->url(['action' => 'import-dilicom']))
+			->addElement($this->view->newFormElementFile('offers', 'xml'), 'offers')
+			->addElement('submit', 'submit', ['label' => $this->_('Importer le fichier XML')]);
+	}
+
+
+
 	protected function _formImportEAD() {
 		return $this->view
 			->newForm(['id' => 'import_ead', 'class' => 'form'])
@@ -159,16 +206,20 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 	}
 
 
+	public function linkalbumtoAction() {
+		$this->_renderAlbumForm(Class_Album::newInstance(),
+														'Ajouter un album');
+	}
+
+
 	public function addalbumtoAction() {
-		if (!$categorie = Class_AlbumCategorie::find((int)$this->_getParam('id'))) {
-			$this->_redirect('admin/album');
-			return;
-		}
+		$categorie = '';
+		$title = 'Ajouter un album';
+		if ($categorie = Class_AlbumCategorie::find((int)$this->_getParam('id')))
+			$title .= ' dans la collection "' . $categorie->getLibelle() . '"';
 
 		$this->_renderAlbumForm(
-			Class_Album::newInstance()->setCategorie($categorie),
-			'Ajouter un album dans la collection "' . $categorie->getLibelle() . '"'
-			);
+			Class_Album::newInstance()->setCategorie($categorie), $title);
 	}
 
 
@@ -467,7 +518,7 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 	 * @return Zend_Form
 	 */
 	protected function _albumForm($album) {
-		$form = ZendAfi_Form_Album::newWith($album);
+		$form = ZendAfi_Form_Album::newWithAlbum($album);
 		$form->addAttribs(['data-backurl' => $this->view->url(['action' => 'index',
 																						               'cat_id' => $album->getCatId()])]);
 		return $form;
@@ -499,6 +550,7 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 		$values = $form->getValues();
 		unset($values['fichier']);
 		unset($values['pdf']);
+		unset($values['usage_constraints']);
 
 		$droits_precision = $values['droits_precision'];
 		unset($values['droits_precision']);
@@ -512,14 +564,16 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 
 		if ($album->save()
 			  && $album->receiveFile()
-			  && $album->receivePDF()
-				&& $album->index()) {
+			  && $album->receivePDF()) {
+
+			$album->index();
 
 			$frbr_links = [];
 			foreach(Class_FRBR_Link::findAllRecordLinksForAlbum($album) as $link)
 				$frbr_links[md5($link->getSource().$link->getTarget())] = $link;
 
-			$absoluteUrl = $this->view->absoluteUrl($album->getPermalink());
+			$absoluteUrl = $this->view->absoluteUrl(array_merge(['id' => $album->getId()],
+																													$album->getPermalink()), null, true);
 
 			$received_links = [];
 			$urls = $frbr_multi['frbr_url'];
@@ -550,8 +604,11 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 
 			(new Storm_Cache())->clean();
 			$this->_helper->notify('Album sauvegardé');
-			$this->_redirect('admin/album/edit_album/id/' . $album->getId());
+
+			$this->_redirectClose('admin/album/edit_album/id/' . $album->getId());
+			return true;
 		}
+		return false;
 	}
 
 
@@ -572,7 +629,8 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 	 * @param string $titre
 	 */
 	protected function _renderAlbumForm($album, $titre) {
-		$this->_validateAndSaveAlbum($album);
+		if ($this->_validateAndSaveAlbum($album))
+			return;
 
 		$this->view->titre	= $titre;
 		$this->view->errors	= $album->getErrors();
@@ -581,7 +639,30 @@ class Admin_AlbumController extends ZendAfi_Controller_Action {
 				->setValue($album->getFichier());
 		$this->view->form->getElement('pdf')
 				->setValue($album->getPdf());
-		$this->render('album_form');
+
+		if ($this->isPopupRequest())
+			$this->_prepareAlbumAjaxFrom();
+
+		$this->getHelper('ViewRenderer')->setScriptAction('album_form');
+	}
+
+	protected	function _prepareAlbumAjaxFrom() {
+		$id_notice = $this->_getParam('id_notice')
+			? $this->_getParam('id_notice')
+			: '';
+
+		$this->view->form->beSimple()
+				->setAction($this->view->url(['action' => 'link_album_to',
+																			'id_notice' => $id_notice]))
+				->setEnctype('application/x-www-form-urlencoded');
+
+		if (!$this->_request->isPost()) {
+			$notice = Class_Notice::find($id_notice);
+			$this->view->form->populateFrbrUrl(
+					$this->view->absoluteUrl($this->view->urlNotice($notice, [], null, true), null, true));
+
+			$this->view->form->getElement('titre')->setValue($notice->getTitrePrincipal());
+		}
 	}
 
 
diff --git a/application/modules/admin/controllers/CmsController.php b/application/modules/admin/controllers/CmsController.php
index b6d421a6867ce6651605155f402f74027f6896e7..c9af8887c1157b0528f578ce40f46eacbab19a66 100644
--- a/application/modules/admin/controllers/CmsController.php
+++ b/application/modules/admin/controllers/CmsController.php
@@ -252,6 +252,12 @@ class Admin_CmsController extends ZendAfi_Controller_Action {
 	}
 
 
+	protected function _doBeforeSave($article) {
+		$article->updateDateMaj();
+		return $this;
+	}
+
+
 	protected function _doAfterSave($article) {
 		if($id_module = $this->_getParam('id_module'))
 			$this->updateConfigBoiteNews($id_module,$article);
diff --git a/application/modules/admin/controllers/HarvestController.php b/application/modules/admin/controllers/HarvestController.php
index de9df37b8ce40ac3203fe6c90ee7d92bd0068d32..7273444348f369fc439c960eb554f1ea7409de5c 100644
--- a/application/modules/admin/controllers/HarvestController.php
+++ b/application/modules/admin/controllers/HarvestController.php
@@ -1,124 +1,146 @@
-<?php
-/**
- * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
- *
- * BOKEH is free software; you can redistribute it and/or modify
- * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
- * the Free Software Foundation.
- *
- * There are special exceptions to the terms and conditions of the AGPL as it
- * is applied to this software (see README file).
- *
- * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
- * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
- */
-
-class Admin_HarvestController extends Zend_Controller_Action {
-	protected static $_services;
-
-	public function preDispatch() {
-		$action = $this->_request->getActionName();
-		if (in_array($action, ['arte-vod-browse', 'arte-vod-ajax']))
-			return;
-
-		$services = $this->getServices();
-
-		if ('-browse' == substr($action, -7)
-				&& ($type = str_replace('-browse', '', $action))
-				&& isset($services[$type])
-				&& $services[$type]->isEnabled()) {
-			$this->_setParam('type', $type);
-			$this->_forward('browse');
-			return;
-		}
-
-
-		if (isset($services[$action])) {
-			$this->_setParam('type', $action);
-			$this->_forward('harvest');
-			return;
-		}
-
-
-		if (!$this->_service = $this->getService($this->_getParam('type'))) {
-			$this->_redirect('/admin/index');
-			return;
-		}
-
-		$this->view->titre = $this->view->_(sprintf('Moissonnage %s', 
-																								$this->_service->getName()));
-	}
-
-
-	protected function getServices() {
-		return ['arte-vod' => new Class_WebService_BibNumerique_ArteVOD(),
-						'vodeclic' => new Class_WebService_BibNumerique_Vodeclic(),
-						'toutapprendre' => new Class_WebService_BibNumerique_ToutApprendre(),
-						'numilog' => new Class_WebService_BibNumerique_Numilog(),
-						'cyberlibris' => new Class_WebService_BibNumerique_Cyberlibris(),
-						'numerique-premium' => new Class_WebService_BibNumerique_NumeriquePremium()];
-	}
-
-
-	protected function getService($name) {
-		$service=$this->getServices();
-		return isset($service[$name]) ? $service[$name] : null;
-	}
-
-
-	public function browseAction() {
-		$this->view->type = $this->_getParam('type');
-	}
-
-
-	public function harvestAction() {
-		$this->_withServiceDo($this->_service);
-	}
-
-
-	/**
-	 * keep it until view is factored
-	 */
-	public function arteVodBrowseAction() {
-		$this->view->titre = $this->view->_('Moissonnage ArteVOD');
-	}
-
-
-	public function arteVodAjaxAction() {
-		$this->_helper->viewRenderer->setNoRender();
-		if (!Class_AdminVar::isArteVodEnabled())
-			return;
-
-		$service = new Class_WebService_BibNumerique_ArteVOD();
-		echo json_encode($service->harvestPage($this->_getParam('page', 1)));
-	}
-
-
-
-	protected function _withServiceDo($service) {
-		if (!$service->isEnabled()) {
-			$this->_redirect('/admin/index');
-			return;
-		}
-
-		$logger = new Zend_Log();
-		$logger->addWriter(new Zend_Log_Writer_Stream('php://output'));
-
-		ob_start();
-		$logger->info('Début du moissonnage');
-
-		$service->setLogger($logger);
-		$service->harvest();
-		(new Storm_Cache())->clean();
-
-		$logger->info('Fin du moissonnage');
-
-		$this->view->log = ob_get_clean();
-	}
-}
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Admin_HarvestController extends Zend_Controller_Action {
+	protected static $_services;
+
+	public function preDispatch() {
+		$action = $this->_request->getActionName();
+		if (in_array($action, ['arte-vod-browse', 'arte-vod-ajax', 'orphea-browse', 'orphea-ajax']))
+			return;
+
+		$services = $this->getServices();
+
+		if ('-browse' == substr($action, -7)
+				&& ($type = str_replace('-browse', '', $action))
+				&& isset($services[$type])
+				&& $services[$type]->isEnabled()) {
+			$this->_setParam('type', $type);
+			$this->_forward('browse');
+			return;
+		}
+
+
+		if (isset($services[$action])) {
+			$this->_setParam('type', $action);
+			$this->_forward('harvest');
+			return;
+		}
+
+
+		if (!$this->_service = $this->getService($this->_getParam('type'))) {
+			$this->_redirect('/admin/index');
+			return;
+		}
+
+		$this->view->titre = $this->view->_(sprintf('Moissonnage %s',
+																								$this->_service->getName()));
+	}
+
+
+	protected function getServices() {
+		return ['arte-vod' => new Class_WebService_BibNumerique_ArteVOD(),
+						'vodeclic' => new Class_WebService_BibNumerique_Vodeclic(),
+						'toutapprendre' => new Class_WebService_BibNumerique_ToutApprendre(),
+						'numilog' => new Class_WebService_BibNumerique_Numilog(),
+						'cyberlibris' => new Class_WebService_BibNumerique_Cyberlibris(),
+						'numerique-premium' => new Class_WebService_BibNumerique_NumeriquePremium(),
+						'orphea' => new Class_WebService_BibNumerique_Orphea()];
+	}
+
+
+	protected function getService($name) {
+		$service=$this->getServices();
+		return isset($service[$name]) ? $service[$name] : null;
+	}
+
+
+	public function browseAction() {
+		$this->view->type = $this->_getParam('type');
+	}
+
+
+	public function harvestAction() {
+		$this->_withServiceDo($this->_service);
+	}
+
+
+	/**
+	 * keep it until view is factored
+	 */
+	public function arteVodBrowseAction() {
+		$this->view->titre = $this->view->_('Moissonnage ArteVOD');
+	}
+
+
+	public function arteVodAjaxAction() {
+		$this->_helper->viewRenderer->setNoRender();
+		if (!Class_AdminVar::isArteVodEnabled())
+			return;
+
+		$service = new Class_WebService_BibNumerique_ArteVOD();
+		echo json_encode($service->harvestPage($this->_getParam('page', 1)));
+	}
+
+
+	public function orpheaBrowseAction() {
+		if (!(new Class_WebService_BibNumerique_Orphea())->isEnabled()) {
+			$this->_redirect('/admin/index');
+		}
+
+		$this->view->titre = $this->view->_('Moissonnage Orphea');
+	}
+
+
+	public function orpheaAjaxAction() {
+		$this->_helper->viewRenderer->setNoRender();
+		if (!Class_AdminVar::isOrpheaEnabled())
+			return;
+
+		$service = new Class_WebService_BibNumerique_Orphea();
+		$response = $service->harvestPage($this->_getParam('unid'),
+        $this->_getParam('page', 1), $this->_getParam('total_count'));
+        echo json_encode($response);
+	}
+
+
+
+	protected function _withServiceDo($service) {
+		if (!$service->isEnabled()) {
+			$this->_redirect('/admin/index');
+			return;
+		}
+
+		$logger = new Zend_Log();
+		$logger->addWriter(new Zend_Log_Writer_Stream('php://output'));
+
+		ob_start();
+		$logger->info('Début du moissonnage');
+
+		$service->setLogger($logger);
+		$service->harvest();
+		(new Storm_Cache())->clean();
+
+		$logger->info('Fin du moissonnage');
+
+		$this->view->log = ob_get_clean();
+	}
+}
diff --git a/application/modules/admin/controllers/IndexController.php b/application/modules/admin/controllers/IndexController.php
index c105f1a0f96648020a0f63f0014b2ff9ea81f659..9b28602567a65d30c15d7ffb41506dd4ec463a51 100644
--- a/application/modules/admin/controllers/IndexController.php
+++ b/application/modules/admin/controllers/IndexController.php
@@ -66,45 +66,31 @@ class Admin_IndexController extends ZendAfi_Controller_Action {
 
 
 
-	public function shouldEncodeVar($cle) {
-		return in_array($cle->getId(),
-										['REGISTER_OK', 'RESA_CONDITION', 'TEXTE_MAIL_RESA',
-										 'USER_VALIDATED', 'USER_NON_VALIDATED']);
-	}
-
-
 	public function adminvareditAction() {
 		$id = $this->_getParam('cle');
 		$var = Class_AdminVar::find($id);
 
-		if ($this->_request->isPost()) {
-			$filter = new Zend_Filter_StripTags();
-			$new_valeur = $this->_request->getPost('valeur');
+		$form = ZendAfi_Form_Admin_AdminVar::newWithAdminVar($var);
+		$form->setAction($this->view->url());
+		$form->setAttrib('data-backurl',
+										 $this->view->url(['action' => 'adminvar']));
 
-			if ($this->shouldEncodeVar($var)) {
-				$var->setValeur(urlencode($new_valeur));
+		if ($this->_request->isPost() && $form->isValid($this->_request->getPost())) {
+			$new_valeur = $form->getAdminVarValue();
+			$var->setValeur($new_valeur);
 
-			} else if ($var->getId() == 'JS_STAT') {
-				$var->setValeur(addslashes($new_valeur));
-
-			} else {
-				$var->setValeur(trim($filter->filter($new_valeur)));
+			if ($var->save()) {
+					$this->_helper->notify('Variable '.$id.' sauvegardée', $id);
+					$this->_redirectClose('admin/index/adminvaredit/cle/'.$id);
+					return;
 			}
-
-			$this->_helper->notify($var->save() ?
-														 'Variable '.$id.' sauvegardée' :
-														 'Erreur(s) : ' . implode(', ', $var->getErrors())
-															 . ', variable '.$id.' NON sauvegardée');
-			$this->_redirect('admin/index/adminvaredit/cle/'.$id);
-			return;
+			$form->getElement('valeur')->addErrors($var->getErrors());
+			$this->_helper->notify('Erreur(s) : ' . implode(', ', $var->getErrors())
+														 . ', variable '.$id.' NON sauvegardée');
 		}
 
-		$this->view->var_valeur	= $this->shouldEncodeVar($var)
-			? urldecode($var->getValeur())
-			: $var->getValeur();
-
-		$this->view->var_cle		= $var->getId();
-		$this->view->tuto				= Class_AdminVar::helpFor($var->getId());
+		$this->view->form = $form;
+		$this->view->admin_var = $var;
 		$this->view->titre			= 'Modifier la variable: ' . $var->getId();
 	}
 
diff --git a/application/modules/admin/controllers/ModulesnoticeController.php b/application/modules/admin/controllers/ModulesnoticeController.php
index 723ca18efd46d72b3f1be168ee24d0efa7311a36..a3729d1cfe2d41f2397d4c58c0a5f97624ffb53d 100644
--- a/application/modules/admin/controllers/ModulesnoticeController.php
+++ b/application/modules/admin/controllers/ModulesnoticeController.php
@@ -46,7 +46,6 @@ class Admin_ModulesnoticeController extends ZendAfi_Controller_Action {
 
 		$cfg = $profil->getCfgNoticeAsArray();
 		$preferences=$cfg[$this->type_module];
-		if(!$preferences) $preferences=$module->getValeursParDefaut($this->type_module);
 
 		// Variables de vue
 		$this->view->titre_module=$def_module["libelle"];
@@ -61,27 +60,19 @@ class Admin_ModulesnoticeController extends ZendAfi_Controller_Action {
 			Zend_Layout::startMvc();
 	}
 
-//------------------------------------------------------------------------------------------------------
-// Proprietés : EXEMPLAIRES
-//------------------------------------------------------------------------------------------------------
-	function exemplairesAction(){
+
+	function exemplairesAction() {
 		$this->view->titre = $this->view->_('Propriété du bloc des exemplaires');
 
-		// Retour du formulaire
-		if ($this->_request->isPost())
-		{
+		if ($this->_request->isPost()) {
 			$enreg=$_POST;
-			if($enreg["grouper"]==0)
-			{
-				$enreg["section"]=0;
-				$enreg["emplacement"]=0;
-				$enreg["annexe"]=0;
+			if (!$enreg['grouper']) {
+				$enreg['section'] = 0;
+				$enreg['emplacement'] = 0;
+				$enreg['annexe'] = 0;
 			}
 			$this->updateEtRetour($enreg);
 		}
-
-		if (!array_isset("en_pret", $this->view->preferences) || !trim($this->view->preferences["en_pret"]))
-			$this->view->preferences["en_pret"]="emprunté";
 	}
 
 //------------------------------------------------------------------------------------------------------
diff --git a/application/modules/admin/controllers/MultimediaController.php b/application/modules/admin/controllers/MultimediaController.php
index 9df8e86fad541a4f85a000bc932430b9612c5ba4..3767d71b141a2ab5293d1ac21bd5885983c3a0c2 100644
--- a/application/modules/admin/controllers/MultimediaController.php
+++ b/application/modules/admin/controllers/MultimediaController.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301	 USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301	 USA
  */
 
 class Admin_MultimediaController extends ZendAfi_Controller_Action {
@@ -39,7 +39,10 @@ class Admin_MultimediaController extends ZendAfi_Controller_Action {
 																					'elements' => $this->getConfigFields()],
 
 														 'config_auto' => ['legend' => 'Réservation automatique',
-																							 'elements' => $this->getConfigAutoFields()]
+																							 'elements' => $this->getConfigAutoFields()],
+
+														 'config_auto_closing_days' => ['legend' => 'Réservation les jours de fermetures',
+																							 'elements' => $this->getConfigClosingDaysFields()]
 														 ]
 						];
 	}
@@ -49,7 +52,7 @@ class Admin_MultimediaController extends ZendAfi_Controller_Action {
 		$libelles = [];
 		foreach (Class_Bib::findAllBy(['order' => 'libelle']) as $bib)
 			$libelles[$bib->getId()] = $bib->getLibelle();
-		
+
 		return ['id_site' => ['element' => 'select',
 													'options' => ['multioptions' => $libelles]]];
 	}
@@ -128,6 +131,29 @@ disponible',
 	}
 
 
+	public function getConfigClosingDaysFields() {
+		$hours_select = Class_Multimedia_Location::getPossibleHours(30);
+
+
+		$fields['autohold_for_closing_days'] = ['element' => 'checkbox',
+													 'options' => ['label' => 'Autoriser les réservations automatique pour les jours de fermeture
+disponible',
+																				 'title' => 'Permet de définir des jours d\'utilisation des postes sans possibilités de réservation de bokeh',
+																				 'required' => true,
+																				 'allowEmpty' => false]];
+
+
+		$field_labels = ['open_hour' => $this->view->_('Heure d\'ouverture'),
+										 'close_hour' => $this->view->_('Heure de fermeture')];
+
+		foreach ($field_labels as $field => $label)
+			$fields[$field] = ['element' => 'select', 'options' => ['label' => $label,
+																															'multiOptions' => $hours_select]];
+
+		return $fields;
+						}
+
+
 	public function browseAction() {
 		if (!$location = Class_Multimedia_Location::find((int)$this->_getParam('id'))) {
 			$this->_redirect('/admin/multimedia');
@@ -140,19 +166,19 @@ disponible',
 																								 'devices' => $devices]);
 		$this->_forward('index');
 	}
-		
+
 
 	protected function _postEditAction($model) {
 		$this->view->titre = 'Modification du site multimédia "' . $this->view->escape($model->getLibelle()) . '"';
 	}
-		
+
 
 	/** Les données viennent d'un serveur multimédia, pas de suppression */
 	public function deleteAction() {
 		$this->_redirect('/admin/multimedia');
 	}
 
-	
+
 	/** Les données viennent d'un serveur multimédia, pas d'ajout */
 	public function addAction() {
 		$this->_redirect('/admin/multimedia');
diff --git a/application/modules/admin/controllers/SystemeController.php b/application/modules/admin/controllers/SystemeController.php
index 821ef1702769fbd8462ab1aa77b87e90f83a09c2..93b231be77f997c051512e83affbf99d801e666c 100644
--- a/application/modules/admin/controllers/SystemeController.php
+++ b/application/modules/admin/controllers/SystemeController.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class Admin_SystemeController extends Zend_Controller_Action {
 
@@ -96,19 +96,16 @@ class Admin_SystemeController extends Zend_Controller_Action {
 		$limit=10;
 
 		// nombre a traiter
-		$nb_a_traiter=fetchOne("select count(*) from notices where url_vignette=''");
+		$nb_a_traiter = Class_Notice::countBy(['url_vignette' => '']);
 
 		// Traitement
 		if($nb_a_traiter)	{
-			// Instanciations
-			$cls_vignette=new Class_WebService_Vignette();
-
 			// Lecture notices
 			$notices = Class_Notice::findAllBy(['url_vignette' => '',
 																					'order' => 'id_notice',
 																					'limit' => $limit]);
 			foreach($notices as $notice)	{
-				$cls_vignette->fetchAndSaveImage($notice, null, false);
+				$notice->fetchUrlLocalVignette();
 				$nb_a_traiter--;
 			}
 		}
@@ -140,10 +137,10 @@ class Admin_SystemeController extends Zend_Controller_Action {
 
 	public function generationsiteAction() {
 		$this->view->titre="Génération du site";
-		
+
 		$form = $this->_formGenerationSite();
 		$this->view->form_generation_site = $form;
-		
+
 		if (!$this->_request->isPost())
 			return;
 
@@ -153,8 +150,8 @@ class Admin_SystemeController extends Zend_Controller_Action {
 			$this->_helper->notify('site généré');
 			$this->_redirect('admin/systeme/generationsite');
 			return;
-		} 
-			
+		}
+
 		$this->_helper->notify('Le fichier reçu n\'est pas valide');
 		$this->_redirect('admin/systeme/generationsite');
 
@@ -180,7 +177,7 @@ class Admin_SystemeController extends Zend_Controller_Action {
 													 'thesaurus',
 												array('legend' => 'Général'))
 			->addElement('submit', 'send', array('label' => 'Enregistrer'));
-		
+
 
 		if ($this->_request->isPost() && $form->isValid($this->_request->getPost())) {
 		 	foreach (Class_CodifThesaurus::getIndices('root',true) as $thesaurus) {
@@ -193,16 +190,16 @@ class Admin_SystemeController extends Zend_Controller_Action {
 			$this->view->message = 'Les libellés ont été mis à jour';
 		}
 
-		$this->view->form = $form;	
-		
+		$this->view->form = $form;
+
 	}
 
 	public function importthesaurusAction() {
 		$this->view->titre="Importation d'un thesaurus";
-		
+
 		$form = $this->_formImportThesaurus();
 		$this->view->form_import_thesaurus = $form;
-		
+
 		if (!$this->_request->isPost())
 			return;
 
@@ -213,14 +210,14 @@ class Admin_SystemeController extends Zend_Controller_Action {
 			$this->_helper->notify('import ok');
 			$this->_redirect('admin/systeme/importthesaurus');
 			return;
-		} 
-			
+		}
+
 		$this->_helper->notify('Le fichier reçu n\'est pas valide');
 		$this->_redirect('admin/systeme/generationsite');
 
 	}
 
-	
+
 	protected function _formGenerationSite() {
 		return $this->view
 			->newForm(array('id' => 'import_generationsite',
@@ -267,7 +264,7 @@ class Admin_SystemeController extends Zend_Controller_Action {
 
 
 
-	public function phpinfoAction() {	
+	public function phpinfoAction() {
 		$this->view->titre = 'Informations système';
 	}
 
@@ -307,7 +304,7 @@ class Admin_SystemeController extends Zend_Controller_Action {
 
 		$this->view->form = $form;
 	}
-	
+
 }
 
 ?>
\ No newline at end of file
diff --git a/application/modules/admin/controllers/UsersController.php b/application/modules/admin/controllers/UsersController.php
index ce8d4011f359bca5145a938a25c901cfb185c607..226fcc6fb947e7fa1dc3c7890ad5e5fffeab5352 100644
--- a/application/modules/admin/controllers/UsersController.php
+++ b/application/modules/admin/controllers/UsersController.php
@@ -25,8 +25,9 @@
 //				-	Faire une recherche par noms
 //////////////////////////////////////////////////////////////////////////////////////////
 
-class Admin_UsersController extends ZendAfi_Controller_Action
-{
+class Admin_UsersController extends ZendAfi_Controller_Action {
+	use Trait_Translator;
+
 	private $id_zone;
 	private $id_bib;
 	private $user;
@@ -189,30 +190,28 @@ class Admin_UsersController extends ZendAfi_Controller_Action
 		}
 	}
 
-	//------------------------------------------------------------------------------------------------------
-	// Suppression utilisateur
-	//------------------------------------------------------------------------------------------------------						
-	function deleteAction()
-	{	
-		$id_user=$this->_request->getParam('id');
-		$user = new Class_Users();
+
+	function deleteAction() {	
+		$user_id = $this->_request->getParam('id');
+		$error = '';
+
+		if(!$user = Class_Users::find($user_id))
+			$error = $this->_('Echec de la suppression: Utilisateur inconnu.');
 		
-		// Vérifications
-		if($id_user == $this->user->ID_USER) $erreur="Vous ne pouvez pas vous supprimer vous-même.";
-		if($id_user == 1) $erreur="Il est interdit de détruire le super administrateur.";
-
-		$enreg=$user->getUser($id_user);
-		if($enreg['ROLE_LEVEL']==6)
-			{
-				$nb_admin=fetchOne("select count(*) from bib_admin_users where ROLE_LEVEL=6");
-				if($nb_admin == 1) $erreur="On ne peut pas supprimer le seul administrateur du portail.";
-			}
+		if ($user_id == $this->user->ID_USER)
+			$error = $this->_('Vous ne pouvez pas vous supprimer vous-même.');
+
+		if ($user_id == 1)
+			$error = $this->_('Il est interdit de détruire le super administrateur.');
+
+		if ($user->getRoleLevel() == 6 && Class_Users::countBy(['role_level' => 6]) == 1)
+			$error = $this->_('On ne peut pas supprimer le seul administrateur du portail.');
 	
-		// On peut supprimer
-		if(!$erreur)	{
-			$user->deleteUser($id_user);
-		} else {
-			$this->_helper->notify($erreur);
+		if (!$error)	{
+			$user->delete();
+		}
+		else {
+			$this->_helper->notify($error);
 		}
 
 		$this->_redirect('admin/users');
diff --git a/application/modules/admin/views/scripts/album/import-dilicom.phtml b/application/modules/admin/views/scripts/album/import-dilicom.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..58ab1dc734421661400f852ddf19f1402498515a
--- /dev/null
+++ b/application/modules/admin/views/scripts/album/import-dilicom.phtml
@@ -0,0 +1 @@
+<?php echo $this->form_import_dilicom; ?>
diff --git a/application/modules/admin/views/scripts/cms/_newsform_head.phtml b/application/modules/admin/views/scripts/cms/_newsform_head.phtml
index c3ad970a25449f17feef258c721035c00dcda6a0..ccc3ccf3faa7fdaf0887e796372093cedc78bfc3 100644
--- a/application/modules/admin/views/scripts/cms/_newsform_head.phtml
+++ b/application/modules/admin/views/scripts/cms/_newsform_head.phtml
@@ -1,10 +1,10 @@
 <div class="content_edit_head"><?php echo $this->_('Localisation') . ' : ' . $this->article->getBibLibelle(); ?>
 
-<?php 
-if (!$this->article->isNew())  { 
-	$article_url = $this->url(['module' => 'opac', 
-														 'controller' => 'cms', 
-														 'action' => 'articleview', 
+<?php
+if (!$this->article->isNew())  {
+	$article_url = $this->url(['module' => 'opac',
+														 'controller' => 'cms',
+														 'action' => 'articleview',
 														 'id' => $this->article->getId()],
 														null, true);
 	echo $this->tagPreview($article_url, "Visualisation de l'article: " . $this->article->getTitre());
@@ -14,14 +14,18 @@ if (!$this->article->isNew())  {
 echo $this->partial('cms/_traduction_navigator.phtml',
 										['article' => $this->article]);
 
-if ($this->article->hasDateMaj()) {
-  echo sprintf('<br/><br/>%s : %s', 
-               $this->_('Dernière modification'), 
-               $this->humanDate($this->article->getDateMaj())); 
-}
 ?>
 
-</div>
-
+	<dl>
+		<?php
+		echo '<dt>' . $this->_('Créé le') . '</dt>';
+		echo '<dd>' . $this->humanDate($this->article->getDateCreation()) . '</dd>';
 
+		if ($this->article->hasDateMaj()) {
+			echo '<dt>' . $this->_('Modifié le') . '</dt>';
+			echo '<dd>' . $this->humanDate($this->article->getDateMaj()) . '</dd>';
+		}
+		?>
+	</dl>
 
+</div>
diff --git a/application/modules/admin/views/scripts/harvest/orphea-browse.phtml b/application/modules/admin/views/scripts/harvest/orphea-browse.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..4e3aa377093e9c15c6c0bc1c89333cb0fa20071c
--- /dev/null
+++ b/application/modules/admin/views/scripts/harvest/orphea-browse.phtml
@@ -0,0 +1,48 @@
+<form id="artevod_harvest">
+	<input type="submit" value="<?php echo $this->_('Lancer le moissonnage');?>">
+</form>
+
+<div id="harvest_progress" style="display:none">
+	<div id="progress_message"><?php echo $this->_('Moissonnage en cours');?></div>
+	<div id="progress_bar"></div>
+</div>
+
+<script type="text/javascript">
+var orphea_harvest = function(unid = null, page_number = 1, total_pages = null) {
+	var harvest_url = '<?php echo Class_WebService_BibNumerique_Orphea::getHarvestUrl(); ?>';
+	var params = {unid: unid, page: page_number, total_pages: total_pages};
+	$.getJSON(harvest_url, params, function(data) {
+		if (data == null) {
+			$('#progress_message').text('Aucune donnée retournée');
+			$('#progress_bar').progressbar({value:100});
+			return;
+		}
+
+		if (data['error'] != null) {
+			$('#progress_message').text('Erreur : ' + data['error']);
+			$('#progress_bar').progressbar({value:100});
+			return;
+		}
+
+		if (!data['has_next']) {
+			$('#progress_message').text('Catalogue importé');
+			$('#progress_bar').progressbar({value:100});
+			return;
+		}
+
+		$('#progress_message').text(data['total_count'] + ' notices au total. Page ' 
+																+ data['current_page']);
+		$('#progress_bar').progressbar({value:(data['current_page'] * 100) / data['total_pages']});
+		orphea_harvest(data['unid'], page_number+1, data['total_pages']);
+	});
+}
+
+
+$(document).ready(function(){
+	$('#artevod_harvest').submit(function() {
+		$('#harvest_progress').children().andSelf().show();
+		orphea_harvest(null, 1);
+		return false;
+	});
+});
+</script>
diff --git a/application/modules/admin/views/scripts/head.phtml b/application/modules/admin/views/scripts/head.phtml
index 139ce62c853bd418b66b7de1a20a2c37091dbc06..3534eec35e0518a2b12da0e1860405db57618c55 100644
--- a/application/modules/admin/views/scripts/head.phtml
+++ b/application/modules/admin/views/scripts/head.phtml
@@ -16,11 +16,11 @@
 																							 BASE_URL, URL_ADMIN_IMG, URL_ADMIN_CSS, USERFILESURL))
 										 ->addAdminScripts(['onload_utils',
 																				'global',
-																				'toolbar'])			 
+																				'toolbar'])
 										 ->addOPACScript('subModal')
-										 ->loadPrettyPhoto()
+										 ->addJQueryReady('initializePopups();')
 										 ->showNotifications()
-										 ->addJQueryReady('initializePopups()');
+										 ->loadPrettyPhoto();
 
 		$script_loader = Class_ScriptLoader::getInstance();
 		$head_scripts->renderStyleSheets();
@@ -30,7 +30,7 @@
 		$script_loader->renderJavaScripts();
 
 		echo $this->headScript();
-		echo $this->headLink(); 
+		echo $this->headLink();
 		?>
 		<script>
 		 (function heartbeat() {
diff --git a/application/modules/admin/views/scripts/index/adminvar.phtml b/application/modules/admin/views/scripts/index/adminvar.phtml
index e75ab0951411da0e47ecf1c9e4470142dfd1de5b..657735318869131f043050fc5be7ad27afd69752 100644
--- a/application/modules/admin/views/scripts/index/adminvar.phtml
+++ b/application/modules/admin/views/scripts/index/adminvar.phtml
@@ -33,23 +33,35 @@ hide: {duration: 1000}
 		<?php
 		$ligne = 0;
 		foreach($this->vars as $var) {
-			if ($var->getId() == 'JS_STAT')
+			if ($var->getClef() == 'JS_STAT')
 				$value = $this->escape($var->getValeur());
 			else if(preg_match('^%0D%0A^',$var->getValeur()))
-			$value = urldecode(str_replace('%0D%0A','<br />',$var->getValeur()));
+			  $value = urldecode(str_replace('%0D%0A','<br />',$var->getValeur()));
 			else
 				$value = urldecode($var->getValeur());
 			$ligne ++ ;
 			?>
 			<tr class="<?php echo ($ligne & 1) ? "first" : "second";?>" data-tooltip="">
-				<td style="vertical-align:top;" ><?php echo $var->getId();?>
+				<td style="vertical-align:top;" ><?php echo $var->getClef();?>
 					<span style="display:none;">
-						<?php echo Class_AdminVar::helpFor($var->getId());?>
+						<?php echo Class_AdminVar::helpFor($var->getClef());?>
 					</span>
 				</td>
-				<td><?php echo wordwrap($value, 40, "<br />", 1);?></td>
+				<td>
+					<?php if ($var->isOnOff()): ?>
+						<?php if ($value): ?>
+							<img alt="✓" src="<?php echo URL_ADMIN_IMG . '/ico/coche_verte.gif'; ?>">
+							<?php echo $this->_('Activé'); ?>
+						<?php else: ?>
+							<img alt="✗" src="<?php echo URL_ADMIN_IMG . '/ico/del.gif'; ?>">
+							<?php echo $this->_('Désactivé'); ?>
+						<?php endif; ?>
+					<?php else: ?>
+						<?php echo wordwrap($value, 35, "<br />", 1);?>
+					<?php endif; ?>
+				</td>
 				<td style="width:2%;text-align:center">
-					<a data-popup="true" href="<?php echo $this->url(['action' => 'adminvaredit', 'cle' => $var->getId()])?>"><?php echo $this->boutonIco("type=edit");?></a>
+					<a data-popup="true" href="<?php echo $this->url(['action' => 'adminvaredit', 'cle' => $var->getClef()])?>"><?php echo $this->boutonIco("type=edit");?></a>
 				</td>
 			</tr>
 		<?php	} ?>
diff --git a/application/modules/admin/views/scripts/index/adminvaredit.phtml b/application/modules/admin/views/scripts/index/adminvaredit.phtml
index 86ee5b79a2da8d6ceab31c4e63fd13bf035d9eaa..8bc8d32de3f8bff8a07f69642975587ee085b872 100644
--- a/application/modules/admin/views/scripts/index/adminvaredit.phtml
+++ b/application/modules/admin/views/scripts/index/adminvaredit.phtml
@@ -1,30 +1,4 @@
-<center>
-<div class="form" align="center">
-<form name="form" action="<?php echo BASE_URL ?>/admin/index/adminvaredit" method="post">
-<fieldset>
-<legend><?php echo $this->traduire('Variable'); ?></legend>
-<br />
-<div class="formTable">
-<table cellspacing="2">
-  <tr>
-    <td class="droite"><?php echo $this->var_cle; ?></td>
-    <td class="gauche"><?php echo $this->tuto;?></td>
-  </tr>
-   <tr>
-    <td class="droite">Nouvelle valeur</td>
-    <td class="gauche"><textarea rows="10" cols="60" name="valeur"><?php echo $this->var_valeur; ?></textarea></td>
-  </tr>
-</table><br />
-</div>
-<input type="hidden" name="cle" value="<?php echo $this->var_cle; ?>" />
-</fieldset><br>
-
-<table>
-<tr>
-    <td align="right" style="padding-right:5px;"><?php echo $this->bouton('type=V'); ?> </td>
-    <td align="left" style="padding-left:5px;"> <?php echo $this->bouton('id=29','picto=back.gif','texte=Retour','url='.BASE_URL.'/admin/index/adminvar','largeur=120px'); ?></td>
-</tr>
-</table>
-</form>
-</div>
-</center>
+<p>
+	<?php echo $this->admin_var->getDescription() ?>
+</p>
+<?php echo $this->renderForm($this->form); ?>
diff --git a/application/modules/admin/views/scripts/popup.phtml b/application/modules/admin/views/scripts/popup.phtml
index 586cd1016f44de48564beb2b462b26c3732578c4..d9b54d727c0b33ad26242696221ed338644036f5 100644
--- a/application/modules/admin/views/scripts/popup.phtml
+++ b/application/modules/admin/views/scripts/popup.phtml
@@ -6,7 +6,6 @@ Class_ScriptLoader::getInstance()
 ->renderJavaScripts();
 
 echo $this->headScript();
-echo $this->headLink(); 
+echo $this->headLink();
 
 ?>
-
diff --git a/application/modules/opac/controllers/BibNumeriqueController.php b/application/modules/opac/controllers/BibNumeriqueController.php
index fb6ae672c8e25e564fd334232855ffcdd1a40018..cc7e611071753fa6e31d4f1a8fccef485520912d 100644
--- a/application/modules/opac/controllers/BibNumeriqueController.php
+++ b/application/modules/opac/controllers/BibNumeriqueController.php
@@ -18,7 +18,7 @@
  * along with BOKEH; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-class BibNumeriqueController extends Zend_Controller_Action {
+class BibNumeriqueController extends ZendAfi_Controller_Action {
 	public function viewAlbumAction() {
 		if (null === ($album = Class_Album::getLoader()->find((int)$this->_getParam('id')))) {
 			$this->_redirect('opac/');
@@ -254,6 +254,23 @@ class BibNumeriqueController extends Zend_Controller_Action {
 		$this->getResponse()->setBody('<!DOCTYPE html><html><body>'.$html.Class_ScriptLoader::getInstance()->html().'</body></html>');
 
 	}
+
+
+	public function consultBookAction() {
+		$album = Class_Album::find($this->_getParam('id'));
+
+		$client_ip = (new Class_RemoteClient($this->_request))->getIpAddress();
+		$response = (new Class_WebService_BibNumerique_Dilicom_Hub())->consultBook($album,
+																																							 $client_ip);
+		$content = json_decode($response);
+		if ($content->returnMessage) {
+			$this->_helper->notify(implode(',', $content->returnMessage));
+			$this->_redirectToReferer();
+			return;
+		}
+
+		$this->_redirect($content->link->url);
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/application/modules/opac/controllers/CasServerController.php b/application/modules/opac/controllers/CasServerController.php
index 6c6cd46946d2a1150ecde7add388baf3a070254d..ec893ccdddeb2f64abf4470abaa4a63874dc4ba4 100644
--- a/application/modules/opac/controllers/CasServerController.php
+++ b/application/modules/opac/controllers/CasServerController.php
@@ -16,11 +16,11 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class CasServerController extends Zend_Controller_Action {
 	use Trait_StaticFileWriter;
-	protected $service; // url de retour 
+	protected $service; // url de retour
 	protected $values;
 
 
@@ -71,14 +71,11 @@ class CasServerController extends Zend_Controller_Action {
 	}
 
 
-
-	function serviceValidateAction() {
-		$this->getHelper('ViewRenderer')->setNoRender();
-		$this->getResponse()->setHeader('Content-Type', 'application/xml;charset=utf-8');
-		$this->getResponse()->setBody("<form method='post' action=''><div>Identifiant:<input type='text' size='15' id='username' /></div><div>Mot de passe: <input type='text' size='15' id='password' /></div></form>");
-		
+	function servicevalidateAction() {
+		$this->_forward('validate');
 	}
 
+
 	function validateMusicmeAction() {
 		$this->getHelper('ViewRenderer')->setNoRender();
 		$bibid=$this->_request->getParam('MediaLibraryID');
diff --git a/application/modules/opac/controllers/CmsController.php b/application/modules/opac/controllers/CmsController.php
index 726363a10f22e185443d183d5cb9f347d7eb8945..65c63d553a655ccfd77da3eba2353129aea3ec69 100644
--- a/application/modules/opac/controllers/CmsController.php
+++ b/application/modules/opac/controllers/CmsController.php
@@ -50,7 +50,6 @@ class CmsController extends ZendAfi_Controller_Action {
 		$preferences['event_date']		= $this->_getParam('d');
 		$preferences['id_bib']				= $this->_getParam('b');
 		$preferences['events_only']		= true;
-		$preferences['published'] = !(bool)$preferences['event_date'];
 
 		if(!isset($preferences['display_mode']))
 			 $preferences['display_mode']='Title';
diff --git a/application/modules/opac/controllers/JavaController.php b/application/modules/opac/controllers/JavaController.php
index 0ff2a1432847f3127eebeb65ff4d59d84176f5df..3ff897e966599056009dc10f8652c09f8ad00413 100644
--- a/application/modules/opac/controllers/JavaController.php
+++ b/application/modules/opac/controllers/JavaController.php
@@ -37,25 +37,27 @@ class JavaController extends ZendAfi_Controller_Action {
 
 
 	public function kiosqueAction()	{
+		$profil = $this->extractProfilFromUrl();
+		$id_module = $this->extractIdModuleFromUrl();
+
 		$preferences = array_merge(Class_Systeme_ModulesAccueil::getInstance()->getValeursParDefaut('KIOSQUE'),
-															 $this->extractProfilFromUrl()->getModuleAccueilPreferences($this->extractIdModuleFromUrl(), 'KIOSQUE'));
+															 $profil->getModuleAccueilPreferences($id_module, 'KIOSQUE'));
 
+		$preferences = Class_Systeme_ModulesAccueil_Kiosque::updatePreferencesForProfileRedirect($id_module,
+																																														 $preferences);
+		$this->view->notices = Class_Catalogue::getNoticesByPreferences($preferences);
 		$this->view->preferences = $preferences;
-		$params = $this->_request->getParams();
-		unset($params['titre']);
-		$this->view->base_url = $this->view->url(array_merge($params,
-																												 ['controller' => 'recherche',
-																													'action' => 'viewnotice',
-																													'current_module' => null]),
-																						 null,
-																						 true);
-
-		// Lire les notices
-		$this->view->notices = Class_Catalogue::getLoader()->getNoticesByPreferences($preferences,"url");
+
+		$viewRenderer = $this->getHelper('ViewRenderer');
+
+		if(!$this->view->notices) {
+			$viewRenderer->setNoRender();
+			$this->getResponse()->setBody($this->view->Search_NoRecordFound());
+			return;
+		}
 
 		// Redirection vers la bonne vue
 		$vue = '/java/' . $this->_getParam('vue', 'diaporama').'.phtml';
-		$viewRenderer = $this->getHelper('ViewRenderer');
 		$viewRenderer->renderScript($vue);
 	}
 
diff --git a/application/modules/opac/controllers/ModulesController.php b/application/modules/opac/controllers/ModulesController.php
index 4b3a7685b47573248e994df0706ccb32eedcfe8d..54262af62eee6e507bd1b683527ac421c23dd2b7 100644
--- a/application/modules/opac/controllers/ModulesController.php
+++ b/application/modules/opac/controllers/ModulesController.php
@@ -47,10 +47,12 @@ class ModulesController extends Zend_Controller_Action {
 		$this->_redirect($numilog->getDynamiqueUrl());
 	}
 
-  public function numeriquepremiumAction() {
+
+	public function numeriquepremiumAction() {
 		$url = $this->_getParam('url');
-    $this->checkNotifyMessage(NULL, $url);
-  }
+		$this->checkNotifyMessage(NULL, $url);
+	}
+
 
 	public function vodeclicAction() {
 		$vodeclic = new Class_Systeme_ModulesMenu_Vodeclic();
@@ -66,6 +68,7 @@ class ModulesController extends Zend_Controller_Action {
 															$tout_apprendre->getDynamiqueUrl());
 	}
 
+
 	public function lekioskAction() {
 		$lekiosk = new Class_Systeme_ModulesMenu_LeKiosk();
 		$lekiosk->afterLoginRedirectTo($this->_request->getServer('HTTP_REFERER'));
@@ -73,6 +76,33 @@ class ModulesController extends Zend_Controller_Action {
 	}
 
 
+	public function mycowAction() {
+		$mycow = new Class_Systeme_ModulesMenu_MyCow();
+		$mycow->afterLoginRedirectTo($this->_request->getServer('HTTP_REFERER'));
+		 $this->checkNotifyMessage($mycow, $mycow->getDynamiqueUrl());
+	 }
+
+
+	public function mycowSsoAction() {
+		$this->view->eid = $this->_request->getParam('eid', 0);
+		$this->view->uid = $this->_request->getParam('uid', 0);
+	}
+
+
+	public function planetnemoAction() {
+		$planetnemo = new Class_Systeme_ModulesMenu_PlanetNemo();
+		$planetnemo->afterLoginRedirectTo($this->_request->getServer('HTTP_REFERER'));
+		$this->checkNotifyMessage($planetnemo, $planetnemo->getDynamiqueUrl());
+	}
+
+
+	public function kidilanguesAction() {
+		$kidilangues = new Class_Systeme_ModulesMenu_Kidilangues();
+		$kidilangues->afterLoginRedirectTo($this->_request->getServer('HTTP_REFERER'));
+		$this->checkNotifyMessage($kidilangues, $kidilangues->getDynamiqueUrl());
+	}
+
+
 	protected function checkNotifyMessage($ressource_link, $url) {
 		if ('' == $url) {
 			$this->_helper->notify($ressource_link->getMessage());
diff --git a/application/modules/opac/controllers/NoticeajaxController.php b/application/modules/opac/controllers/NoticeajaxController.php
index 15e7b8b6ae36a84640f5ce30a3c019bfa0375bae..90b0c79ad171f41f585da77efaa60aa69c4eefa2 100644
--- a/application/modules/opac/controllers/NoticeajaxController.php
+++ b/application/modules/opac/controllers/NoticeajaxController.php
@@ -235,13 +235,6 @@ class NoticeAjaxController extends Zend_Controller_Action {
 	}
 
 
-	public function vignetteAction() {
-		session_write_close();
-		$img=new Class_WebService_Vignette();
-		$img->getFluxImage($_REQUEST["clef"],$_REQUEST["id_notice"]);
-	}
-
-
 	public function biographieAction() {
 		session_write_close();
 		$this->_sendResponse($this->view->biographie($this->notice));
@@ -298,6 +291,17 @@ class NoticeAjaxController extends Zend_Controller_Action {
 
 	public function resnumeriquesAction() {
 		$html = '';
+		$add_album_tag = '';
+		if (1 == Class_AdminVar::isBibNumEnabled() && Class_Users::isCurrentUserAdmin())
+			$add_album_tag = $this->view->tagAnchor($this->view->url(['module' => 'admin',
+																											 'controller' => 'album',
+																											 'action' => 'link_album_to',
+																											 'id_notice' => $this->id_notice],
+																										 null, true),
+																		 $this->_('Créer un album'),
+																		 ['class' => 'link_album',
+																			'data-popup' => 'true']);
+
 		if (null !== $exemplaire = Class_Exemplaire::findFirstBy(['id_notice' => $this->id_notice]))
 			$html .= $this->view->renderAlbum($exemplaire->getAlbum());
 
@@ -306,6 +310,7 @@ class NoticeAjaxController extends Zend_Controller_Action {
 		if ('' == $html)
 			$html = sprintf('<p>%s</p>', $this->view->_('Aucune ressource correspondante'));
 
+		$html = $add_album_tag . $html;
 		$this->_sendResponse($html . Class_ScriptLoader::getInstance()->html());
 	}
 
diff --git a/application/modules/opac/controllers/RechercheController.php b/application/modules/opac/controllers/RechercheController.php
index 03193c7cf3e18dae11903fae5a2900c53f256f44..c9725ef0f4e163719956cd24d920984ee05c1a44 100644
--- a/application/modules/opac/controllers/RechercheController.php
+++ b/application/modules/opac/controllers/RechercheController.php
@@ -394,9 +394,8 @@ class RechercheController extends ZendAfi_Controller_Action {
 		$viewRenderer->setNoRender();
 		session_write_close();
 
-		$img = new Class_WebService_Vignette();
-		$url = $img->getImage((int)$this->_getParam('id_notice'));
-		$this->_redirect($this->view->absoluteUrl($url));
+		$notice = Class_Notice::find((int)$this->_getParam('id_notice'));
+		$this->_redirect($this->view->absoluteUrl($notice->fetchUrlLocalVignette()));
 	}
 
 
@@ -537,14 +536,14 @@ class RechercheController extends ZendAfi_Controller_Action {
 		$viewRenderer = $this->getHelper('ViewRenderer');
 		$viewRenderer->setNoRender();
 
-		if (!$user = Class_Users::getLoader()->getIdentity()) {
+		if (!$user = Class_Users::getIdentity()) {
 		  $this->_forward('popup-login', 'auth', 'opac', ['redirect' => $this->view->url()]);
 			return;
 		}
 
-		$id_bib = (int)$this->_request->getParam('id_bib');
-		$id_origine = $this->_request->getParam('id_origine');
-		$code_annexe = $this->_request->getParam('code_annexe');
+		$id_bib = (int)$this->_getParam('id_bib');
+		$id_origine = $this->_getParam('id_origine');
+		$code_annexe = $this->_getParam('code_annexe');
 
 		$comm = new Class_CommSigb();
 		$ret = $comm->reserverExemplaire($id_bib, $id_origine, $code_annexe);
@@ -594,40 +593,83 @@ class RechercheController extends ZendAfi_Controller_Action {
 
 
 	public function reservationPickupAjaxAction() {
-		if (!Class_CosmoVar::isSiteRetraitResaEnabled()) {
-			$this->_forward('reservationajax');
+		if (!$user = Class_Users::getIdentity()) {
+		  $this->_forward('popup-login', 'auth', 'opac', ['redirect' => $this->view->url()]);
 			return;
 		}
 
 
-		if ($this->_request->isPost()) {
-			$this->renderPopup($this->view->url(['action' => 'reservationajax',
-																					 'code_annexe' => $this->_request->getPost('code_annexe')]));
+		if (!Class_CosmoVar::isSiteRetraitResaEnabled()
+				&& !$this->arePickupLocationsProvidedByComm()) {
+			$this->_forward('reservationajax');
 			return;
 		}
 
 
-		$annexes = Class_CodifAnnexe::findAllByPickup();
+		$form = $this->view
+			->newForm(['id' => 'pickup',
+								 'class' => 'zend_form reservation_pickup',
+								 'action' => $this->view->url(['controller' => 'recherche',
+																							 'action' => 'reservation-pickup-ajax'])])
+			->addElement('Radio', 'code_annexe', ['required' => true,
+																						'allowEmpty' => false])
+
+			->addDisplayGroup(['code_annexe'], 'group', ['legend' => 'Site de retrait'])
 
-		$form = $this->view->newForm(['id' => 'pickup',
-																	'class' => 'zend_form reservation_pickup',
-																	'action' => $this->view->url(['controller' => 'recherche', 'action' => 'reservation-pickup-ajax'])])
-											 ->addElement('Radio', 'code_annexe', array('required' => true,
-																																	'allowEmpty' => false))
-											 ->addDisplayGroup(array('code_annexe'), 'group', array('legend' => 'Site de retrait'))
-											 ->addElement('Submit', 'Valider')
-											 ->addElement('Button', 'Annuler', array('onclick' => 'opacDialogClose();return false;'));
+			->addElement('Submit', 'Valider')
+			->addElement('Button', 'Annuler',
+									 ['onclick' => 'opacDialogClose();return false;']);
 
 		$radio = $form->getElement('code_annexe');
-		foreach ($annexes as $annexe)
-			$radio->addMultiOption($annexe->getCode(), $annexe->getLibelle());
-		$radio->setValue($this->_getParam('code_annexe'));
+		$this->arePickupLocationsProvidedByComm() ?
+			$this->_addLocationsFromCommTo($radio) :
+			$this->_addLocationsFromCodifTo($radio);
+
+		if ($this->_request->isPost()
+				&& $form->isValid($this->_request->getPost())) {
+			$this->renderPopup($this->view->url(['action' => 'reservationajax',
+																					 'code_annexe' => $this->_request->getPost('code_annexe')]));
+			return;
+		}
 
 		$this->renderPopupResult($this->view->_('Lieu de mise à disposition demandé'),
 														 $this->view->renderForm($form));
 	}
 
 
+	protected function _addLocationsFromCodifTo($element) {
+		foreach (Class_CodifAnnexe::findAllByPickup() as $annexe)
+			$element->addMultiOption($annexe->getCode(), $annexe->getLibelle());
+		$element->setValue($this->_getParam('code_annexe'));
+	}
+
+
+	protected function _addLocationsFromCommTo($element) {
+		if ((!$user = Class_Users::getIdentity())
+				|| (!$comm = $user->getSIGBComm())
+				|| (!$item = Class_Exemplaire::find($this->_getParam('id_origine'))))
+			return;
+
+		$first = '';
+		foreach($comm->pickupLocationsFor($user, $item) as $k => $v) {
+			$first = $first ? $first : $k;
+			$element->addMultiOption($k, $v);
+		}
+		if ($first)
+			$element->setValue($first);
+	}
+
+
+	protected function arePickupLocationsProvidedByComm() {
+		if ((!$user = Class_Users::getIdentity())
+				|| (!Class_Exemplaire::find($this->_getParam('id_origine'))))
+			return false;
+
+		return ($comm = $user->getSIGBComm()) ?
+			$comm->providesPickupLocations() : false;
+	}
+
+
 	public function setMoteurRecherche($moteur) {
 		$this->moteur = $moteur;
 	}
diff --git a/application/modules/opac/controllers/RssController.php b/application/modules/opac/controllers/RssController.php
index eac46ef9facda098f6aa80c32bde10cd7ad3de78..713f1ef9d7499ab8f0e206c3a9b25439fbe1a1a9 100644
--- a/application/modules/opac/controllers/RssController.php
+++ b/application/modules/opac/controllers/RssController.php
@@ -349,21 +349,20 @@ class RssController extends Zend_Controller_Action
 		} else {
 			$preferences = $profil->getModuleAccueilPreferences($id_module, 'KIOSQUE');
 			$preferences["aleatoire"] = 0; // les dernières seulement
-			$notices = Class_Catalogue::getLoader()->getNoticesByPreferences($preferences,"url");
+			$notices = Class_Catalogue::getNoticesByPreferences($preferences,"url");
 			$titre = $preferences['titre'];
 		}
 
 		$items = [];
 		foreach($notices as $notice) {
-			$items[] = [
-				'titre' => '<![CDATA[' . str_replace(BR, ' ', $notice["titre"]) . ', ' . $notice["auteur"] . ']]>' ,
-				'lien' => $this->view->absoluteUrl([
-					'controller' => 'recherche',
-					'action' => 'viewnotice',
-					'id' => $notice['id_notice'],
-				], null, true),
-				'desc' => '<![CDATA[' . $this->_noticeRssDescription($notice) . ']]>',
-				'pubDate' => strtotime($notice['date_maj']),
+			$items[] = ['titre' => '<![CDATA[' . str_replace(BR, ' ', $notice->getTitrePrincipal()) . ', ' . $notice->getAuteurPrincipal() . ']]>' ,
+									'lien' => $this->view->absoluteUrl([
+																											'controller' => 'recherche',
+																											'action' => 'viewnotice',
+																											'id' => $notice->getId(),
+																											], null, true),
+									'desc' => '<![CDATA[' . $this->_noticeRssDescription($notice) . ']]>',
+									'pubDate' => strtotime($notice->getDateMaj()),
 			];
 		}
 		$rss_array = [
@@ -381,11 +380,11 @@ class RssController extends Zend_Controller_Action
 
 
 	protected function _noticeRssDescription($notice) {
-		extract($notice);
-		$desc =<<<DESCRIPTION
-			<div>$titre ($auteur, $editeur, $annee)</div>
-      <img src='$vignette'>
-DESCRIPTION;
-		return $desc;
+		return sprintf('<div>%s (%s, %s, %s)</div><img src="%s">',
+									 $notice->getTitrePrincipal(),
+									 $notice->getAuteurPrincipal(),
+									 $notice->getEditeur(),
+									 $notice->getAnnee(),
+									 $this->view->absoluteUrl($notice->fetchUrlVignette()));
 	}
 }
diff --git a/application/modules/opac/controllers/SitoController.php b/application/modules/opac/controllers/SitoController.php
index c29a90ccd46a9f7a45da74a2b0c4243f45905979..6700be3445c74b537831b58e3cb73316cc7be1c8 100644
--- a/application/modules/opac/controllers/SitoController.php
+++ b/application/modules/opac/controllers/SitoController.php
@@ -81,14 +81,9 @@ class SitoController extends Zend_Controller_Action {
 		session_write_close();
 
 		$url = $this->_getParam('url');
-		$webThumbnail =  $this->view->getHelper('WebThumbnail');
-		$filename = $webThumbnail->fileNameFromUrl($url);
-		$filepath = $webThumbnail->fullPath($filename);
 
-		if (!$webThumbnail->getThumbnailer()->fetchUrlToFile($url, $filepath))
-			$this->_redirect('');
-
-		$this->_redirect($webThumbnail->fullUrl($filename));
+		$webThumbnail = new Class_WebService_WebSiteThumbnail();
+		$this->_redirect($webThumbnail->fetchFullUrl($url));
 	}
 
 }
diff --git a/application/modules/opac/views/scripts/java/cube.phtml b/application/modules/opac/views/scripts/java/cube.phtml
index fbf887f560d1343644d7bf1ff4befe95c825ba0c..d2b9fe041a1842e2afde1fbc69bc0b02e8a62444 100644
--- a/application/modules/opac/views/scripts/java/cube.phtml
+++ b/application/modules/opac/views/scripts/java/cube.phtml
@@ -1,29 +1,17 @@
-<style>#linksCube img { width: 100%; height: 100%; border:1px solid #B0BEC7}</style>
-<script src="<?php echo JQUERY ?>" type="text/javascript"> </script>
-<script type="text/javascript" src="<?php echo URL_JAVA ?>cube/jquery.imagecube.pack.js"></script>
-
-<center>
-<div id="linksCube" style="width: <?php echo $this->preferences["op_largeur_img"] ?>px; height: <?php echo $this->preferences["op_hauteur_img"] ?>px;margin-top:10px">
-
-<?php
-if(!$this->notices) echo '<p style="margin-left:10px;color:red;font-size:10pt">Aucun document n\'a été trouvé.</p>';
-else
-{
-	foreach($this->notices as $notice)
-	{
-		echo '<a href="'.$this->base_url.'/id/'.$notice["id_notice"].'" target="_parent">';
-		echo '<img src="'.$notice["vignette"].'" title="'.$notice["titre"].'">';
-		echo '</a>';
-	}
-}
-?>
-
-</div>
-</center>
-<script>
-$(function() {
-		$("#linksCube").imagecube({speed: 1000});
-	});
-
-</script>
-
+<?php
+Class_ScriptLoader::getInstance()
+->loadJQuery()
+->addOPACPluginScript('cube/jquery.imagecube.pack.js')
+->addJQueryReady('$(function() {$("#linksCube").imagecube({speed: 1000});});')
+->addInlineStyle('#linksCube img { width: 100%; height: 100%; border:1px solid #B0BEC7}
+#linksCube {width:' .$this->preferences["op_largeur_img"] .'px; height: ' . $this->preferences["op_hauteur_img"] . 'px;margin-top:10px}');
+
+$html = '';
+foreach($this->notices as $notice)
+	$html .= $this->tagAnchor($this->urlNotice($notice, $this->preferences, null, true),
+														$this->tagImg($this->absoluteUrl($notice->fetchUrlVignette()),
+																					['title' => $notice->getTitrePrincipal()]),
+														['target' => '_parent']);
+
+echo $this->tag('center',$this->tag('div', $html, ['id' => 'linksCube']));
+?>
diff --git a/application/modules/opac/views/scripts/java/diaporama.phtml b/application/modules/opac/views/scripts/java/diaporama.phtml
index 6b7e4ba82843ec2e83e4cb62ac453eabb24d4ad8..7d36b337394d72e38253cbdc07de3ebdc3f1edc2 100644
--- a/application/modules/opac/views/scripts/java/diaporama.phtml
+++ b/application/modules/opac/views/scripts/java/diaporama.phtml
@@ -1,32 +1,18 @@
-<style>
-	.slideshow { height:auto; width: 100%; margin: auto }
-	.slideshow img { padding: 0px; border: 1px solid #ccc; background-color: #eee; }
-</style>
-<script src="<?php echo JQUERY ?>" type="text/javascript"> </script>
-<script type="text/javascript" src="<?php echo URL_JAVA ?>diaporama/jquery.cycle.all.min.js"></script>
-<script type="text/javascript">
-$(document).ready(function() {
-    $('.slideshow').cycle({
-		fx: '<?php echo $this->preferences["op_transition"]?>',
-		pause: 1
-	});
-});
-</script>
-
-<center>
-
-<?php
-if(!$this->notices) echo '<p style="margin-left:10px;color:red;font-size:10pt">Aucun document n\'a été trouvé.</p>';
-else
-{
-	echo '<div class="slideshow">';
-	foreach($this->notices as $notice)
-	{
-		$onclick="window.parent.location='".$this->base_url.'/id/'.$notice["id_notice"]."';";
-		echo '<img src="'.$notice["vignette"].'" width="'.$this->preferences["op_largeur_img"].'" title="'.$notice["titre"].'" onclick="'.$onclick.'" style="cursor:pointer">';
-	}
-	echo '</div>';
-}
-?>
-
-</center>
+<?php
+Class_ScriptLoader::getInstance()
+->loadJQuery()
+->addOPACPluginScript('diaporama/jquery.cycle.all.min.js')
+->addJQueryReady('$(".slideshow").cycle({fx:\'' . $this->preferences["op_transition"] . '\', pause:1});')
+->addInlineStyle('.slideshow { height:auto; width: 100%; margin: auto }	.slideshow img { padding: 0px; border: 1px solid #ccc; background-color: #eee; }');
+
+$records_html = '';
+foreach($this->notices as $notice)	{
+	$onclick = "window.parent.location='". $this->urlNotice($notice, $this->preferences, null, true) . "';";
+	$records_html .= $this->tagImg($this->absoluteUrl($notice->fetchUrlVignette(true)),
+																 ['title' => $notice->getTitrePrincipal(),
+																	'onclick' => $onclick,
+																	'style' => 'cursor:pointer']);
+}
+
+echo $this->tag('center', $this->tag('div', $records_html, ['class' => 'slideshow']));
+?>
diff --git a/application/modules/opac/views/scripts/java/jcarousel.phtml b/application/modules/opac/views/scripts/java/jcarousel.phtml
index 0b707cd3fe22581fb634146515b4919aac24e7f9..3c4105e9c45c3b2a6789fd8fc29144f296295872 100644
--- a/application/modules/opac/views/scripts/java/jcarousel.phtml
+++ b/application/modules/opac/views/scripts/java/jcarousel.phtml
@@ -14,6 +14,9 @@ Class_ScriptLoader::getInstance()
 		height:' . ($this->preferences["op_hauteur_img"]+5) . 'px;
 		margin-left:3px;
 	}
+	#mycarousel img {
+		border:1px solid #B0BEC7;
+	}
 ')
 ->addInlineScript('
 function mycarousel_initCallback(carousel) {
@@ -43,24 +46,21 @@ function mycarousel_initCallback(carousel) {
 	});
 ');
 
-?>
 
-<center>
-<?php if(!$this->notices) { ?>
-	<p style="margin-left:10px;color:red;font-size:10pt">Aucun document n'a été trouvé.</p>
-<?php }	else { ?>
-<ul id="mycarousel" class="jcarousel-skin-tango">
-	<?php foreach($this->notices as $notice) { ?>
-		<li>
-			<a href="<?php echo $this->base_url.'/id/'.$notice["id_notice"];?>" target="_parent">
-				<img src="<?php echo $notice["vignette"];?>" 
-						 title="<?php echo $notice["titre"];?>" 
-						 width="<?php echo $this->preferences["op_largeur_img"];?>" 
-						 height="<?php echo $this->preferences["op_hauteur_img"];?>" 
-						 style="border:1px solid #B0BEC7" />
-			</a>
-		</li>
-	<?php } ?>
-	</ul>
-<?php } ?>
-</center>
+$lis = '';
+foreach($this->notices as $notice) {
+	$img = $this->tagImg($this->absoluteUrl($notice->fetchUrlVignette()),
+											 ['title' => $notice->getTitrePrincipal(),
+												'width' => $this->preferences["op_largeur_img"],
+												'height' => $this->preferences["op_hauteur_img"]]);
+
+	$lis .= $this->tag('li',$this->tagAnchor($this->urlNotice($notice, $this->preferences, null, true),
+																					 $img,
+																					 ['target' => '_parent']));
+}
+
+echo $this->tag('center',$this->tag('ul',
+																		$lis,
+																		['class' => 'jcarousel-skin-tango',
+																		 'id' => 'mycarousel']));
+?>
diff --git a/application/modules/opac/views/scripts/java/mycarousel_horizontal.phtml b/application/modules/opac/views/scripts/java/mycarousel_horizontal.phtml
index 096fb979b278ec2c9548d1943b4f3c9f30736119..9427acee25ce66e6aabeb3be0980236e6046e15f 100644
--- a/application/modules/opac/views/scripts/java/mycarousel_horizontal.phtml
+++ b/application/modules/opac/views/scripts/java/mycarousel_horizontal.phtml
@@ -1,37 +1,16 @@
-<link rel="stylesheet" type="text/css" href="<?php echo URL_JAVA ?>mycarousel_horizontal/carousel.css" />
-
-<script src="<?php echo JQUERY ?>" type="text/javascript"> </script>
-<script type="text/javascript" src="<?php echo URL_JAVA ?>mycarousel_horizontal/jMyCarousel.pack.js"></script>
-<script type="text/javascript">
-		$(function() {
-		    $(".jMyCarousel").jMyCarousel({
-		        visible: '100%',
-		        auto : false,
-						evtStart: 'mousedown',
-						evtStop: 'mouseup',
-		        speed : <?php echo $this->preferences["op_speed"]?>
-		    });
-		});
-	</script>
-<center>
-
 <?php
-if(!$this->notices) echo '<p style="margin-left:10px;color:red;font-size:10pt">Aucun document n\'a été trouvé.</p>';
-else
-{
-	echo '<div class="jMyCarousel">';
-	echo '<ul>';
-	foreach($this->notices as $notice)
-	{
-		echo '<li>';
-		echo '<a href="'.$this->base_url.'/id/'.$notice["id_notice"].'" target="_parent">';
-		echo '<img src="'.$notice["vignette"].'" width="'.$this->preferences["op_largeur_img"].'" height="'.$this->preferences["op_hauteur_img"].'" title="'.$notice["titre"].'">';
-		echo '</a>';
-		echo '</li>';
-	}
-	echo '</ul>';
-	echo '</div>';
-}
-?>
+Class_ScriptLoader::getInstance()
+->loadJQuery()
+->addOPACPluginStyleSheet('mycarousel_horizontal/carousel.css')
+->addOPACPluginScript('mycarousel_horizontal/jMyCarousel.pack.js')
+->addJqueryReady('
+$(".jMyCarousel").jMyCarousel({
+		        visible: "100%",
+		        auto: false,
+						evtStart: "mousedown",
+						evtStop: "mouseup",
+		        speed: '. $this->preferences["op_speed"] . '});');
 
-</center>
+echo $this->partial('java/mycarousel_partial.phtml', ['records' => $this->notices,
+																											'preferences' => $this->preferences]);
+?>
diff --git a/application/modules/opac/views/scripts/java/mycarousel_partial.phtml b/application/modules/opac/views/scripts/java/mycarousel_partial.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..211f1abc4c6260d966130d97250ea5976cc04a73
--- /dev/null
+++ b/application/modules/opac/views/scripts/java/mycarousel_partial.phtml
@@ -0,0 +1,16 @@
+<?php
+$lis = '';
+foreach($this->records as $record) {
+	$img = $this->tagImg($this->absoluteUrl($record->fetchUrlVignette()),
+											 ['title' => $record->getTitrePrincipal(),
+												'width' => $this->preferences["op_largeur_img"],
+												'height' => $this->preferences["op_hauteur_img"]]);
+
+	$lis .= $this->tag('li',$this->tagAnchor($this->urlNotice($record, $this->preferences, null, true),
+																					 $img,
+																					 ['target' => '_parent']));
+}
+
+$ul = $this->tag('ul', $lis);
+echo $this->tag('center',$this->tag('div', $ul, ['class' => 'jMyCarousel']));
+?>
diff --git a/application/modules/opac/views/scripts/java/mycarousel_vertical.phtml b/application/modules/opac/views/scripts/java/mycarousel_vertical.phtml
index 3efd9021ee1839165ca8c2d8c453617376888c69..ed70a5a0a40f59a7559d864f4c32e441b546f529 100644
--- a/application/modules/opac/views/scripts/java/mycarousel_vertical.phtml
+++ b/application/modules/opac/views/scripts/java/mycarousel_vertical.phtml
@@ -1,38 +1,17 @@
-<link rel="stylesheet" type="text/css" href="<?php echo URL_JAVA ?>mycarousel_vertical/carousel.css" />
-
-<script src="<?php echo JQUERY ?>" type="text/javascript"> </script>
-<script type="text/javascript" src="<?php echo URL_JAVA ?>mycarousel_vertical/jMyCarousel.pack.js"></script>
-<script type="text/javascript">
-		$(function() {
+<?php
+Class_ScriptLoader::getInstance()
+->loadJQuery()
+->addOPACPluginStyleSheet('mycarousel_vertical/carousel.css')
+->addOPACPluginScript('mycarousel_vertical/jMyCarousel.pack.js')
+->addJqueryReady('
 		    $(".jMyCarousel").jMyCarousel({
-		        visible: '<?php echo $this->preferences["op_visible"]?>',
+		        visible: ' .$this->preferences["op_visible"] . ',
 		        auto: false,
 						vertical: true,
-						evtStart: 'mousedown',
-						evtStop: 'mouseup',
-		        speed : <?php echo $this->preferences["op_speed"]?>
-		    });
-		});
-	</script>
-<center>
+						evtStart: "mousedown",
+						evtStop: "mouseup",
+		        speed : ' . $this->preferences["op_speed"] . '});');
 
-<?php
-if(!$this->notices) echo '<p style="margin-left:10px;color:red;font-size:10pt">'.$this->_("Aucun document n'a été trouvé").'</p>';
-else
-{
-	echo '<div class="jMyCarousel">';
-	echo '<ul>';
-	foreach($this->notices as $notice)
-	{
-		echo '<li>';
-		echo '<a href="'.$this->base_url.'/id/'.$notice["id_notice"].'" target="_parent">';
-		echo '<img src="'.$notice["vignette"].'" width="'.$this->preferences["op_largeur_img"].'" height="'.$this->preferences["op_hauteur_img"].'" title="'.$notice["titre"].'">';
-		echo '</a>';
-		echo '</li>';
-	}
-	echo '</ul>';
-	echo '</div>';
-}
+echo $this->partial('java/mycarousel_partial.phtml', ['records' => $this->notices,
+																								'preferences' => $this->preferences]);
 ?>
-
-</center>
diff --git a/application/modules/opac/views/scripts/java/protoflow.phtml b/application/modules/opac/views/scripts/java/protoflow.phtml
index 18e2925fb5f05cd6481a009a123b01596c5f7859..e4b01ac85158c44471b660fb584782edcd8f6459 100644
--- a/application/modules/opac/views/scripts/java/protoflow.phtml
+++ b/application/modules/opac/views/scripts/java/protoflow.phtml
@@ -1,33 +1,29 @@
-<link rel="stylesheet" href="<?php echo URL_JAVA ?>protoflow/protoFlow.css" type="text/css"/>
-<script src="<?php echo URL_JAVA ?>protoflow/prototype.js" type="text/javascript"></script>
-<script src="<?php echo URL_JAVA ?>protoflow/scriptaculous.js" type="text/javascript"></script>
-<script src="<?php echo URL_JAVA ?>protoflow/reflection.js" type="text/javascript"></script>
-<script src="<?php echo URL_JAVA ?>protoflow/protoFlow.js" type="text/javascript"></script>
-<script language="Javascript">
-	Event.observe(window, 'load', function() {
-	cf = new ProtoFlow($("protoflow"), {
-					captions: <?php echo $this->preferences["op_captions"]?>,
-					useReflection: true,
-					autoplay: <?php echo $this->preferences["op_autoplay"]?>,
-					enableOnClickScroll: false
-				});
-			});
-</script>
-
-<div id="protoflow" style="height:350px;width:100%">
-
-<?php
-if(!$this->notices) echo '<p style="margin-left:10px;color:red;font-size:10pt">'.$this->_("Aucun document n'a été trouvé").'</p>';
-else
-{
-	foreach($this->notices as $notice)
-	{
-		echo '<a href="'.$this->base_url.'/id/'.$notice["id_notice"].'" target="_parent">';
-		echo '<img border="0" width="'.$this->preferences["op_largeur_img"].'" height="'.$this->preferences["op_hauteur_img"].'" src="'.$notice["vignette"].'" alt="'.$notice["titre"].'">';
-		echo '</a>';
-	}
-}
-?>
-
-</div>
-
+<?php
+Class_ScriptLoader::getInstance()
+->addOPACPluginStyleSheet('protoflow/protoFlow.css')
+->addOPACPluginScript('protoflow/prototype.js')
+->addOPACPluginScript('protoflow/scriptaculous.js')
+->addOPACPluginScript('protoflow/reflection.js')
+->addOPACPluginScript('protoflow/protoFlow.js')
+->addInlineScript('Event.observe(window, "load", function() {cf = new ProtoFlow($("protoflow"), {captions:' . $this->preferences["op_captions"] . ',useReflection:true,autoplay:' . $this->preferences["op_autoplay"] . ',enableOnClickScroll:false});});')
+->addInlineStyle('
+	#protoflow {
+		height:350px;
+		width:100%;
+	}
+');
+
+$anchors = '';
+foreach($this->notices as $notice)	{
+	$img = $this->tagImg($this->absoluteUrl($notice->fetchUrlVignette()),
+											 ['border' => '0',
+												'width' => $this->preferences['op_largeur_img'],
+												'height' => $this->preferences['op_hauteur_img'],
+												'alt' => $notice->getTitrePrincipal()]);
+	$anchors .= $this->tagAnchor($this->urlNotice($notice, $this->preferences, null, true),
+															 $img,
+															 ['target' => '_parent']);
+}
+
+echo $this->tag('div', $anchors, ['id' => 'protoflow']);
+?>
diff --git a/application/modules/opac/views/scripts/java/slide_show.phtml b/application/modules/opac/views/scripts/java/slide_show.phtml
index 121732507948e29cf2d03d39f91cdaaf6ace83e3..d45caeec99469bd7f123a758d9c1470d8ce1ccc6 100644
--- a/application/modules/opac/views/scripts/java/slide_show.phtml
+++ b/application/modules/opac/views/scripts/java/slide_show.phtml
@@ -1,31 +1,35 @@
-<link rel="stylesheet" href="<?php echo URL_JAVA?>slide_show/image-slideshow.css" type="text/css">
-<script src="<?php echo URL_JAVA; ?>slide_show/image-slideshow.js" type="text/javascript"> </script>
-
-<?php
-// Proprietes
-$largeur=$this->preferences["op_largeur_img"];
-$hauteur=$this->preferences["op_hauteur_img"];
-if(!$largeur) $largeur=90;
-if(!$hauteur) $hauteur=110;
-
-if(!$this->notices) 
-	$images='<p style="margin-left:10px;color:red;font-size:10pt">'.$this->_("Aucun document n'a été trouvé").'</p>';
-else {
-	$images = '';
-	foreach($this->notices as $notice){
-		$img='<img alt="vignette notice'.$notice["titre"].'" src="'.$notice["vignette"].'" width="'.$largeur.'" height="'.$hauteur.'" style="float:left;" alt="'.$notice["titre"].'" title="'.$notice["titre"].'"/>';
-		$images.= '<a href="'.$this->base_url.'/id/'.$notice["id_notice"].'" target="_parent">'.$img.'</a> ';		
-	}
-}
-?>
-
-<div id="dhtmlgoodies_slideshow" style="width:100%;">
-	<div id="galleryContainer" style="height:<?php echo $hauteur+2 ?>px;overflow:hidden;padding:1px;position:relative;">
-		<div id="arrow_left"><img alt='<?php echo $this->_('défilement à gauche') ?>' src="<?php echo URL_JAVA ?>slide_show/arrow_left.gif" height="<?php echo $hauteur ?>" style="cursor:pointer;"></div>
-		<div id="arrow_right"><img alt='<?php echo $this->_('défilement à droite') ?>' src="<?php echo URL_JAVA ?>slide_show/arrow_right.gif" height="<?php echo $hauteur ?>" style="cursor:pointer;"></div>
-		<div id="theImages"> <?php echo $images ?>
-			<div id="slideEnd"></div>
-		</div>
-	</div>
-</div>
-
+<?php
+Class_ScriptLoader::getInstance()
+->loadJQuery()
+->addOPACPluginStyleSheet('slide_show/image-slideshow.css')
+->addOPACPluginScript('slide_show/image-slideshow.js')
+->addInlineStyle('#theImages img {float: left}');
+
+// Proprietes
+$largeur=$this->preferences["op_largeur_img"];
+$hauteur=$this->preferences["op_hauteur_img"];
+if(!$largeur) $largeur=90;
+if(!$hauteur) $hauteur=110;
+
+$images = '';
+foreach($this->notices as $notice){
+	$images .= $this->tagAnchor($this->urlNotice($notice, $this->preferences, null, true),
+															$this->tagImg($this->absoluteUrl($notice->fetchUrlVignette()),
+																						['alt' => $this->_('vignette notice') . ' ' . $notice->getTitrePrincipal(),
+																						 'title' => $notice->getTitrePrincipal(),
+																						 'width'  => $largeur,
+																						 'height' => $hauteur]),
+															['target' => '_parent']);
+}
+
+?>
+
+<div id="dhtmlgoodies_slideshow" style="width:100%;">
+	<div id="galleryContainer" style="height:<?php echo $hauteur+2 ?>px;overflow:hidden;padding:1px;position:relative;">
+		<div id="arrow_left"><img alt='<?php echo $this->_('défilement à gauche') ?>' src="<?php echo URL_JAVA ?>slide_show/arrow_left.gif" height="<?php echo $hauteur ?>" style="cursor:pointer;"></div>
+		<div id="arrow_right"><img alt='<?php echo $this->_('défilement à droite') ?>' src="<?php echo URL_JAVA ?>slide_show/arrow_right.gif" height="<?php echo $hauteur ?>" style="cursor:pointer;"></div>
+		<div id="theImages"> <?php echo $images ?>
+			<div id="slideEnd"></div>
+		</div>
+	</div>
+</div>
diff --git a/application/modules/opac/views/scripts/modules/mycow-sso.phtml b/application/modules/opac/views/scripts/modules/mycow-sso.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..b9696b5bcb83de1a09449dc7ac60d5a9ec9d37c9
--- /dev/null
+++ b/application/modules/opac/views/scripts/modules/mycow-sso.phtml
@@ -0,0 +1,15 @@
+<?php
+Class_ScriptLoader::getInstance()->addJQueryReady("$('#mycow_form').submit();");
+$eid = $this->tag('input', '', ['type' => 'hidden',
+																'name' => 'eid',
+																'value' => $this->eid]);
+
+$uid = $this->tag('input', '', ['type' => 'hidden',
+																'name' => 'uid',
+																'value' => $this->uid]);
+
+echo $this->tag('form', $eid . $uid, ['action' => Class_Systeme_ModulesMenu_MyCow::MYCOW_URL,
+																			'method' => 'POST',
+																			'id' => 'mycow_form']);
+
+?>
diff --git a/application/modules/opac/views/scripts/recherche/viewnotice.phtml b/application/modules/opac/views/scripts/recherche/viewnotice.phtml
index 847c2f9b5f0ebbd68d40cd6a4cc975d624999b46..48fd740d8ad7696a0386536c3fbdd2b110000ec6 100644
--- a/application/modules/opac/views/scripts/recherche/viewnotice.phtml
+++ b/application/modules/opac/views/scripts/recherche/viewnotice.phtml
@@ -4,6 +4,7 @@ $this->openBoite($this->title);
 $script_loader = Class_ScriptLoader::getInstance()
 	   ->addStyleSheet(URL_ADMIN_JS.'slimbox/slimbox2')
 	   ->addAdminScript('slimbox/slimbox2.min.js')
+		 ->addAdminScript('multi_inputs/multi_inputs.js')
 
 	   ->addStyleSheet(URL_ADMIN_JS.'rating/jquery.rating')
 	   ->addAdminScript('rating/jquery.rating.pack')
diff --git a/application/modules/push/controllers/MultimediaController.php b/application/modules/push/controllers/MultimediaController.php
index d5dc7eaac1f0c3b09e8fe648f94c24f49c9fac75..469deccfcd405358cbb63d284fc4548758da720b 100644
--- a/application/modules/push/controllers/MultimediaController.php
+++ b/application/modules/push/controllers/MultimediaController.php
@@ -16,14 +16,14 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class Push_MultimediaController extends Zend_Controller_Action {
 	public function configAction() {
 		$multimedia = Class_Multimedia::getInstance();
 		$log = $multimedia->getLog();
 		$log->info('Push multimedia start');
-		
+
 		$this->_helper->getHelper('viewRenderer')->setNoRender();
 
 		if (null == ($json = $this->_getParam('json'))) {
@@ -35,12 +35,12 @@ class Push_MultimediaController extends Zend_Controller_Action {
 			$log->err('Missing sign parameter');
 			return;
 		}
-	 
+
 		if (!($groups = json_decode($json))) {
 			$log->err('Invalid json');
 			return;
 		}
-		
+
 		if (!$multimedia->isValidHash($sign, $this->_getParam('json'))) {
 			$log->err('Sign check failure');
 			return;
@@ -48,6 +48,7 @@ class Push_MultimediaController extends Zend_Controller_Action {
 
 		$id_origine_postes = $this->createAllDevicesFromGroups($groups);
 		$this->deleteAllPostesFromSiteWithoutIdOrigine($groups[0]->site->id, $id_origine_postes);
+		$this->deleteAllGpPosteWithoutPoste ();
 	}
 
 
@@ -68,16 +69,18 @@ class Push_MultimediaController extends Zend_Controller_Action {
 
 
 	public function deleteAllPostesFromSiteWithoutIdOrigine($id_site, $id_origine_postes) {
-		$postes_to_delete = Class_Multimedia_Device::findAllBy(['where' => sprintf('id_origine not in(%s) and id_origine like \'%s-%%\'',
-																																							 implode(',', array_map(function($id){return '\''.$id.'\'';},
-																																																			$id_origine_postes)),
-																																							 $id_site)]);
-		foreach($postes_to_delete as $poste)
-			$poste->delete();
+		Class_Multimedia_Device::deleteBy(['id_origine not' => $id_origine_postes]);
 	}
 
-	
-		
+
+	public function deleteAllGpPosteWithoutPoste(){
+		$listGposte = Class_Multimedia_DeviceGroup::findAll();
+		forEach($listGposte as $gPoste){
+			if(!$gPoste->hasDevices()) $gPoste->delete();
+		}
+	}
+
+
 	public function getAllBorrowersAction() {
 		$this->getHelper('ViewRenderer')->setNoRender();
 
@@ -89,5 +92,36 @@ class Push_MultimediaController extends Zend_Controller_Action {
 			Class_Multimedia_PushAllUsersRequest::newWith($connector)
 			->getResponse($this->_request));
 	}
+
+
+	public function createBorrowerAction() {
+		$multimedia = Class_Multimedia::getInstance();
+		$log = $multimedia->getLog();
+		$log->info('Create borrower multimedia start');
+
+		$this->_helper->getHelper('viewRenderer')->setNoRender();
+
+		if (null == ($json = $this->_getParam('json'))) {
+			$log->err('Missing json parameter');
+			return;
+		}
+
+		if (null == ($sign = $this->_getParam('sign'))) {
+			$log->err('Missing sign parameter');
+			return;
+		}
+
+		if (!($infoUser = json_decode($json))) {
+			$log->err('Invalid json');
+			return;
+		}
+
+		if (!$multimedia->isValidHash($sign, $this->_getParam('json'))) {
+			$log->err('Sign check failure');
+			return;
+		}
+
+		$this->_response->setBody(Class_Multimedia_Users::getInstance()->createUser($infoUser));
+	}
 }
 ?>
\ No newline at end of file
diff --git a/config.ini.default b/config.ini.default
index 91de3a93cd881baec3055ac350204e318cd11543..36af8da0a0a9e4a8c8486d781178bc1734e1c660 100644
--- a/config.ini.default
+++ b/config.ini.default
@@ -1,29 +1,24 @@
 [global]
-sgbd.adapter = mysqli
-superuser.user = admin
-superuser.pwd = admin
-console.user = console
-console.pwd = console
 timeZone = Europe/Paris
-langue = fr_FR
-mail.transport.smtp.host = 
+
+; SMTP
+; mail.transport.smtp.host =
+
+; Used by global http client
 proxy.host = 
 proxy.port = 
 proxy.user = 
-proxy.pass = 
+proxy.pass =
+
+; SGBD
+sgbd.adapter = mysqli
 sgbd.config.host = localhost
 sgbd.config.port = 3306
 sgbd.config.username =
 sgbd.config.password = 
-sgbd.config.dbname = 
-key_google = 
-id_amazon = 
-debug.level = 0
-debug.debug = no
-debug.ip =
-debug.port =
-debug.file =
-caching = 1
+sgbd.config.dbname =
+
+; Advanced
 amber.deploy = 0
 experimental_dev = true
 
diff --git a/cosmogramme/php/_init.php b/cosmogramme/php/_init.php
index ab235f99dd25229a1b91a67126caec4ab244ec7c..6fd16e323e0bc358b67aa55c9ef1f3b000b19706 100644
--- a/cosmogramme/php/_init.php
+++ b/cosmogramme/php/_init.php
@@ -2,7 +2,7 @@
 // Constantes
 error_reporting(E_ERROR | E_PARSE);
 
-define("PATCH_LEVEL","234");
+define("PATCH_LEVEL","241");
 
 define("APPLI","cosmogramme");
 define("COSMOPATH", "/var/www/html/vhosts/opac2/www/htdocs");
diff --git a/cosmogramme/php/integration/domaines.php b/cosmogramme/php/integration/domaines.php
index 45dedf8405f91ae67e7142f9bcefbb2ef9509668..55924a8f0b5a86092d5c77083cbb5c430ad500c0 100644
--- a/cosmogramme/php/integration/domaines.php
+++ b/cosmogramme/php/integration/domaines.php
@@ -53,14 +53,18 @@ if ($phase==15) {
 		$phase_data["pointeur"]=0;
 	}
 
-	$log->ecrire('<h4>Indexation des paniers dans les domaines</h4>');
-	Class_PanierNotice::indexAll();
+	if ($mode_cron) {
+		$log->ecrire('<h4>Indexation des paniers dans les domaines</h4>');
+		Class_PanierNotice::indexAll();
 
-	$log->ecrire("<h4>Indexation des articles dans les domaines</h4>");
-	Class_Article::indexAll();
+		$log->ecrire("<h4>Indexation des articles dans les domaines</h4>");
+		Class_Article::indexAll();
 
-	$log->ecrire("<h4>Indexation des sitothèques dans les domaines</h4>");
-	Class_Sitotheque::indexAll();
+		$log->ecrire("<h4>Indexation des sitothèques dans les domaines</h4>");
+		Class_Sitotheque::indexAll();
+	} else {
+		$log->ecrire("<h4>Les indexations des paniers, articles et sitothèques dans les domaines ne sont traitées qu'en mode cron</h4>");
+	}
 }
 
 ?>
diff --git a/cosmogramme/php/integration/reservations.php b/cosmogramme/php/integration/reservations.php
index eeacd090b1dcc35774094cea96a3961097d2982f..c1c0b2f704285053d6ae5991506f5b7fec739440 100644
--- a/cosmogramme/php/integration/reservations.php
+++ b/cosmogramme/php/integration/reservations.php
@@ -1,4 +1,4 @@
-<?PHP
+<?php
 /**
  * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
  *
@@ -16,115 +16,29 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-/////////////////////////////////////////////////////////////////////////
-// INTEGRATION DES RESERVATIONS
-/////////////////////////////////////////////////////////////////////////
-require_once("classe_transaction.php");
-$transac=new transaction();
-$bib=new bibliotheque();
 
-setVariable("traitement_phase","Intégration des fichiers de réservations");
-if($phase==12)
-{
-	$log->ecrire("<h4>Intégration des fichiers de réservations</h4>");
-	unset($phase_data);
-	$reprise=false;
-	$phase_data["nombre"]=0;
-	$phase_data["nb_fic"]=0;
-	$phase_data["timeStart"]=time();
-	$phase_data["pointeur"]="";
-	$phase = 13;
-}
-if($phase == 13)
-{
-	if(!$mode_cron and $phase_data["nombre"]>0) print("<h4>Intégration des fichiers de réservations</h4>");
-	$resultat=$sql->prepareListe("select * from integrations Where traite='non' Order by id");
-	while($ligne=$sql->fetchNext($resultat))
-	{
-		extract($ligne);
-		$format=$sql->fetchOne("select format from profil_donnees where id_profil=$profil");
-		$type_fichier=$sql->fetchOne("select type_fichier from profil_donnees where id_profil=$profil");
-		if($type_fichier != 3 ) continue; // Si autre que réservations on passe
-		$nom_bib=$bib->getNomCourt($id_bib);
-		$libelle_type_operation=getLibCodifVariable("import_type_operation",$type_operation);
-		$trace='<b><span class="vert">'.$nom_bib." (".$libelle_type_operation.")</b></span><br>";
-		$trace.='<span class="bib">Fichier : '.$fichier."</span><br>";
-		$trace.='<span class="bib">Profil : '.$sql->fetchOne("select libelle from profil_donnees where id_profil=$profil").'</span><br>';
-		$trace.='<span class="bib">Format : '.getLibCodifVariable("import_format",$format).'</span><br>';
-		if(!$pointeur_reprise) $log->ecrire($trace); else print($trace.BR);
+// collect state from global scope
+$current_chrono = Class_Cosmogramme_Integration_Chronometre::fromLegacyState($chrono,
+																																						 $chrono_fichier,
+																																						 $chrono100notices);
+$current_phase = Class_Cosmogramme_Integration_Phase::fromLegacyState($phase,
+																																			$phase_data,
+																																			$mode_cron,
+																																			$reprise);
 
-		// Delete si export total
-		if($type_operation == 2 and !$phase_data["pointeur"])
-		{
-			$sql->execute("delete from reservations where ID_SITE=$id_bib");
-		}
-	
-		// Traitement d'un fichier
-		$transac->setParamsIntegration($id_bib,$type_operation,$profil);
-		if($reprise) $reprise=false;
-		else
-		{
-			unset($phase_data);
-			$phase_data["nb_erreurs"]=0;
-			$phase_data["nb_warnings"]=0;
-			$phase_data["nombre"]=0;
-			$chrono100notices->start();
-			$chrono_fichier->start();
-		}
-		if( false == $parseur->open( $integration_path . $fichier,$format,$phase_data["pointeur"]) )
-		{
-			incrementeVariable("traitement_erreurs");
-			$log->ecrire('<span class="rouge">Impossible d\'ouvrir le fichier : '. $fichier .'</span><br>');
-			continue;
-		}
+// run phase
+$phase_reservation = new Class_Cosmogramme_Integration_PhaseReservation($current_phase,
+																																				$log,
+																																				$current_chrono);
+$new_phase = $phase_reservation->run();
 
-		// Parser les enregs
-		while(true)
-		{
-			if(!$mode_cron and $chrono->tempsPasse() > $timeout) sauveContexte();
-			$ret=$parseur->nextEnreg();
-			if($ret["statut"]=="erreur")
-			{
-				incrementeVariable("traitement_erreurs");
-				$log->ecrire('<span class="rouge">'.$ret["erreur"].'</span><br>');
-				if($phase_data["nombre"] > 0) $msg= $phase_data["nombre"] . " fiches ont pu être traitées."; else $msg="aucune fiche n'a pu être traitée.";
-				$log->ecrire('<span class="vert">'.$msg.'</span>');
-				break;
-			}
-			if($ret["statut"]=="eof")
-			{
-				if($phase_data["nombre"] == 0 ) $msg="Le fichier ne contenait aucune fiche";
-				else
-				{
-					$log->ecrire(BR.'<span class="vert">'.$phase_data["nombre"].' fiches ont été traitées.</span>');
-					$msg="temps de traitement ".$chrono_fichier->end($phase_data["timeStart"])." (".$chrono_fichier->moyenne($phase_data["nombre"],"fiches").")";
-				}
-				$log->ecrire(BR.'<span class="vert">'.$msg.'</span><br>');
-				break;
-			}
-			if($ret["statut"]=="ok")
-			{
-				if(substr($ret["data"],0,13)=='BIB_T_RESERVE') continue; // Entete pergame
-				$transac->importFicheReservation($ret["data"]);
-				$phase_data["nombre"]++;
-				traceTraitementTransaction();
-				$ptr=$ret["pointeur_reprise"];
-				$phase_data["pointeur"]=$ptr;
-				$sql->execute("Update integrations set pointeur_reprise = $ptr Where id = ". $ligne["id"]);
-			}
-		}
 
-		// Maj base
-		$date=dateDuJour(0);
-		$sql->execute("update integrations Set traite='$date', pointeur_reprise=".$phase_data["nombre"]." Where id = " .$ligne["id"]);
-		$phase_data["nb_fic"]++;
-	}
-	$phase_data["pointeur"]=0;
-	if($phase_data["nb_fic"]> 0) $msg=$phase_data["nb_fic"]. " fichier(s) traité(s).";
-	else $msg="aucun fichier traité";
-	$log->ecrire(BR.'<span class="violet">'.$msg.'</span><br>');
-}
+// reinject state into global scope
+$current_chrono->backToLegacyState($chrono, $chrono_fichier, $chrono100notices);
+$new_phase->backToLegacyState($phase, $phase_data, $mode_cron, $reprise);
 
-?>
+
+if (!$mode_cron && $phase_reservation->isTimeOut())
+	sauveContexte();
diff --git a/cosmogramme/sql/patch/patch_233.php b/cosmogramme/sql/patch/patch_233.php
index 2af5f2bb4a39a749d4d841b8468715d848fc6417..39e397625054af8bbc2052d3eead3678b29cc52c 100644
--- a/cosmogramme/sql/patch/patch_233.php
+++ b/cosmogramme/sql/patch/patch_233.php
@@ -9,4 +9,4 @@ $adapter->query('CREATE TABLE `user_group_permission` ( id INT(11) unsigned NOT
 $adapter->query("UPDATE  `user_group_categorie` SET `libelle` =  'Général' WHERE  `user_group_categorie`.`libelle` =  'Catégorie par défaut' LIMIT 1;");
 
 $adapter->query("ALTER TABLE `user_groups` add column `id_bib` INT(11) NOT NULL DEFAULT '0', add key `id_bib` (`id_bib`);");
-?>
\ No newline at end of file
+?>
diff --git a/cosmogramme/sql/patch/patch_235.php b/cosmogramme/sql/patch/patch_235.php
new file mode 100644
index 0000000000000000000000000000000000000000..3bd506bd755cfc6b7de46c7115f88717e578de4d
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_235.php
@@ -0,0 +1,4 @@
+<?php
+$adapter = Zend_Db_Table::getDefaultAdapter();
+$adapter->query('alter table multimedia_location add column `autohold_for_closing_days` tinyint(3) unsigned DEFAULT "0"');
+?>
diff --git a/cosmogramme/sql/patch/patch_236.php b/cosmogramme/sql/patch/patch_236.php
new file mode 100644
index 0000000000000000000000000000000000000000..4d4aceb1c359bb091adca4d86496d9f8a896b53c
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_236.php
@@ -0,0 +1,8 @@
+<?php
+
+$adapter = Zend_Db_Table_Abstract::getDefaultAdapter();
+$adapter->query("ALTER TABLE album MODIFY genre varchar(100) NULL default ''");
+$adapter->query("ALTER TABLE album MODIFY matiere varchar(100) NULL default ''");
+$adapter->query("ALTER TABLE album MODIFY nature_doc varchar(50) NULL default ''");
+$adapter->query("ALTER TABLE album MODIFY dewey varchar(100) NULL default ''");
+$adapter->query("ALTER TABLE album MODIFY tags text NULL default ''");
diff --git a/cosmogramme/sql/patch/patch_237.php b/cosmogramme/sql/patch/patch_237.php
new file mode 100644
index 0000000000000000000000000000000000000000..13abd10da5f15eb86c8f3c767a6fde40678be851
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_237.php
@@ -0,0 +1,4 @@
+<?php
+
+$adapter = Zend_Db_Table_Abstract::getDefaultAdapter();
+$adapter->query("ALTER TABLE album ADD status tinyint(1) unsigned DEFAULT NULL");
diff --git a/cosmogramme/sql/patch/patch_238.php b/cosmogramme/sql/patch/patch_238.php
new file mode 100644
index 0000000000000000000000000000000000000000..4c7f342d7c880cffb5283a748b4c459669a160dc
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_238.php
@@ -0,0 +1,14 @@
+<?php
+
+$page_size = 1000;
+$page = 1;
+
+while ($albums = Class_Album::findAllBy(['order' => 'id',
+																				 'limitPage' => [$page, $page_size]])) {
+	foreach ($albums as $album)
+		$album->setStatus(Class_Album::STATUS_VALIDATED)->save();
+
+	Class_Album::clearCache();
+
+	$page++;
+}
diff --git a/cosmogramme/sql/patch/patch_239.php b/cosmogramme/sql/patch/patch_239.php
new file mode 100644
index 0000000000000000000000000000000000000000..69e32aab073cd84083322b1297ddc97cd2d0d76c
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_239.php
@@ -0,0 +1,9 @@
+<?php
+$adapter = Zend_Registry::get('sql');
+$adapter->query('CREATE TABLE `harvest_log` ( '
+								. 'id int(11) unsigned not null auto_increment,'
+								. '`type_doc` int(11) not null,'
+								. '`end_date` varchar(10) not null,'
+								. 'primary key (id)'
+								. ') engine=MyISAM default charset=utf8');
+?>
diff --git a/cosmogramme/sql/patch/patch_240.php b/cosmogramme/sql/patch/patch_240.php
new file mode 100644
index 0000000000000000000000000000000000000000..a96601ff87eeb03fe2e8a41ff223b5aed3fa829b
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_240.php
@@ -0,0 +1,18 @@
+<?php
+$page_size = 1000;
+$page = 1;
+
+while ($dewey = Class_CodifDewey::findAllBy(['order' => 'id_dewey',
+																						 'limitPage' => [$page, $page_size]])) {
+	foreach ($dewey as $d) {
+		$libelle = $d->getLibelle();
+
+		if (preg_match('/ç/', $libelle)) {
+			$libelle = preg_replace('/ç/', 'ç', $libelle);
+			$d->setLibelle($libelle)->save();
+		}
+	}
+
+	Class_CodifDewey::clearCache();
+	$page++;
+}
\ No newline at end of file
diff --git a/cosmogramme/sql/patch/patch_241.php b/cosmogramme/sql/patch/patch_241.php
new file mode 100644
index 0000000000000000000000000000000000000000..19470edc574429997c9ca3e43fe0fc52307d2fd2
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_241.php
@@ -0,0 +1,10 @@
+<?php
+Zend_Registry::get('sql')->query('CREATE TABLE `album_usage_constraints` ( '
+								. 'id int(11) unsigned not null auto_increment,'
+								. 'album_id int(11) unsigned not null,'
+								. 'usage_type varchar(4) not null,'
+								. 'serialized_datas text not null,'
+								. 'primary key (id),'
+								. 'key (`album_id`)'
+								. ') engine=MyISAM default charset=utf8');
+?>
\ No newline at end of file
diff --git a/cosmogramme/tests/php/IntegrationTest.php b/cosmogramme/tests/php/IntegrationTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..0ca94b9d61390fede5d7f559d4b96bf1fe7c36d4
--- /dev/null
+++ b/cosmogramme/tests/php/IntegrationTest.php
@@ -0,0 +1,23 @@
+<?php
+
+/** @see http://forge.afi-sa.fr/issues/22829 */
+class IntegrationAdminVarTest extends PHPUnit_Framework_TestCase {
+	use Storm_Test_THelpers;
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function settingAdminVarShouldNotThrowException() {
+		Class_AdminVar::set('DATE_LAST_FULL_INTEGRATION_USERS', date('Y-m-d'));
+	}
+}
\ No newline at end of file
diff --git a/cosmogramme/tests/php/classes/NoticeIntegrationBiblixTest.php b/cosmogramme/tests/php/classes/NoticeIntegrationBiblixTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b8f448faa2d371d804ba7ffbb9f52e04dd4a9a33
--- /dev/null
+++ b/cosmogramme/tests/php/classes/NoticeIntegrationBiblixTest.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+require_once 'NoticeIntegrationTest.php';
+
+
+class NoticeIntegrationBiblixTest extends NoticeIntegrationTestCase {
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->loadNotice('unimarc_biblix');
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function getProfilDonnees() {
+		return Class_IntProfilDonnees::forWinBiblix()
+			->setIdProfil(110)
+			->getRawAttributes();
+	}
+
+
+	/** @test */
+	public function recordShouldHaveOneItem() {
+		$this->assertEquals(1, Class_Exemplaire::count());
+	}
+}
\ No newline at end of file
diff --git a/cosmogramme/tests/php/classes/unimarc_biblix.txt b/cosmogramme/tests/php/classes/unimarc_biblix.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a64b2ca2bd18e6c00c76c7e5a4a31e09eeaee9d8
--- /dev/null
+++ b/cosmogramme/tests/php/classes/unimarc_biblix.txt
@@ -0,0 +1 @@
+00471nam  2200157   450 001000500000005000900005010003400014100004100048101000800089200004400097210003400141215001100175700002800186801003400214995006500248393920021218  a2-7441-5434-2bFrance Loisirs  a20021218d2002    m   0fre 0103      1 afre1 aLa reine des pluiesf Catherine Scholes  a[Paris]cFrance Loisirsd2002  a615 p. 0aScholesbCatherine4070 1aFRbc20021218wBiblixNet 2.0  bMediathequef1055985966314jaeR RomanskR SCH RoDisponible
\ No newline at end of file
diff --git a/cosmogramme/tests/php/integrationTest.php b/cosmogramme/tests/php/integrationTest.php
deleted file mode 100644
index c250971b1855c5bea0bffcdb4da1f029ffcc78cd..0000000000000000000000000000000000000000
--- a/cosmogramme/tests/php/integrationTest.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-class IntegrationTest extends PHPUnit_Framework_TestCase {
-	/** @test */
-	public function assertTrueShouldSucceed() {
-		$this->assertTrue(true);
-	}
-}
-
-?>
\ No newline at end of file
diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php
index efa8b7c97ed0a2b5cf5dc0d79a5162c39fca8057..d1ffe31dec3a3482196ece42f459bd7beb90eb1e 100644
--- a/library/Class/AdminVar.php
+++ b/library/Class/AdminVar.php
@@ -20,6 +20,13 @@
 	*/
 
 class Class_AdminVar extends Storm_Model_Abstract {
+	//@see ZendAfi_Form_Admin_AdminVar for a new form type
+	 const
+		 TYPE_DEFAULT = 'default',
+		 TYPE_ENCODED_DATA = 'encoded-data',
+		 TYPE_ON_OFF = 'on-off',
+		 TYPE_MULTI_INPUT = 'multi-input';
+
 	 protected $_table_name = 'bib_admin_var';
 	 protected $_table_primary = 'CLEF';
 
@@ -55,7 +62,9 @@ class Class_AdminVar extends Storm_Model_Abstract {
 		 // très particulier à cette table qui n'a pas de primary autoincrément
 		 // si on vient de la créer, last insertid est vide
 		 // donc ici on reprend le champ clef
-		 $instance->setId($instance->getClef());
+		 $instance
+			 ->setId($name)
+			 ->cache();
 
 		 return $instance;
 	 }
@@ -119,6 +128,14 @@ class Class_AdminVar extends Storm_Model_Abstract {
 	 }
 
 
+	 /**
+		* @return bool
+		*/
+	 public static function isDilicomPNBEnabled() {
+		 return ('' != self::get('DILICOM_PNB_GLN_CONTRACTOR')) && ('' != self::get('DILICOM_PNB_SERVER_URL'));
+	 }
+
+
 	 /**
 		* @return bool
 		*/
@@ -132,11 +149,6 @@ class Class_AdminVar extends Storm_Model_Abstract {
 	 }
 
 
-	 public static function beModuleEnabled($module) {
-		 self::set($module,1);
-	 }
-
-
 	 /**
 		* @return bool
 		*/
@@ -150,6 +162,16 @@ class Class_AdminVar extends Storm_Model_Abstract {
 	 }
 
 
+	 public static function isMyCowEnabled()  {
+		 return ('' != self::get('MYCOW_EID'));
+	 }
+
+
+	 public static function isPlanetNemoEnabled()  {
+		 return ('' != self::get('PLANETNEMO'));
+	 }
+
+
 	 public static function isNumeriquePremiumEnabled() {
 		 return '' != self::get('NUMERIQUE_PREMIUM_URL');
 	 }
@@ -182,6 +204,22 @@ class Class_AdminVar extends Storm_Model_Abstract {
 	 }
 
 
+	 /**
+		* @return bool
+		*/
+	 public static function isOneDTouchEnabled() {
+		 return ('' != self::get('ONEDTOUCH_URL') );
+	 }
+
+
+	 public static function isKidilanguesEnabled() {
+		 return (('' != self::get('KIDILANGUES_ID'))
+						 && ('' != self::get('KIDILANGUES_KEY'))
+						 && ('' != self::get('KIDILANGUES_LOGIN'))
+						 && ('' != self::get('KIDILANGUES_PWD')));
+	 }
+
+
 	 /**
 		* @return bool
 		*/
@@ -253,6 +291,14 @@ class Class_AdminVar extends Storm_Model_Abstract {
 	 }
 
 
+	 public static function isOrpheaEnabled() {
+		 return (('' != self::get('ORPHEA_URL'))
+						 && ('' != self::get('ORPHEA_USERNAME'))
+						 && ('' != self::get('ORPHEA_PWD'))
+						 && ('' != self::get('ORPHEA_LANGUAGE')));
+	 }
+
+
 	 /**
 		* @return bool
 		*/
@@ -277,121 +323,352 @@ class Class_AdminVar extends Storm_Model_Abstract {
 		*/
 	 public static function getKnownVars() {
 		 if (null === self::$_knownVars)
-			 self::$_knownVars =
-				 ['AVIS_MAX_SAISIE' => 'Nombre de caractères maximum autorisé à saisir dans les avis.',
-					'AVIS_MIN_SAISIE' => 'Nombre de caractères minimum autorisé à saisir dans les avis.',
-					'BLOG_MAX_NB_CARAC' => 'Nombre de caractères maximum à afficher dans le bloc critiques.',
-					'NB_AFFICH_AVIS_PAR_AUTEUR'  => 'Nombre d\'avis maximum à afficher par utilisateur.',
-					'CLEF_GOOGLE_MAP' => 'Clef d\'activation pour le plan d\'accès google map. <a target="_blank" href="http://code.google.com/apis/maps/signup.html">Obtenir la clé google map</a>',
-					'MODO_AVIS' => 'Modération des avis des lecteurs.<br /> 0 = Affichage sans attente de validation<br /> 1 = Affichage seulement après validation.',
-					'MODO_AVIS_BIBLIO' => 'Modération des avis des bibliothèquaires.<br />  0 = Affichage sans attente de validation<br /> 1 = Affichage seulement après validation.',
-					'AVIS_BIB_SEULEMENT' => '0 = Les lecteurs peuvent donner leur avis. <br /> 1 = Seuls les bibliothèquaires peuvent donner leur avis',
-					'MODO_BLOG' => '0 = Ne requiert pas d\'identification pour saisir des  commentaires. <br /> 1 = Requiert l\'identification pour saisir des commentaires.',
-					'REGISTER_OK' => 'Texte visible par l\'internaute après son inscription.',
-					'RESA_CONDITION' => 'Texte visible après l\'envoi d\'e-mail de demande de réservation.',
-					'SITE_OK' => '0 = Site en maintenance. <br /> 1 = Site ouvert.',
-					'ID_BIBLIOSURF' => 'Nom de la bibliothèque chez bibliosurf (en minuscules)',
-					'JS_STAT' => 'Javascript code for statistics',
-					'ID_READ_SPEAKER' => 'Numéro de client Read Speaker <a target="_blank" href="http://webreader.readspeaker.com">http://webreader.readspeaker.com</a>',
-					'BLUGA_API_KEY' => 'Clé API Bluga Webthumb <a target="_blank" href="http://webthumb.bluga.net/home">http://webthumb.bluga.net/home</a>',
-					'AIDE_FICHE_ABONNE' => 'Texte d\'aide affiché dans la fiche abonné',
-					'INTERDIRE_ENREG_UTIL' => 'Supprime l\'affichage du lien d\'enregistrement dans les différents formulaires de connexion et interdit l\'enregistrement d\'utilisateurs',
-					'LANGUES' => 'Liste des codes langue utilisées en plus du français séparées par des ;. Exemple: en;ro;es',
-					'CACHE_ACTIF' => implode('<br/>',
-																	 ['Activer le cache des boîtes (meilleure performance mais mise à jour toutes les ' . CACHE_LIFETIME / 60 . 'mn)',
-																		'0 = inactif',
-																		'1 = actif',
-																		sprintf('<a href="%s" >Vider le cache</a>',
-																						Class_Url::assemble(['module' => 'admin',
-																																 'action' => 'clearcache']))]),
-					'WORKFLOW' => implode('<br/>',
-																['Activer ou désactiver la gestion des validations des articles',
-																 'Vide ou 0 = Désactivé, 1 = Activé avec les statuts par défaut, JSON = Activé avec des statuts de validation supplémentaire',
-																 'Exemple JSON :',
-																 '[{"id":10, "label":"À valider niveau 2"}, {"id":11, "label":"À valider niveau 3"}]',
-																 'Les identifiants 1 à 5 sont réservés']),
-					'WORKFLOW_TEXT_MAIL_ARTICLE_PENDING' => 'Contenu de l\'email de notification d\'article en attente de validation',
-					'WORKFLOW_TEXT_MAIL_ARTICLE_REFUSED' => 'Contenu de l\'email de notification de refus d\'un article à valider',
-					'WORKFLOW_TEXT_MAIL_ARTICLE_VALIDATED' => 'Contenu de l\'email de notification de validation d\'un article',
-					'BIBNUM' => 'Activer ou désactiver la bibliothèque numérique<br />1 = Activé, Autre valeur = désactivé',
-					'FORMATIONS' => 'Activer ou désactiver le module formation<br />1 = Activé, Autre valeur = désactivé',
-					'VODECLIC_KEY' => 'Clé de sécurité Vodeclic',
-					'VODECLIC_ID' => 'Identifiant partenaire Vodeclic',
-					'VODECLIC_BIB_ID' => 'Identifiant code bibliothèque Vodeclic',
-					'CVS_BMKEY' => 'Paramétrage CVS',
-					'CVS_BMID' => 'Paramétrage CVS',
-					'CVS_SOURCENAME' => 'Paramétrage CVS',
-					'CVS_SOURCEID' => 'Paramétrage CVS',
-					'CVS_SOURCEKEY' => 'Paramétrage CVS',
-					'CVS_SOURCEPASSWORD' => 'Paramétrage CVS',
-					'CVS_LOGINTEST' => 'Paramétrage CVS',
-					'NUMILOG_URL' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Numilog">Numilog</a>',
-					'NUMILOG_OAI_URL' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Numilog">Numilog</a>',
-					'NUMILOG_OAI_IDBIB' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Numilog">Numilog</a>',
-					'CYBERLIBRIS_URL' => 'Adresse du serveur OAI Cyberlibris',
-					'CYBERLIBRIS_ID' => 'Identifiant SSO Cyberlibris',
-					'OAI_SERVER' => 'Activation du serveur OAI. 0 = inactif, 1 = actif',
-					'PACK_MOBILE' => 'Activation des fonctions avancées du téléphone.  0 = inactif, 1 = actif',
-					'ARTE_VOD_LOGIN' => 'Login ARTE VOD',
-					'ARTE_VOD_KEY' => 'Clé ARTE VOD',
-					'ARTE_VOD_SSO_KEY' => 'Clé ARTE VOD Single Sign-On',
-					'BABELTHEQUE_JS' => 'URL du javascript Babelthèque à insérer dans l\'OPAC',
-					'MULTIMEDIA_KEY' => 'Clé publique pour le cryptage des données AFI-Multimédia',
-					'WEBKIOSK_KEY' => 'Clé publique pour le cryptage des données Aesis Webkiosk',
-					'WEBKIOSK_RESERVATION_URL' => 'URL d\'accès à l\'interface de réservation des postes Aesis Webkiosk',
-					'CSS_EDITOR' => '',
-					'CMS_FORMULAIRES' => 'Activation des formulaires.  0 = inactif, 1 = actif',
-					'MENU_BOITE' => 'Activation des boîtes dans les menus.  0 = inactif, 1 = actif',
-					'INTERDIRE_MODIF_FICHE_ABONNE' => 'Interdire la modification de la fiche abonne 0 = inactif, 1 = actif',
-					'ROOT_URL_ECOUTE' => '',
-					'URL_TYPO3' => 'Url d\'import d\'un agenda TYPO3',
-					'CHAMPS_FICHE_UTILISATEUR' => 'Liste des champs que l\'utilisateur peux modifier. <br/>Ex: nom;prenom;pseudo;adresse;<br/>code_postal;ville;mail;is_contact_mail;<br/>telephone;is_contact_telephone;',
-					'FACETTE_PCDM4_LIBELLE' => 'Libellé pour la PCDM4',
-					'FACETTE_DEWEY_LIBELLE' => 'Libellé pour la Dewey',
-					'FACETTE_TYPE_DOC_LIBELLE' => '',
-					'FACETTE_LANGUE_LIBELLE' => '',
-					'FACETTE_GENRE_LIBELLE' => '',
-					'FACETTE_SITE_LIBELLE' => '',
-					'FACETTE_SECTION_LIBELLE' => '',
-					'FACETTE_BIBLIOTHEQUE_LIBELLE' => '',
-					'FACETTE_AUTEUR_LIBELLE' => '',
-					'FACETTE_INTERET_LIBELLE' => '',
-					'FACETTE_MATIERE_LIBELLE' => '',
-					'FACETTE_TAG_LIBELLE' => '',
-					'AFFICHER_DISPONIBILITE_SUR_RECHERCHE' => 'Activation de la disponibilite dans le resultat de recherche.  0 = inactif, 1 = actif',
-					'NOM_DOMAINE' => 'Nom de domaine principal de l\'OPAC, ex: monopac.macommune.fr',
-					'TOUTAPPRENDRE_BIB_ID' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Tout-Apprendre">ToutApprendre</a>',
-					'TOUTAPPRENDRE_KEY' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Tout-Apprendre">ToutApprendre</a>',
-					'NUMERIQUE_PREMIUM_URL' => '',
-					'MUSICME_URL' => '',
-					'MUSICME_BIB_ID' => '',
-					'DATE_LAST_FULL_INTEGRATION_USERS' => 'Date du dernier import total des abonnés (modifié par cosmogramme)',
-					'BOITE_PANIER_AUTO' => 'Ajouter automatiquement une boîte panier dans la division flottante.  0 = inactif, 1 = actif',
-					'EXTRA_SKIN_PATH' => 'Chemin vers les skins personnalisées, relatif à ' . Class_Profil_Skin::EXTRA_PATH,
-					'ENABLE_COLLABORATIVE_BROWSING' => 'Activation de la navigation collaborative. 0 = inactif, 1 = actif',
-					'KOHA_MULTI_SITES' => 'WS KOHA : Reservation d\'exemplaires pour les multi sites. 0 = inactif, 1 = actif',
-					'LECTURA_DOMAIN' => 'Domaine utilisée par le serveur lectura pour authentification',
-					'LEKIOSK_ID' => 'Identifiant fournit par lekiosk.com',
-					'TEXT_REPLACEMENTS' => 'Remplacement de textes à la volée. <br/>Ex:<br/>Panier;Sélection<br/>Vous avez %d paniers;Vous avez %d sélections',
-					'ARTICLES_LIST_MODE' => 'Le gestionnaire de contenu affiche les articles sous forme de liste paginée au lieu de d\'une arborescence. Cet affichage est adapté lorsque le nombre d\'article devient trop important.<br /> 1 = Affichage en liste<br /> Autre valeur = Affichage en arborescence.'
-				 ];
+			 self::$_knownVars = [
+				'AVIS_MAX_SAISIE' => [
+					'description' => 'Nombre de caractères maximum autorisé à saisir dans les avis.',
+				],
+				'AVIS_MIN_SAISIE' => [
+					'description' => 'Nombre de caractères minimum autorisé à saisir dans les avis.',
+				],
+				'BLOG_MAX_NB_CARAC' => [
+					'description' => 'Nombre de caractères maximum à afficher dans le bloc critiques.',
+				],
+				'NB_AFFICH_AVIS_PAR_AUTEUR'  => [
+					'description' => 'Nombre d\'avis maximum à afficher par utilisateur.',
+				],
+				'CLEF_GOOGLE_MAP' => [
+					'description' => 'Clef d\'activation pour le plan d\'accès google map. <a target="_blank" href="http://code.google.com/apis/maps/signup.html">Obtenir la clé google map</a>',
+				],
+				'MODO_AVIS' => [
+					'description' => 'Modération des avis des lecteurs.<br /> Désactivé : affichage sans attente de validation<br /> Activé : affichage seulement après validation.',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'MODO_AVIS_BIBLIO' => [
+					'description' => 'Modération des avis des bibliothèquaires.<br />  Désactivé: affichage sans attente de validation<br /> Activé: affichage seulement après validation',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'AVIS_BIB_SEULEMENT' => [
+					'description' => 'Désactivé: les lecteurs peuvent donner leur avis. <br /> Activé: seuls les bibliothèquaires peuvent donner leur avis',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'MODO_BLOG' => [
+					'description' => 'Désactivé: ne requiert pas d\'identification pour saisir des  commentaires. <br /> Activé: requiert l\'identification pour saisir des commentaires.',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'REGISTER_OK' => [
+					'description' => 'Texte visible par l\'internaute après son inscription.',
+					'type' => self::TYPE_ENCODED_DATA,
+				],
+				'RESA_CONDITION' => [
+					'description' => 'Texte visible après l\'envoi d\'e-mail de demande de réservation.',
+					'type' => self::TYPE_ENCODED_DATA,
+				],
+				'SITE_OK' => [
+					'description' => 'Désactiver pour passer le site en maintenance',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'ID_BIBLIOSURF' => [
+					'description' => 'Nom de la bibliothèque chez bibliosurf (en minuscules)',
+				],
+				'JS_STAT' => [
+					'description' => 'Javascript code for statistics'
+				],
+				'ID_READ_SPEAKER' => [
+					'description' => 'Numéro de client Read Speaker <a target="_blank" href="http://webreader.readspeaker.com">http://webreader.readspeaker.com</a>',
+				],
+				'BLUGA_API_KEY' => [
+					'description' => 'Clé API Bluga Webthumb <a target="_blank" href="http://webthumb.bluga.net/home">http://webthumb.bluga.net/home</a>',
+				],
+				'AIDE_FICHE_ABONNE' => [
+					'description' => 'Texte d\'aide affiché dans la fiche abonné',
+				],
+				'INTERDIRE_ENREG_UTIL' => [
+					'description' => 'Supprime l\'affichage du lien d\'enregistrement dans les différents formulaires de connexion et interdit l\'enregistrement d\'utilisateurs',
+				],
+				'LANGUES' => [
+					'description' => 'Liste des codes langue utilisées en plus du français séparées par des ;. Exemple: en;ro;es',
+					'type' => self::TYPE_MULTI_INPUT
+				],
+				'CACHE_ACTIF' => [
+					'description' => implode('<br/>', [
+						'Activer le cache des boîtes (meilleure performance mais mise à jour toutes les ' . CACHE_LIFETIME / 60 . 'mn)',
+						'<a href="' . Class_Url::baseUrl() . '/admin/index/clearcache" >Vider le cache</a>',
+					]),
+					'type' => self::TYPE_ON_OFF,
+				],
+				'WORKFLOW' => [
+					'description' => implode('<br/>', [
+						'Activer ou désactiver la gestion des validations des articles',
+						'Vide ou 0 = Désactivé, 1 = Activé avec les statuts par défaut, JSON = Activé avec des statuts de validation supplémentaire',
+						'Exemple JSON :',
+						'[{"id":10, "label":"À valider niveau 2"}, {"id":11, "label":"À valider niveau 3"}]',
+						'Les identifiants 1 à 5 sont réservés'
+					]),
+				 'validate' => 'ZendAfi_Validate_WorkflowVar',
+				 'after_save' => 'setWorkflowPermissions',
+				],
+				'WORKFLOW_TEXT_MAIL_ARTICLE_PENDING' => [
+					'description' => 'Contenu de l\'email de notification d\'article en attente de validation',
+				],
+				'WORKFLOW_TEXT_MAIL_ARTICLE_REFUSED' => [
+					'description' => 'Contenu de l\'email de notification de refus d\'un article à valider',
+				],
+				'WORKFLOW_TEXT_MAIL_ARTICLE_VALIDATED' => [
+					'description' => 'Contenu de l\'email de notification de validation d\'un article',
+				],
+				'BIBNUM' => [
+					'description' => 'Activer ou désactiver la bibliothèque numérique',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'FORMATIONS' => [
+					'description' => 'Activer ou désactiver le module formation',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'VODECLIC_KEY' => [
+					'description' => 'Clé de sécurité Vodeclic',
+				],
+				'VODECLIC_ID' => [
+					'description' => 'Identifiant partenaire Vodeclic',
+				],
+				'VODECLIC_BIB_ID' => [
+					'description' => 'Identifiant code bibliothèque Vodeclic',
+				],
+				'CVS_BMKEY' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'CVS_BMID' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'CVS_SOURCENAME' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'CVS_SOURCEID' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'CVS_SOURCEKEY' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'CVS_SOURCEPASSWORD' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'CVS_LOGINTEST' => [
+					'description' => 'Paramétrage CVS',
+				],
+				'NUMILOG_URL' => [
+					'description' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Numilog">Numilog</a>',
+				],
+				'NUMILOG_OAI_URL' => [
+					'description' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Numilog">Numilog</a>',
+				],
+				'NUMILOG_OAI_IDBIB' => [
+					'description' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Numilog">Numilog</a>',
+				],
+				'CYBERLIBRIS_URL' => [
+					'description' => 'Adresse du serveur OAI Cyberlibris',
+				],
+				'CYBERLIBRIS_ID' => [
+					'description' => 'Identifiant SSO Cyberlibris',
+				],
+				'OAI_SERVER' => [
+					'description' => 'Activation du serveur OAI',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'PACK_MOBILE' => [
+					'description' => 'Activation des fonctions avancées du téléphone',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'ARTE_VOD_LOGIN' => [
+					'description' => 'Login ARTE VOD',
+				],
+				'ARTE_VOD_KEY' => [
+					'description' => 'Clé ARTE VOD',
+				],
+				'ARTE_VOD_SSO_KEY' => [
+					'description' => 'Clé ARTE VOD Single Sign-On',
+				],
+				'BABELTHEQUE_JS' => [
+					'description' => 'URL du javascript Babelthèque à insérer dans l\'OPAC',
+				],
+				'MULTIMEDIA_KEY' => [
+					'description' => 'Clé publique pour le cryptage des données AFI-Multimédia',
+				],
+				'WEBKIOSK_KEY' => [
+					'description' => 'Clé publique pour le cryptage des données Aesis Webkiosk',
+				],
+				'WEBKIOSK_RESERVATION_URL' => [
+					'description' => 'URL d\'accès à l\'interface de réservation des postes Aesis Webkiosk',
+				],
+				'CSS_EDITOR' => [
+					'description' => '',
+				],
+				'CMS_FORMULAIRES' => [
+					'description' => 'Activation des formulaires',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'MENU_BOITE' => [
+					'description' => 'Activation des boîtes dans les menus',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'INTERDIRE_MODIF_FICHE_ABONNE' => [
+					'description' => 'Interdire la modification de la fiche abonne',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'ROOT_URL_ECOUTE' => [
+					'description' => '',
+				],
+				'URL_TYPO3' => [
+					'description' => 'Url d\'import d\'un agenda TYPO3',
+				],
+				'CHAMPS_FICHE_UTILISATEUR' => [
+					'description' => 'Liste des champs que l\'utilisateur peux modifier. <br/>Ex: nom;prenom;pseudo;adresse;<br/>code_postal;ville;mail;is_contact_mail;<br/>telephone;is_contact_telephone;',
+					'type' => self::TYPE_MULTI_INPUT
+				],
+				'FACETTE_PCDM4_LIBELLE' => [
+					'description' => 'Libellé pour la PCDM4',
+				],
+				'FACETTE_DEWEY_LIBELLE' => [
+					'description' => 'Libellé pour la Dewey',
+				],
+				'FACETTE_TYPE_DOC_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_LANGUE_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_GENRE_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_SITE_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_SECTION_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_BIBLIOTHEQUE_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_AUTEUR_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_INTERET_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_MATIERE_LIBELLE' => [
+					'description' => '',
+				],
+				'FACETTE_TAG_LIBELLE' => [
+					'description' => '',
+				],
+				'AFFICHER_DISPONIBILITE_SUR_RECHERCHE' => [
+					'description' => 'Activation de la disponibilite dans le resultat de recherche.',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'NOM_DOMAINE' => [
+					'description' => 'Nom de domaine principal de l\'OPAC, ex: monopac.macommune.fr',
+				],
+				'TOUTAPPRENDRE_BIB_ID' => [
+					'description' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Tout-Apprendre">ToutApprendre</a>',
+				],
+				'TOUTAPPRENDRE_KEY' => [
+					'description' => 'Paramétrage <a href="http://forge.afi-sa.fr/projects/opac3/wiki/Ressources_externes_enrichissements#Tout-Apprendre">ToutApprendre</a>',
+				],
+				'NUMERIQUE_PREMIUM_URL' => [
+					'description' => '',
+				],
+				'MUSICME_URL' => [
+					'description' => '',
+				],
+				'MUSICME_BIB_ID' => [
+					'description' => '',
+				],
+				'DATE_LAST_FULL_INTEGRATION_USERS' => [
+					'description' => 'Date du dernier import total des abonnés (modifié par cosmogramme)',
+				],
+				'BOITE_PANIER_AUTO' => [
+					'description' => 'Ajouter automatiquement une boîte panier dans la division flottante',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'EXTRA_SKIN_PATH' => [
+					'description' => 'Chemin vers les skins personnalisées, relatif à ' . Class_Profil_Skin::EXTRA_PATH,
+				],
+				'ENABLE_COLLABORATIVE_BROWSING' => [
+					'description' => 'Activation de la navigation collaborative',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'KOHA_MULTI_SITES' => [
+					'description' => 'WS KOHA : Reservation d\'exemplaires pour les multi sites',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'LECTURA_DOMAIN' => [
+					'description' => 'Domaine utilisée par le serveur lectura pour authentification',
+				],
+				'LEKIOSK_ID' => [
+					'description' => 'Identifiant fournit par lekiosk.com',
+				],
+				'TEXT_REPLACEMENTS' => [
+					'description' => 'Remplacement de textes à la volée. <br/>Ex:<br/>Panier;Sélection<br/>Vous avez %d paniers;Vous avez %d sélections',
+				],
+				'ARTICLES_LIST_MODE' => [
+					'description' => 'Le gestionnaire de contenu affiche les articles sous forme de liste paginée au lieu de d\'une arborescence. Cet affichage est adapté lorsque le nombre d\'article devient trop important',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'DILICOM_PNB_GLN_COLLECTIVITE' => [
+					'description' => 'Gln de la collectivité, il est fourni par Dilicom.',
+				],
+				'DILICOM_PNB_PWD_COLLECTIVITE' => [
+					'description' => 'Mot de passe de la collectivité, il est fourni par Dilicom.',
+				],
+				'DILICOM_PNB_GLN_CONTRACTOR' => [
+					'description' => 'Contracteur du PNB Dilicom',
+				],
+				'DILICOM_PNB_SERVER_URL' => [
+					'description' => 'Url du serveur PNB Dilicom',
+				],
+				'DILICOM_PNB_IP_ADRESSES' => [
+					'description' => 'Liste des adresses IP publiques autorisées pour la consultation des documents',
+					'type' => self::TYPE_MULTI_INPUT,
+					'validate' => 'ZendAfi_Validate_Dilicom_IpAdresses',
+				],
+				'MYCOW_EID' => [
+					'description' => 'Clé d\'identification MyCOW.EU pour le portail. Cette clé doit être fournie par MyCOW.EU. Elle active la ressource numérique dans le portail.',
+				],
+				'ONEDTOUCH_URL' => [
+					'description' => 'Adresse du serveur OAI 1D touch'
+				],
+				'ORPHEA_URL' => [
+					'description' => 'Adresse du serveur Orphea'
+				],
+				'ORPHEA_USERNAME' => [
+					'description' => 'Nom de l\'utilisateur Orphea'
+				],
+				'ORPHEA_PWD' => [
+					'description' => 'Mot de passe de l\'utilisateur Orphea'
+				],
+				'ORPHEA_LANGUAGE' => [
+					'description' => 'Paramètre permettant de choisir la langue des des ressources. La liste des codes disponibles se trouve à cette adresse http://help.orphea.com/43/gateway/#language_identifiers'
+				],
+				'PLANETNEMO' => [
+					'description' => 'Activation de la ressource numérique PlanetNemo',
+					'type' => self::TYPE_ON_OFF,
+				],
+				'KIDILANGUES_KEY' => [
+					'description' => 'Clé d\'encodage Kidilangues pour le portail. Cette clé doit être fournie par Kidilangues.',
+				],
+				'KIDILANGUES_ID' => [
+					'description' => 'Clé d\'identification Kidilangues pour le portail. Cette clé doit être fournie par Kidilangues.',
+				],
+				'KIDILANGUES_LOGIN' => [
+					'description' => 'Login du portail fourni par Kidilangues.',
+				],
+				'KIDILANGUES_PWD' => [
+					'description' => 'Paswword du portail fourni par Kidilangues.',
+				],
+			 ];
 
 		return self::$_knownVars;
 	}
 
 
-	/**
-	 * @param $name string
-	 * @return string
-	 */
-	public static function helpFor($name) {
-		if (!array_key_exists($name, static::getKnownVars()))
-			return '';
-		return static::getKnownVars()[$name];
-	}
-
-
-
 	/** @return bool */
 	public static function isCacheEnabled() {
 		return self::isModuleEnabled('CACHE_ACTIF');
@@ -450,6 +727,42 @@ class Class_AdminVar extends Storm_Model_Abstract {
 	}
 
 
+	public function getDescription() {
+		return static::helpFor($this->getId());
+	}
+
+	public function getVarMetaDataIfNone($key, $default_value) {
+		$known_vars = static::getKnownVars();
+		$name = $this->getId();
+		if (!isset($known_vars[$name][$key]))
+			return $default_value;
+		return $known_vars[$name][$key];
+	}
+
+	public function getType() {
+		return $this->getVarMetaDataIfNone('type', self::TYPE_DEFAULT);
+	}
+
+
+	/**
+	 * @param $name string
+	 * @return string
+	 */
+	public static function helpFor($name) {
+		return static::find($name)->getVarMetaDataIfNone('description', '');
+	}
+
+
+	public function isOnOff() {
+		return $this->getType() == self::TYPE_ON_OFF;
+	}
+
+
+	public function isMultiInput() {
+		return $this->getType() == self::TYPE_MULTI_INPUT;
+	}
+
+
 	public static function getBabelthequeId() {
 		$mathes = [];
 		if (preg_match('/bw_([^\.]+)\.js/', (string)self::get('BABELTHEQUE_JS'), $matches))
@@ -482,30 +795,34 @@ class Class_AdminVar extends Storm_Model_Abstract {
 
 	public static function getWorkflowTextMailArticleValidated() {
 		if(!static::get('WORKFLOW_TEXT_MAIL_ARTICLE_VALIDATED'))
-			static::set('WORKFLOW_TEXT_MAIL_ARTICLE_VALIDATED',
-									'L\'article TITRE_ARTICLE a été validé. URL_ARTICLE');
+			static::set('WORKFLOW_TEXT_MAIL_ARTICLE_VALIDATED', 'L\'article TITRE_ARTICLE a été validé. URL_ARTICLE');
 
 		return static::get('WORKFLOW_TEXT_MAIL_ARTICLE_VALIDATED');
 	}
 
 
 	public function validate() {
-		$mapping = ['WORKFLOW' => new ZendAfi_Validate_WorkflowVar(isset($this->_attributes_in_db['valeur']) ? $this->_attributes_in_db['valeur']:'')];
+		if (!$validator_class = $this->getVarMetaDataIfNone('validate', null))
+			return;
+		$validate = new $validator_class(isset($this->_attributes_in_db['valeur'])
+																		 ? $this->_attributes_in_db['valeur']
+																		 :'');
+		if ($validate->isValid($this->getValeur()))
+			return;
 
-		if (array_key_exists($this->getId(), $mapping)) {
-			if (!$mapping[$this->getId()]->isValid($this->getValeur())) {
-				foreach($mapping[$this->getId()]->getMessages() as $error)
-					$this->addError($error);
-			}
-		}
+		array_map([$this, 'addError'], $validate->getMessages());
 	}
 
 
 	public function afterSave() {
-		if ('WORKFLOW' != $this->getId())
-			return;
+		if ($afterSaveHook = $this->getVarMetaDataIfNone('after_save', null)) {
+			call_user_func([$this, $afterSaveHook]);
+		}
+	}
+
 
-		$statuses = json_decode($this->getValeur());
+	protected function setWorkflowPermissions() {
+			$statuses = json_decode($this->getValeur());
 		if (!is_array($statuses)) {
 			Class_Permission::cleanDynamicWorkflow();
 			return;
diff --git a/library/Class/Album.php b/library/Class/Album.php
index e797960d9427104414d1c499c105eb4ad253e011..ef39a702a913c098482b4914dee9ae4d64bb1f54 100644
--- a/library/Class/Album.php
+++ b/library/Class/Album.php
@@ -86,6 +86,9 @@ class Class_Album extends Storm_Model_Abstract {
 	const DISTRIBUTOR_FIELD = '306$a';
 	const THUMB_PREFIX = 'thumb_';
 
+	const STATUS_DRAFT = 1;
+	const STATUS_VALIDATED = 3;
+
 
 	protected static $DEFAULT_THUMBNAIL_VALUES;
 
@@ -103,7 +106,12 @@ class Class_Album extends Storm_Model_Abstract {
 	protected $_has_many = ['ressources' => ['model' => 'Class_AlbumRessource',
 																					 'role'				=> 'album',
 																					 'dependents'	=> 'delete',
-																					 'order'				=> 'ordre']];
+																					 'order'				=> 'ordre'],
+
+													'usage_constraints' => ['model' => 'Class_Album_UsageConstraint',
+																									'role' => 'album',
+																									'instance_of' => 'Class_Album_UsageConstraints',
+																									'dependents' => 'delete']];
 
 	protected $_default_attribute_values = ['titre' => '',
 																					'sous_titre' => '',
@@ -130,17 +138,25 @@ class Class_Album extends Storm_Model_Abstract {
 																					'bibliotheques' => '',
 																					'annexes' => '',
 																					'sections' => '',
+																					'status' => self::STATUS_DRAFT,
 																					'pcdm4' => ''];
 
 
 	/** @var Class_Upload */
 	protected $_uploadHandler;
 
+	protected $_marc;
+
 
 	/** @var Class_Testing_FileSystem */
 	protected static $_fileSystem;
 
 	protected $path_flash;
+
+	protected static $_knownStatus =
+		[self::STATUS_DRAFT => 'Brouillon',
+		 self::STATUS_VALIDATED => 'Validé'];
+
 	public $arbre_array;
 
 
@@ -196,6 +212,22 @@ class Class_Album extends Storm_Model_Abstract {
 	}
 
 
+	public function getMarc() {
+		if (!isset($this->_marc))
+			$this->_marc = new Class_Album_Marc($this->getNotes());
+
+		return $this->_marc;
+	}
+
+
+	/**
+	 * @return array
+	 */
+	public static function getKnownStatus() {
+		return self::$_knownStatus;
+	}
+
+
 	/**
 	 * @return bool
 	 */
@@ -240,6 +272,18 @@ class Class_Album extends Storm_Model_Abstract {
 	}
 
 
+	public function setISBN($isbn) {
+		$this->getMarc()->addSubfield('10', 'a', $isbn);
+		return $this;
+	}
+
+
+	public function getISBN() {
+		$values = $this->getMarc()->getSubfield('10', 'a');
+		return end($values);
+	}
+
+
 	/**
 	 * @return array
 	 */
@@ -410,7 +454,12 @@ class Class_Album extends Storm_Model_Abstract {
 
 
 	public function beCyberlibris() {
-		return $this->setTypeDocId(Class_TypeDoc::CYBERLIBRIS);
+ 		return $this->setTypeDocId(Class_TypeDoc::CYBERLIBRIS);
+	}
+
+
+	public function beOneDTouch() {
+ 		return $this->setTypeDocId(Class_TypeDoc::ONEDTOUCH);
 	}
 
 
@@ -418,11 +467,17 @@ class Class_Album extends Storm_Model_Abstract {
 		return $this->setTypeDocId(Class_TypeDoc::NUMERIQUEPREMIUM);
 	}
 
+
 	public function isNumilog() {
 		return $this->getTypeDocId() == Class_TypeDoc::NUMILOG;
+	}
+
 
+	public function isDilicom() {
+		return $this->getTypeDocId() == Class_TypeDoc::DILICOM;
 	}
 
+
 	public function isCyberlibris() {
 		return $this->getTypeDocId() == Class_TypeDoc::CYBERLIBRIS;
 	}
@@ -444,7 +499,8 @@ class Class_Album extends Storm_Model_Abstract {
 
 
 	public function isAudioRecord() {
-		return $this->getTypeDocId() == Class_TypeDoc::AUDIO_RECORD;
+		return ($this->getTypeDocId() == Class_TypeDoc::ONEDTOUCH ||
+						$this->getTypeDocId() == Class_TypeDoc::AUDIO_RECORD);
 	}
 
 
@@ -468,6 +524,17 @@ class Class_Album extends Storm_Model_Abstract {
 	}
 
 
+	public function beOrphea() {
+		$this->setTypeDocId(Class_TypeDoc::ORPHEA);
+		return $this;
+	}
+
+
+	public function isOrphea() {
+		return $this->getTypeDocId() == Class_TypeDoc::ORPHEA;
+	}
+
+
 	/**
 	 * @param Zend_Controller_Request_Http $request
 	 * @return array
@@ -605,7 +672,7 @@ class Class_Album extends Storm_Model_Abstract {
 
 		$oldFile = $this->getFichier();
 		if (!$this->_uploadFile('fichier',
-														['jpg', 'gif', 'png', 'jpeg'],
+														['jpg', 'gif', 'png', 'jpeg', 'bro'],
 														[$this->getBasePath() . $oldFile,
 														 $this->getBasePath() . 'thumb_'.$oldFile]))
 				return false;
@@ -628,6 +695,9 @@ class Class_Album extends Storm_Model_Abstract {
 
 
 	protected function _isFileInRequest($name) {
+		if (!array_key_exists($name, $_FILES))
+			return false;
+
 		return (0 !== $_FILES[$name]['size']);
 	}
 
@@ -817,10 +887,12 @@ class Class_Album extends Storm_Model_Abstract {
 
 
 	public function beforeSave() {
-		$this->updateDateMaj();
-		$this->collectAuthors();
-		$this->collectEditors();
-		$this->collectCollections();
+		$this
+			->updateDateMaj()
+			->collectAuthors()
+			->collectEditors()
+			->collectCollections()
+			->setNotes($this->getMarc()->serialized());
 	}
 
 
@@ -829,6 +901,8 @@ class Class_Album extends Storm_Model_Abstract {
 		if(isset($authors['author']))
 			foreach($authors['author'] as $k => $v)
 				$this->addAuthor($v, $authors['fonction'][$k]);
+
+		return $this;
 	}
 
 
@@ -837,6 +911,8 @@ class Class_Album extends Storm_Model_Abstract {
 		if(isset($editors['editor']))
 			foreach($editors['editor'] as $k => $v)
 				$this->addEditor($v);
+
+		return $this;
 	}
 
 
@@ -845,22 +921,25 @@ class Class_Album extends Storm_Model_Abstract {
 		if(isset($collections['collection']))
 			foreach($collections['collection'] as $k => $v)
 				$this->addCollection($v);
+
+		return $this;
 	}
 
 
 	protected function _collect($field, $zone) {
 		if (!isset($this->_attributes[$field]))
 			return [];
+
 		$fields = $this->_attributes[$field];
 		unset($this->_attributes[$field]);
 
-		$this->clearZones($zone);
+		$this->getMarc()->clearZone($zone);
 		return $fields;
 	}
 
 
 	public function updateDateMaj() {
-		$this->setDateMaj(date('Y-m-d H:i:s', self::getTimeSource()->time()));
+		return $this->setDateMaj(date('Y-m-d H:i:s', self::getTimeSource()->time()));
 	}
 
 
@@ -1045,65 +1124,6 @@ class Class_Album extends Storm_Model_Abstract {
 	}
 
 
-	public function getNotesAsArray() {
-		if (!$notes = unserialize($this->getNotes()))
-			return [];
-		return $notes;
-	}
-
-
-	/**
-	 * @param $field string
-	 * @param $datas array
-	 */
-	public function getNoteForFieldAndDatas($field, $datas = []) {
-		$notes = $this->getNotesAsArray();
-
-		foreach ($notes as $note) {
-			if (!array_key_exists('field', $note)
-					or !array_key_exists('data', $note)
-					or $field != $note['field'])
-				continue;
-
-			foreach ($datas as $k => $v)
-				if ($note['data'][$k] != $v)
-					continue 2;
-
-			return $note['data']['a'];
-		}
-	}
-
-
-	public function getDatasOfField($field) {
-		return array_filter(
-			array_map(
-				function($note) use ($field) {
-					return is_array($note) && $field === $note['field'] ?
-						$note['data'] : null;
-				},
-				$this->getNotesAsArray()));
-	}
-
-
-	/** @return string */
-	public function getVideoUrl() {
-		return $this->getNoteForFieldAndDatas(self::VIDEO_URL_FIELD,
-			                                    ['x' => self::VIDEO_URL_TYPE]);
-	}
-
-
-	/**
-	 * @param $url string
-	 * @return Class_Album
-	 */
-	public function setVideoUrl($url) {
-		return $this->setNotes([[
-													 'field' => self::VIDEO_URL_FIELD,
-													 'data' => ['x' => self::VIDEO_URL_TYPE,
-																			'a' => $url]]]);
-	}
-
-
 	public function getDuration() {
 		return $this->getNote(self::DURATION_FIELD);
 	}
@@ -1115,30 +1135,23 @@ class Class_Album extends Storm_Model_Abstract {
 
 
 	public function setNotes($array_or_string) {
-		parent::setNotes((is_array($array_or_string)) ?
-										 serialize($array_or_string) :
-										 $array_or_string);
-		return $this;
+		return parent::setNotes($this->getMarc()->setDatas($array_or_string)->serialized());
 	}
 
 
 	public function getNote($field) {
-		$notes = $this->getNotesAsArray();
-		if (isset($notes[$field]))
-			return $notes[$field];
-		return null;
+		return $this->getMarc()->getNote($field);
 	}
 
 
 	public function addNote($field, $value) {
-		$notes = $this->getNotesAsArray();
-		$notes[$field] = $value;
-		return $this->setNotes($notes);
+		$this->getMarc()->addNote($field, $value);
+		return $this;
 	}
 
 
 	public function clearNotes() {
-		return $this->setNotes('');
+		return $this->getMarc()->clear();
 	}
 
 
@@ -1235,11 +1248,6 @@ class Class_Album extends Storm_Model_Abstract {
 	}
 
 
-	public function getStatus() {
-		return 'none';
-	}
-
-
 	public function formatedCount() {
 		return sprintf('%03d', $this->getRessourcesCount());
 	}
@@ -1275,9 +1283,13 @@ class Class_Album extends Storm_Model_Abstract {
 	 * @return string
 	 */
 	public function getPoster() {
-		if ($posters_url = $this->getUnimarc856Values('poster'))
-			return $posters_url[0];
-		return '';
+		if (!$posters_url = $this->getUnimarc856Values('poster'))
+			return '';
+
+		foreach($posters_url as $url)
+			if (false !== strpos($url, 'small')) return $url;
+
+		return $posters_url[0];
 	}
 
 
@@ -1303,20 +1315,17 @@ class Class_Album extends Storm_Model_Abstract {
 	 */
 	public function getUnimarc856Values($field) {
 		$values = [];
-		$unimarc_array = $this->getNotesAsArray();
-		foreach($unimarc_array as $unimarc_value) {
-			if (!is_array($unimarc_value)
-					|| !isset($unimarc_value['field'])
-					|| '856' !== $unimarc_value['field']
-					|| !isset($unimarc_value['data'])
-					|| !isset($unimarc_value['data']['x'])
-					|| !isset($unimarc_value['data']['a'])
-					|| $field !== $unimarc_value['data']['x']
-					|| '' == trim($unimarc_value['data']['a']))
+
+		foreach ($this->getMarc()->getDatasOfField('856') as $unimarc_value) {
+			if (!isset($unimarc_value['x'])
+					|| !isset($unimarc_value['a'])
+					|| $field !== $unimarc_value['x']
+					|| '' == trim($unimarc_value['a']))
 				continue;
 
-			$values[] = $unimarc_value['data']['a'];
+			$values[] = $unimarc_value['a'];
 		}
+
 		return $values;
 	}
 
@@ -1366,58 +1375,16 @@ class Class_Album extends Storm_Model_Abstract {
 
 
 	public function addURIInNotes($type, $uri) {
-		return $this->addZone('856', ['x' => $type, 'a' => $uri]);
-	}
-
-	public function addZone($zone, $sous_zones) {
-		$notes = $this->getNotesAsArray();
-		$notes[] = ['field' => $zone,
-								'data' => $sous_zones];
-		return $this->setNotes($notes);
-	}
-
-
-	public function addSubField($field, $subfield, $value) {
-		$notes = $this->getNotesAsArray();
-		foreach($notes as $k => $v){
-			if (is_array($v) && isset($v['field']) && $v['field'] == $field) {
-				$notes[$k]['data'][] = [$subfield, $value];
-			}
-		}
-		return $this->addZone($field, [[$subfield, $value]]);
-	}
-
-
-	public function clearZones($zone) {
-		return $this->setNotes($this->_clearZones([$zone]));
+		$this->getMarc()->addZone('856', ['x' => $type, 'a' => $uri]);
+		return $this;
 	}
 
 
 	/** @return string */
 	public function getNotesForPseudoNotice() {
-		return serialize($this->_clearZones([self::AUTHOR_FIELD, self::EDITOR_FIELD]));
-	}
-
-
-	protected function _clearZones($zones) {
-		$notes = $this->getNotesAsArray();
-		$to_delete = [];
-
-		foreach($zones as $zone)
-			$to_delete = array_merge($to_delete, $this->_clearZone($zone,$notes));
-
-		foreach($to_delete as $i)
-			unset($notes[$i]);
-
-		return $notes;
-	}
-
-	protected function _clearZone($zone, $notes) {
-		$to_delete=[];
-		foreach($notes as $k => $note)
-			if (is_array($note) && $note['field'] == $zone)
-				$to_delete[] = $k;
-		return $to_delete;
+		$pseudo_marc = clone $this->getMarc();
+		return $pseudo_marc->clearZones([self::AUTHOR_FIELD, self::EDITOR_FIELD])
+											 ->serialized();
 	}
 
 
@@ -1437,6 +1404,11 @@ class Class_Album extends Storm_Model_Abstract {
 	}
 
 
+	public function isValidated() {
+		return (self::STATUS_VALIDATED == $this->getStatus());
+	}
+
+
 	public function getIdEad() {
 		return $this->hasIdOrigine() ? $this->getIdOrigine() : 'A' . $this->getId();
 	}
@@ -1466,9 +1438,11 @@ class Class_Album extends Storm_Model_Abstract {
 	 * Main author
 	 * @return string
 	 */
-	public function getMainAuthor() {
-		$authors = $this->getAuthorsNames();
-		return isset($authors[0]) ? $authors[0] : '';
+	public function getMainAuthorName() {
+		if (!$authors = $this->getAuthors())
+			return '';
+
+		return array_shift($authors)->getName();
 	}
 
 
@@ -1477,13 +1451,10 @@ class Class_Album extends Storm_Model_Abstract {
 	 * @return array
 	 */
 	public function getAuthorsNames() {
-		return array_filter(
-			array_map(
-				function($item) {
-					return (!is_array($item) || !isset($item['a'])) ?
-						null : $item['a'];
-				},
-				$this->getAuthors()));
+		$names = [];
+		foreach($this->getAuthors() as $author)
+			$names []= $author->getName();
+		return $names;
 	}
 
 
@@ -1492,62 +1463,18 @@ class Class_Album extends Storm_Model_Abstract {
 	 * @return array
 	 */
 	public function getAuthors() {
-		return array_filter(
-			array_map(
-				function($item) {
-					return (!is_array($item) || self::AUTHOR_FIELD !== $item['field']
-									|| !isset($item['data']) || !isset($item['data']['a'])) ?
-						null : $item['data'];
-				},
-				$this->getNotesAsArray()));
-	}
-
-
-  /**
-	 * Editor from unimarc container
-	 * @return array
-	 */
-	public function getEditors() {
-		$values = [];
-		$datas=$this->getDatasOfField(Class_Album::EDITOR_FIELD);
-		foreach($datas as $data){
-			foreach($data as $value) {
-				if ($value[0] == 'c')
-					$values[] = $value[1];
-			}
+		$authors = [];
+		foreach ($this->getMarc()->getDatasOfField(self::AUTHOR_FIELD) as $item) {
+			if (!isset($item['a']))
+				continue;
+			$authors []= new Class_Notice_Author($item['a'],
+																					 isset($item['4']) ? $item['4'] : '');
 		}
-		return $values;
-	}
-
-
-	/**
-	 * Collection from unimarc container
-	 * @return array
-	 */
-	public function getCollections() {
-		return array_filter(
-			array_map(
-				function($item) {
-					return (!is_array($item) || self::COLLECTION_FIELD !== $item['field']
-									|| !isset($item['data']) || !isset($item['data']['a'])) ?
-						null : $item['data']['a'];
-				},
-				$this->getNotesAsArray()));
-	}
-
-
-	public function getDistributor() {
-		return $this->getNote(self::DISTRIBUTOR_FIELD);
-	}
-
-
-	public function setDistributor($distributor) {
-		$this->addNote(self::DISTRIBUTOR_FIELD, $distributor);
-		return $this;
+		return $authors;
 	}
 
 
-	/**
+		/**
 	 * add author in unimarc container if not present with the same function
 	 */
 	public function addAuthor($name, $function = '') {
@@ -1558,8 +1485,10 @@ class Class_Album extends Storm_Model_Abstract {
 		if (null !== $function)
 			$datas['4'] = $function;
 
-		if (!in_array((string)$name, $this->getAuthorsNames()))
-			return $this->addZone(self::AUTHOR_FIELD, $datas);
+		if (!in_array((string)$name, $this->getAuthorsNames())) {
+			$this->getMarc()->addZone(self::AUTHOR_FIELD, $datas);
+			return $this;
+		}
 
 		if (!$function)
 			return $this;
@@ -1572,7 +1501,39 @@ class Class_Album extends Storm_Model_Abstract {
 			}
 		}
 
-		return (!$found) ? $this->addZone(self::AUTHOR_FIELD, $datas) : $this;
+		if (!$found)
+		  $this->getMarc()->addZone(self::AUTHOR_FIELD, $datas);
+
+		return $this;
+	}
+
+
+  /**
+	 * Editor from unimarc container
+	 * @return array
+	 */
+	public function getEditors() {
+		return $this->getMarc()->getSubfield(Class_Album::EDITOR_FIELD, 'c');
+	}
+
+
+	/**
+	 * Collection from unimarc container
+	 * @return array
+	 */
+	public function getCollections() {
+		return $this->getMarc()->getSubfield(self::COLLECTION_FIELD, 'a');
+	}
+
+
+	public function getDistributor() {
+		return $this->getMarc()->getNote(self::DISTRIBUTOR_FIELD);
+	}
+
+
+	public function setDistributor($distributor) {
+		$this->getMarc()->addNote(self::DISTRIBUTOR_FIELD, $distributor);
+		return $this;
 	}
 
 
@@ -1580,10 +1541,9 @@ class Class_Album extends Storm_Model_Abstract {
 	 * add editor in unimarc container if not present with the same function
 	 */
 	public function addEditor($name) {
-		if (!$name)
-			return $this;
-
-		return $this->addSubField('210', 'c', $name);
+		if ($name)
+			$this->getMarc()->addSubField('210', 'c', $name);
+		return $this;
 	}
 
 
@@ -1591,10 +1551,9 @@ class Class_Album extends Storm_Model_Abstract {
 	 * add collection in unimarc container if not present with the same function
 	 */
 	public function addCollection($name) {
-		if (!$name)
-			return $this;
-
-		return $this->addZone(self::COLLECTION_FIELD,['a' => $name]);
+		if ($name)
+			$this->getMarc()->addZone(self::COLLECTION_FIELD, ['a' => $name]);
+		return $this;
 	}
 
 
diff --git a/library/Class/Album/Marc.php b/library/Class/Album/Marc.php
new file mode 100644
index 0000000000000000000000000000000000000000..a0034a8abae0a31c345f445cb700e9e3ac6fd07c
--- /dev/null
+++ b/library/Class/Album/Marc.php
@@ -0,0 +1,141 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_Album_Marc {
+	protected $_datas;
+
+
+	public function __construct($datas) {
+		$this->setDatas($datas);
+	}
+
+
+	public function setDatas($array_or_string) {
+		$this->_datas = (is_array($array_or_string))
+			?	$array_or_string
+			:	unserialize($array_or_string);
+
+		if (!$this->_datas)
+			$this->_datas = [];
+
+		return $this;
+	}
+
+
+	public function getDatas() {
+		return $this->_datas;
+	}
+
+
+
+	public function getNote($field) {
+		return isset($this->_datas[$field])
+			? $this->_datas[$field]
+			: null;
+	}
+
+
+	public function addNote($field, $value) {
+		$this->_datas[$field] = $value;
+	}
+
+
+	public function clear() {
+		$this->_datas = [];
+		return $this;
+	}
+
+
+	public function addZone($zone, $sous_zones) {
+		$this->_datas[] = ['field' => $zone,
+											 'data' => $sous_zones];
+		return $this;
+	}
+
+
+	public function getSubfield($field, $subfield) {
+		if (!$datas = $this->getDatasOfField($field))
+			return [];
+
+		$values = [];
+		foreach($datas as $data) {
+			foreach($data as $key => $value) {
+				if (is_array($value) && ($value[0] == $subfield)) {
+					$values[] = $value[1];
+					continue;
+				}
+
+				if ($key == $subfield)
+					$values[] = $value;
+			}
+		}
+
+		return $values;
+	}
+
+
+	public function addSubField($field, $subfield, $value) {
+		foreach($this->_datas as $k => $v){
+			if (is_array($v) && isset($v['field']) && $v['field'] == $field) {
+				$this->_datas[$k]['data'][] = [$subfield, $value];
+				return $this;
+			}
+		}
+
+		return $this->addZone($field,
+													[ [ $subfield, $value ] ] );
+	}
+
+
+	public function clearZone($zone) {
+		foreach($this->_datas as $k => $data) {
+			if (is_array($data) && $data['field'] == $zone)
+				unset($this->_datas[$k]);
+		}
+
+		return $this;
+	}
+
+
+	public function clearZones($zones) {
+		array_map([$this, 'clearZone'], $zones);
+		return $this;
+	}
+
+
+	public function serialized() {
+		return serialize($this->_datas);
+	}
+
+
+	public function getDatasOfField($field) {
+		return array_filter(
+												array_map(
+																	function($note) use ($field) {
+																		return is_array($note) && $field === $note['field']
+																			?	$note['data']
+																			: null;
+																	},
+																	$this->_datas));
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/Class/Album/UsageConstraint.php b/library/Class/Album/UsageConstraint.php
new file mode 100644
index 0000000000000000000000000000000000000000..4fb22d5a3ea376a22260b05898c2e47102cd6573
--- /dev/null
+++ b/library/Class/Album/UsageConstraint.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Album_UsageConstraint extends Storm_Model_Abstract {
+	const
+		DEVICE_SHARE_CONSTRAINT = '04',
+		LOAN_CONSTRAINT = '06',
+		AVAILABILITY_CONSTRAINT = '07',
+		DURATION = 'duration',
+		QUANTITY = 'quantity',
+		ORDER_LINE_ID = 'order_line_id',
+		MAX_NB_OF_USERS = 'max_number_of_users';
+
+	protected
+		$_table_name = 'album_usage_constraints',
+		$_belongs_to = ['album' => ['model' => 'Class_Album']],
+		$_default_attribute_values = ['serialized_datas' => ''],
+		$_datas;
+
+
+	public function beforeSave() {
+		$this->setSerializedDatas($this->getDatas()->serialized());
+	}
+
+
+	public function isLoanConstraint() {
+		return $this->getUsageType() == self::LOAN_CONSTRAINT;
+	}
+
+
+	public function isAvailabilityConstraint() {
+		return $this->getUsageType() == self::AVAILABILITY_CONSTRAINT;
+	}
+
+
+	public function getDatas() {
+		if (!isset($this->_datas))
+			$this->_datas = (new Class_JSONSerializedDatas($this->getSerializedDatas()));
+		return $this->_datas;
+	}
+
+
+	public function getDuration() {
+		return (int)$this->getDatas()->get(self::DURATION);
+	}
+
+
+	public function getOrderLineId() {
+		return $this->getDatas()->get(self::ORDER_LINE_ID);
+	}
+
+	public function setOrderLineId($id) {
+		$this->getDatas()->set(self::ORDER_LINE_ID, $id);
+		return $this;
+	}
+
+	public function setDuration($value) {
+		$this->getDatas()->set(self::DURATION, $value);
+		return $this;
+	}
+
+
+	public function setQuantity($value) {
+		$this->getDatas()->set(self::QUANTITY, $value);
+		return $this;
+	}
+
+
+	public function getQuantity() {
+		return $this->getDatas()->get(self::QUANTITY);
+	}
+
+
+	public function setMaxNumberOfUsers($value) {
+		$this->getDatas()->set(self::MAX_NB_OF_USERS, $value);
+		return $this;
+	}
+
+
+	public function getMaxNumberOfUsers() {
+		return $this->getDatas()->get(self::MAX_NB_OF_USERS);
+	}
+
+
+	public function acceptVisitor($visitor) {
+		$visitor->visitUsageType($this->getUsageType());
+		$this->getDatas()
+				 ->keysAndValuesDo(
+													 function($k, $v) use ($visitor) {
+														 $visitor->visitUsageData($k, $v);
+													 });
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/Class/Album/UsageConstraints.php b/library/Class/Album/UsageConstraints.php
new file mode 100644
index 0000000000000000000000000000000000000000..a8b591ac1a85aa7b14e7eb101d12226b147fb695
--- /dev/null
+++ b/library/Class/Album/UsageConstraints.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Album_UsageConstraints extends Storm_Model_Collection_Abstract {
+	public function getLoanConstraint() {
+		return $this->detect(function($c) {return $c->isLoanConstraint();});
+	}
+
+
+	public function getLoanDuration() {
+		return $this->getLoanConstraint()->getDuration();
+	}
+
+
+	public function getLoanOrderLineId() {
+		return $this->getLoanConstraint()->getOrderLineId();
+	}
+
+
+	public function getLoanMaxNumberOfUsers() {
+		return $this->getLoanConstraint()->getMaxNumberOfUsers();
+	}
+
+
+	public function getLoanQuantity() {
+		return $this->getLoanConstraint()->getQuantity();
+	}
+
+
+	public function getAvailabilityDuration() {
+		return $this->detect(function($c) {return $c->isAvailabilityConstraint();})->getDuration();
+	}
+
+
+	public function acceptVisitor($visitor) {
+		return $this->eachDo(function($c) use ($visitor){ $visitor->visitUsageConstraint($c);});
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/AlbumCategorie.php b/library/Class/AlbumCategorie.php
index ff2775ba96ee49f208f60720defefc2c023a670b..6baacc7eff8b332828ec2558f9ee69653d21e176 100644
--- a/library/Class/AlbumCategorie.php
+++ b/library/Class/AlbumCategorie.php
@@ -76,7 +76,13 @@ class Class_AlbumCategorie extends Storm_Model_Abstract {
 															 'albums' => array('model' => 'Class_Album',
 																								 'role' => 'categorie',
 																								 'order' => 'titre',
-																								 'dependents' => 'delete'));
+																								 'dependents' => 'delete'),
+
+															 'validated_albums' => array('model' => 'Class_Album',
+																								 'role' => 'categorie',
+																								 'order' => 'titre',
+																								 'dependents' => 'delete',
+																								 'scope' => ['status' => Class_Album::STATUS_VALIDATED]));
 
 	protected $_default_attribute_values = array('parent_id' => 0);
 
diff --git a/library/Class/Article.php b/library/Class/Article.php
index c4125907fdda387a8593a368b59f725db9b30cac..2c9a8236cbc1afcd7f003610852c347e40df8969 100644
--- a/library/Class/Article.php
+++ b/library/Class/Article.php
@@ -759,13 +759,12 @@ class Class_Article extends Storm_Model_Abstract {
 	}
 
 
-	protected function _updateDateMaj() {
+	public function updateDateMaj() {
 		$this->setDateMaj(date('Y-m-d H:i:s', $this->getCurrentTime()));
 	}
 
-	public function beforeSave() {
-		$this->_updateDateMaj();
 
+	public function beforeSave() {
 		if ($this->isNew() && !$this->getDateCreation())
 			$this->setDateCreation($this->getDateMaj());
 
@@ -945,6 +944,18 @@ class Class_Article extends Storm_Model_Abstract {
 		return '';
 	}
 
+
+	public function getFirstImageAbsoluteURL() {
+		if(!$url = $this->getFirstImageURL())
+			return '';
+
+		if (filter_var($url, FILTER_VALIDATE_URL) === FALSE)
+			$url =  Class_Url::absolute($url);
+
+		return $url;
+	}
+
+
 	/**
 	 * @param int $value
 	 * @return Class_Article
@@ -1236,7 +1247,17 @@ class Class_Article extends Storm_Model_Abstract {
 
 	public function acceptClefAlphaVisitor($visitor) {
 		$visitor->visitTitre($this->getTitre())
+						->visitComplementTitre($this->getId())
+						->visitAuteur($this->getAuthorName())
 						->visitTypeDocId($this->getTypeDocId());
 	}
+
+
+	protected function getAuthorName() {
+		if(!$author = $this->getAuteur())
+			return '';
+		return $author->getLoginOrFullName();
+	}
+
 }
 ?>
\ No newline at end of file
diff --git a/library/Class/AvisNotice.php b/library/Class/AvisNotice.php
index 99a727b2858f13e42af46e109fa1be7d7678a25b..0d68bf1713d90aec162302409ed3b95e759699d3 100644
--- a/library/Class/AvisNotice.php
+++ b/library/Class/AvisNotice.php
@@ -16,11 +16,11 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class AvisNoticeLoader extends Storm_Model_Loader {
-	protected function _addCatalogueConditions($select, $preferences) {
+	protected function _addCatalogueConditions($preferences, &$params) {
 		// voir fonction Class_Catalogue::getReguetes
 		$preferences["nb_notices"] = null; // charge toutes les notices avec avis
 		$preferences["aleatoire"] = 0; // on veut toutes les notices
@@ -30,31 +30,38 @@ class AvisNoticeLoader extends Storm_Model_Loader {
 
     if (count($notices) == 0) {
 			//on ne doit retourner aucun avis
-			$select->where('0=1');
+			$params['id_notice'] = '-1';
 			return $this;
     }
 
 		$clefs_oeuvres = [];
 		foreach($notices as $notice)
-			$clefs_oeuvres []= $notice['clef_oeuvre'];
+			$clefs_oeuvres []= $notice->getClefOeuvre();
 
-		$select->where('notices_avis.clef_oeuvre in (?)', $clefs_oeuvres);
+		$params['clef_oeuvre'] = $clefs_oeuvres;
 		return $this;
 	}
 
 
-	protected function _addStatutAbonBibWhereClause($select, $abon_ou_bib) {
+	protected function _addStatutAbonBibWhereClause($abon_ou_bib, &$params) {
 		$modo_avis_abo = Class_AdminVar::get('MODO_AVIS');       // 0 apres / 1 avant de publier sur le site
 		$modo_avis_bib = Class_AdminVar::get('MODO_AVIS_BIBLIO');   // 0 apres / 1 avant de publier sur le site
 
-		if (($abon_ou_bib == '0') || ($abon_ou_bib == '1'))
-			$select->where("ABON_OU_BIB=?", $abon_ou_bib);
-			
-		if ($modo_avis_abo == 1)
-			$select->where('STATUT=1 OR ABON_OU_BIB=1');
+		if (($abon_ou_bib == '0') || ($abon_ou_bib == '1')) {
+			$params['ABON_OU_BIB'] = $abon_ou_bib;
+		}
+
+		$where = [];
+		if ($modo_avis_abo == 1) {
+			$where []= '(STATUT=1 OR ABON_OU_BIB=1)';
+		}
 
-		if ($modo_avis_bib == 1)
-			$select->where('STATUT=1 OR ABON_OU_BIB=0');
+		if ($modo_avis_bib == 1) {
+			$where []= '(STATUT=1 OR ABON_OU_BIB=0)';
+		}
+
+		if ($where)
+			$params['where'] = implode(' AND ', $where);
 
 		return $this;
 	}
@@ -67,10 +74,7 @@ class AvisNoticeLoader extends Storm_Model_Loader {
 		On prends les avis soit du catalogue, soit du panier, soit les dernier avis
 	 */
 	public function getAvisFromPreferences($preferences) {
-		$select = $this
-			->getTable()
-			->select()
-			->order('DATE_AVIS DESC');
+		$params = ['order' => 'DATE_AVIS DESC'];
 
 		$preferences = array_merge(['id_panier' => 0,
 																'id_catalogue' => 0,
@@ -82,11 +86,11 @@ class AvisNoticeLoader extends Storm_Model_Loader {
 		$abon_ou_bib = $preferences['abon_ou_bib'];
 
 		/* Retourne les derniers avis si aucun catalogue ni panier de spécifié */
-		if ($id_panier or $id_catalogue) 
-			$this->_addCatalogueConditions($select, $preferences);
+		if ($id_panier or $id_catalogue)
+			$this->_addCatalogueConditions($preferences, $params);
 
-		$this->_addStatutAbonBibWhereClause($select, $abon_ou_bib);
-		return $this->findAll($select);
+		$this->_addStatutAbonBibWhereClause($abon_ou_bib, $params);
+		return Class_AvisNotice::getLoader()->findAllBy($params);
 	}
 
 
@@ -100,7 +104,7 @@ class AvisNoticeLoader extends Storm_Model_Loader {
 
 
 class Class_AvisNotice  extends Storm_Model_Abstract {
-	use Trait_Avis;
+	use Trait_Avis, Trait_Translator;
 
 	protected $_loader_class = 'AvisNoticeLoader';
 	protected $_table_name = 'notices_avis';
@@ -115,10 +119,11 @@ class Class_AvisNotice  extends Storm_Model_Abstract {
 
 
 	public static function sortByDateAvisDesc($avis_list) {
-		usort($avis_list, array('Class_AvisNotice', 'compareByDateAvisDesc'));
+		usort($avis_list, ['Class_AvisNotice', 'compareByDateAvisDesc']);
 		return $avis_list;
 	}
 
+
 	public static function compareByDateAvisDesc($one, $two) {
 		return strtotime($one->getDateAvis()) < strtotime($two->getDateAvis());
 	}
@@ -140,37 +145,37 @@ class Class_AvisNotice  extends Storm_Model_Abstract {
 
 
 	public static function filterVisibleForUser($user, $avis_list) {
-		return self::filterByMethod($avis_list, 'isVisibleForUser', array($user));
+		return self::filterByMethod($avis_list, 'isVisibleForUser', [$user]);
 	}
 
 
 	public function getNote() {
-		if (!$this->_attributes['note'])
-			return 0;
-		return $this->_attributes['note'];
+		return !$this->_attributes['note'] ?
+			0 : $this->_attributes['note'];
 	}
 
 
 	public static function getNoteAverage($avis_list) {
-		if (!$avis_list or count($avis_list) == 0) return 0; 
+		if (!$avis_list or count($avis_list) == 0)
+			return 0;
 
 		$sum = 0;
-		foreach($avis_list as $avis) $sum += $avis->getNote();
+		foreach($avis_list as $avis)
+			$sum += $avis->getNote();
 		$avg = $sum / count($avis_list);
 		return round($avg * 2) / 2;
 	}
 
 
 	public function getNotices() {
-		if (!isset($this->_notices)) {
+		if (!isset($this->_notices))
 			$this->_notices = $this->_findNoticesByClefOeuvre();
-		}
 		return $this->_notices;
 	}
 
 
 	/**
-	 * Recherche les notices liées à cet avis. Si non trouvé (par exemple l'auteur de la clé 
+	 * Recherche les notices liées à cet avis. Si non trouvé (par exemple l'auteur de la clé
 	 * oeuvre à été mis à jour dans le SIGB, essaye de retrouver la notice et réaffecte l'avis
 	 */
 	protected function _findNoticesByClefOeuvre() {
@@ -205,6 +210,7 @@ class Class_AvisNotice  extends Storm_Model_Abstract {
 		return $this->setNotices(array($notice));
 	}
 
+
 	public function getFirstNotice() {
 		$notices = $this->getNotices();
 		if (count($notices) == 0)
@@ -217,6 +223,7 @@ class Class_AvisNotice  extends Storm_Model_Abstract {
 		return $notices[0];
 	}
 
+
 	public function setNotices($notices) {
 		$this->_notices = $notices;
 		return $this;
@@ -233,34 +240,39 @@ class Class_AvisNotice  extends Storm_Model_Abstract {
 
 
 	public function validate() {
+		$this->_validateLengths();
+
+		$this->checkAttribute('entete',
+													$this->getEntete(),
+													$this->_('Vous devez saisir un titre') );
+	}
+
+
+	protected function _validateLengths() {
+		if ((null !== $this->getUser()) && $this->getUser()->isBibliothecaire())
+			return;
+
 		$longueur_min = Class_AdminVar::get("AVIS_MIN_SAISIE");
 		$longueur_max = Class_AdminVar::get("AVIS_MAX_SAISIE");
 		$longueur_avis = strlen($this->getAvis());
 
-		$translate = Zend_Registry::get('translate');
-
-		$this->checkAttribute('avis', 
+		$this->checkAttribute('avis',
 													$longueur_avis >= $longueur_min && $longueur_avis <= $longueur_max,
-													$translate->_("L'avis doit avoir une longueur comprise entre %s et %s caractères", $longueur_min, $longueur_max));
-
-		$this->checkAttribute('entete',
-													$this->getEntete(), 
-													$translate->_('Vous devez saisir un titre') );
+													$this->_("L'avis doit avoir une longueur comprise entre %s et %s caractères",
+																	 $longueur_min, $longueur_max));
 	}
 
+
 	public function beforeSave() {
-		
 		$user = $this->getUser();
 		if (null !== $user)
-			$this->setUserKey($user->getIdabon().'--'.$user->getIdSite().'--'.$user->getLogin());
-		if ((null !== $user) && $user->isBibliothecaire())
-			$this->setAbonOuBib(1);
-		else
-			$this->setAbonOuBib(0);
+			$this->setUserKey(sprintf('%s--%s--%s',
+																$user->getIdabon(), $user->getIdSite(), $user->getLogin()));
 
+		$this->setAbonOuBib((null !== $user) && $user->isBibliothecaire() ? 1 : 0);
 	}
 
-	
+
 	public function getUrlVignette() {
 		if (!$notice = $this->getFirstNotice())
 			return '';
diff --git a/library/Class/Batch.php b/library/Class/Batch.php
index 43729e2926a8c315bde4bf608ac7277c8a123ea9..47085490b7a07778f8d2ba06bc7b1c56b1738a8a 100644
--- a/library/Class/Batch.php
+++ b/library/Class/Batch.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_BatchLoader extends Storm_Model_Loader{
@@ -30,7 +30,7 @@ class Class_BatchLoader extends Storm_Model_Loader{
 						'INDEX_RESSOURCES_NUMERIQUES' => new Class_Batch_IndexRessourcesNumeriques(),
 						'AUTOCOMPLETE_RECORD_TITLE' => new Class_Batch_AutocompleteRecordTitle(),
 						'AUTOCOMPLETE_RECORD_AUTHOR' => new Class_Batch_AutocompleteRecordAuthor(),
-						'BUILD_SITE_MAP' => new Class_Batch_BuildSiteMap()
+						'BUILD_SITE_MAP' => new Class_Batch_BuildSiteMap(),
 			]);
 	}
 
@@ -40,7 +40,9 @@ class Class_BatchLoader extends Storm_Model_Loader{
 						'MOISSONNAGE_NUMERIQUEPREMIUM' => new Class_Batch_NumeriquePremium(),
 						'MOISSONNAGE_NUMILOG' => new Class_Batch_Numilog(),
 						'MOISSONNAGE_CYBERLIBRIS' => new Class_Batch_Cyberlibris(),
-						'MOISSONNAGE_TOUTAPPRENDRE' => new Class_Batch_ToutApprendre()
+						'MOISSONNAGE_TOUTAPPRENDRE' => new Class_Batch_ToutApprendre(),
+						'MOISSONNAGE_1DTOUCH' => new Class_Batch_OneDTouch(),
+						'MOISSONNAGE_ORPHEA' => new Class_Batch_Orphea(),
 		];
 	}
 
@@ -55,7 +57,7 @@ class Class_BatchLoader extends Storm_Model_Loader{
 		$batchs_objets = Class_Batch::findAll();
 		foreach($batchs_objets as $batch)
 			$result[] = $batch->getType();
-		return $result;	
+		return $result;
 	}
 
 
diff --git a/library/Class/Batch/OneDTouch.php b/library/Class/Batch/OneDTouch.php
new file mode 100644
index 0000000000000000000000000000000000000000..74dc587e7d100b190bc1864a229cdcf7c5c4cad9
--- /dev/null
+++ b/library/Class/Batch/OneDTouch.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ */
+
+
+class Class_Batch_OneDTouch extends Class_Batch_RessourceNumerique{
+	protected function _getService() {
+		return new Class_WebService_BibNumerique_OneDTouch();
+	}
+}
+?>
diff --git a/library/Class/Batch/Orphea.php b/library/Class/Batch/Orphea.php
new file mode 100644
index 0000000000000000000000000000000000000000..048972d4ac61859a6fce89a84b702ffddc0c952a
--- /dev/null
+++ b/library/Class/Batch/Orphea.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Batch_Orphea extends Class_Batch_RessourceNumerique{
+	protected function _getService() {
+		return new Class_WebService_BibNumerique_Orphea();
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Catalogue.php b/library/Class/Catalogue.php
index b442552b0a2cf8c8c0fb0b2bc44074fd2d5f103e..4c5197485946cfc198704bbed2874c70fbdbb16e 100644
--- a/library/Class/Catalogue.php
+++ b/library/Class/Catalogue.php
@@ -272,48 +272,15 @@ class CatalogueLoader extends Storm_Model_Loader {
 		return Class_Catalogue::getRoot()->findByPath($treeNode->getPath());
 	}
 
-	public function fetchAllNoticesByPreferences($preferences, $cache_vignette) {
+
+	public function fetchAllNoticesByPreferences($preferences) {
 		$requetes = $this->getRequetes($preferences);
 		if (!array_key_exists("req_liste", $requetes))
-			return array();
-
-		$req_liste = str_replace('select *',
-														 'select notices.id_notice, notices.editeur, notices.annee, notices.date_creation, notices.date_maj, notices.facettes, notices.clef_oeuvre',
-														 $requetes["req_liste"]);
-
-		$catalogue = fetchAll($req_liste);
-		if (!$catalogue)
 			return [];
 
-		$class_notice = new Class_Notice();
-		$class_img = new Class_WebService_Vignette();
-
-		$notices = [];
-		foreach($catalogue as $notice)	{
-			$enreg = ($model = Class_Notice::find($notice['id_notice']))
-				? $model->getNotice('JA') : [];
-			$vignette = '';
-			if ($cache_vignette)	{
-				if($cache_vignette=="url") $mode=false; else $mode=true;
-				$vignette=$class_img->getImage($enreg["id_notice"],$mode);
-			}
-
-			if (!$cache_vignette or $vignette) {
-				$notices[] = ["id_notice" => $enreg["id_notice"],
-											"titre" => $enreg["J"],
-											"auteur" => $enreg["A"],
-											"vignette" => $vignette,
-											"type_doc" => $enreg["type_doc"],
-											"editeur" => $notice["editeur"],
-											"annee" => $notice["annee"],
-											"date_creation" => $notice["date_creation"],
-											"date_maj" => $notice["date_maj"],
-											"facettes" => $notice["facettes"],
-											"clef_oeuvre" => $notice["clef_oeuvre"]];
-			}
-		}
-
-		return $notices;
+		return Class_Notice::findAllByRequeteRecherche($requetes['req_ids'],
+																									 $preferences['nb_notices'],
+																									 1);
 	}
 
 
@@ -471,11 +438,15 @@ class CatalogueLoader extends Storm_Model_Loader {
 		$limite = ($limite) ? 'LIMIT 0,' . $limite : '';
 
 		$order_by = '';
-		if($preferences["tri"]==0)
+
+		if (!isset($preferences["tri"]))
+			$preferences["tri"] = 0;
+
+		if ($preferences["tri"]==0)
 			$order_by=" order by alpha_titre ";
-		if($preferences["tri"]==1)
+		if ($preferences["tri"]==1)
 			$order_by=" order by date_creation DESC ";
-		if($preferences["tri"]==2)
+		if ($preferences["tri"]==2)
 			$order_by=" order by nb_visu DESC ";
 
 		$condition = (array_isset("only_img", $preferences)
@@ -499,22 +470,20 @@ class CatalogueLoader extends Storm_Model_Loader {
 	}
 
 
-	public function getNoticesFromCacheByPreferences($preferences, $cache_vignette) {
+	public function getNoticesFromCacheByPreferences($preferences) {
 		return (new Storm_Cache())
-			->memoize([$preferences, __CLASS__, __FUNCTION__, $cache_vignette],
-								function() use ($preferences, $cache_vignette) {
-																																	return Class_Catalogue::getLoader()->fetchAllNoticesByPreferences($preferences, $cache_vignette);
-																																});
+			->memoize([$preferences, __CLASS__, __FUNCTION__],
+								function() use ($preferences) { return Class_Catalogue::getLoader()->fetchAllNoticesByPreferences($preferences);});
 	}
 
 
-	public function getNoticesByPreferences($preferences, $cache_vignette=false)	{
+	public function getNoticesByPreferences($preferences)	{
 		if (isset($preferences['id_catalogue'])
 				&& ($catalogue = Class_Catalogue::getLoader()->find($preferences['id_catalogue']))) {
 			$preferences['catalogue_cache_key'] = serialize($catalogue->toArray());
 		}
 
-		$notices = $this->getNoticesFromCacheByPreferences($preferences, $cache_vignette);
+		$notices = $this->getNoticesFromCacheByPreferences($preferences);
 
 		if ((int)$preferences["aleatoire"] !== 1)
 			return $notices;
diff --git a/library/Class/CosmoVar.php b/library/Class/CosmoVar.php
index e8e5a9343d70dcb4c4a3346d36435cbc8fd8376c..6ff2276bc1e7b4796406faaf93937d18770e2836 100644
--- a/library/Class/CosmoVar.php
+++ b/library/Class/CosmoVar.php
@@ -16,12 +16,19 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_CosmoVarLoader extends Storm_Model_Loader {
 	public function getValueOf($name) {
-		return ($model = Class_CosmoVar::find($name)) ? $model->getValeur() : null;
+		return ($model = Class_CosmoVar::find($name)) ?
+			$model->getValeur() : null;
+	}
+
+
+	public function setValueOf($name, $value) {
+		return ($model = Class_CosmoVar::find($name)) ?
+			$model->setValeur($value)->save() : false;
 	}
 
 
@@ -62,13 +69,23 @@ class Class_CosmoVarLoader extends Storm_Model_Loader {
 
 			if (strpos($liste, "\r\n$value:") !== false)
 				$liste=$this->updateLabelInList($value,$label,$liste);
-			else 
+			else
 				$liste .= "\r\n$value:$label";
 
 			$model->setListe($liste)->save();
 
 			return $this;
 	}
+
+
+	public function increment($name) {
+		if (!$model = Class_CosmoVar::find($name))
+			return 0;
+
+		$model->setValeur($model->getValeur()+1)
+					->save();
+		return $model->getValeur();
+	}
 }
 
 
diff --git a/library/Class/Cosmogramme/Chronometre.php b/library/Class/Cosmogramme/Chronometre.php
new file mode 100644
index 0000000000000000000000000000000000000000..bbc5c441a540ea0cc192ca1b24afb257bc806d02
--- /dev/null
+++ b/library/Class/Cosmogramme/Chronometre.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Cosmogramme_Chronometre {
+	use Trait_TimeSource;
+
+	protected $_start, $_limit;
+
+	public function start($from=0) {
+		$this->_start = ($from > 0) ?
+			$from : $this->getTimeSource()->time();
+		return $this;
+	}
+
+
+	public function getStart() {
+		return $this->_start;
+	}
+
+
+	public function elapsed($from=null) {
+		$from = $from ? $from : $this->_start;
+		return $this->getTimeSource()->time() - $from;
+	}
+
+
+	public function setLimit($until_hour) {
+		if (!$until_hour) {
+			$this->_limit = 0;
+			return 'aucune';
+		}
+
+		$h = substr($until_hour, 0, 2);
+		$m = substr($until_hour, 3, 2);
+
+		$time_source = $this->getTimeSource();
+		$now = $time_source->time();
+		$this->_limit = $time_source->mktime($h, $m, 0,
+																				 date("m", $now),
+																				 date("d", $now),
+																				 date("Y", $now));
+		if ($this->_limit < $now)
+			$this->_limit = $time_source->mktime($h, $m, 0,
+																					 date("m", $this->_limit),
+																					 date("d", $this->_limit)+1,
+																					 date("Y", $this->_limit));
+
+		return date('H:i', $this->_limit);
+	}
+
+
+	public function exceeded() {
+		return $this->_limit
+			&& $this->getTimeSource()->time() > $this->_limit;
+	}
+
+
+	public function end() {
+		$elapsed = $this->elapsed();
+		$seconds = $elapsed % 60;
+		$minutes = (int)($elapsed / 60);
+		$hours = (int)($minutes / 60);
+		$minutes = $minutes % 60;
+
+		return ($hours ? ($hours . ' h ') : '')
+			. ($minutes ? ($minutes . ' min. ') : '')
+			. $seconds . ' sec.';
+	}
+
+
+	public function mean($total, $label) {
+		if (!$elapsed = $this->elapsed())
+			$elapsed = 1;
+		$mean = $total / ($elapsed / 60);
+
+		return number_format($mean, 0, ',', '.')
+			. ' ' . $label . ' par minute';
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Cosmogramme/FileParser.php b/library/Class/Cosmogramme/FileParser.php
new file mode 100644
index 0000000000000000000000000000000000000000..ccc264c8c2da994d22d61081d767e3ce1615bfa6
--- /dev/null
+++ b/library/Class/Cosmogramme/FileParser.php
@@ -0,0 +1,348 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+/**
+ * /!\ WIP
+ * Bokeh translation from cosmogramme API cosmogramme/php/classes/classe_parseur.php
+ */
+abstract class Class_Cosmogramme_FileParser {
+	use Trait_StaticFileSystem;
+
+	const FORMAT_UNIMARC = 0;
+	const FORMAT_ASCII_TAB = 1;
+	const FORMAT_ASCII_COMMA = 2;
+	const FORMAT_ASCII_PIPE = 3;
+	const FORMAT_XML = 4;
+	const FORMAT_CSV = 5;
+	const FORMAT_MARC21 = 6;
+
+	protected static $_format_parsers =
+		[self::FORMAT_UNIMARC => 'Marc',
+		 self::FORMAT_ASCII_TAB => 'Ascii_Tab',
+		 self::FORMAT_ASCII_COMMA => 'Ascii_Comma',
+		 self::FORMAT_ASCII_PIPE => 'Ascii_Pipe',
+		 self::FORMAT_XML => 'Xml',
+		 self::FORMAT_CSV => 'Csv',
+		 self::FORMAT_MARC21 => 'Marc'];
+
+	protected $_file_handle, $_position, $_file_size;
+	protected $_errors = [];
+
+
+	public static function openFor($file, $position, $profil) {
+		$format = $profil->getFormat();
+		if (!in_array($format, array_keys(static::$_format_parsers)))
+			throw new RuntimeException('Format ' . $format . ' non pris en charge');
+
+		$class = 'Class_Cosmogramme_FileParser_' . static::$_format_parsers[$format];
+		return new $class($file, $position, $profil);
+	}
+
+
+	public function __construct($file, $position, $profil) {
+		$fileSystem = $this->getFileSystem();
+		$this->_file_handle = @$fileSystem->fopen($file, 'rb');
+		if (!$this->_file_handle) {
+			$this->_errors[] = 'Impossible d\'ouvrit le fichier :' . $file;
+			return false;
+		}
+
+		$this->_position = $position;
+		$this->_goto($position);
+
+		$this->_buffer = '';
+		$this->_file_size = $fileSystem->filesize($file);
+
+		return true;
+	}
+
+
+	public function isValid() {
+		return empty($this->_errors);
+	}
+
+
+	public function _goto($position) {
+		if ($this->_file_handle && $position > 0)
+			$this->getFileSystem()->fseek($this->_file_handle, $position);
+		return $this;
+	}
+
+
+	public function next() {
+		$this->_goto($this->_position);
+		$adresse = $this->_position;
+
+		$ret = $this->_next();
+
+		$ret->setPosition($adresse)
+				->setNextPosition($this->_position)
+				->setCompletion(intval(($this->_position / $this->_file_size) * 100));
+
+		if ($ret->isEnd())
+			$this->close();
+
+		return $ret;
+	}
+
+
+	protected function close() {
+		if ($this->_file_handle)
+			$this->getFileSystem()->fclose($this->_file_handle);
+		unset($this->_file_handle);
+	}
+
+
+	abstract protected function _next();
+}
+
+
+
+class Class_Cosmogramme_FileParser_Marc extends Class_Cosmogramme_FileParser {
+	const READ_SIZE = 4096;
+
+	protected function _next() {
+		$fileSystem = $this->getFileSystem();
+
+		$end_record = chr(30).chr(29);
+		$data = '';
+		$at_end = false;
+
+		while(true) {
+			if (false !== ($pos = strpos($data, $end_record))) {
+				$data = substr($data, 0, ($pos + 2));
+				break;
+			}
+
+			$record = $fileSystem->fread($this->_file_handle, self::READ_SIZE);
+			if ($fileSystem->feof($this->_file_handle)
+					&& !$record) {
+				$at_end = true;
+				break;
+			}
+
+			$data .= $record;
+		}
+
+		$ret = new Class_Cosmogramme_FileParserRecord($data);
+		$at_end ? $ret->beEnd() : $ret->beOk();
+		$this->_position += strlen($data);
+
+		return $ret;
+	}
+}
+
+
+
+abstract class Class_Cosmogramme_FileParser_Ascii extends Class_Cosmogramme_FileParser {
+	protected $_separator;
+
+	protected function _next() {
+		$fileSystem = $this->getFileSystem();
+		$data = trim($fileSystem->fgets($this->_file_handle));
+		if ($this->_separator != chr(9))
+			$data = str_replace($this->_separator, chr(9), $data);
+		$this->_position = $fileSystem->ftell($this->_file_handle);
+
+		$ret = new Class_Cosmogramme_FileParserRecord($data);
+		$fileSystem->feof($this->_file_handle) ? $ret->beEnd() : $ret->beOk();
+
+		return $ret;
+	}
+}
+
+
+class Class_Cosmogramme_FileParser_Ascii_Tab extends Class_Cosmogramme_FileParser_Ascii {
+	protected $_separator = "\t";
+}
+
+
+class Class_Cosmogramme_FileParser_Ascii_Comma extends Class_Cosmogramme_FileParser_Ascii {
+	protected $_separator = ';';
+}
+
+
+class Class_Cosmogramme_FileParser_Ascii_Pipe extends Class_Cosmogramme_FileParser_Ascii {
+	protected $_separator = '|';
+}
+
+
+
+class Class_Cosmogramme_FileParser_Xml extends Class_Cosmogramme_FileParser {
+	const READ_SIZE = 1024;
+
+	protected $_xml_separator;
+
+	public function __construct($file, $position, $profil) {
+		parent::__construct($file, $position, $profil);
+		if (!$this->isValid())
+			return;
+
+		$data = $profil->getAttributs();
+		$attributs = unserialize($data);
+		$this->_xml_separator = $attributs[5]['xml_balise_abonne'];
+		if (!$this->_xml_separator) {
+			$this->_errors[] = 'La balise Xml qui sépare les enregistrements n\'est pas définie.';
+		}
+	}
+
+
+	protected function _next() {
+		$start_record = '<' . $this->_xml_separator . '>';
+		$end_record = '</' . $this->_xml_separator . '>';
+
+		$data = '';
+		$fileSystem = $this->getFileSystem();
+		$start_position = $end_position = null;
+
+		while(true) {
+			if (!$start_position) {
+				$start_position = stripos($data, $start_record);
+				if ($start_position !== false )
+					$data = substr($data, $start_position);
+			}
+
+			if ($start_position !== false) {
+				$end_position = stripos($data, $end_record);
+				if ($end_position !== false ) {
+					$data = substr($data, 0, ($end_position + strlen($end_record)));
+					break;
+				}
+			}
+
+			$record = $fileSystem->fread($this->_file_handle, self::READ_SIZE);
+			if ($fileSystem->feof($this->_file_handle)
+					&& !$record)
+				return (new Class_Cosmogramme_FileParserRecord(''))->beEnd();
+
+			$data .= $record;
+		}
+
+		$ret = (new Class_Cosmogramme_FileParserRecord($data))->beOk();
+		$this->_position += strlen($data);
+
+		return $ret;
+	}
+}
+
+
+
+class Class_Cosmogramme_FileParser_Csv extends Class_Cosmogramme_FileParser {
+	protected function _next() {
+		$fileSystem = $this->getFileSystem();
+		$data = trim($fileSystem->fgets($this->_file_handle));
+		$data = str_replace('","', chr(9), $data);
+		$data = str_replace('"', '', $data);
+
+		$this->_position = $fileSystem->ftell($this->_file_handle);
+		$ret = new Class_Cosmogramme_FileParserRecord($data);
+		$fileSystem->feof($this->_file_handle) ? $ret->beEnd() : $ret->beOk();
+		return $ret;
+	}
+}
+
+
+
+class Class_Cosmogramme_FileParserRecord {
+	const STATUS_OK = 'ok';
+	const STATUS_ERROR = 'error';
+	const STATUS_END = 'eof';
+
+	protected $_status, $_data, $_completion, $_position, $_next_position, $_error;
+
+
+	public function __construct($data='') {
+		$this->_data = $data;
+	}
+
+
+	public function withErrorDo($closure) {
+		return $closure($this->_error);
+	}
+
+
+	public function withDataDo($closure) {
+		return $closure($this->_data);
+	}
+
+
+	public function withNextPositionDo($closure) {
+		return $closure($this->_next_position);
+	}
+
+
+	public function setCompletion($completion) {
+		$this->_completion = $completion;
+		return $this;
+	}
+
+
+	public function setPosition($position) {
+		$this->_position = $position;
+		return $this;
+	}
+
+
+	public function setNextPosition($position) {
+		$this->_next_position = $position;
+		return $this;
+	}
+
+
+	public function setError($error) {
+		$this->_error = $error;
+		return $this;
+	}
+
+
+	public function beOk() {
+		$this->_status = self::STATUS_OK;
+		return $this;
+	}
+
+
+	public function isOk() {
+		return $this->_status == self::STATUS_OK;
+	}
+
+
+	public function beError() {
+		$this->_status = self::STATUS_ERROR;
+		return $this;
+	}
+
+
+	public function isError() {
+		return $this->_status == self::STATUS_ERROR;
+	}
+
+
+	public function beEnd() {
+		$this->_status = self::STATUS_END;
+		return $this;
+	}
+
+
+	public function isEnd() {
+		return $this->_status == self::STATUS_END;
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Cosmogramme/Integration.php b/library/Class/Cosmogramme/Integration.php
index de34d4508746e73df15436b4b2602083e73db67d..1be05660c303d996352eb944967d96b18925d555 100644
--- a/library/Class/Cosmogramme/Integration.php
+++ b/library/Class/Cosmogramme/Integration.php
@@ -23,6 +23,11 @@
 class Class_Cosmogramme_Integration extends Storm_Model_Abstract {
 	use Trait_StaticFileSystem;
 
+	const TYPE_OPERATION_INCREMENT = 0;
+	const TYPE_OPERATION_ITEM_DELETE = 1;
+	const TYPE_OPERATION_TOTAL = 2;
+	const TYPE_OPERATION_PERGAME_HEADER_DELETE = 3;
+
 	protected $_table_name = 'integrations';
 	protected $_belongs_to = [
 		'bib' => ['model' => 'Class_IntBib',
@@ -34,6 +39,16 @@ class Class_Cosmogramme_Integration extends Storm_Model_Abstract {
 												 'referenced_in' => 'profil']];
 
 
+	public function isTotal() {
+		return self::TYPE_OPERATION_TOTAL == $this->getTypeOperation();
+	}
+
+
+	public function isIncrement() {
+		return self::TYPE_OPERATION_INCREMENT == $this->getTypeOperation();
+	}
+
+
 	public function getFileSize() {
 		if (!$this->fileExists())
 			return 0;
@@ -76,5 +91,15 @@ class Class_Cosmogramme_Integration extends Storm_Model_Abstract {
 			return [];
 		return unserialize(stripslashes($this->getWarnings()));
 	}
+
+
+	public function isPergame() {
+		return $this->getBib()->isPergame();
+	}
+
+
+	public function shouldClean() {
+		return $this->isTotal() && !$this->getPointeurReprise();
+	}
 }
 ?>
\ No newline at end of file
diff --git a/library/Class/Cosmogramme/Integration/Chronometre.php b/library/Class/Cosmogramme/Integration/Chronometre.php
new file mode 100644
index 0000000000000000000000000000000000000000..ce4461c9ff291c94549af5a11b38af6948038325
--- /dev/null
+++ b/library/Class/Cosmogramme/Integration/Chronometre.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Cosmogramme_Integration_Chronometre {
+	protected $_main, $_on_file, $_on_100_records;
+
+	public static function fromLegacyState($main, $on_file, $on_records) {
+		return (new Class_Cosmogramme_Integration_Chronometre())
+			->startMain($main->startTime)
+			->startOnFile($on_file->startTime)
+			->startOnRecords($on_records->startTime);
+	}
+
+
+	public function __construct() {
+		$this->_main = new Class_Cosmogramme_Chronometre();
+		$this->_on_file = new Class_Cosmogramme_Chronometre();
+		$this->_on_records = new Class_Cosmogramme_Chronometre();
+	}
+
+
+	public function backToLegacyState($main, $on_file, $on_records) {
+		foreach ([$main => $this->_main,
+							$on_file => $this->_on_file,
+							$on_records => $this->_on_records] as $legacy => $internal)
+			$legacy->startTime = $internal->getStart();
+	}
+
+
+	public function timeout() {
+		return ($timeout = intval(ini_get('max_execution_time') * 0.75)) ?
+			$timeout : 25; // Pour le debugger
+	}
+
+
+	public function mainElapsed() {
+		return $this->_main->elapsed();
+	}
+
+
+	public function setOnFile($chrono) {
+		$this->_on_file = $chrono;
+		return $this;
+	}
+
+
+	public function setOnRecords($chrono) {
+		$this->_on_records = $chrono;
+		return $this;
+	}
+
+
+	public function start($from=0) {
+		return $this->startMain($from)
+								->startOnFile($from)
+								->startOnRecords($from);
+	}
+
+
+	public function startMain($from=0) {
+		$this->_main->start($from);
+		return $this;
+	}
+
+
+	public function startOnRecords($from=0) {
+		$this->_on_records->start($from);
+		return $this;
+	}
+
+
+	public function startOnFile($from=0) {
+		$this->_on_file->start($from);
+		return $this;
+	}
+
+
+	public function endFile() {
+		return $this->_on_file->end();
+	}
+
+
+	public function meanOnFile($total, $label) {
+		return $this->_on_file->mean($total, $label);
+	}
+
+
+	public function elapsedOnRecords() {
+		return $this->_on_records->elapsed();
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Cosmogramme/Integration/Phase.php b/library/Class/Cosmogramme/Integration/Phase.php
new file mode 100644
index 0000000000000000000000000000000000000000..61d5a9b2af0d8911df914fda0176039694c4904d
--- /dev/null
+++ b/library/Class/Cosmogramme/Integration/Phase.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_Cosmogramme_Integration_Phase {
+	use Trait_TimeSource;
+
+	protected $_id;
+	protected $_datas = [];
+	protected $_is_callback = false;
+	protected $_is_cron = false;
+
+
+	public static function fromLegacyState($id, $datas, $is_cron, $is_callback) {
+		$instance = new Class_Cosmogramme_Integration_Phase($id);
+		foreach($datas as $k => $v)
+			$instance->setData($k, $v);
+
+		if ($is_callback)
+			$instance->beCallBack();
+
+		if ($is_cron)
+			$instance->beCron();
+
+		return $instance;
+	}
+
+
+	public function __construct($id) {
+		$this->_id = $id;
+		$this->_datas = ['nombre' => 0,
+										 'nb_fic' => 0,
+										 'timeStart' => $this->getTimeSource()->time(),
+										 'pointeur' => ''];
+	}
+
+
+	public function backToLegacyState(&$id, &$datas, &$is_cron, &$is_callback) {
+		$id = $this->_id;
+		$is_cron = $this->isCron();
+		$is_callback = $this->isCallBack();
+
+		$datas = [];
+		foreach($this->_datas as $k => $v)
+			$datas[$k] = $v;
+	}
+
+
+	public function isId($id) {
+		return $id == $this->_id;
+	}
+
+
+	public function isCron() {
+		return $this->_is_cron;
+	}
+
+
+	public function beCron() {
+		$this->_is_cron = true;
+		return $this;
+	}
+
+
+	public function beSameCronAs($other) {
+		$this->_is_cron = $other->isCron();
+		return $this;
+	}
+
+
+	public function isCallBack() {
+		return $this->_is_callback;
+	}
+
+
+	public function beCallBack() {
+		$this->_is_callback = true;
+		return $this;
+	}
+
+
+	public function beNotCallBack() {
+		$this->_is_callback = false;
+		return $this;
+	}
+
+
+	public function getData($name) {
+		return array_key_exists($name, $this->_datas) ?
+			$this->_datas[$name] : null;
+	}
+
+
+	public function setData($name, $value) {
+		$this->_datas[$name] = $value;
+		return $this;
+	}
+
+
+	public function incrementData($name) {
+		(!array_key_exists($name, $this->_datas)) ?
+			$this->_datas[$name] = 0 : $this->_datas[$name] += 1;
+
+		return $this;
+	}
+
+
+	public function resetDatas() {
+		$this->_datas = [];
+		return $this;
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/Class/Cosmogramme/Integration/PhaseReservation.php b/library/Class/Cosmogramme/Integration/PhaseReservation.php
new file mode 100644
index 0000000000000000000000000000000000000000..f9c452dd52531b72cb3b157fd95ea44a76816496
--- /dev/null
+++ b/library/Class/Cosmogramme/Integration/PhaseReservation.php
@@ -0,0 +1,282 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Cosmogramme_Integration_PhaseReservation {
+	use Trait_TimeSource;
+
+	const MY_ID = 13;
+
+	protected $_phase, $_log, $_printer, $_chrono, $_is_time_out;
+	protected $_label = 'Intégration des fichiers de réservations';
+
+
+	public function __construct($phase, $log, $chrono) {
+		$this->_phase = $phase;
+		$this->_log = $log;
+		$this->_chrono = $chrono;
+		$this->_is_time_out = false;
+	}
+
+
+	public function run() {
+		Class_CosmoVar::setValueOf('traitement_phase', $this->_label);
+		$this->_init();
+
+		if (!$this->_isMyTurn())
+			return $this->_phase;
+
+		$this->_printLabel();
+
+		$integrations = Class_Cosmogramme_Integration::findAllBy(['traite' => 'non',
+																															'order' => 'id']);
+		foreach ($integrations as $integration) {
+			if ($this->isTimeOut())
+				return $this->_phase;
+
+			$this->_runOne($integration);
+		}
+
+		$this->_phase->setData('pointeur', 0);
+		$processed = $this->_phase->getData('nb_fic');
+		$msg = ($processed > 0) ?
+			$processed . ' fichier(s) traité(s).' :
+			'aucun fichier traité';
+		$this->_log->ecrire('<br><span class="violet">' . $msg . '</span><br>');
+
+		return $this->_phase;
+	}
+
+
+	protected function _isMyTurn() {
+		return $this->_phase->isId(self::MY_ID);
+	}
+
+
+	protected function _printLabel() {
+		if (!$this->_phase->isCron() && $this->_phase->getData('nombre') > 0)
+			$this->_getPrinter()->nextPutAll('<h4>' . $this->_label . '</h4>');
+	}
+
+
+	protected function _runOne($integration) {
+		if (!($profil = $integration->getProfilDonnees()) || !$profil->isHolds())
+			return;
+
+		$this->_headerOf($integration);
+		$this->_clean($integration);
+		$this->_initOne();
+
+		$file_path = Class_CosmoVar::get('integration_path') . $integration->getFichier();
+		$parser = Class_Cosmogramme_FileParser::openFor($file_path,
+																										$integration->getPointeurReprise(),
+																										$profil);
+
+		if (!$parser->isValid()) {
+			Class_CosmoVar::increment('traitement_erreurs');
+			$this->_log->ecrire('<span class="rouge">Impossible d\'ouvrir le fichier : '
+													. $file_path
+													. '</span><br>');
+			return;
+		}
+
+		$this->_runFile($parser, $integration);
+
+		if (!$this->isTimeOut()) {
+			$integration->setTraite($this->getTimeSource()->dateYmd())
+									->setPointeurReprise($this->_phase->getData('nombre'))
+									->save();
+			$this->_phase->incrementData('nb_fic');
+		}
+	}
+
+
+	protected function _initOne() {
+		if ($this->_phase->isCallBack()) {
+			$this->_phase->beNotCallBack();
+			return;
+		}
+
+		$this->_phase
+			->resetDatas()
+			->setData('nb_erreurs', 0)
+			->setData('nb_warnings', 0)
+			->setData('nombre', 0);
+
+		$this->_chrono
+			->startOnFile()
+			->startOnRecords();
+	}
+
+
+	protected function _runFile($parser, $integration) {
+		while(true) {
+			if ($this->isTimeOut())
+				return;
+
+			$line = $parser->next();
+			if ($this->_lineError($line) || $this->_lineAtEnd($line))
+				return;
+
+			$this->_lineOk($line, $integration);
+		}
+	}
+
+
+	protected function _lineError($line) {
+		if (!$line->isError())
+			return false;
+
+		$line->withErrorDo(
+											 function($error) {
+														$this->_log->ecrire('<span class="rouge">' . $error . '</span><br>');
+											 });
+
+		$processed = $this->_phase->getData('nombre');
+		$msg = ($processed > 0) ?
+			$processed . ' fiches ont pu être traitées.' :
+			'aucune fiche n\'a pu être traitée.';
+		$this->_log->ecrire('<span class="vert">' . $msg . '</span>');
+
+		return true;
+	}
+
+
+	protected function _lineAtEnd($line) {
+		if (!$line->isEnd())
+			return false;
+
+		$processed = $this->_phase->getData('nombre');
+		if ($processed == 0) {
+			$this->_log->ecrire('<br><span class="vert">Le fichier ne contenait aucune fiche</span><br>');
+			return true;
+		}
+
+		$this->_log->ecrire('<br><span class="vert">' . $processed . ' fiches ont été traitées.</span>');
+		$msg = "temps de traitement " . $this->_chrono->endFile()
+			. ' (' . $this->_chrono->meanOnFile($processed, 'fiches') . ')';
+
+		$this->_log->ecrire('<br><span class="vert">' . $msg . '</span><br>');
+		return true;
+	}
+
+
+	protected function _lineOk($line, $integration) {
+		if (!$line->isOk())
+			return;
+
+		$is_pergame_header = function($data) {
+			return substr($data, 0, 13) == 'BIB_T_RESERVE';
+		};
+
+		if ($line->withDataDo($is_pergame_header))
+			return; // Entete pergame
+
+		$transaction = new Class_Cosmogramme_Integration_Transaction($integration);
+		$line->withDataDo(
+											function($data) use ($transaction) {
+												$transaction->importHold($data);
+											});
+
+		$this->_phase->incrementData('nombre');
+
+		$processed = $this->_phase->getData('nombre');
+		if (0 == $processed % 1000) {
+			$this->_log->ecrire('fiche ' . $processed
+													. ' (' . $this->_chrono->elapsedOnRecords()
+													. ' secondes)<br>');
+			$this->_chrono->startOnRecords();
+		}
+
+		$line->withNextPositionDo(
+															function($next) use ($integration) {
+																$this->_phase
+																	->setData('pointeur', $next);
+
+																$integration
+																	->setPointeurReprise($next)
+																	->save();
+															});
+	}
+
+
+	public function isTimeOut() {
+		return $this->_is_time_out = $this->_is_time_out
+			|| (!$this->_phase->isCron()
+					&& $this->_chrono->mainElapsed() > $this->_chrono->timeout());
+	}
+
+
+	protected function _clean($integration) {
+		if ($integration->shouldClean())
+			Class_Reservation::deleteBy(['id_site' => $integration->getBib()->getId()]);
+	}
+
+
+	protected function _headerOf($integration) {
+		$profil = $integration->getProfilDonnees();
+		$format = Class_CosmoVar::getLabelInList('import_format', $profil->getFormat());
+		$nom_bib = $integration->getBib()->getNomCourt();
+		$operation = Class_CosmoVar::getLabelInList('import_type_operation',
+																								$integration->getTypeOperation());
+		$trace = '<b><span class="vert">'.$nom_bib." (" . $operation . ")</b></span><br>";
+		$trace .= '<span class="bib">Fichier : '. $integration->getFichier() . "</span><br>";
+		$trace .= '<span class="bib">Profil : ' . $profil->getLibelle() . '</span><br>';
+		$trace .= '<span class="bib">Format : ' . $format .'</span><br>';
+
+		(!$integration->getPointeurReprise()) ?
+			$this->_log->ecrire($trace) :
+			$this->_getPrinter()->nextPutAll($trace . '<br>');
+	}
+
+
+	protected function _init() {
+		if (!$this->_phase->isId(12))
+			return;
+
+		$this->_phase = (new Class_Cosmogramme_Integration_Phase(13))
+			->beSameCronAs($this->_phase);
+
+		$this->_log->ecrire('<h4>' . $this->_label . '</h4>');
+	}
+
+
+	/** @category testing */
+	public function setPrinter($printer) {
+		$this->_printer = $printer;
+		return $this;
+	}
+
+
+	protected function _getPrinter() {
+		if (null !== $this->_printer)
+			return $this->_printer;
+		return new Class_Cosmogramme_Integration_PhasePrinter();
+	}
+}
+
+
+
+class Class_Cosmogramme_Integration_PhasePrinter {
+	public function nextPutAll($value) {
+		print($value);
+	}
+}
diff --git a/library/Class/Cosmogramme/Integration/Transaction.php b/library/Class/Cosmogramme/Integration/Transaction.php
new file mode 100644
index 0000000000000000000000000000000000000000..eae3636b8dac4a80d4257af5d2b926024953fa8e
--- /dev/null
+++ b/library/Class/Cosmogramme/Integration/Transaction.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Cosmogramme_Integration_Transaction {
+	protected $_is_pergame = false;
+	protected $_type, $_profil, $_accents, $_bib, $_fields, $_date_format;
+
+	public function __construct($integration) {
+		$this->_is_pergame = $integration->isPergame();
+		$this->_type = $integration->getTypeOperation();
+		$this->_profil = $integration->getProfilDonnees();
+		$this->_accents = $this->_profil->getAccents();
+		$this->_bib = $integration->getBib();
+
+		$attribs = unserialize($this->_profil->getAttributs());
+		$this->_fields = explode(';', $attribs[1]['champs']);
+
+		$this->_date_format = new Class_Cosmogramme_Integration_TransactionDateFormat();
+	}
+
+
+	public function importHold($data) {
+		$data = $this->_utfEncode($data);
+		$data = explode(chr(9), $data);
+
+		$hold = $this->_is_pergame ?
+			$this->_importPergameHold($data) : $this->_importOthersHold($data);
+
+		$hold->setIdSite($this->_bib->getId());
+		if (1 > $hold->getOrdreabon())
+			$hold->setOrdreabon(1);
+		$hold->setDateResa($this->_date_format->format($hold->getDateResa()))
+				 ->save();
+	}
+
+
+	protected function _importPergameHold($data) {
+		if (!$model = Class_Reservation::findFirstBy(['id_pergame' => $data[0],
+																									'id_site' => $this->_bib->getId()]))
+			$model = Class_Reservation::newInstance();
+
+		return $model->updateAttributes(['id_pergame' => $data[0],
+																		 'idabon' => $data[1],
+																		 'ordreabon' => $data[2],
+																		 'support' => $data[3],
+																		 'id_notice_origine' => $data[4],
+																		 'date_resa' => $data[5]]);
+	}
+
+
+	protected function _importOthersHold($data) {
+		$map = [];
+		foreach($this->_fields as $k => $name)
+			$map[strtolower($name)] = $data[$k];
+
+		if (!array_key_exists('id_pergame', $map)
+				|| (!$model = Class_Reservation::findFirstBy(['id_pergame' => $map['id_pergame'],
+																											'id_site' => $this->_bib->getId()])))
+			$model = Class_Reservation::newInstance();
+
+		return $model->updateAttributes($map);
+	}
+
+
+	protected function _utfEncode($value) {
+		if (!trim($value) || !$this->_isDos())
+			return $value;
+
+		$new = '';
+		foreach(str_split($value) as $char)
+			$new .= $this->_dosDecode($char);
+		return utf8_encode($new);
+	}
+
+
+	protected function _dosDecode($char) {
+		$mapping = [0xe9 => 'é',
+								0xe8 => 'è',
+								0xeb => 'ë',
+								0xe4 => 'ä',
+								0xe2 => 'â',
+								0xef => 'ï',
+								0xcf => 'Ï',
+								0xee => 'î',
+								0xce => 'ÃŽ',
+								0xf4 => 'ô',
+								0xf6 => 'ö',
+								0xd6 => 'Ö',
+								0xfc => 'ü',
+								0xdc => 'Ü',
+								0xfb => 'û',
+								0xe7 => 'ç',
+								0xc7 => 'Ç'];
+
+		return array_key_exists($char, $mapping) ?
+			$mapping[$char] : $char;
+	}
+
+
+	protected function _isDos() {
+		return 3 == $this->_accents;
+	}
+}
+
+
+
+class Class_Cosmogramme_Integration_TransactionDateFormat {
+	public function format($value) {
+		$value = str_replace('/', '-', $value);
+		$parts = explode('-', $value);
+		if (4 == strlen($parts[0]))
+			return implode('-', $parts);
+
+		$year =  $parts[2];
+		$day = (int)$parts[0];
+		$month = (int)$parts[1];
+
+		$day = strlen($day) == 1 ? '0' . $day : $day;
+		$month = strlen($month) == 1 ? '0' . $month : $month;
+
+		return $year . '-' . $month . '-' . $day;
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Cosmogramme/ProfilDonnees.php b/library/Class/Cosmogramme/ProfilDonnees.php
index 8f938d579de0e84111e66e88d3abe863151159bb..edd76a2a13672929d0e677f397bd2ee360b106c8 100644
--- a/library/Class/Cosmogramme/ProfilDonnees.php
+++ b/library/Class/Cosmogramme/ProfilDonnees.php
@@ -16,12 +16,21 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
 class Class_Cosmogramme_ProfilDonnees extends Storm_Model_Abstract {
+	const FILE_TYPE_RECORDS = 0;
+	const FILE_TYPE_USERS = 1;
+	const FILE_TYPE_LOANS = 2;
+	const FILE_TYPE_HOLDS = 3;
+
 	protected $_table_name = 'profil_donnees';
 	protected $_table_primary = 'id_profil';
+
+	public function isHolds() {
+		return self::FILE_TYPE_HOLDS == $this->getTypeFichier();
+	}
 }
 ?>
\ No newline at end of file
diff --git a/library/Class/EAD.php b/library/Class/EAD.php
index b7edd32f29904689da570725b0ec6442e0d70cb5..3b31137c3157e798d113df2f5e0c00678a8f9abf 100644
--- a/library/Class/EAD.php
+++ b/library/Class/EAD.php
@@ -298,4 +298,4 @@ class Class_EAD {
 }
 
 
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/Exemplaire.php b/library/Class/Exemplaire.php
index 0b3ea17c077747bb7b425a2eba4f127dd5b1169d..b4591e04ee7c7362223416bddac31f2532726ed5 100644
--- a/library/Class/Exemplaire.php
+++ b/library/Class/Exemplaire.php
@@ -56,10 +56,10 @@ class Class_Exemplaire extends Storm_Model_Abstract {
 
 
 	public function getPret() {
-		return Class_Pret::getLoader()->findFirstBy(['id_site' => $this->getIdBib(),
-																								 'id_notice_origine' => $this->getIdOrigine(),
-																								 'code_barres' => $this->getCodeBarres(),
-																								 'EN_COURS' => 1]);
+		return Class_Pret::findFirstBy(['id_site' => $this->getIdBib(),
+																		'id_notice_origine' => $this->getIdOrigine(),
+																		'code_barres' => $this->getCodeBarres(),
+																		'EN_COURS' => 1]);
 	}
 
 
@@ -74,6 +74,34 @@ class Class_Exemplaire extends Storm_Model_Abstract {
 
 	}
 
+
+	public function getSectionLabel() {
+		return $this->_getCodifLabel('section', 'Class_CodifSection');
+	}
+
+
+	public function getKindLabel() {
+		return $this->_getCodifLabel('genre', 'Class_CodifGenre');
+	}
+
+
+	public function getLocationLabel() {
+		return $this->_getCodifLabel('emplacement', 'Class_CodifEmplacement');
+	}
+
+
+	protected function _getCodifLabel($attrib, $codif_class) {
+		if (!$this->_has($attrib))
+			return '';
+
+		$label = $this->_get($attrib) . ' ';
+		if ($codif = $codif_class::find($this->_get($attrib)))
+			$label .= $codif->getLibelle();
+
+		return $label;
+	}
+
+
 	public function getDateRetour() {
 		if ($this->hasPret())
 			return $this->getPret()->getDateRetour();
diff --git a/library/Class/Import/Typo3.php b/library/Class/Import/Typo3.php
index e855a01705ca543f8c839b39e1a6b3ea4e6168c4..7bc2443ea6ebed5d3a629499bfd67211c74bad2e 100644
--- a/library/Class/Import/Typo3.php
+++ b/library/Class/Import/Typo3.php
@@ -28,10 +28,11 @@ class Class_Import_Typo3 {
 	const BOKEH_FILEADMIN_URL = "http://www.mediathequeouestprovence.fr/fileadmin/";
 //	const BOKEH_FILEADMIN_URL= "http://web.afi-sa.net/miop_test.net/userfiles/image/";
 
-	const FOREIGN_UID_DATETIME = [867,36];
+
 	const UID_TYPO3_CF = 'uid_typo3';
 
 	protected
+		$FOREIGN_UID_DATETIME = [867,36],
 		$user_mapper,
 		$unknown_koha_urls = [];
 
@@ -59,15 +60,25 @@ class Class_Import_Typo3 {
 
 
 	public function createCustomField() {
-		$to_customize = ['Class_Article', 'Class_ArticleCategorie',
-										 'Class_Catalogue', 'Class_Sitotheque', 'Class_SitothequeCategorie'];
+		$to_customize = ['Article', 'ArticleCategorie',
+										 'Catalogue', 'Sitotheque', 'SitothequeCategorie'];
+
+		Class_CustomField_Model::registerAll(array_map([$this, 'getCustomFieldConfigFor'],
+																									 $to_customize));
 
 		foreach($to_customize as $class_name)
-			call_user_func_array([$class_name, 'addCustomField'],
+			call_user_func_array([Class_CustomField_Model::CLASS_PREFIX . $class_name,
+														'addCustomField'],
 													 [self::UID_TYPO3_CF, Class_CustomField_Meta::TEXT_INPUT]);
 	}
 
 
+	protected function getCustomFieldConfigFor($name) {
+		$name = 'Class_CustomField_ModelConfiguration_' . $name;
+		return new $name();
+	}
+
+
 	public function setTypo3DB($t3db) {
 		$this->t3db = $t3db;
 		return $this;
@@ -111,6 +122,11 @@ class Class_Import_Typo3 {
       $this->updateCategoriesForDossiersDocumentaires();
 		}
 
+		if ($what == 'advices') {
+			$logger->addLogRow("\n\n ******** Attribution des avis de notices");
+      $this->importAdvices();
+		}
+
     if ($what == 'all' || $what == 'articles') {
       $logger->addLogRow("\n\n ******** Importing categories");
       $this->import_categories();
@@ -129,6 +145,9 @@ class Class_Import_Typo3 {
 
 			$logger->addLogRow("\n\n ******** Détection des dossiers documentaires");
       $this->updateCategoriesForDossiersDocumentaires();
+
+			$logger->addLogRow("\n\n ******** Attribution des avis de notices");
+      $this->importAdvices();
     }
 
 		return $logger->report();
@@ -476,7 +495,7 @@ class Class_Import_Typo3 {
 
 
 	public function setMiopDateEvent($article, $data) {
-		if ($this->existCategoriesAsForeign($data, self::FOREIGN_UID_DATETIME)) {
+		if ($this->existCategoriesAsForeign($data, $this->FOREIGN_UID_DATETIME)) {
 			$converted_date = $this->formatDate($data['datetime']);
 			$article->setEventsDebut($converted_date)->setEventsFin($converted_date);
 		}
@@ -508,6 +527,7 @@ class Class_Import_Typo3 {
 
 	public function updateArticle($article,$new,$id_cat) {
 		$date_creation = date("Y-m-d H:i:s", $new['crdate']);
+		$date_maj = date("Y-m-d H:i:s", $new['datetime']);
 		$debut = $this->formatDate($new['starttime']);
 		$fin = $this->formatDate($new['endtime']);
 		$description = $new['short'] ?
@@ -521,6 +541,7 @@ class Class_Import_Typo3 {
 		$tags = str_replace(', ', ';', $new['tx_danpextendnews_tags']);
 
 		$article->updateAttributes(['date_creation' => $date_creation,
+																'date_maj' => $date_maj,
 																'debut' => $debut,
 																'fin' => $new['hidden'] ? null : $fin,
 																'id_user' => $this->userMap->find($new['cruser_id']),
@@ -736,6 +757,89 @@ class Class_Import_Typo3 {
     Zend_Registry::get('sql')->execute('alter table catalogue AUTO_INCREMENT=1');
   }
 
+
+	public function importAdvices() {
+		$logger = Class_Import_Typo3_Logs::getInstance();
+		if (!$advices_root = Class_ArticleCategorie::findFirstBy(['libelle' => 'THÈME',
+																															'id_cat_mere' => 0])) {
+			$logger->addErrorRow('Catégorie "THÈME" non trouvée');
+			return;
+		}
+
+		$all_children = $advices_root->getRecursiveSousCategories();
+		$all_children_ids = array_map(function($item) { return $item->getId(); },
+																	$all_children);
+		Class_ArticleCategorie::clearCache();
+
+		if (!$total = Class_Article::countBy(['id_cat' => $all_children_ids])) {
+			$logger
+				->addErrorRow('Aucun article sous la Catégorie "THÈME" ou ses sous-catégories');
+			return;
+		}
+
+
+		$logger->addLogRow($total . ' avis potentiel(s)');
+
+		$page = 1;
+		$page_size = 1000;
+		$ok = $errors = 0;
+		while ($articles = Class_Article::findAllBy(['id_cat' => $all_children_ids,
+																								 'order' => 'id_article',
+																								 'limitPage' => [$page, $page_size]])) {
+			$logger->addLogRow('Page ' . $page . ', ' . count($articles) . ' article(s)');
+
+			foreach($articles as $article)
+				$this->_importAdvice($article, $logger) ? $ok++: $errors++;
+
+			Class_Article::clearCache();
+			Class_AvisNotice::clearCache();
+			$page++;
+		}
+
+		$logger->addLogRow($ok . ' avis importé(s), ' . $errors . ' avis rejeté(s)');
+	}
+
+
+	protected function _importAdvice($article, $logger) {
+		if (!$work_key = $this->_firstWorkKeyIn($article->getContenu())) {
+			$logger->addErrorRow("\tAucun lien de notice détecté dans l'article id " . $article->getId());
+			return false;
+		}
+
+		$author = $article->getAuteur();
+		$attribs = ['clef_oeuvre' => $work_key,
+								'id_user' => $author->getId(),
+								'abon_ou_bib' => 1];
+
+		if (!$advice = Class_AvisNotice::findFirstBy($attribs))
+			$advice = Class_AvisNotice::newInstance($attribs);
+
+		if (!$advice
+				->setNote(5)
+				->setDateAvis($article->getDateCreation())
+				->setEntete(strip_tags($article->getDescription()))
+				->setAvis($article->getContenu())
+				->setStatut(1)
+				->save()) {
+			$logger->addErrorRow("\tErreur à l'enregistrement article "
+													 . $article->getId() . implode(', ', $advice->getErrors()));
+			return false;
+		}
+
+		$logger
+			->addLogRow(sprintf('Article %s transformé en avis %s sur la notice %s',
+													$article->getId(), $advice->getId(), $work_key));
+		return true;
+	}
+
+
+	protected function _firstWorkKeyIn($content) {
+		if (!preg_match('|href="[^"]+/viewnotice/clef/([A-Z0-9-]+)"|ui', $content, $matches))
+			return;
+
+		$parts = array_slice(explode('-', $matches[1]), 0, 4);
+		return implode('-', $parts);
+	}
 }
 
 
@@ -1039,9 +1143,8 @@ class Typo3DB {
 																		'mysqli',
 																		['host' => 'localhost',
 																		 'username' => 'root',
-																		 'password' => 'root',
-//																		 'dbname' =>  'miop_typo3']));
-																		 'dbname' =>  'miopencoding']));
+																		 'password' => '',
+																		 'dbname' =>  'miop_typo3']));
 	}
 
 
@@ -1072,7 +1175,7 @@ class Typo3DB {
 
 
 	public function findAllNewsCatSince($update_date) {
-		return $this->t3db->fetchAll('select * from tt_news_cat where deleted=0 and  tstamp >='.$update_date.' order by uid ASC');
+		return $this->t3db->fetchAll('select * from tt_news_cat where deleted=0 and tstamp >='.$update_date.' order by uid ASC');
 	}
 
 
@@ -1128,6 +1231,5 @@ class Typo3DB {
 	public function findAllContentsSince($update_date) {
 		return $this->t3db->fetchAll("select * from tt_content where deleted=0 and tstamp>=".$update_date." and hidden=0 and header>'' and bodytext>'' and  (ctype='text' or ctype='textpic') order by uid ASC");
 	}
-
 }
 ?>
\ No newline at end of file
diff --git a/library/Class/Indexation/PseudoNotice.php b/library/Class/Indexation/PseudoNotice.php
index ad5c63a1a79c6c16df735ec66c282f166370b21a..e3966d286152dce012ab914a6b67ea317ab20b48 100644
--- a/library/Class/Indexation/PseudoNotice.php
+++ b/library/Class/Indexation/PseudoNotice.php
@@ -374,9 +374,8 @@ class Class_Indexation_PseudoNotice_Album extends Class_Indexation_PseudoNotice{
 
 	/** @return array */
 	public function extractAuthors() {
-		$authors = parent::extractAuthors();
-
-		$this->_addAuthorArrayAsNoticeAuthor($this->_model->getAuthors(), $authors);
+		$authors = array_merge(parent::extractAuthors(),
+													 $this->_model->getAuthors());
 
 		foreach ($this->_model->getRessources() as $ressource)
 			$this->_addAuthorArrayAsNoticeAuthor($ressource->getAuthors(), $authors);
@@ -437,7 +436,9 @@ class Class_Indexation_PseudoNotice_Album extends Class_Indexation_PseudoNotice{
 	}
 
 	public function isValid() {
-		return null != $this->_model && $this->_model->isVisible();
+		return null != $this->_model
+			&& $this->_model->isVisible()
+			&& $this->_model->isValidated();
 	}
 }
 
diff --git a/library/Class/IntBib.php b/library/Class/IntBib.php
index d544c0cf09de443252e7086d396a92ddfa8d0233..e00b761f31b886e823d2142b1f125d468e29194b 100644
--- a/library/Class/IntBib.php
+++ b/library/Class/IntBib.php
@@ -156,6 +156,11 @@ class Class_IntBib extends Storm_Model_Abstract {
 	public function isValidRecurrent() {
 		return $this->isRecurrent() && '0000000' != $this->getPlanifJours();
 	}
+
+
+	public function isPergame() {
+		return in_array($this->getSigb(), [1, 13]);
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/library/Class/IntProfilDonnees.php b/library/Class/IntProfilDonnees.php
index 775b33a871bda7f0517650ca4cbdc735da9adda8..6b19355851ca8650260d474f7eb4ce55338aec40 100644
--- a/library/Class/IntProfilDonnees.php
+++ b/library/Class/IntProfilDonnees.php
@@ -368,6 +368,46 @@ class Class_IntProfilDonnees extends Storm_Model_Abstract {
 	}
 
 
+	public static function forWinBiblix() {
+		return self::
+			newInstance(['libelle' => 'Unimarc Winbiblix',
+									 'accents' => self::ENCODING_UTF8,
+									 'rejet_periodiques' => '0',
+									 'id_article_periodique' => self::SERIAL_FORMAT_NONE,
+									 'type_fichier' => self::FT_RECORDS,
+									 'format' => self::FORMAT_UNIMARC,
+									 'attributs' =>
+									 [['type_doc' =>
+										 [[ 'code' => '0', 'label' => '', 'zone_995' => '' ],
+											[ 'code' => '1', 'label' => 'am;na', 'zone_995' => '' ],
+											[ 'code' => '2', 'label' => 'as', 'zone_995' => ''],
+											[ 'code' => '3', 'label' => 'i;j', 'zone_995' => ''],
+											[ 'code' => '4', 'label' => 'g','zone_995' => ''],
+											[ 'code' => '5', 'label' => 'l;m', 'zone_995' => ''],
+											[ 'code' => '6', 'label' => '', 'zone_995' => '' ],
+											[ 'code' => '7', 'label' => '', 'zone_995' => '' ],
+											[ 'code' => '8', 'label' => '', 'zone_995' => ''],
+											[ 'code' => '9', 'label' => '', 'zone_995' => '']
+										 ],
+										 'champ_code_barres' => 'f',
+										 'champ_cote' => 'k',
+										 'champ_type_doc' => '',
+										 'champ_genre' => '',
+										 'champ_section' => 'j',
+										 'champ_emplacement' => 'u',
+										 'champ_annexe' => ''
+										 ],
+										['zone' => '995',
+										 'champ' => '4',
+										 'format' => self::NOVELTY_DATE_FORMAT_AAAA_MM_JJ,
+										 'jours' => '',
+										 'valeurs' => '']
+									 ]
+									 ]
+			);
+	}
+
+
 	public function setAttributs($array_or_string) {
 		return $this->_set('attributs',
 											 is_array($array_or_string)
diff --git a/library/Class/JSONSerializedDatas.php b/library/Class/JSONSerializedDatas.php
new file mode 100644
index 0000000000000000000000000000000000000000..beba702c01f1034216e75f3b61ba69bde79ce7b3
--- /dev/null
+++ b/library/Class/JSONSerializedDatas.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_JSONSerializedDatas {
+	protected $_datas;
+
+	public function __construct($datas) {
+		if (!$this->_datas = json_decode($datas, true))
+			$this->_datas = [];
+	}
+
+
+	public function get($name) {
+		return isset($this->_datas[$name]) ? $this->_datas[$name] : null;
+	}
+
+
+	public function set($name, $value) {
+		$this->_datas[$name] = $value;
+		return $this;
+	}
+
+
+	public function serialized() {
+		return json_encode($this->_datas);
+	}
+
+
+	public function keysAndValuesDo($closure) {
+		foreach($this->_datas as $key => $value)
+			$closure($key, $value);
+		return $this;
+	}
+}
+
+
+?>
\ No newline at end of file
diff --git a/library/Class/KidilanguesLink.php b/library/Class/KidilanguesLink.php
new file mode 100644
index 0000000000000000000000000000000000000000..e39ccff5d0a5453a445b49f4d97dd99a5ca11b39
--- /dev/null
+++ b/library/Class/KidilanguesLink.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_KidilanguesLink {
+	protected $_user,
+		$_home_page = 'cfcd208495d565ef66e7dff9f98764da/0';
+
+
+	public static function forUser($user) {
+		return new self($user);
+	}
+
+
+	public function __construct($user) {
+		$this->_user = $user;
+	}
+
+
+	public function baseUrl() {
+		return 'http://www.kidilangues.fr/directaccess/biblio';
+	}
+
+
+	public static function staticUrl() {
+		return Class_Url::assemble(['controller' => 'modules',
+																'action' => 'kidilangues']);
+	}
+
+
+	public function url() {
+		$params = [];
+		$params[] = Class_AdminVar::get('KIDILANGUES_ID');
+		$params[] = md5(Class_AdminVar::get('KIDILANGUES_LOGIN'));
+		$params[] = $this->kidilanguesEncode(Class_AdminVar::get('KIDILANGUES_PWD'));
+		$params[] = $this->_home_page;
+
+		return $this->baseUrl() . '/' . implode('/', $params);
+	}
+
+
+	public function kidilanguesEncode($pwd) {
+		return rtrim(strtr(base64_encode($this->kidilanguesEncrypt($pwd)), '+/', '-_'), '=');
+	}
+
+
+	public function kidilanguesEncrypt($data_to_encrypt) {
+		$key = Class_AdminVar::get('KIDILANGUES_KEY');
+		return mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data_to_encrypt, MCRYPT_MODE_CBC, md5($key));
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Multimedia/Device.php b/library/Class/Multimedia/Device.php
index 015ec72e5663d0f11eff3e4542c5fe1cf7af7108..fbf6f267900cf10113fe447024f42066dd23c407 100644
--- a/library/Class/Multimedia/Device.php
+++ b/library/Class/Multimedia/Device.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Multimedia_DeviceLoader extends Storm_Model_Loader {
@@ -131,7 +131,7 @@ class Class_Multimedia_Device extends Storm_Model_Abstract {
 		if (null == ($start = $this->getPreviousStartTime()))
 			return null;
 
-		$end = $this->findHoldEndForTodayFrom($start);
+		$end = $this->findHoldEndForTodayFrom($start, 1);
 
 		if ($end <= $start)
 			return null;
@@ -196,14 +196,14 @@ class Class_Multimedia_Device extends Storm_Model_Abstract {
 	 * @param timestamp $starrt
 	 * @return timestamp
 	 */
-	public function findHoldEndForTodayFrom($start) {
+	public function findHoldEndForTodayFrom($start, $autohold=null) {
 		// fin de créneau par défaut selon config
 		$end = $start + (60 * $this->getAutoholdSlotsMax() * $this->getSlotSize());
-				
+
 		// si on dépasse la fin de journée on se limite à la fin de journée
-		if ($end > ($next_closing = $this->getMaxTimeForToday()))
+		if ($end > ($next_closing = $this->getMaxTimeForToday($autohold)))
 			$end = $next_closing;
-				
+
 		// si on dépasse la prochaine résa on se limite au début de la prochaine résa
 		if (null != ($next_start = $this->getNextHoldStart())
 			and $end > $next_start)
@@ -279,8 +279,8 @@ class Class_Multimedia_Device extends Storm_Model_Abstract {
 
 
 	/** @return int */
-	public function getMaxTimeForToday() {
-		return $this->getGroup()->getMaxTimeForToday();
+	public function getMaxTimeForToday($autohold=null) {
+		return $this->getGroup()->getMaxTimeForToday($autohold);
 	}
 
 
@@ -297,16 +297,16 @@ class Class_Multimedia_Device extends Storm_Model_Abstract {
 
 	/** @return int */
 	public function numberOfNextHolds() {
-		return Class_Multimedia_DeviceHold::countBy(['role' => 'device', 
-																								 'model' => $this, 
+		return Class_Multimedia_DeviceHold::countBy(['role' => 'device',
+																								 'model' => $this,
 																								 'where' => 'start>='.$this->getTimeSource()->date(),
 																								 'order' => 'start']);
 	}
 
-	/** @return array of DeviceHold */ 
+	/** @return array of DeviceHold */
 	public function getNextHolds() {
-		return Class_Multimedia_DeviceHold::findAllBy(['role' => 'device', 
-																									 'model' => $this, 
+		return Class_Multimedia_DeviceHold::findAllBy(['role' => 'device',
+																									 'model' => $this,
 																									 'where' => 'start>='.$this->getTimeSource()->date(),
 																									 'order' => 'start']);
 	}
diff --git a/library/Class/Multimedia/DeviceGroup.php b/library/Class/Multimedia/DeviceGroup.php
index 759d619772d8d103466d9c35e6f03a79df3fd393..dfe9913fffbe55ec6f81cb3855644767eb53efae 100644
--- a/library/Class/Multimedia/DeviceGroup.php
+++ b/library/Class/Multimedia/DeviceGroup.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Multimedia_DeviceGroupLoader extends Storm_Model_Loader {
@@ -91,8 +91,8 @@ class Class_Multimedia_DeviceGroup extends Storm_Model_Abstract {
 
 
 	/** @return int */
-	public function getMaxTimeForToday() {
-		return $this->getLocation()->getMaxTimeForToday();
+	public function getMaxTimeForToday($autohold=null) {
+		return $this->getLocation()->getMaxTimeForToday($autohold);
 	}
 
 
diff --git a/library/Class/Multimedia/Location.php b/library/Class/Multimedia/Location.php
index b746be2a82f18376fcf97e5a8ecc7b30f40c4129..4be161568644097ce9e738388d7220d0f66ecb00 100644
--- a/library/Class/Multimedia/Location.php
+++ b/library/Class/Multimedia/Location.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Multimedia_LocationLoader extends Storm_Model_Loader {
@@ -69,7 +69,7 @@ class Multimedia_LocationLoader extends Storm_Model_Loader {
 
 		if ($from > $to)
 			return array();
-				
+
 		$times = range($from, $to, 60 * $increment);
 		if (end($times) == $to)
 			array_pop($times);
@@ -105,9 +105,9 @@ class Multimedia_LocationLoader extends Storm_Model_Loader {
 
 
 class Class_Multimedia_Location extends Storm_Model_Abstract {
-	/** @var Class_TimeSource */
-	protected static $_time_source;
-	
+
+	use Trait_TimeSource;
+
 	protected $_loader_class = 'Multimedia_LocationLoader';
 	protected $_table_name = 'multimedia_location';
 	protected $_has_many = ['groups' => ['model' => 'Class_Multimedia_DeviceGroup',
@@ -122,7 +122,7 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 	protected $_belongs_to = ['bib' => ['model' => 'Class_Bib',
 																			'referenced_in' => 'id_site']];
 
-	protected $_default_attribute_values = ['days' => '', 
+	protected $_default_attribute_values = ['days' => '',
 																					'autohold_min_time' => 10,
 																					'admin_url' => '',
 																					'slot_size' => 15,
@@ -144,7 +144,7 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 			$url = 'http://'.$url;
 		return parent::_set('admin_url', $url);
 	}
-	
+
 
 	/**
 	 * @param $date string (YYYY-MM-DD)
@@ -161,8 +161,8 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 		};
 
 		$slots_for_interval = function($start, $end) use ($timestamp) {
-			return $this->getLoader()->getPossibleHours($this->getSlotSize(), 
-																									$timestamp($start), 
+			return $this->getLoader()->getPossibleHours($this->getSlotSize(),
+																									$timestamp($start),
 																									$timestamp($end));
 		};
 
@@ -170,12 +170,12 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 																									 $ouverture->getFinMatin()),
 															 $slots_for_interval($ouverture->getDebutApresMidi(),
 																									 $ouverture->getFinApresMidi()));
-		if (date('Y-m-d', $now) !== $date) 
+		if (date('Y-m-d', $now) !== $date)
 			return $start_times;
 
 		$hour = (int) date('H', $now);
 		$minute = (int) date('i', $now);
-		return array_filter($start_times, 
+		return array_filter($start_times,
 												function ($time) use ($hour, $minute) {
 													$parts = explode('h', $time);
 													return ($hour < (int)$parts[0])
@@ -206,31 +206,8 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 	}
 
 
-	/**
-	 * @category testing
-	 * @return int
-	 */
-	public function getCurrentTime() {
-		return self::getTimeSource()->time();
-	}
-
-
-	/** @return Class_TimeSource */
-	public static function getTimeSource() {
-		if (null == self::$_time_source)
-			self::$_time_source = new Class_TimeSource();
-		return self::$_time_source;
-	}
-
-
-	/** @param $time_source Class_TimeSource */
-	public static function setTimeSource($time_source) {
-		self::$_time_source = $time_source;
-	}
 
-
-
-	public function getOuvertureForDate($date) {
+	public function getOuvertureForDate($date, $autohold=null) {
 		if (is_string($date))
 			$date = strtotime($date);
 
@@ -238,13 +215,26 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 		if ($ouverture = Class_Ouverture::findFirstBy(['jour' => $date_sql]))
 			return $ouverture;
 
-		if (0 == $dow = (int)date('w', $date))
-			$dow = 7;
+		if (0 == $day_of_week = (int)date('w', $date))
+			$day_of_week = 7;
 
 		foreach($this->getOuvertures() as $ouverture) {
-			if ($ouverture->getJourSemaine() == $dow)
+			if ($ouverture->getJourSemaine() == $day_of_week)
 				return $ouverture;
 		}
+
+		return ($this->getAutoholdForClosingDays() && $autohold === 1) ?
+			$this->_autoOpening() : null;
+	}
+
+
+	protected function _autoOpening() {
+		$is_open_am = strtotime($this->getOpenHour()) < strtotime('12:00:00');
+		$twelve = '12:00';
+		$start_am = $is_open_am ? $this->getOpenHour() : $twelve;
+		$start_pm = $is_open_am ? $twelve : $this->getOpenHour();
+
+		return Class_Ouverture::newInstance(['horaires' => [$start_am, $twelve, $start_pm, $this->getCloseHour()]]);
 	}
 
 
@@ -255,7 +245,7 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 	public function getMinTimeForDate($date) {
 		if ($ouverture = $this->getOuvertureForDate($date))
 			return strtotime($date . ' ' . $ouverture->getDebutMatin() . ':00');
-			
+
 		return strtotime($date . ' 00:00:00');
 	}
 
@@ -272,12 +262,12 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 
 
 	/** @return int */
-	public function getMaxTimeForToday() {
-		if (!$ouverture = $this->getOuvertureForDate(self::getTimeSource()->date()))
+	public function getMaxTimeForToday($autohold = null) {
+		if (!$ouverture = $this->getOuvertureForDate(self::getTimeSource()->date(), $autohold))
 			return 0;
 		return $ouverture->getNextCloseFrom($this->getCurrentTime());
 	}
-	
+
 
 	/** @return array */
 	public function getDurations() {
@@ -306,7 +296,7 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 		$holdables = array();
 		foreach ($this->getGroups() as $group)
 			$holdables += $group->getHoldableDevicesForDateTimeAndDuration($date, $time, $duration);
-				
+
 		shuffle($holdables);
 		if (3 < count($holdables))
 			return array_slice($holdables, 0, 3);
@@ -326,8 +316,8 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 
 		return strtotime('+' . $delay . ' day', $this->getTimeSource()->time());
 	}
-	
-		
+
+
 	/** @return string formatted date YYYY-MM-DD */
 	public function getMaxDate() {
 		return date('Y-m-d', $this->getMaxDateTimeStamp());
@@ -356,13 +346,13 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
 		$all_days = Class_Date::dateRange($this->getMinDateTimeStamp(),
 																			$this->getMaxDateTimeStamp());
 
-		return array_values(array_filter($all_days, 
+		return array_values(array_filter($all_days,
 																		 function ($day) {
 																			 return (null !== $this->getOuvertureForDate($day));
 																		 }));
 	}
 
-		
+
 	public function beforeSave() {
 		if (is_array($days = $this->getDays()))
 			$this->setDays(implode(',', $days));
diff --git a/library/Class/Multimedia/Users.php b/library/Class/Multimedia/Users.php
new file mode 100644
index 0000000000000000000000000000000000000000..e78ccafac682285b66633f3f917634b38cdc4eaa
--- /dev/null
+++ b/library/Class/Multimedia/Users.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * AFI-OPAC 2.0 is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * AFI-OPAC 2.0 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with AFI-OPAC 2.0; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class Class_Multimedia_Users {
+
+	private static $_instance = null;
+
+	public static function getInstance(){
+		if(null == self::$_instance)
+			self::$_instance = new Class_Multimedia_Users();
+		return self::$_instance;
+	}
+
+
+	public function createUser($infoUsers){
+		foreach($infoUsers as $infoUser) {
+			if(!$this->isValidInfo($infoUser))
+				return 'INVALID_INFO_USER';
+
+			if(!$group = Class_UserGroup::findGroupUserMultimedia())
+				return 'UNDEFINED_GROUP_USER_AFIM';
+
+			$user = new Class_Users();
+			$user->setLogin($infoUser->login)
+					 ->setPassword($infoUser->pwd)
+					 ->setNom($infoUser->nom)
+					 ->setPrenom($infoUser->prenom)
+					 ->setNaissance($infoUser->naissance)
+					 ->setPseudo('')
+					 ->setMail('')
+					 ->setRoleLevel(0)
+					 ->setRole('')
+					 ->setIdabon($infoUser->login)
+					 ->setOrdreabon(1)
+					 ->setDateDebut('')
+					 ->setDateFin($infoUser->datefin)
+					 ->setIdSite($infoUser->site->id)
+					 ->save();
+
+			$usergroupShip = new Class_UserGroupMembership();
+			$usergroupShip->setUser($user)
+										->setUserGroup($group)
+										->save();
+		}
+
+	}
+
+
+	public function isValidInfo($infoUser){
+		return $infoUser->login != null && $infoUser->login != ''
+			&& $infoUser->pwd != null && $infoUser->pwd != ''
+			&& $infoUser->nom != null && $infoUser->nom != '';
+	}
+
+}
+?>
\ No newline at end of file
diff --git a/library/Class/MyCowLink.php b/library/Class/MyCowLink.php
new file mode 100644
index 0000000000000000000000000000000000000000..cc8b7cd21fc583da2cb64086bf1b5bd700927280
--- /dev/null
+++ b/library/Class/MyCowLink.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_MyCowLink {
+	protected $_user;
+
+	public static function forUser($user) {
+			return new self($user);
+	}
+
+
+	public function __construct($user) {
+		$this->_user = $user;
+	}
+
+
+	public function url() {
+		if(!$eid = Class_AdminVar::get('MYCOW_EID'))
+			return Class_Url::assemble(['controller' => 'index',
+																'action' => 'index']);
+
+		$uid = strtolower($this->_user->getLogin());
+		return Class_Url::assemble(['controller' => 'modules',
+																'action' => 'mycow-sso',
+																'eid' => $eid,
+																'uid' => $uid]);
+	}
+
+
+	public static function staticUrl() {
+		return Class_Url::assemble(['controller' => 'modules',
+																'action' => 'mycow']);
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Notice.php b/library/Class/Notice.php
index 6a392cc76e8fb4b4623f2791a531c9f4b21f9c25..f979ae3bd1472c032ab54715ba5b6cd08c108202 100644
--- a/library/Class/Notice.php
+++ b/library/Class/Notice.php
@@ -369,26 +369,46 @@ class Class_Notice extends Storm_Model_Abstract {
 		return $this->fetchUrlVignette();
 	}
 	public function fetchUrlVignette() {
-		if ($this->hasVignette()) return $this->_attributes['url_vignette'];
+		$url = $this->getUrlVignette();
 
-		$vignette_image = Class_WebService_Vignette::getUrl($this->getId(), false);
-		return $vignette_image['vignette'];
+		if ($url=='NO')
+			return Class_WebService_Vignette::saveImage($this->getId(),
+																									$this->getTitrePrincipal(),
+																									$this->getTypeDoc());
+
+		return $url ? $url : Class_WebService_Vignette::getAjaxUrl($this);
 	}
 
 
-	public function fetchUrlImage() {
-		if ($this->hasVignette())
-			return $this->_attributes['url_image'];
+	public function fetchUrlLocalVignette() {
+		$ws_vignette = (new Class_WebService_Vignette());
+
+		if (!$url = $this->getUrlVignette()) {
+			$ws_vignette->updateUrlsFromCacheServer($this);
+			$url = $this->getUrlVignette();
+		}
+
+		if ($url=='NO')
+			return $ws_vignette->saveImage($this->getId(),
+																		 $this->getTitrePrincipal(),
+																		 $this->getTypeDoc());
 
-		$image = Class_WebService_Vignette::getUrl($this->getId(), false);
-		return $image['image'];
+		return $ws_vignette->writeImageCache($this, $url);
 	}
 
 
-	public function withUrlVignetteDo($closure) {
-		return $closure($this,
-										$this->hasVignette()?$this->_attributes['url_vignette']:'',
-										isset($this->_attributes['url_image']) ? $this->_attributes['url_image'] : '');
+	public function fetchUrlImage() {
+		$ws_vignette = (new Class_WebService_Vignette());
+
+		if (!$url = $this->getUrlImage()) {
+			$ws_vignette->updateUrlsFromCacheServer($this);
+			$url = $this->getUrlImage();
+		}
+
+		if ($url=='NO')
+			return $this->fetchUrlLocalVignette();
+
+		return $url;
 	}
 
 
@@ -1478,15 +1498,14 @@ class Class_Notice extends Storm_Model_Abstract {
 
 
 	public function findAllResumes() {
-		$avis = array();
-
+		$avis = [];
 		if($resume = $this->getResume())
-			$avis[] = array('source' => 'Bibliothèque',
-											'texte' => $resume);
+			$avis[] = ['source' => 'Bibliothèque',
+								 'texte' => $resume];
 
-		$providers = array('Class_WebService_Fnac',
-											 'Class_WebService_Babelio',
-											 'Class_WebService_Premiere');
+		$providers = ['Class_WebService_Fnac',
+									'Class_WebService_Babelio',
+									'Class_WebService_Premiere'];
 
 		foreach ($providers as $provider_class) {
 			$provider = new $provider_class();
diff --git a/library/Class/Notice/Author.php b/library/Class/Notice/Author.php
index 27199cbf46b8d15895676931e4b37b2c8c9e28a2..e2dd0647721f7102d82e11af8946067a15c93d35 100644
--- a/library/Class/Notice/Author.php
+++ b/library/Class/Notice/Author.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
@@ -36,7 +36,7 @@ class Class_Notice_Author {
 			return $this;
 
 		if ($this->_responsibility) {
-			$unimarc->add_field('701', '1 ', [['a', $this->_name], 
+			$unimarc->add_field('701', '1 ', [['a', $this->_name],
 																				['4', $this->_responsibility]]);
 			return $this;
 		}
@@ -50,6 +50,12 @@ class Class_Notice_Author {
 		return $this->_name;
 	}
 
+
+	public function getResponsibility() {
+		return $this->_responsibility;
+	}
+
+
 	public function __toString() {
 		// note: used for array_unique (see array_unique doc and hell), so be careful when changing $this
 		return 'author: '.$this->_name;
diff --git a/library/Class/NoticeDomain.php b/library/Class/NoticeDomain.php
index b3b5bebabb0215b03ffd0fc50ca3a1e3b3cc6002..70514ddd1ad760cd4089048472b1f95a89d3f229 100644
--- a/library/Class/NoticeDomain.php
+++ b/library/Class/NoticeDomain.php
@@ -161,5 +161,13 @@ class Class_NoticeDomain extends Storm_Model_Abstract {
 	public function getNotice() {
 		return Class_Notice::findFirstBy(['clef_alpha' => $this->getRecordAlphaKey()]);
 	}
+
+
+	public function updateFacette() {
+		$this->getNotice()
+				 ->updateFacette($this->getDomain()->getFacette())
+				 ->save();
+		return $this;
+	}
 }
 ?>
\ No newline at end of file
diff --git a/library/Class/Onglet.php b/library/Class/Onglet.php
index 02a2a4934ad82cff56c06d746286d97a7cf50511..3d4e1ac9b973c729f6d5d8236524f5f660bfdc83 100644
--- a/library/Class/Onglet.php
+++ b/library/Class/Onglet.php
@@ -91,6 +91,9 @@ class Class_Onglet {
 
 
 	function checkIfHasRessourcesNumeriques($notice) {
+		if (1 == Class_AdminVar::isBibNumEnabled() && Class_Users::isCurrentUserAdmin())
+			return true;
+
 		return (null !== ($exemplaire = Class_Exemplaire::findFirstBy(['id_notice' => $notice->getId()]))
 						&& null !== $exemplaire->getAlbum())
 			|| 0 < Class_FRBR_Link::countAlbumsFromNotice($notice);
diff --git a/library/Class/PlanetNemoLink.php b/library/Class/PlanetNemoLink.php
new file mode 100644
index 0000000000000000000000000000000000000000..2fe2026c024fa4284b13db6886b5be8c124ede52
--- /dev/null
+++ b/library/Class/PlanetNemoLink.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_PlanetNemoLink {
+	const PLANETNEMO_URL = 'http://www.planetnemo.fr/site_pay/auth_cas/';
+
+	protected $_user;
+
+	public function __construct($user) {
+		$this->_user = $user;
+	}
+
+
+	public static function forUser($user) {
+		return new self($user);
+	}
+
+
+	public function url() {
+		return self::PLANETNEMO_URL . $this->getCasComposant();
+	}
+
+
+	protected function getCasComposant() {
+		$params = ['url' => Class_Url::absolute(['controller' => 'cas-server'], null, true),
+							 'ticket' => (new Class_CasTicket())->getTicketForUser($this->_user)];
+		return '?' . http_build_query(array_filter($params));
+	}
+
+
+	public static function staticUrl() {
+		return Class_Url::assemble(['controller' => 'modules',
+																'action' => 'planetnemo']);
+	}
+
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Profil.php b/library/Class/Profil.php
index c854c5c7b57dcb04fce0733e9b09e24c6af7cf5b..6b651546e49da74a010fe206ea89bdf35dddbd71 100644
--- a/library/Class/Profil.php
+++ b/library/Class/Profil.php
@@ -812,7 +812,12 @@ class Class_Profil extends Storm_Model_Abstract {
 	 * @return array
 	 */
 	public function getCfgNoticeAsArray() {
-		return $this->_getCfgAsArrayNamed('Notice');
+		$cfg = $this->_getCfgAsArrayNamed('Notice');
+		$module = new Class_Systeme_ModulesNotice();
+		$cfg['exemplaires'] = array_merge($module->getValeursParDefaut('exemplaires'),
+																			$cfg['exemplaires'] ? $cfg['exemplaires'] : []);
+
+		return $cfg;
 	}
 
 
diff --git a/library/Class/RemoteClient.php b/library/Class/RemoteClient.php
new file mode 100644
index 0000000000000000000000000000000000000000..e265e8d7e6e747d05ef7465c77d16456188d6c0f
--- /dev/null
+++ b/library/Class/RemoteClient.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_RemoteClient {
+	protected $_request;
+
+	public function __construct($request) {
+		$this->_request = $request;
+	}
+
+
+	public function getIpAddress() {
+		$keys = ['HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'REMOTE_ADDR'];
+		foreach($keys as $key)
+			if ($ip = $this->_extractIp($this->_request->getServer($key)))
+				return $ip;
+	}
+
+	protected function _extractIp($str) {
+		if (!$ips = array_filter(explode(',', $str)))
+			return null;
+		return trim($ips[0]);
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/Class/ScriptLoader.php b/library/Class/ScriptLoader.php
index cb2218304fb4cf5d51c206bb03107eff46e91653..89b321678e384f9c8d622724d0690e0aee571838 100644
--- a/library/Class/ScriptLoader.php
+++ b/library/Class/ScriptLoader.php
@@ -742,8 +742,9 @@ class Class_ScriptLoader {
 
 
 	public function addCmsMeta($article) {
-		$this->_metas[] = '<meta property="og:title" content="' .  htmlentities($article->getTitre()) . '" />';
-		$this->_metas[] = '<meta property="og:description" content="' .  htmlentities($article->getSummary()) . '" />';
+		$this->_metas[] = '<meta property="og:title" content="' .  $article->getTitre() . '" />';
+		$this->_metas[] = '<meta property="og:image" content="' .  $article->getFirstImageAbsoluteURL() . '" />';
+		$this->_metas[] = '<meta property="og:description" content="' .  strip_tags($article->getSummary()) . '" />';
 		return $this;
 	}
 
diff --git a/library/Class/Systeme/ModulesAccueil/Kiosque.php b/library/Class/Systeme/ModulesAccueil/Kiosque.php
index 9a8c565784e793552a889a4d93ec92346119894d..464e5c47410001788a2dc065c4bc936cc98462a6 100644
--- a/library/Class/Systeme/ModulesAccueil/Kiosque.php
+++ b/library/Class/Systeme/ModulesAccueil/Kiosque.php
@@ -61,5 +61,18 @@ class Class_Systeme_ModulesAccueil_Kiosque extends Class_Systeme_ModulesAccueil_
 		 'id_panier' => 0,
 		 'profil_redirect' => '', // affiche les notices dans ce profil
 		];
+
+
+	public static function updatePreferencesForProfileRedirect($id_module, $preferences) {
+		$preferences['id_module'] = $id_module;
+		$preferences['id_profil'] = Class_Profil::getCurrentProfil()->getId();
+
+		if ('' != $preferences['profil_redirect']) {
+			$preferences['id_profil'] = $preferences['profil_redirect'];
+			$preferences['id_module'] = Class_Profil::getCurrentProfil()->getId()
+				. '-' . $id_module;
+		}
+		return $preferences;
+	}
 }
 ?>
\ No newline at end of file
diff --git a/library/Class/Systeme/ModulesMenu.php b/library/Class/Systeme/ModulesMenu.php
index 945bae9739787109f0b07ab183a46d6615a0e45d..f9eeffcca237722fc2be616ae5a42a26e47e1ae6 100644
--- a/library/Class/Systeme/ModulesMenu.php
+++ b/library/Class/Systeme/ModulesMenu.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
@@ -37,11 +37,11 @@ class Class_Systeme_ModulesMenu extends Class_Systeme_ModulesAbstract {
 	protected static $_modules;
 
 	protected $_groupes = [
-		self::GROUP_MENU_NAVIGATION => "Navigation"  ,
-		self::GROUP_MENU_INFORMATIONS => "Informations",
-		self::GROUP_MENU_RECHERCHES =>"Recherches" ,
-		self::GROUP_MENU_CATALOGUES => "Catalogues",
-		self::GROUP_MENU_ABONNES	=> "Abonnés"
+												 self::GROUP_MENU_NAVIGATION => "Navigation"  ,
+												 self::GROUP_MENU_INFORMATIONS => "Informations",
+												 self::GROUP_MENU_RECHERCHES =>"Recherches" ,
+												 self::GROUP_MENU_CATALOGUES => "Catalogues",
+												 self::GROUP_MENU_ABONNES	=> "Abonnés"
 	];
 
 	private $fonctions;
@@ -54,9 +54,9 @@ class Class_Systeme_ModulesMenu extends Class_Systeme_ModulesAbstract {
 
 
 	public static function moduleAccueilType($menu) {
-		return str_replace(Class_Systeme_ModulesMenu::MODULE_ACCUEIL_PREFIX, 
-								'', 
-								$menu['type_menu']);
+		return str_replace(Class_Systeme_ModulesMenu::MODULE_ACCUEIL_PREFIX,
+											 '',
+											 $menu['type_menu']);
 	}
 
 
@@ -69,8 +69,8 @@ class Class_Systeme_ModulesMenu extends Class_Systeme_ModulesAbstract {
 		$this->fonctions = $this->initModules();
 
 		foreach ($this->fonctions as $key => $module) {
-			if (!$module->isVisibleForProfil(null)) 
-				unset($this->fonctions[$key]);				
+			if (!$module->isVisibleForProfil(null))
+				unset($this->fonctions[$key]);
 		}
 
 		if (Class_AdminVar::isMenuBoiteEnabled()) {
@@ -87,43 +87,46 @@ class Class_Systeme_ModulesMenu extends Class_Systeme_ModulesAbstract {
 			return static::$_modules;
 
 		static::$_modules = [
-			"vide" => new Class_Systeme_ModulesMenu_Null(),
-			"MENU" => new Class_Systeme_ModulesMenu_Menu(),
-			"ACCUEIL" => new Class_Systeme_ModulesMenu_Accueil(),
-			"CONNECT" => new Class_Systeme_ModulesMenu_Connect(),
-			"DISCONNECT" => new Class_Systeme_ModulesMenu_Disconnect(),
-			"AVIS" => new Class_Systeme_ModulesMenu_Avis(),
-			"LAST_NEWS" => new Class_Systeme_ModulesMenu_LastNews(),
-			"NEWS" => new Class_Systeme_ModulesMenu_News(),
-			"SITO" => new Class_Systeme_ModulesMenu_Sitotheque(),
-			"RSS" => new Class_Systeme_ModulesMenu_Rss(),
-			"URL" => new Class_Systeme_ModulesMenu_Url(),
-			"PROFIL" => new Class_Systeme_ModulesMenu_Profil(),
-			"BIBNUM" => new Class_Systeme_ModulesMenu_BibliothequeNumerique(),
-			"RECH_SIMPLE" => new Class_Systeme_ModulesMenu_RechercheSimple(),
-			"RECH_AVANCEE" => new Class_Systeme_ModulesMenu_RechercheAvancee(),
-			"RECH_GUIDEE" => new Class_Systeme_ModulesMenu_RechercheGuidee(),
-			"RECH_GEO" => new Class_Systeme_ModulesMenu_RechercheGeographique(),
-			"RECH_OAI" => new Class_Systeme_ModulesMenu_RechercheOai(),
-			"CATALOGUE" => new Class_Systeme_ModulesMenu_Catalogue(),
-			"PANIER" => new Class_Systeme_ModulesMenu_Paniers(),
-			"ABON_AVIS" => new Class_Systeme_ModulesMenu_AbonneAvis(),
-			"ABON_FICHE" => new Class_Systeme_ModulesMenu_AbonneFiche(),
-			"ABON_MODIF_FICHE" => new Class_Systeme_ModulesMenu_AbonneModificationFiche(),
-			"ABON_PRETS" => new Class_Systeme_ModulesMenu_AbonnePrets(),
-			"ABON_RESAS" => new Class_Systeme_ModulesMenu_AbonneReservations(),
-			"ABON_FORMATIONS" => new Class_Systeme_ModulesMenu_AbonneFormations(),
-			"FORM_CONTACT" => new Class_Systeme_ModulesMenu_FormulaireContact(), 
-			"VODECLIC" => new Class_Systeme_ModulesMenu_Vodeclic(),
-			"TOUTAPPRENDRE" => new Class_Systeme_ModulesMenu_ToutApprendre(),
-			"CVS" => new Class_Systeme_ModulesMenu_CVS(),
-			"NUMILOG" => new Class_Systeme_ModulesMenu_Numilog(),
-			"ARTEVOD" => new Class_Systeme_ModulesMenu_ArteVod(),
-			"LEKIOSK" => new Class_Systeme_ModulesMenu_LeKiosk(),
-			"MUSICME" => new Class_Systeme_ModulesMenu_MusicMe(),
-			"RESERVER_POSTE" => new Class_Systeme_ModulesMenu_ReserverPoste(),
-			'SUGGESTION_ACHAT' => new Class_Systeme_ModulesMenu_SuggestionAchat(),
-			'WEBKIOSK_RESERVATION' => new Class_Systeme_ModulesMenu_WebkioskReservation()
+												 "vide" => new Class_Systeme_ModulesMenu_Null(),
+												 "MENU" => new Class_Systeme_ModulesMenu_Menu(),
+												 "ACCUEIL" => new Class_Systeme_ModulesMenu_Accueil(),
+												 "CONNECT" => new Class_Systeme_ModulesMenu_Connect(),
+												 "DISCONNECT" => new Class_Systeme_ModulesMenu_Disconnect(),
+												 "AVIS" => new Class_Systeme_ModulesMenu_Avis(),
+												 "LAST_NEWS" => new Class_Systeme_ModulesMenu_LastNews(),
+												 "NEWS" => new Class_Systeme_ModulesMenu_News(),
+												 "SITO" => new Class_Systeme_ModulesMenu_Sitotheque(),
+												 "RSS" => new Class_Systeme_ModulesMenu_Rss(),
+												 "URL" => new Class_Systeme_ModulesMenu_Url(),
+												 "PROFIL" => new Class_Systeme_ModulesMenu_Profil(),
+												 "BIBNUM" => new Class_Systeme_ModulesMenu_BibliothequeNumerique(),
+												 "RECH_SIMPLE" => new Class_Systeme_ModulesMenu_RechercheSimple(),
+												 "RECH_AVANCEE" => new Class_Systeme_ModulesMenu_RechercheAvancee(),
+												 "RECH_GUIDEE" => new Class_Systeme_ModulesMenu_RechercheGuidee(),
+												 "RECH_GEO" => new Class_Systeme_ModulesMenu_RechercheGeographique(),
+												 "RECH_OAI" => new Class_Systeme_ModulesMenu_RechercheOai(),
+												 "CATALOGUE" => new Class_Systeme_ModulesMenu_Catalogue(),
+												 "PANIER" => new Class_Systeme_ModulesMenu_Paniers(),
+												 "ABON_AVIS" => new Class_Systeme_ModulesMenu_AbonneAvis(),
+												 "ABON_FICHE" => new Class_Systeme_ModulesMenu_AbonneFiche(),
+												 "ABON_MODIF_FICHE" => new Class_Systeme_ModulesMenu_AbonneModificationFiche(),
+												 "ABON_PRETS" => new Class_Systeme_ModulesMenu_AbonnePrets(),
+												 "ABON_RESAS" => new Class_Systeme_ModulesMenu_AbonneReservations(),
+												 "ABON_FORMATIONS" => new Class_Systeme_ModulesMenu_AbonneFormations(),
+												 "FORM_CONTACT" => new Class_Systeme_ModulesMenu_FormulaireContact(),
+												 "VODECLIC" => new Class_Systeme_ModulesMenu_Vodeclic(),
+												 "TOUTAPPRENDRE" => new Class_Systeme_ModulesMenu_ToutApprendre(),
+												 "CVS" => new Class_Systeme_ModulesMenu_CVS(),
+												 "NUMILOG" => new Class_Systeme_ModulesMenu_Numilog(),
+												 "ARTEVOD" => new Class_Systeme_ModulesMenu_ArteVod(),
+												 "LEKIOSK" => new Class_Systeme_ModulesMenu_LeKiosk(),
+												 "MUSICME" => new Class_Systeme_ModulesMenu_MusicMe(),
+												 "MYCOW" => new Class_Systeme_ModulesMenu_MyCow(),
+												 "PLANETNEMO" => new Class_Systeme_ModulesMenu_PlanetNemo(),
+												 "KIDLILANGUES" => new Class_Systeme_ModulesMenu_Kidilangues(),
+												 "RESERVER_POSTE" => new Class_Systeme_ModulesMenu_ReserverPoste(),
+												 'SUGGESTION_ACHAT' => new Class_Systeme_ModulesMenu_SuggestionAchat(),
+												 'WEBKIOSK_RESERVATION' => new Class_Systeme_ModulesMenu_WebkioskReservation()
 		];
 
 		if (!Class_AdminVar::isMenuBoiteEnabled())
@@ -150,7 +153,7 @@ class Class_Systeme_ModulesMenu extends Class_Systeme_ModulesAbstract {
 	 */
 	public function getFonction($type) {
 		if (isset($this->fonctions[$type]))
-				return $this->fonctions[$type];
+			return $this->fonctions[$type];
 		return new Class_Systeme_ModulesMenu_Null();
 	}
 
diff --git a/library/Class/Systeme/ModulesMenu/Kidilangues.php b/library/Class/Systeme/ModulesMenu/Kidilangues.php
new file mode 100644
index 0000000000000000000000000000000000000000..053c107d01777bb5fc18609e996311126a51e5a1
--- /dev/null
+++ b/library/Class/Systeme/ModulesMenu/Kidilangues.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_Systeme_ModulesMenu_Kidilangues extends Class_Systeme_ModulesMenu_SSOAbstract {
+	/** @var string */
+	protected $_group = Class_Systeme_ModulesMenu::GROUP_MENU_ABONNES;
+
+	/** @var string */
+	protected $_type_module = 'KIDILANGUES';
+
+	/** @var string */
+	protected $_libelle = 'Lien vers Kidilangues';
+
+
+	public function urlForUser($user) {
+		if ($user && $user->hasRightAccesKidilangues() && Class_AdminVar::isKidilanguesEnabled()) {
+			return Class_KidilanguesLink::forUser($user)->url();
+		}
+		$this->setMessage('Vous n\'avez pas accès à cette ressource.');
+		return '';
+	}
+
+
+	public function getUrl($preferences=[]) {
+		return Class_KidilanguesLink::staticUrl();
+	}
+
+	public function shouldOpenInNewWindow($preferences) {
+		return null != Class_Users::getIdentity();
+	}
+
+
+	public function isVisibleForProfil($profil) {
+		return Class_AdminVar::isKidilanguesEnabled();
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Systeme/ModulesMenu/MyCow.php b/library/Class/Systeme/ModulesMenu/MyCow.php
new file mode 100644
index 0000000000000000000000000000000000000000..849bef35d345f8af17ee5ab54a47e41988327433
--- /dev/null
+++ b/library/Class/Systeme/ModulesMenu/MyCow.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class Class_Systeme_ModulesMenu_MyCow extends Class_Systeme_ModulesMenu_SSOAbstract {
+	const MYCOW_URL = 'http://www.mycow.eu/connectSSO.php';
+
+	/** @var string */
+	protected $_group = Class_Systeme_ModulesMenu::GROUP_MENU_ABONNES;
+
+	/** @var string */
+	protected $_type_module = 'MYCOW';
+
+	/** @var string */
+	protected $_libelle = 'Lien vers MyCOW.EU';
+
+
+	public function urlForUser($user) {
+		if ($user && $user->hasRightAccessMyCow() && Class_AdminVar::isMyCowEnabled())
+			return Class_MyCowLink::forUser($user)->url();
+
+		$this->setMessage('Vous n\'avez pas accès à cette ressource.');
+		return '';
+	}
+
+
+	public function isVisibleForProfil($profil) {
+		return Class_AdminVar::isMyCowEnabled();
+	}
+
+
+	public function getUrl($preferences = []) {
+		return Class_MyCowLink::staticUrl();
+	}
+
+
+	public function shouldOpenInNewWindow($preferences) {
+		return null != Class_Users::getIdentity();
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Systeme/ModulesMenu/PlanetNemo.php b/library/Class/Systeme/ModulesMenu/PlanetNemo.php
new file mode 100644
index 0000000000000000000000000000000000000000..e900c4c72bd57ca45fa5ab17a43b51527cc821d1
--- /dev/null
+++ b/library/Class/Systeme/ModulesMenu/PlanetNemo.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class Class_Systeme_ModulesMenu_PlanetNemo extends Class_Systeme_ModulesMenu_SSOAbstract {
+
+	/** @var string */
+	protected $_group = Class_Systeme_ModulesMenu::GROUP_MENU_ABONNES;
+
+	/** @var string */
+	protected $_type_module = 'PLANETNEMO';
+
+	/** @var string */
+	protected $_libelle = 'Lien vers planetnemo.fr';
+
+
+	public function urlForUser($user) {
+		if ($user && $user->hasRightAccessPlanetNemo() && Class_AdminVar::isPlanetNemoEnabled())
+			return Class_PlanetNemoLink::forUser($user)->url();
+
+		$this->setMessage('Vous n\'avez pas accès à cette ressource.');
+		return '';
+	}
+
+
+	public function isVisibleForProfil($profil) {
+		return Class_AdminVar::isPlanetNemoEnabled();
+	}
+
+
+	public function getUrl($preferences = []) {
+		return Class_PlanetNemoLink::staticUrl();
+	}
+
+
+	public function shouldOpenInNewWindow($preferences) {
+		return null != Class_Users::getIdentity();
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/Systeme/ModulesMenu/SSOAbstract.php b/library/Class/Systeme/ModulesMenu/SSOAbstract.php
index e0e2b1465bab97ccad0422a585b53c3b0402149b..d2811e52f3b943a55e37a506f80ee2e59d6d37e5 100644
--- a/library/Class/Systeme/ModulesMenu/SSOAbstract.php
+++ b/library/Class/Systeme/ModulesMenu/SSOAbstract.php
@@ -21,6 +21,7 @@
 abstract class Class_Systeme_ModulesMenu_SSOAbstract extends Class_Systeme_ModulesMenu_Null {
 	protected $_login_redirect_url = null;
 
+
 	public function afterLoginRedirectTo($url) {
 		$this->_login_redirect_url = $url;
 		return $this;
diff --git a/library/Class/Systeme/ModulesNotice.php b/library/Class/Systeme/ModulesNotice.php
index fedee0b8277d6772bd0580ca8ca81969c4b2c909..822649014c45cc1fcec0f05f13e3b2a4d6ec3efd 100644
--- a/library/Class/Systeme/ModulesNotice.php
+++ b/library/Class/Systeme/ModulesNotice.php
@@ -66,30 +66,23 @@ class Class_Systeme_ModulesNotice
 		}
 	}
 
-//------------------------------------------------------------------------------------------------------
-// Valeurs par defaut module bande-annonce
-//------------------------------------------------------------------------------------------------------	
-	private function getDefautBandeAnnonce()
-	{
-		$ret["target"]="1";								// Ouvrir dans un nouvel onglet ou pas
-		$ret["url"]="http://google.fr";   // Test de proprietes
+
+	private function getDefautBandeAnnonce() {
+		$ret['target'] = '1';								// Ouvrir dans un nouvel onglet ou pas
+		$ret['url'] = 'http://google.fr';   // Test de proprietes
 		return $ret;
 	}
 
-//------------------------------------------------------------------------------------------------------
-// Valeurs par defaut module : Exemplaires
-//------------------------------------------------------------------------------------------------------
-	private function getDefautExemplaires()
-	{
-		$ret["grouper"]="0";							// Groupage
-		$ret["bib"]="1";									// Afficher la bibliotheque
-		$ret["section"]="0";							// Afficher la section
-		$ret["emplacement"]="0";					// Afficher l'emplacement
-		$ret["localisation"]="1";					// Afficher lien vers la localisation sur le plan
-		$ret["plan"]="1";									// Afficher lien vers google maps
-		$ret["resa"]="1";									// Afficher le lien de réservation
-		$ret["dispo"]="1";								// Afficher la disponibilité
 
-		return $ret;
+	private function getDefautExemplaires() {
+		return ['grouper' => '0',							// Groupage
+						'bib' => '1',									// Afficher la bibliotheque
+						'section' => '0',							// Afficher la section
+						'emplacement' => '0',					// Afficher l'emplacement
+						'localisation' => '1',				// Afficher lien vers la localisation sur le plan
+						'plan' => '1',								// Afficher lien vers google maps
+						'resa' => '1',								// Afficher le lien de réservation
+						'en_pret' => 'emprunté',      // Libéllé des exemplaires empruntés
+						'dispo' => '1'];							// Afficher la disponibilité
 	}
 }
\ No newline at end of file
diff --git a/library/Class/TypeDoc.php b/library/Class/TypeDoc.php
index a88a9bc3574b22543c11be52f1cc9f0ba0661724..042f97ad354407f6a809305ac904b29275e54cf7 100644
--- a/library/Class/TypeDoc.php
+++ b/library/Class/TypeDoc.php
@@ -75,14 +75,16 @@ class TypeDocLoader extends Storm_Model_Loader  {
 		if (isset($this->_all_instances))
 			return $this->_all_instances;
 
-		if ($types_docs = Class_CosmoVar::find('types_docs')) {
+		$lines = [];
+
+		if($types_docs = Class_CosmoVar::find('types_docs'))
 			$lines = array_filter(explode("\r\n", $types_docs->getListe()));
-			$instances = [];
 
-			foreach ($lines as $line) {
-				$instance = $this->unserialize($line);
-				$instances[$instance->getId()] = $instance;
-			}
+		$instances = [];
+
+		foreach ($lines as $line) {
+			$instance = $this->unserialize($line);
+			$instances [$instance->getId()]= $instance;
 		}
 
 		$default_types = Class_TypeDoc::getDefaultTypeDocs();
@@ -181,7 +183,7 @@ class Class_TypeDoc extends Storm_Model_Abstract {
 	protected $_loader_class = 'TypeDocLoader';
 	protected $_belongs_to = ['codif_type_doc' =>
 														[	'model' => 'Class_CodifTypeDoc',
-															'referenced_in' => 'id' ]];
+														 'referenced_in' => 'id' ]];
 	const LIVRE = 1;
 	const PERIODIQUE = 2;
 	const DISQUE = 3;
@@ -202,6 +204,9 @@ class Class_TypeDoc extends Storm_Model_Abstract {
 	const AUDIO_RECORD = 109;
 	const NUMERIQUEPREMIUM = 110;
 	const CYBERLIBRIS = 111;
+	const DILICOM = 112;
+	const ORPHEA = 113;
+	const ONEDTOUCH = 114;
 
 
 	public static function getDefaultTypeDocs() {
@@ -224,7 +229,11 @@ class Class_TypeDoc extends Storm_Model_Abstract {
 						self::TOUTAPPRENDRE => 'Cours en ligne',
 						self::AUDIO_RECORD => 'Enregistrement audio',
 						self::NUMERIQUEPREMIUM => 'Numérique Premium',
-						self::CYBERLIBRIS => 'Cyberlibris'];
+						self::CYBERLIBRIS => 'Cyberlibris',
+						self::DILICOM => 'Livre numérique (PNB)',
+						self::ONEDTOUCH => '1D touch',
+						self::ORPHEA => 'Orphea',
+		];
 	}
 
 
@@ -313,6 +322,7 @@ class Class_TypeDoc extends Storm_Model_Abstract {
 		return $this->getCodifTypeDoc()->getBibliotheques();
 	}
 
+
 	public function setBibliotheques($bibs) {
 		$this->getCodifTypeDoc()->setBibliotheques($bibs);
 	}
@@ -322,6 +332,7 @@ class Class_TypeDoc extends Storm_Model_Abstract {
 		return $this->getCodifTypeDoc()->getAnnexes();
 	}
 
+
 	public function setAnnexes($annexes) {
 		$this->getCodifTypeDoc()->setAnnexes($annexes);
 	}
@@ -331,31 +342,42 @@ class Class_TypeDoc extends Storm_Model_Abstract {
 		return $this->getCodifTypeDoc()->getSections();
 	}
 
+
 	public function setSections($sections) {
 		$this->getCodifTypeDoc()->setSections($sections);
 	}
 
+
 	public function getLibelle() {
 		return $this->getLabel();
 	}
 
+
 	public function setFamilleId($id) {
 		$this->getCodifTypeDoc()->setFamilleId($id);
 	}
 
+
 	public function toArray() {
 		return ['id'=> $this->getId(),
 						'famille_id' => $this->getFamilleId(),
 						'label' => $this->getLabel()];
 	}
 
+
 	public function isSonore() {
 		return $this->getCodifTypeDoc()->isSonore();
 	}
 
+
 	public function isUserFriendly() {
-		return $this->getFamilleId() >Class_CodifTypeDoc::INCONNU;
+		return $this->getFamilleId() > Class_CodifTypeDoc::INCONNU;
+	}
+
+
+	public function getLabelFor($type_doc_id) {
+		return self::getDefaultTypeDocs()[$type_doc_id];
 	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/Url.php b/library/Class/Url.php
index 28c91469336dca320874781d13f2d96c64c9ee2a..e078d20ad454450feaf74d0b038694220f7d0f0d 100644
--- a/library/Class/Url.php
+++ b/library/Class/Url.php
@@ -22,6 +22,16 @@
 class Class_Url {
 	protected static $_do_not_add_base_url;
 
+
+	public static function baseUrl() {
+		$parts = array_diff(array_filter(explode('/', $_SERVER['SCRIPT_NAME'])),
+												['index.php']);
+		return 0 < count($parts)
+			? '/' . implode('/', $parts)
+			: '';
+	}
+
+
 	public static function doNotAddBaseUrl() {
 		static::$_do_not_add_base_url = true;
 	}
diff --git a/library/Class/UserGroup.php b/library/Class/UserGroup.php
index 9410da4f403690f60f03ae3dfd1c9518fa96d685..d46fa700b7554bc6f598f052f23849d8ba8e9107 100644
--- a/library/Class/UserGroup.php
+++ b/library/Class/UserGroup.php
@@ -22,12 +22,12 @@
 class Class_UserGroup extends Storm_Model_Abstract {
 	use Trait_TreeViewableItem, Trait_HasManyDomaines;
 	protected $_table_name = 'user_groups';
-	protected $_has_many = ['user_group_memberships' => [ 'model' => 'Class_UserGroupMembership',
-																												'role' => 'user_group'],
+	protected $_has_many = ['user_group_memberships' => ['model' => 'Class_UserGroupMembership',
+																											 'role' => 'user_group',
+																											 'dependents' => 'delete'],
 
 													'users' => ['through' => 'user_group_memberships',
-																			'unique' => true,
-																			'dependents' => 'delete'],
+																			'unique' => true],
 
 													'user_group_permissions' => ['model' => 'Class_UserGroup_Permission',
 																											 'role' => 'group',
@@ -53,6 +53,10 @@ class Class_UserGroup extends Storm_Model_Abstract {
 	const RIGHT_ACCES_NUMERIQUEPREMIUM = 20;
 	const RIGHT_ACCES_LEKIOSK = 21;
 	const RIGHT_ACCES_CYBERLIBRIS = 22;
+	const RIGHT_ACCES_MYCOW = 24;
+	const RIGHT_ACCES_KIDILANGUES = 25;
+	const RIGHT_ACCES_PNB_DILICOM = 26;
+	const RIGHT_ACCES_PLANETNEMO = 27;
 
 	// droits moderateurs
 	const RIGHT_USER_DOMAINES_SUPPRESSION_LIMIT = 8;
@@ -72,8 +76,10 @@ class Class_UserGroup extends Storm_Model_Abstract {
 	// Type de groupe
 	const TYPE_MANUAL = 0;
 	const TYPE_DYNAMIC = 1;
+	const TYPE_MULTIMEDIA = 2;
 	const TYPE_DYNAMIC_TEXT = 'Dynamique';
 	const TYPE_MANUAL_TEXT = 'Manuel';
+	const TYPE_MULTIMEDIA_TEXT = 'Multimedia';
 
 	protected static $_rights_definition = [
 		self::RIGHT_SUIVRE_FORMATION => 'Formations: suivre une formation',
@@ -87,6 +93,10 @@ class Class_UserGroup extends Storm_Model_Abstract {
 		self::RIGHT_ACCES_NUMERIQUEPREMIUM => 'Bibliothèque numérique: accéder à Numérique Premium',
 		self::RIGHT_ACCES_MUSICME => 'Bibliothèque numérique: accéder à Music Me',
 		self::RIGHT_ACCES_LEKIOSK => 'Bibliothèque numérique: accéder à Lekiosk.com',
+		self::RIGHT_ACCES_MYCOW => 'Bibliothèque numérique: accéder à MyCOW.EU',
+		self::RIGHT_ACCES_PLANETNEMO => 'Bibliothèque numérique: accéder à planetnemo.fr',
+		self::RIGHT_ACCES_KIDILANGUES => 'Bibliothèque numérique: accéder à Kidilangues',
+		self::RIGHT_ACCES_PNB_DILICOM => 'Bibliothèque numérique: autoriser le prêt numérique Dilicom',
 		self::RIGHT_USER_DOMAINES_SUPPRESSION_LIMIT => 'Domaines: accès, modification et suppression limitée au créateur',
 		self::RIGHT_USER_DOMAINES_TOTAL_ACCESS => 'Domaines: accès total en modification et suppression',
 		self::RIGHT_USER_FILE_ACCESS => 'Articles: accès sur les répertoires images et file',
@@ -124,17 +134,18 @@ class Class_UserGroup extends Storm_Model_Abstract {
 
 	public static function getActivatedRightDefinitionList() {
 		$rights = self::getRightDefinitionList();
-		$mapping = [
-			'Formation' => [Class_UserGroup::RIGHT_SUIVRE_FORMATION,
-			                Class_UserGroup::RIGHT_DIRIGER_FORMATION],
-			'ArteVod' => [Class_UserGroup::RIGHT_ACCES_ARTEVOD],
-			'CVS' => [Class_UserGroup::RIGHT_ACCES_CVS],
-			'Numilog' => [Class_UserGroup::RIGHT_ACCES_NUMILOG],
-			'Vodeclic' => [Class_UserGroup::RIGHT_ACCES_VODECLIC],
-			'Lekiosk' => [Class_UserGroup::RIGHT_ACCES_LEKIOSK],
-			'ToutApprendre' => [Class_UserGroup::RIGHT_ACCES_TOUTAPPRENDRE],
-			'MusicMe' => [Class_UserGroup::RIGHT_ACCES_MUSICME],
-			'NumeriquePremium' => [Class_UserGroup::RIGHT_ACCES_NUMERIQUEPREMIUM],
+		$mapping = ['Formation' => [Class_UserGroup::RIGHT_SUIVRE_FORMATION,
+																Class_UserGroup::RIGHT_DIRIGER_FORMATION],
+								'ArteVod' => [Class_UserGroup::RIGHT_ACCES_ARTEVOD],
+								'CVS' => [Class_UserGroup::RIGHT_ACCES_CVS],
+								'Numilog' => [Class_UserGroup::RIGHT_ACCES_NUMILOG],
+								'Vodeclic' => [Class_UserGroup::RIGHT_ACCES_VODECLIC],
+								'Lekiosk' => [Class_UserGroup::RIGHT_ACCES_LEKIOSK],
+								'ToutApprendre' => [Class_UserGroup::RIGHT_ACCES_TOUTAPPRENDRE],
+								'MusicMe' => [Class_UserGroup::RIGHT_ACCES_MUSICME],
+								'NumeriquePremium' => [Class_UserGroup::RIGHT_ACCES_NUMERIQUEPREMIUM],
+								'MyCow' => [Class_UserGroup::RIGHT_ACCES_MYCOW],
+								'Kidilangues' => [Class_UserGroup::RIGHT_ACCES_KIDILANGUES],
 		];
 
 		foreach($mapping as $type => $tokens) {
@@ -147,6 +158,10 @@ class Class_UserGroup extends Storm_Model_Abstract {
 		return $rights;
 	}
 
+	public static function findGroupUserMultimedia(){
+		return self::findFirstBy(['group_type' => self::TYPE_MULTIMEDIA]);
+	}
+
 
 	/**
 	 * @return array
diff --git a/library/Class/Users.php b/library/Class/Users.php
index c708fa9a40f4e29684a8b984a3887c0e43dcfb32..9ed4c5ea9c7dcce088a3fdf9e6ead3463b30a969 100644
--- a/library/Class/Users.php
+++ b/library/Class/Users.php
@@ -754,6 +754,26 @@ class Class_Users extends Storm_Model_Abstract {
 	}
 
 
+	public function hasRightAccessMyCow() {
+		return $this->isAbonneAndHasRightToAccess(Class_UserGroup::RIGHT_ACCES_MYCOW);
+	}
+
+
+	public function hasRightAccessPlanetNemo() {
+		return $this->isAbonneAndHasRightToAccess(Class_UserGroup::RIGHT_ACCES_PLANETNEMO);
+	}
+
+
+	public function hasRightAccesKidilangues() {
+		return $this->isAbonneAndHasRightToAccess(Class_UserGroup::RIGHT_ACCES_KIDILANGUES);
+	}
+
+
+	public function hasRightAccessDilicom() {
+		return $this->isAbonneAndHasRightToAccess(Class_UserGroup::RIGHT_ACCES_PNB_DILICOM);
+	}
+
+
 	public function getFirstAvisByIdNotice($id_notice) {
 		$notice = Class_Notice::getLoader()->find($id_notice);
 		$avis = $notice->getAvisByUser($this);
diff --git a/library/Class/WebService/Abstract.php b/library/Class/WebService/Abstract.php
index 413a4e89a50a95f6b6ce663d0cf6a2392f967820..c98d1ea94d077e9efa0836de666512068541241c 100644
--- a/library/Class/WebService/Abstract.php
+++ b/library/Class/WebService/Abstract.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 abstract class Class_WebService_Abstract {
@@ -27,7 +27,7 @@ abstract class Class_WebService_Abstract {
 		static::$_http_client = $http_client;
 	}
 
-	
+
 	public static function getHttpClient() {
 		if (static::$_http_client==null ||  !isset(static::$_http_client)) {
 			static::$_http_client = new Class_WebService_SimpleWebClient();
@@ -47,9 +47,15 @@ abstract class Class_WebService_Abstract {
 		$this->_message=$message;
 	}
 
+
 	function getMessage() {
 		return $this->_message;
 	}
+
+
+	public function httpGet($url) {
+		return $this->getHttpClient()->open_url($url);
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/library/Class/WebService/BibNumerique/Abstract.php b/library/Class/WebService/BibNumerique/Abstract.php
index 301fdd019f7f7c5953d0eadd3986a0a72fa211f1..3561496df7c66b39a921c1aa2904081e30ed5669 100644
--- a/library/Class/WebService/BibNumerique/Abstract.php
+++ b/library/Class/WebService/BibNumerique/Abstract.php
@@ -16,13 +16,15 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 abstract class Class_WebService_BibNumerique_Abstract extends Class_WebService_Abstract {
- 	protected $_logger;
-	protected $web_client;
-	protected $_harvested_ids;
+
+ 	protected $_logger,
+		$web_client,
+		$_harvested_ids;
+
 	public function setWebClient($client) {
 		$this->web_client = $client;
 		return $this;
@@ -81,7 +83,21 @@ abstract class Class_WebService_BibNumerique_Abstract extends Class_WebService_A
 	}
 
 	abstract protected function _deleteNonHarvested();
-	abstract protected function _importRessources($ressources);
+
+
+	protected function _importRessources($ressources) {
+		$harvestedIds = [];
+		foreach ($ressources as $ressource) {
+			$harvestedIds[] = $ressource->getId();
+			if ($ressource->isAlreadyHarvested())
+				continue;
+
+			$ressource->import();
+		}
+		return $harvestedIds;
+	}
+
+
 	abstract protected function loadPage($page_number = 1);
 	abstract public function isEnabled();
 	abstract public function getName();
diff --git a/library/Class/WebService/BibNumerique/AbstractOAI.php b/library/Class/WebService/BibNumerique/AbstractOAI.php
new file mode 100644
index 0000000000000000000000000000000000000000..dc08879f4adcce95cdbb0afb2851060c4fcc0626
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/AbstractOAI.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+abstract class Class_WebService_BibNumerique_AbstractOAI extends Class_WebService_BibNumerique_Abstract {
+	use Trait_TimeSource;
+
+	protected $_harvested_ids = [], $_oaiws;
+
+	public function harvest() {
+		while($this->getOaiWS()->hasRecordsToHarvest())
+			$this->addHarvestedIds($this->_importRessources($this->loadPage()));
+
+		Class_WebService_HarvestLog::newInstance(['end_date' => $this->getCurrentDate(),
+																							'type_doc' => $this->getTypeDoc()])->save();
+
+		return $this;
+	}
+
+
+	protected function loadPage($page_number = 1) {
+		$params = [];
+
+		$count = Class_Album::countBy(['type_doc_id' => $this->getTypeDoc()]);
+
+		$harvest_log = Class_WebService_HarvestLog::findFirstBy(['type_doc' => $this->getTypeDoc(),
+																														 'order' => 'end_date desc']);
+
+		if ( $harvest_log && (0 < $count))
+			 $params = ['from' => $harvest_log->getEndDate()];
+
+		return $this->getOaiWS()->getRecordsResourcesNumerique($params);
+	}
+
+
+	protected function addHarvestedIds($ids) {
+		return $this->_harvested_ids = array_merge($this->_harvested_ids, $ids);
+	}
+
+
+	public function getHarvestedIds() {
+		return $this->_harvested_ids;
+	}
+
+
+	public function getName() {
+		return Class_TypeDoc::getLabelFor($this->getTypeDoc());
+	}
+
+
+	protected function hasHarvestLog() {
+		return 0 < Class_WebService_HarvestLog::countBy(['type_doc' => $this->getTypeDoc()]);
+	}
+
+
+	protected function _deleteNonHarvested() {}
+
+
+	abstract protected function getTypeDoc();
+
+
+	abstract protected function getOaiWS();
+
+
+	abstract protected function getUrlOrigine();
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/ArteVOD/Film.php b/library/Class/WebService/BibNumerique/ArteVOD/Film.php
index 7e8a64821ba54c4a3594e26dcb512002f676f82d..e1e32fd04d38cd96cd73d70c518b28cd96aa910b 100644
--- a/library/Class/WebService/BibNumerique/ArteVOD/Film.php
+++ b/library/Class/WebService/BibNumerique/ArteVOD/Film.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_BibNumerique_ArteVOD_Film  extends Class_WebService_BibNumerique_RessourceNumerique {
@@ -26,7 +26,6 @@ class Class_WebService_BibNumerique_ArteVOD_Film  extends Class_WebService_BibNu
 	protected $_title;
 	protected $_description;
 	protected $_year;
-	protected $_authors = [];
 	protected $_posters = [];
 	protected $_trailers = [];
 	protected $_photos = [];
@@ -34,6 +33,7 @@ class Class_WebService_BibNumerique_ArteVOD_Film  extends Class_WebService_BibNu
 	protected $_tags = [];
 	protected $duration;
 
+
   public function fillAlbum($album) {
 		$album->beArteVOD()
 			->setDuration($this->duration.' min')
@@ -52,7 +52,7 @@ class Class_WebService_BibNumerique_ArteVOD_Film  extends Class_WebService_BibNu
 		$this->duration = $duration;
 	}
 
-	
+
 	public function getDuration() {
 		return $this->duration;
 	}
@@ -64,7 +64,7 @@ class Class_WebService_BibNumerique_ArteVOD_Film  extends Class_WebService_BibNu
 	public function getTags() {
 		return implode($this->_tags,';');
 	}
-	
+
 	public function addActor($actor) {
 		$this->_actors[] = $actor;
 		return $this;
diff --git a/library/Class/WebService/BibNumerique/ArteVOD/FilmReader.php b/library/Class/WebService/BibNumerique/ArteVOD/FilmReader.php
index 09e54dfd230b2258ff61887991cc6209ad579a58..78b2fc7d2529b0085aba5b7cc8a750cec8f38b61 100644
--- a/library/Class/WebService/BibNumerique/ArteVOD/FilmReader.php
+++ b/library/Class/WebService/BibNumerique/ArteVOD/FilmReader.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_Bibnumerique_ArteVOD_FilmReader {
@@ -24,9 +24,11 @@ class Class_WebService_Bibnumerique_ArteVOD_FilmReader {
 	protected $_film;
 	protected $_current_author;
 	protected $_current_actor;
+
+
 	public function parseContentOn($xml, $film) {
 		$this->_film = $film;
-		
+
 		$this->_xml_parser = Class_WebService_XMLParser::newInstance();
 		$this->_xml_parser->setElementHandler($this);
 		$this->_xml_parser->parse($xml);
@@ -34,7 +36,7 @@ class Class_WebService_Bibnumerique_ArteVOD_FilmReader {
 		return $this;
 	}
 
-	
+
 	public function cleanXml($xml) {
 		return(str_replace('&','&amp;',$xml));
 	}
@@ -63,11 +65,11 @@ class Class_WebService_Bibnumerique_ArteVOD_FilmReader {
 	public function endSub_genre($data) {
 		$this->_film->addMatiere($data);
 	}
-	
+
 	public function endDuration($data) {
 		$this->_film->addDuration($data);
 	}
-	
+
 	public function endProduction_Year($data) {
 		$this->_film->setYear($data);
 	}
diff --git a/library/Class/WebService/BibNumerique/Cyberlibris.php b/library/Class/WebService/BibNumerique/Cyberlibris.php
index 4fdbd26eeb792bcae576a25a602ca68094970ddd..854b236843277b894477240fb8c8c85c490cd542 100644
--- a/library/Class/WebService/BibNumerique/Cyberlibris.php
+++ b/library/Class/WebService/BibNumerique/Cyberlibris.php
@@ -20,47 +20,36 @@
  */
 
 
-class Class_WebService_BibNumerique_Cyberlibris extends Class_WebService_BibNumerique_Abstract {
+class Class_WebService_BibNumerique_Cyberlibris extends Class_WebService_BibNumerique_AbstractOAI {
 
 	const BASE_URL = 'http://oai-bibliovox.cyberlibris.fr/oai.aspx';
 	const CATEGORY_LABEL = 'Cyberlibris';
 
 
-	protected function _deleteNonHarvested() {
-		if (0 < count($this->getHarvestedIds()))
-			Class_Album::getLoader()
-			->deleteBy(['where' => 'url_origine="'.self::BASE_URL.'" and id_origine not in (\'' . implode("', '", $this->getHarvestedIds()) . '\')']);
+	public function __construct() {
+		$this->_oaiws = (new Class_WebService_OAI())
+			->setOAIHandler(Class_AdminVar::get('CYBERLIBRIS_URL'))
+			->setNumericResourceClass('Class_WebService_BibNumerique_Cyberlibris_LivreNumerique');
 	}
 
 
-	protected function _importRessources($ressources) {
-		$harvestedIds = [];
-		$this->_albums = [];
-		foreach ($ressources as $ressource) {
-			$harvestedIds[] = $ressource->getId();
-			if ($ressource->isAlreadyHarvested())
-				continue;
-
-			$this->_albums[] = $ressource->import();
-		}
-		return $harvestedIds;
+	public function isEnabled() {
+		return Class_AdminVar::isCyberlibrisEnabled();
 	}
 
 
-	protected function loadPage($page_number = 1) {
-		$reader = (new Class_WebService_BibNumerique_Cyberlibris_LivresNumeriquesReader());
-		$reader->parse('');
-		return $reader;
+	protected function getUrlOrigine() {
+		return self::BASE_URL;
 	}
 
 
-	public function isEnabled() {
-		return Class_AdminVar::isCyberlibrisEnabled();
+	protected function getTypeDoc() {
+		return Class_TypeDoc::CYBERLIBRIS;
 	}
 
 
-	public function getName() {
-		return 'Cyberlibris';
+	protected function getOaiWS() {
+		return $this->_oaiws;
 	}
 }
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/WebService/BibNumerique/Cyberlibris/LivresNumeriquesReader.php b/library/Class/WebService/BibNumerique/Cyberlibris/LivresNumeriquesReader.php
deleted file mode 100644
index ff989966eb93f804fc92722c9f23d7be4bfcf85c..0000000000000000000000000000000000000000
--- a/library/Class/WebService/BibNumerique/Cyberlibris/LivresNumeriquesReader.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-/**
- * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
- *
- * BOKEH is free software; you can redistribute it and/or modify
- * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
- * the Free Software Foundation.
- *
- * There are special exceptions to the terms and conditions of the AGPL as it
- * is applied to this software (see README file).
- *
- * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
- * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
- */
-
-
-class Class_WebService_BibNumerique_Cyberlibris_LivresNumeriquesReader extends Class_WebService_DublinCoreParser {
-	protected $_total_count;
-	protected $_page_number;
-	protected $_page_size;
-	protected $_ressourcesNumeriques;
-	protected $livres;
-	protected $_logger;
-
-
-	public function getLogger() {
-		if (null == $this->_logger)
-			return new Zend_Log(new Zend_Log_Writer_Null());
-		return $this->_logger;
-	}
-
-
-	public function parse($xml) {
-		$this->_total_count = $this->_page_number = 0;
-		$this->_page_size = 1;
-		$this->livres = [];
-		$url = Class_AdminVar::get('CYBERLIBRIS_URL');
-		$oaiws = new Class_WebService_OAI();
-
-		$listsize = ($this->_resumptionToken) ? $this->_resumptionToken->getListSize() : '100';
-		$this->getLogger()->info($listsize .' ressources dans la base');
-		$this->livres = $oaiws
-			->setOAIHandler($url)
-			->setNumericResourceClass('Class_WebService_BibNumerique_Cyberlibris_LivreNumerique')
-			->getRecordsResourcesNumerique();
-
-		while ($oaiws->hasNextRecords())
-			$this->livres = array_merge($this->livres, $oaiws->getNextNumericResources());
-
-		$this->_total_count = sizeof($this->livres);
-		$this->_page_number = 1;
-		$this->_page_size = $this->_total_count;
-		return $this;
-	}
-
-
-	public function getTotalCount() {
-		return $this->_total_count;
-	}
-
-
-	public function getPageNumber() {
-		return $this->_page_number;
-	}
-
-
-	public function getPageCount() {
-		return ceil($this->_total_count / $this->_page_size);
-	}
-
-
-	public function setRecords($records) {
-		$this->livres=$records;
-	}
-
-
-	public function getRessourcesNumeriques() {
-		return $this->livres;
-	}
-
-}
diff --git a/library/Class/WebService/BibNumerique/Dilicom/Book.php b/library/Class/WebService/BibNumerique/Dilicom/Book.php
new file mode 100644
index 0000000000000000000000000000000000000000..2fea88928b13e14abc45fae8eabb364498024292
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Dilicom/Book.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNumerique_RessourceNumerique {
+	protected
+		$_isbn,
+		$_subtitle,
+		$_order_line_id,
+		$_collections = [],
+		$_usage_constraints = [];
+
+
+	public function fillAlbum($album) {
+		$album
+			->setTypeDoc(Class_TypeDoc::find(Class_TypeDoc::DILICOM))
+			->setISBN($this->_isbn)
+			->setSousTitre($this->_subtitle)
+			->addEditor($this->getEditeur())
+			->setUsageConstraints($this->_usage_constraints);
+
+		if ($this->_order_line_id)
+			$album
+			->getUsageConstraints()
+			->getLoanConstraint()
+			->setOrderLineId($this->_order_line_id);
+
+		array_map([$album, 'addAuthor'], $this->getAuthors());
+		array_map([$album, 'addCollection'], $this->_collections);
+	}
+
+
+	public function getBaseUrl() {
+		return 'http://www.dilicom.net';
+	}
+
+
+	public function setOrderLineId($data) {
+		$this->_order_line_id = $data;
+	}
+
+
+	public function addCollection($collection) {
+		$this->_collections []= $collection;
+	}
+
+
+	public function addUsageConstraint($constraint) {
+		$this->_usage_constraints []= $constraint;
+	}
+
+
+	public function setIsbn($isbn) {
+		$this->_isbn = $isbn;
+		return $this;
+	}
+
+
+	public function getIsbn() {
+		return $this->_isbn;
+	}
+
+
+	public function setSubtitle($subtitle) {
+		$this->_subtitle = $subtitle;
+	}
+
+
+	public function getSubtitle() {
+		return $this->_subtitle;
+	}
+
+
+	public function getRessourceCategorieLibelle() {
+		return 'Livre numérique (PNB)';
+	}
+
+}
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/BibNumerique/Dilicom/Hub.php b/library/Class/WebService/BibNumerique/Dilicom/Hub.php
new file mode 100644
index 0000000000000000000000000000000000000000..80a29eeff9b7232c5a8722948112af195f16f142
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Dilicom/Hub.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Dilicom_Hub extends Class_WebService_Abstract {
+	use Trait_TimeSource;
+
+	public function consultBook($album, $ip_address) {
+		$order_line_id = $album->getUsageConstraints()->getLoanOrderLineId();
+
+		return $this->dilicomCall('consultBook',
+															['orderLineId' => $order_line_id,
+															 'accessMedium' => 'STREAMING',
+															 'localization' => 'IN_SITU',
+															 'consultEndDate' => urlencode(date(DATE_ISO8601 ,$this->getCurrentTime() + 3600)),
+															 'ean13' => $album->getISBN(),
+															 'ipAddress' => $ip_address,
+															 'loanId' =>  implode('',
+																										[base_convert($this->getTimeSource()->time(), 10, 36),
+																										 Class_Users::currentUserId(),
+																										 $album->getId()])
+															]);
+	}
+
+
+	public function declareIp($ips = []) {
+		return $this->dilicomCall('declareIp', $this->buildIps($ips));
+	}
+
+
+	protected function dilicomCall($service, $params) {
+		static::getHttpClient()->setAuth(Class_AdminVar::get('DILICOM_PNB_GLN_COLLECTIVITE'),
+																		 Class_AdminVar::get('DILICOM_PNB_PWD_COLLECTIVITE'));
+		return $this->httpGet(
+													$this->buildUrl($service,
+																					$params));
+	}
+
+
+	protected function buildUrl($service, $params) {
+		$params = array_merge(['glnContractor' => Class_AdminVar::get('DILICOM_PNB_GLN_CONTRACTOR')],
+													$params);
+
+		$parts = [];
+		foreach($params as $key => $value) {
+			$parts[] = $key . '=' . $value;
+		}
+
+		return $this->getDilicomUrl() . $service . '?' . implode('&', $parts);
+	}
+
+
+	protected function getDilicomUrl() {
+		return Class_AdminVar::get('DILICOM_PNB_SERVER_URL') . '/v2/pnb-numerique/json/';
+	}
+
+
+	protected function buildIps($ips) {
+		$ips_param = [];
+		for($i = 0; $i < count($ips); $i++) {
+			$ips_param['ips[' . $i . ']'] = $ips[$i];
+		}
+		return $ips_param;
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php b/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php
new file mode 100644
index 0000000000000000000000000000000000000000..fc6d268b8ee6b651c93af64f28e481a7618edd22
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php
@@ -0,0 +1,236 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Dilicom_ONIXFile {
+	const
+		PRODUCT_TYPE_ID_ISBN_10 = '02',
+		PRODUCT_TYPE_ID_EAN = '03',
+		PRODUCT_TYPE_ID_ISBN_13 = '15',
+		PUBLISHING_DATE_ROLE_PUBLISHING_DATE = '01',
+		TEXT_TYPE_DESCRIPTION = '03',
+		LANG_ROLE_TEXT_LANG = '01',
+		RESOURCE_CONTENT_TYPE_FRONT_COVER = '01',
+		RESOURCE_CONTENT_TYPE_WIDGET = '16',
+		USAGE_UNIT_DAYS = '09',
+		USAGE_UNIT_USERS = '07';
+
+	protected
+		$_parser,
+		$_book,
+		$_current_publishing_date_role,
+		$_current_text_type,
+		$_current_product_id_type,
+		$_current_product_id_value,
+		$_current_resource_content_type,
+		$_current_language_role,
+		$_current_usage_constraint,
+		$_current_quantity,
+		$_current_usage_unit,
+		$_tag_mapping = ['B203' => 'TitleText',
+										 'B221' => 'ProductIDType',
+										 'B244' => 'IDValue',
+										 'B029' => 'Subtitle',
+										 'X415' => 'PersonName',
+										 'B081' => 'PublisherName',
+										 'X448' => 'PublishingDateRole',
+										 'B306' => 'Date',
+										 'X426' => 'TextType',
+										 'D104' => 'Text',
+										 'B253' => 'LanguageRole',
+										 'B252' => 'LanguageCode',
+										 'X435' => 'ResourceLink',
+										 'X436' => 'ResourceContentType',
+										 'X318' => 'EPubUsageType',
+										 'X320' => 'Quantity',
+										 'X321' => 'EPubUsageUnit'];
+
+
+	public function __construct() {
+		foreach($this->_tag_mapping as $alias => $target) {
+			list($start_alias, $end_alias) = ['start'.$alias, 'end'.$alias];
+			$this->$start_alias = function($content) use ($target) {
+			  			  			 				return call_user_func([$this, 'start'.$target], $content);
+						  			  			};
+			$this->$end_alias = function($content) use ($target) {
+			  			  					  return call_user_func([$this, 'end'.$target], $content);
+			  			  					};
+		}
+	}
+
+	public static function bookFromXML($xml) {
+		return (new self())
+			->parseXML($xml)
+			->getBook();
+	}
+
+
+	public function parseXML($xml) {
+		$this->_book = new Class_WebService_BibNumerique_Dilicom_Book();
+		$this->_resources = [];
+
+		$this->_parser = (new Class_WebService_FasterXMLParser());
+		$this->_parser
+			->setElementHandler($this)
+			->parse($xml);
+
+		return $this;
+	}
+
+
+	public function getBook() {
+		return $this->_book;
+	}
+
+
+	public function endTitleText($content) {
+		if ($this->_parser->inParents('Collection')) {
+			$this->_book->addCollection($content);
+			return;
+		}
+		$this->_book->setTitle($content);
+	}
+
+
+	public function endIDValue($content) {
+		$this->_current_product_id_value = $content;
+	}
+
+
+	public function endProductIdType($content) {
+		$this->_current_product_id_type = $content;
+	}
+
+
+	public function endProductIdentifier() {
+		if (
+				('product' == $this->_parser->getParent())
+				&& in_array($this->_current_product_id_type, [self::PRODUCT_TYPE_ID_ISBN_10,
+																											self::PRODUCT_TYPE_ID_EAN,
+																											self::PRODUCT_TYPE_ID_ISBN_13])) {
+			$this->_book
+				->setISBN($this->_current_product_id_value)
+				->setId('Dilicom-'.$this->_current_product_id_value);
+		}
+	}
+
+
+	public function endSubtitle($content) {
+		$this->_book->setSubtitle($content);
+	}
+
+
+	public function endPersonName($content) {
+		$this->_book->addAuthor($content);
+	}
+
+
+	public function endPublisherName($content) {
+		$this->_book->setEditeur($content);
+	}
+
+
+	public function endPublishingDateRole($content) {
+		$this->_current_publishing_date_role = $content;
+	}
+
+
+	public function endDate($content) {
+		if ($this->_parser->inParents('PublishingDate') && ($this->_current_publishing_date_role == self::PUBLISHING_DATE_ROLE_PUBLISHING_DATE))
+			$this->_book->setYear(substr($content, 0, 4));
+	}
+
+
+	public function endTextType($content) {
+		$this->_current_text_type = $content;
+	}
+
+
+	public function endText($content) {
+		if ($this->_current_text_type == self::TEXT_TYPE_DESCRIPTION)
+			$this->_book->setDescription($content);
+	}
+
+
+	public function endLanguageRole($content) {
+		$this->_current_language_role = $content;
+	}
+
+
+	public function endLanguageCode($content) {
+		if ($this->_current_language_role == self::LANG_ROLE_TEXT_LANG)
+			$this->_book->setIdLangue($content);
+	}
+
+
+	public function endResourceContentType($content) {
+		$this->_current_resource_content_type = $content;
+	}
+
+
+	public function endResourceLink($content) {
+		if ($this->_current_resource_content_type === self::RESOURCE_CONTENT_TYPE_FRONT_COVER) {
+			$this->_book->addPoster($content);
+			return;
+		}
+
+
+		if ($this->_current_resource_content_type === self::RESOURCE_CONTENT_TYPE_WIDGET) {
+			$this->_book->setExternalURI($content);
+		}
+	}
+
+
+	public function startEPubUsageConstraint() {
+		$this->_book->addUsageConstraint($this->_current_usage_constraint = new Class_Album_UsageConstraint());
+	}
+
+
+	public function endEPubUsageType($content) {
+		$this->_current_usage_constraint->setUsageType($content);
+	}
+
+
+	public function endEPubUsageLimit() {
+		if ($this->_current_usage_unit == self::USAGE_UNIT_DAYS) {
+			$this->_current_usage_constraint->setDuration($this->_current_quantity);
+			return;
+		}
+
+		if ($this->_current_usage_unit == self::USAGE_UNIT_USERS) {
+			$this->_current_usage_constraint->setMaxNumberOfUsers($this->_current_quantity);
+			return;
+		}
+
+		$this->_current_usage_constraint->setQuantity($this->_current_quantity);
+	}
+
+
+	public function endQuantity($content) {
+		$this->_current_quantity = $content;
+	}
+
+
+	public function endEPubUsageUnit($content) {
+		$this->_current_usage_unit = $content;
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/BibNumerique/Dilicom/PNBOffersFile.php b/library/Class/WebService/BibNumerique/Dilicom/PNBOffersFile.php
new file mode 100644
index 0000000000000000000000000000000000000000..d6b90910d6adc7b61529438d3bfddf2a3f56637a
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Dilicom/PNBOffersFile.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Dilicom_PNBOffersFile {
+	protected
+		$_books;
+
+	public static function booksFromXML($xml) {
+		return (new self())
+			->parseXML($xml)
+			->getBooks();
+	}
+
+
+	public function parseXML($xml) {
+		$this->_books = [];
+
+		$this->_parser = (new Class_WebService_FasterXMLParser());
+		$this->_parser
+			->setElementHandler($this)
+			->parse($xml);
+
+		return $this;
+	}
+
+
+	public function getBooks() {
+		return $this->_books;
+	}
+
+
+	public function endNotice($data) {
+		$this->_books []= Class_WebService_BibNumerique_Dilicom_ONIXFile::bookFromXML(html_entity_decode($data));
+	}
+
+
+	public function endOrderLineId($data) {
+		end($this->_books)->setOrderLineId($data);
+	}
+
+	public function endean13($data) {
+		end($this->_books)->setISBN($data);
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/BibNumerique/NumeriquePremium.php b/library/Class/WebService/BibNumerique/NumeriquePremium.php
index a0598a1ec4d0344d2c649d42f22dc1a5679ce1f2..ce9463f33bba20a188bbf088ddae92e35bae8f02 100644
--- a/library/Class/WebService/BibNumerique/NumeriquePremium.php
+++ b/library/Class/WebService/BibNumerique/NumeriquePremium.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
@@ -25,18 +25,6 @@ class Class_WebService_BibNumerique_NumeriquePremium extends Class_WebService_Bi
 
 	protected function _deleteNonHarvested() {}
 
-	protected function _importRessources($ressources) {
-		$harvestedIds=[];
-		foreach ($ressources as $ressource) {
-			$harvestedIds[] = $ressource->getId();
-			if ($ressource->isAlreadyHarvested())
-				continue;
-			$ressource->import();
-		}
-		return $harvestedIds;
-	}
-
-
 	protected function loadPage($page_number = 1) {
 		$file_contents = $this->getWebClient()->open_url(Class_AdminVar::get('NUMERIQUE_PREMIUM_URL'));
 		return (new NumeriquePremiumReader())->parse($file_contents);
@@ -84,7 +72,7 @@ class NumeriquePremiumReader {
 	}
 
 
-	public function getPageCount() { 
+	public function getPageCount() {
 		return 1;
 	}
 
diff --git a/library/Class/WebService/BibNumerique/OneDTouch.php b/library/Class/WebService/BibNumerique/OneDTouch.php
new file mode 100644
index 0000000000000000000000000000000000000000..1ec948f2db7deba6f86b5bea1d5d5c66804849ac
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/OneDTouch.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_WebService_BibNumerique_OneDTouch extends Class_WebService_BibNumerique_AbstractOAI {
+
+	const CATEGORY_LABEL = 'OneDTouch';
+
+
+	public function __construct() {
+		$this->_dc_parser = new Class_WebService_OneDTouchDCParser();
+		$this->_oaiws = (new Class_WebService_OAI())
+			->setMetadataPrefix('oai1dtouch_dc')
+			->setParser($this->_dc_parser)
+			->setOAIHandler($this->getUrlOrigine())
+			->setNumericResourceClass('Class_WebService_BibNumerique_OneDTouch_Album');
+	}
+
+
+	public function isEnabled() {
+		return Class_AdminVar::isOneDTouchEnabled();
+	}
+
+
+	protected function getTypeDoc() {
+		return Class_TypeDoc::ONEDTOUCH;
+	}
+
+
+	protected function getUrlOrigine() {
+		return Class_AdminVar::get('ONEDTOUCH_URL');
+	}
+
+	protected function getOaiWS() {
+		return $this->_oaiws;
+	}
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/OneDTouch/Album.php b/library/Class/WebService/BibNumerique/OneDTouch/Album.php
new file mode 100644
index 0000000000000000000000000000000000000000..a2d90c25bada7d4497b334f05c706b414d0755ec
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/OneDTouch/Album.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_OneDTouch_Album extends Class_WebService_BibNumerique_RessourceNumerique {
+
+	public function getBaseUrl() {
+		return Class_AdminVar::get('ONEDTOUCH_URL');
+	}
+
+
+	public function fillAlbum($album) {
+		$album->beOneDTouch()
+			->setDescription($this->getDescription())
+			->setEditeur($this->getEditeur());
+		foreach($this->getAuthors() as $author)
+			$album->addAuthor($author);
+		return $album;
+	}
+
+
+	public function import() {
+		if (!$album = $this->findAlbumInDB())
+			$album = Class_Album::newInstance();
+
+		$categorie = $this->getOrCreateRessourceCategorie();
+
+		return $this->updateAlbum($album);
+	}
+
+
+
+	public function isAlreadyHarvested() {
+		return false;
+	}
+
+
+	public function getRessourceCategorieLibelle() {
+		return Class_WebService_BibNumerique_OneDTouch::CATEGORY_LABEL;
+	}
+
+	public function setOaiId($data) {
+		$this->_id = $data;
+	}
+
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/Orphea.php b/library/Class/WebService/BibNumerique/Orphea.php
new file mode 100644
index 0000000000000000000000000000000000000000..6afe7883c756b3b51b46049f616c084f86225a96
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Orphea.php
@@ -0,0 +1,200 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class Class_WebService_BibNumerique_Orphea extends Class_WebService_BibNumerique_Abstract {
+	const RECORDS_BY_PAGE = 10;
+	const CATEGORY_LABEL = 'Orphea';
+
+	protected $parser,
+		$unid_parser,
+		$metadatas_parser,
+		$assets_parser,
+		$_total_pages,
+		$_orphea_ressources = [],
+		$_unid = '';
+
+	public static function getHarvestUrl() {
+		return Class_Url::assemble(['module' => 'admin',
+																'controller' => 'harvest',
+																'action' => 'orphea-ajax']);
+	}
+
+	public function __construct() {
+		$this->parser = new Class_WebService_BibNumerique_Orphea_CatalogueParser();
+		$this->unid_parser = new Class_WebService_BibNumerique_Orphea_UnidParser();
+		$this->metadatas_parser = new Class_WebService_BibNumerique_Orphea_MetaDatasParser();
+		$this->assets_parser = new Class_WebService_BibNumerique_Orphea_AssetsParser();
+	}
+
+
+	protected function _deleteNonHarvested() {
+		return $this;
+	}
+
+
+	protected function _importRessources($ressources) {
+		return [];
+	}
+
+
+	protected function loadPage($page_number = 1) {
+		$this->harvestPage('', $page_number, '' );
+		return $this;
+	}
+
+
+	public function isEnabled() {
+		return Class_AdminVar::isOrpheaEnabled();
+	}
+
+
+	public function getName() {
+		return 'Orphea';
+	}
+
+
+	public function getPageCount() {
+		return $this->_total_pages;
+	}
+
+
+	public function getRessourcesNumeriques() {
+		return [];
+	}
+
+
+	public function harvestPage($unid, $page = 1, $total_records = '') {
+		if (!$this->getUNID($unid)) {
+			return ['error' => $this->unid_parser->getFullMessage()];
+		}
+
+		if(!$total_records && (!$total_records = $this->getTotalRecords($this->_unid)))
+			 return ['error' => $this->parser->getFullmessage()];
+
+		$this->_total_pages = ceil($total_records / self::RECORDS_BY_PAGE);
+
+		$this->harvestRecords($this->_unid, $page);
+		$response = ['total_count' =>	(int) $total_records];
+
+		if($page < $this->_total_pages ) {
+			$response = array_merge(['has_next' => 1], $response);
+		}
+
+		return array_merge($response, ['unid' => $this->_unid,
+																	 'current_page' => (int) $page,
+																	 'total_pages' => (int) $this->_total_pages]);
+	}
+
+
+	protected function getTotalRecords($unid) {
+		$http_client = self::getHttpClient();
+		$content = $http_client->open_url($this->searchUrl($unid, ['extended' => '-1']));
+		if(!$count = $this->parser->parseXML($content)->getCount())
+			return '';
+
+		return $count;
+	}
+
+
+	protected function getUNID($unid = '') {
+		if(!$this->_unid)
+			$this->_unid = $unid;
+
+		if(!$this->_unid) {
+			$http_client = self::getHttpClient();
+			$content = $http_client->open_url($this->createSessionUrl());
+			$this->_unid = $this->unid_parser->parseXML($content)->getUNID();
+		}
+
+		return $this->_unid;
+	}
+
+
+  protected function harvestRecords($unid, $page) {
+		$http_client = self::getHttpClient();
+		$startfrom = ($page-1) * self::RECORDS_BY_PAGE;
+		$content = $http_client->open_url($this->searchUrl($unid, ['startfrom' => $startfrom,
+																															 'maxrows' => self::RECORDS_BY_PAGE]));
+
+		if(!$records_ids = $this->parser->parseXML($content)->getRecordsIds())
+			$records_ids = [];
+
+		$local_ids = Class_Album::findAllBy(['type_doc_id' => Class_TypeDoc::ORPHEA]);
+		$local_ids = array_map(function($album) {return $album->getIdOrigine();}, $local_ids);
+
+		$records_ids = array_diff($records_ids, $local_ids);
+
+		foreach($records_ids as $record_id) {
+			$orphea_ressource = $this->metadatas_parser->parseXML($http_client->open_url($this->metaDatasUrl($unid, ['objectident' => $record_id])));
+
+			$assets_xml = $http_client->open_url($this->assetsUrl($unid, [
+				'objectident' => $record_id,
+				'return_full_url' => 1,
+				'fk_objectsize' => 3,
+			]));
+
+			$media = $this->assets_parser->parseXML($assets_xml);
+			$orphea_ressource->setRessources([$media])
+											 ->addPoster($media->getUrl())
+											 ->addPhoto($media->getUrl());
+			$album = $orphea_ressource->import();
+			$this->_orphea_ressources[] = $album;
+		}
+		Class_Album::clearCache();
+		Class_AlbumRessource::clearCache();
+  }
+
+
+	protected function createSessionUrl() {
+		return Class_AdminVar::get('ORPHEA_URL').
+			'?' . http_build_query(['function' => 'f_createsession',
+															'username' => Class_AdminVar::get('ORPHEA_USERNAME'),
+															'password' => Class_AdminVar::get('ORPHEA_PWD'),
+															'language' => Class_AdminVar::get('ORPHEA_LANGUAGE')]);
+	}
+
+
+  protected function searchUrl($unid, $attribs = []) {
+    return Class_AdminVar::get('ORPHEA_URL') . '?'
+      . http_build_query(array_merge(['function' => 'f_search',
+																			'unid' => $unid],
+																		 $attribs));
+	}
+
+
+	protected function metaDatasUrl($unid, $attribs = []) {
+    return Class_AdminVar::get('ORPHEA_URL') . '?'
+      . http_build_query(array_merge(['function' => 'f_getmetadata',
+																			'unid' => $unid],
+																		 $attribs));
+	}
+
+	protected function assetsUrl($unid, $attribs = []) {
+		return Class_AdminVar::get('ORPHEA_URL') . '?'
+			. http_build_query(
+					array_merge([
+						'function' => 'f_getassetsurl',
+						'unid' => $unid
+					], $attribs)
+			);
+	}
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/Orphea/AssetsParser.php b/library/Class/WebService/BibNumerique/Orphea/AssetsParser.php
new file mode 100644
index 0000000000000000000000000000000000000000..24bf6b7ebfed16bd66b9346dad075e39d6b676f0
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Orphea/AssetsParser.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Orphea_AssetsParser {
+  protected $_fullmessage, $_ressource, $_url_full, $_title;
+
+	public function parseXML($xml) {
+		$parser = new Class_WebService_XMLParser();
+		$parser->setElementHandler($this);
+		$parser->parse($xml);
+		return $this->_ressource;
+	}
+
+
+  public function endFullmessage($data) {
+    $this->_fullmessage = $data;
+  }
+
+  public function endTitle($data) {
+    $this->_title = $data;
+  }
+
+  public function endUrl_full($data) {
+    $this->_url_full = $data;
+  }
+
+  public function endRow() {
+    $this->_ressource = Class_AlbumRessource::newInstance(['titre' => $this->_title,
+																													 'url' => $this->_url_full,
+																													 'media_type' => Class_AlbumRessource::MEDIA_TYPE_URL ]);
+  }
+
+
+  public function getFullMessage() {
+    return $this->_fullmessage;
+  }
+
+
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/Orphea/CatalogueParser.php b/library/Class/WebService/BibNumerique/Orphea/CatalogueParser.php
new file mode 100644
index 0000000000000000000000000000000000000000..3ac87ab20a47bb98d09ff5cea1a792a0631f65f7
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Orphea/CatalogueParser.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Orphea_CatalogueParser {
+	protected $_count = 0;
+	protected $_ids_object = [];
+
+  public function parseXML($xml) {
+		$parser = new Class_WebService_XMLParser();
+		$parser->setElementHandler($this);
+		$parser->parse($xml);
+		return $this;
+  }
+
+
+	public function endCount($data) {
+		$this->_count = $data;
+		return $this;
+	}
+
+
+	public function getCount() {
+		return $this->_count;
+	}
+
+
+	public function endId_objet($data) {
+		$this->_ids_object[] = $data;
+	}
+
+
+	public function getRecordsIds() {
+		return $this->_ids_object;
+  }
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/Orphea/MetaDatasParser.php b/library/Class/WebService/BibNumerique/Orphea/MetaDatasParser.php
new file mode 100644
index 0000000000000000000000000000000000000000..87ccc40cecf499779dbc4103d24a3360e3424080
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Orphea/MetaDatasParser.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Orphea_MetaDatasParser {
+	protected $_keywords = [], $_ressource;
+
+
+  public function parseXML($xml) {
+		$parser = new Class_WebService_XMLParser();
+		$parser->setElementHandler($this);
+		$parser->parse($xml);
+		return $this->_ressource;
+  }
+
+	public function startRow() {
+		$this->_ressource = new Class_WebService_BibNumerique_Orphea_Ressource();
+	}
+
+
+	public function endTitle($data) {
+		$this->_ressource->setTitle($data);
+	}
+
+
+	public function endCaption($data) {
+		$this->_ressource->setDescription($data);
+	}
+
+
+	public function endCopyright($data) {
+		$this->_ressource->setRights($data);
+	}
+
+
+	public function endByline($data) {
+		$this->_ressource->setAuthors($data);
+	}
+
+
+	public function endProvincestate($data) {
+		$this->_ressource->setProvinceState($data);
+	}
+
+
+	public function endLongstring20($data) {
+		$this->_ressource->setEditors($data);
+	}
+
+
+	public function endKeyword_FR($data) {
+		$this->_keywords[] = $data;
+	}
+
+
+	public function endKeywords($data) {
+		$this->_ressource->setGenres($this->_keywords);
+	}
+
+
+	public function endId_objet($data) {
+		$this->_ressource->setId($data);
+	}
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/Orphea/Ressource.php b/library/Class/WebService/BibNumerique/Orphea/Ressource.php
new file mode 100644
index 0000000000000000000000000000000000000000..9f289d2ce6f22f1f1329c32214ba3fef96714198
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Orphea/Ressource.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Orphea_Ressource extends Class_WebService_BibNumerique_RessourceNumerique {
+	protected $_id,
+		$_rights,
+		$_authors,
+		$_province_state,
+		$_editors,
+		$_genres,
+		$_ressources,
+		$_thumbnail;
+
+
+	public function fillAlbum($album) {
+		$album->setGenre(implode(';', $this->_genres))
+								 ->addEditor($this->_editors)
+								 ->setProvenance($this->_province_state)
+								 ->addAuthor($this->_authors)
+								 ->setDroits($this->_rights)
+								 ->setRessources($this->_ressources)
+								 ->beOrphea();
+		return $album;
+	}
+
+
+	public function addThumbnail($url) {
+		$this->_thumbnail = $url;
+	}
+
+
+	public function setRights($rights) {
+		$this->_rights = $rights;
+		return $this;
+	}
+
+
+	public function setAuthors($authors) {
+		$this->_authors = $authors;
+		return $this;
+	}
+
+
+	public function setProvinceState($data) {
+		$this->_province_state = $data;
+		return $this;
+	}
+
+
+	public function setEditors($editors) {
+		$this->_editors = $editors;
+		return $this;
+	}
+
+
+	public function setGenres($genres) {
+		$this->_genres = $genres;
+		return $this;
+	}
+
+
+	public function setRessources($album_ressources = [])	{
+		$this->_ressources = $album_ressources;
+		return $this;
+	}
+
+
+	public function getRessourceCategorieLibelle() {
+		return Class_WebService_BibNumerique_Orphea::CATEGORY_LABEL;
+	}
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/Orphea/UnidParser.php b/library/Class/WebService/BibNumerique/Orphea/UnidParser.php
new file mode 100644
index 0000000000000000000000000000000000000000..71bc1c48030c28010455a4841fc075484fc7abbf
--- /dev/null
+++ b/library/Class/WebService/BibNumerique/Orphea/UnidParser.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_BibNumerique_Orphea_UnidParser {
+	protected $_unid;
+	protected $_fullmessage;
+
+
+	public function parseXML($xml) {
+		$parser = new Class_WebService_XMLParser();
+		$parser->setElementHandler($this);
+		$parser->parse($xml);
+		return $this;
+	}
+
+
+	public function endUnid($data) {
+		$this->_unid = $data;
+	}
+
+  public function endFullmessage($data) {
+    $this->_fullmessage = $data;
+  }
+
+
+	public function getUNID() {
+		return $this->_unid;
+	}
+
+  public function getFullMessage() {
+    return $this->_fullmessage;
+  }
+}
+?>
diff --git a/library/Class/WebService/BibNumerique/RessourceNumerique.php b/library/Class/WebService/BibNumerique/RessourceNumerique.php
index 18aa665ab1cbd9dce9b226c497b8bcbaf2c2d54c..f0ba15537aa471e342b96094a9f4179250d2378b 100644
--- a/library/Class/WebService/BibNumerique/RessourceNumerique.php
+++ b/library/Class/WebService/BibNumerique/RessourceNumerique.php
@@ -19,25 +19,31 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
- class Class_WebService_BibNumerique_RessourceNumerique {
-
-	protected $_id;
-	protected $_title;
-	protected $_description;
-	protected $_year;
-	protected $_external_uri;
-	protected $_id_langue;
-	protected $_date_maj;
-	protected $_annee;
-	protected $_posters = [];
-	protected $_trailers = [];
-	protected $_photos = [];
-	protected $_editeur;
-	protected $_matieres = [];
-	protected $_ressources = [];
-	protected $_zones = [];
-	protected $_bibliotheques='';
 
+/**
+ * Base class for all objects that may be converted
+ * and imported to a digital library Album
+ */
+class Class_WebService_BibNumerique_RessourceNumerique {
+
+	protected
+		$_id,
+		$_title,
+		$_description,
+		$_year,
+		$_external_uri,
+		$_id_language,
+		$_date_maj,
+		$_annee,
+		$_posters = [],
+		$_trailers = [],
+		$_photos = [],
+		$_editeur,
+		$_matieres = [],
+		$_ressources = [],
+		$_zones = [],
+		$_bibliotheques='',
+		$_authors = [];
 
 	public function setId($id) {
 		$this->_id = $id;
@@ -72,8 +78,8 @@
 	}
 
 
-	public function setDateMaj($uri) {
-		$this->_date_maj = $uri;
+	public function setDateMaj($date) {
+		$this->_date_maj = $date;
 		return $this;
 	}
 
@@ -230,20 +236,26 @@
 	public function import() {
 		if (null != $album = $this->findAlbumInDB())
 			return $album;
+
+		return $this->updateAlbum(Class_Album::newInstance());
+	}
+
+
+	protected function updateAlbum($album) {
 		$categorie = $this->getOrCreateRessourceCategorie();
 
-		$album = Class_Album::newInstance()
+		$album
 			->setTitre($this->getTitle())
 			->setDescription($this->getDescription())
 			->setAnnee($this->getYear())
 			->setIdOrigine($this->getId())
 			->setUrlOrigine($this->getBaseUrl())
 			->setCategorie($categorie)
-			->setRessources($this->getRessources());
+			->setRessources($this->getRessources())
+			->setStatus(Class_Album::STATUS_VALIDATED);
 
 		$this->importMatieres($album);
 
-
 		$this->fillAlbum($album);
 
 		$this->fillAlbumTypeDoc($album);
@@ -255,7 +267,7 @@
 		Class_Album::clearCache();
 		Class_AlbumRessource::clearCache();
 		return $album;
-}
+	}
 
 
 	protected function getOrCreateRessourceCategorie() {
@@ -284,7 +296,7 @@
 	public function isAlreadyHarvested() {
 		$album = $this->findAlbumInDB();
 		return (null != $album);
-}
+	}
 
 
 	public function updateRessourceNumeriqueNotes($album) {
@@ -315,6 +327,7 @@
 
 	public function getRessourceCategorieLibelle(){}
 
+
 	public function getBaseUrl() {}
 
 
@@ -334,7 +347,5 @@
 	public function getRessources() {
 		return $this->_ressources;
 	}
-
 }
-
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/WebService/BibNumerique/Vignette.php b/library/Class/WebService/BibNumerique/Vignette.php
index 15b36083083c761735b834721ddfcdcac0a894cd..501f9cab8e06ac3820eebe97ce335a22096d77f0 100644
--- a/library/Class/WebService/BibNumerique/Vignette.php
+++ b/library/Class/WebService/BibNumerique/Vignette.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_BibNumerique_Vignette  extends Class_WebService_Abstract {
diff --git a/library/Class/WebService/BibNumerique/Vodeclic.php b/library/Class/WebService/BibNumerique/Vodeclic.php
index b2dcb6e44dd8ca2c5a55364c0d8ebf526d61c35f..04329564963157bc0612cd956f70193733343af3 100644
--- a/library/Class/WebService/BibNumerique/Vodeclic.php
+++ b/library/Class/WebService/BibNumerique/Vodeclic.php
@@ -16,11 +16,11 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_BibNumerique_Vodeclic extends Class_WebService_BibNumerique_Abstract {
-	
+
 
 	const BASE_URL = "https://lms.vodeclic.com/api/catalogue.xml?";
 
@@ -40,7 +40,7 @@ class Class_WebService_BibNumerique_Vodeclic extends Class_WebService_BibNumeriq
 
 
 	public function harvest() {
-  		
+
 		$http_client = self::getHttpClient();
 		$content = $http_client->open_url($this->url(Class_AdminVar::get('VODECLIC_ID'),
 																								 Class_AdminVar::get('VODECLIC_KEY'),
@@ -49,9 +49,9 @@ class Class_WebService_BibNumerique_Vodeclic extends Class_WebService_BibNumeriq
 			$this->getLogger()->err('Erreur de communication');
 			return;
 		}
-			
+
 		$this->getLogger()->info('Réponse reçue');
-		$this->parseXML($content);	
+		$this->parseXML($content);
 		$this->_deleteNonHarvested();
 		$this->getLogger()->info(sprintf('%d formations dans la base', count($this->_albums)));
 	}
@@ -77,7 +77,7 @@ class Class_WebService_BibNumerique_Vodeclic extends Class_WebService_BibNumeriq
 		$bib_id = '&bib_id='.$bib;
 
 		$encrypted_partenaire = '&encrypted_partenaire='.$this->encryptedPartenaire($partenaire_id,$key);
-		
+
 		$result=$this->baseUrl().$partenaire.$encrypted_partenaire.$bib_id;
 		return $result;
 	}
@@ -93,9 +93,13 @@ class Class_WebService_BibNumerique_Vodeclic extends Class_WebService_BibNumeriq
 		return $hash->encrypt($partenaire_id.$key);
 	}
 
+
 	protected function _importRessources($ressources) {}
+
+
 	protected function loadPage($page_number = 1) {}
 
+
 	public function isEnabled() {
 		return Class_AdminVar::isVodeclicEnabled();
 	}
diff --git a/library/Class/WebService/Bluga.php b/library/Class/WebService/Bluga.php
index 4c8a5e4ab4862f1398f54b733553e16cb758e845..39111500c2f2a06d9d2af995b88bd31d8e7af98f 100644
--- a/library/Class/WebService/Bluga.php
+++ b/library/Class/WebService/Bluga.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_Bluga extends Class_WebService_Abstract {
diff --git a/library/Class/WebService/DublinCoreParser.php b/library/Class/WebService/DublinCoreParser.php
index c5e0d4b6926c4b1ef0b392a6e6d17bc3fd392de3..5aea1b5b6a3bbcfd37c328c64ae895540217668d 100644
--- a/library/Class/WebService/DublinCoreParser.php
+++ b/library/Class/WebService/DublinCoreParser.php
@@ -16,15 +16,15 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
-/* Sait extraire informations du XML retourné par 
+/* Sait extraire informations du XML retourné par
  * l'opération OAI ListRecords, format DublinCore
  * Functions:
  * - parse($xml): analyse le xml donné
  * - getRecords: retourne tous les enregistrements sous forme de tableau associatif
- * - getResumptionToken: retourne le token qui permet de rechercher 
+ * - getResumptionToken: retourne le token qui permet de rechercher
  *   les enregistrements suivants
  */
 class Class_WebService_DublinCoreParser {
@@ -40,142 +40,112 @@ class Class_WebService_DublinCoreParser {
 		$this->visitor = $this;
 	}
 
-
-	protected function _create_parser() {
-		$parser = xml_parser_create();
-		xml_set_object($parser, $this);
-		xml_set_element_handler($parser, 'start_element', 'end_element');
-		xml_set_character_data_handler($parser, "on_data"); 
-		return $parser;
-	}
-
 	public function acceptVisitor($visitor) {
 		$this->visitor=$visitor;
 	}
 
-	protected function _tag_to_method_name($tag) {
-		return strtolower(str_replace(':', '_', $tag));
-	}
-
 
 	public function parse($xml) {
-		$parser = $this->_create_parser();
-		xml_parse($parser, $xml);
-		xml_parser_free($parser);
-
+		$this->_records = [];
+		$this->_records_ressources = [];
+    $this->_resumptionToken = null;
+		$this->parser = Class_WebService_XMLParser::newInstance();
+		$this->parser->keepNameSpace();
+		$this->parser->setElementHandler($this);
+		$this->parser->parse($xml);
 		return $this->_records;
 	}
 
 
-	public function parseRessourcesNumeriques($xml) {
-		$parser = $this->_create_parser();
-		xml_parse($parser, $xml);
-		xml_parser_free($parser);
-
-		return $this->_records_ressources;
+	public function startRecord($attributes) {
+		$this->_record=[];
+		$this->ressource_numerique = $this->visitor->getNewRessourceNumerique();
+		$this->_records_ressources[] = $this->ressource_numerique;
 	}
 
 
-	public function start_element($parser, $tag, $attributes) {
-		$this->current_data = null;
-
-		$method_name = 'start_'.$this->_tag_to_method_name($tag);
-		if (method_exists($this, $method_name))
-			$this->$method_name($parser, $attributes);
+	public function getNewRessourceNumerique() {
+		return new Class_WebService_BibNumerique_RessourceNumerique();
 	}
 
 
-	public function end_element($parser, $tag) {	
-		$method_name = 'end_'.$this->_tag_to_method_name($tag);
-		if (method_exists($this, $method_name))
-			$this->$method_name($parser);
+	public function startns1_record() {
+		$this->_record=[];
 	}
 
 
-	public function on_data($parser, $data) {
-		$this->current_data .= trim($data);
+	public function enddc_identifier($data) {
+		$this->ressource_numerique->setOaiId($data);
+		$this->_record['id_oai']=$data;
 	}
 
 
-	protected function start_record($parser, $attributes) {
-		$this->_records []= array();
-		$this->ressource_numerique= $this->visitor->getNewRessourceNumerique();
-		$this->_records_ressources[]=$this->ressource_numerique;
-	}
-	
+	public function enddc_title($data) {
 
-	public function getNewRessourceNumerique() {
-		return new Class_WebService_BibNumerique_RessourceNumerique();
-		
-	}
-
-	protected function start_ns1_record($parser, $attributes) {
-		$this->_records []= array();
+		$this->ressource_numerique->setTitle($data);
+		$this->_record['titre']=$data;
 	}
 
 
-	protected function end_dc_identifier($parser) {
-		$this->ressource_numerique->setOaiId($this->current_data);
-		$this->assign_data_to('id_oai');
+	public function enddc_creator($data) {
+		$this->ressource_numerique->addAuthor($data);
+		$this->_record['auteur']=$data;
 	}
 
 
-	protected function end_dc_title($parser) {
-		$this->ressource_numerique->setTitle($this->current_data);
-		$this->assign_data_to('titre');
+	public function enddc_publisher($data) {
+		$this->ressource_numerique->setEditeur($data);
+		$this->_record['editeur']=$data;
 	}
 
+	public function enddc_subject($data) {
+		$this->ressource_numerique->addMatiere($data);
+	}
 
-	protected function end_dc_creator($parser) {
-		$this->ressource_numerique->addAuthor($this->current_data);
-		$this->assign_data_to('auteur');
+	public function enddc_date($data) {
+		$date = $data;
+		if (strlen($date)>4)
+			$this->ressource_numerique->setYear(substr($date,0,4));
+		$this->_record['date']=$date;
 	}
 
 
-	protected function end_dc_publisher($parser) {
-		$this->ressource_numerique->setEditeur($this->current_data);
-		$this->assign_data_to('editeur');
+	public function enddc_relation($data) {
+		$this->_record['relation']=$data;
+		$this->ressource_numerique->setExternalUri($data);
 	}
 
-	protected function end_dc_subject($parser) {
-		$this->ressource_numerique->addMatiere($this->current_data);
-	}
 
-	protected function end_dc_date($parser) {
-		$date = $this->current_data;
-		if (strlen($date)>4)
-			$this->ressource_numerique->setYear(substr($date,0,4));
-		$this->assign_data_to('date');
+	public function enddc_description($data) {
+		$this->_record['description']=$data;
+		$this->ressource_numerique->setDescription($data);
 	}
 
 
-	protected function end_dc_relation($parser) {
-		$this->assign_data_to('relation');
-		$this->ressource_numerique->setExternalUri($this->current_data);
+	public function startResumptionToken($attributes) {
+		$this->_resumptionToken = new Class_WebService_ResumptionToken();
+		if (isset($attributes['COMPLETELISTSIZE']))
+			$this->_resumptionToken->setListSize($attributes['COMPLETELISTSIZE']);
+		if (isset($attributes['CURSOR']))
+			$this->_resumptionToken->setCursor($attributes['CURSOR']);
 	}
 
-	protected function end_dc_description($parser) {
-		$this->assign_data_to('description');
-		$this->ressource_numerique->setDescription($this->current_data);
+
+	public function endresumptiontoken($data) {
+    $this->_resumptionToken->setToken($data);
 	}
 
-	protected function assign_data_to($key) {
-		$this->_records[count($this->_records)-1][$key] = $this->current_data;
 
+	public function endns1_record() {
+		$this->endrecord();
 	}
 
-	protected function start_resumptionToken($parser, $attributes) {
-		$this->_resumptionToken = new Class_WebService_ResumptionToken();
-		$this->_resumptionToken->setListSize($attributes['COMPLETELISTSIZE']);
-		$this->_resumptionToken->setCursor($attributes['CURSOR']);
-	}
 
-	protected function end_resumptiontoken($parser) {
-		$this->_resumptionToken->setToken($this->current_data);
+	public function endrecord($data) {
+		$this->_records[] = $this->_record;
 	}
 
 
-
 	public function getResumptionToken() {
 		return $this->_resumptionToken;
 	}
@@ -185,10 +155,9 @@ class Class_WebService_DublinCoreParser {
 		return $this->_records;
 	}
 
+
 	public function getRecordsRessourceNumeriques() {
 		return $this->_records_ressources;
 	}
-
-	
 }
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/WebService/FasterXMLParser.php b/library/Class/WebService/FasterXMLParser.php
index 559316e7fc64188001815f6a8deccb9951966815..f6dd36af48e404142f61e6ac167f72fc21717c06 100644
--- a/library/Class/WebService/FasterXMLParser.php
+++ b/library/Class/WebService/FasterXMLParser.php
@@ -16,35 +16,21 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
-// Comme XMLParser mais ne gère pas les namespaces pour aller plus vite
+/**
+ *  XMLParser that does not handle namespaces
+ */
 class Class_WebService_FasterXMLParser extends Class_WebService_XMLParser {
 	public function tagWithoutNamespace($tag) {return $tag;}
 
 	public function startElement($parser, $tag, $attributes) {
-		$this->_parents[] = strtolower($tag); 
-
+		$this->_parents[] = strtolower($tag);
 		$this->_current_data = null;
-
-		$method_name = 'start'.$tag ;
-		if (method_exists($this->_element_handler, $method_name)) {
-			$this->_element_handler->$method_name($attributes) ;
-		}
-	}
-
-
-	public function endElement($parser, $tag) {
-		$method_name = 'end'.$tag;
-
-		if (method_exists($this->_element_handler, $method_name))  {
-			$this->_element_handler->$method_name($this->_current_data);
-		}
-		array_pop($this->_parents) ;
+		$this->_callFuncOrClosure('start'.$tag, $attributes);
 	}
 }
 
 
 ?>
-
diff --git a/library/Class/WebService/Fnac.php b/library/Class/WebService/Fnac.php
index 0a7296021f6b9bf5ee9998ba0229fdd13f0d6e7d..c549c366026872a4a698edf714e474c8ad149d55 100644
--- a/library/Class/WebService/Fnac.php
+++ b/library/Class/WebService/Fnac.php
@@ -16,31 +16,39 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_Fnac extends Class_WebService_Abstract {
 	private $url = 'http://www3.fnac.com/advanced/book.do?isbn=';
 
+
+	protected $_search_url = 'http://recherche.fnac.com/r/';
+
+
 	public function getResumes($notice) {
 		if (!$service = $notice->getIsbnOrEan())
-			return array();
+			return [];
 
 		if ($resume = $this->getResume($service))
-			return array(array('source' => 'Editeur',
-												 'texte' => $resume));
-		return array();
+			return [ ['source' => 'Editeur',
+								'texte' => $resume]];
+		return [];
 	}
 
 //------------------------------------------------------------------------------------------------------
 // Résumé de l'editeur
-//------------------------------------------------------------------------------------------------------	
+//------------------------------------------------------------------------------------------------------
 	public function getResume($isbn) {
-		if(!$isbn) return false;
-		$isbn=str_replace("-","",$isbn);
+		if(!$isbn)
+			return false;
+
+		$isbn = trim(str_replace("-","",$isbn));
+		$url = $this->_search_url . $isbn;
+		$data = self::getHttpClient()->open_url($url);
 
-		$data = self::getHttpClient()->open_url($this->url.$isbn);
-		$url_lire_la_suite = $this->getUrlLireLaSuite($data);
+		if(!$url_lire_la_suite = $this->getUrlLireLaSuite($data))
+			return '';
 
 		if (!($url_lire_la_suite && (new ZendAfi_Validate_Url())->isValid($url_lire_la_suite)))
 			return '';
@@ -51,8 +59,8 @@ class Class_WebService_Fnac extends Class_WebService_Abstract {
 
 
 	public function getUrlLireLaSuite($data) {
-		$pos=striPos($data,"resume");
-		if(!$pos) 
+		$pos = striPos($data,"resume");
+		if(!$pos)
 			return '';
 
 		$pos = strPos($data,"a href=\"",$pos)+8;
@@ -62,6 +70,9 @@ class Class_WebService_Fnac extends Class_WebService_Abstract {
 
 
 	public function extractResumeFromHTML($html) {
+		if($pos = striPos($html, 'resMarkContent'))
+			return $this->extractResumeFormBlk($html);
+
 		if ($pos = striPos($html, "avisEdContent"))
 				return $this->extractLireLaSuiteDivAvisEditeurFromHTML($html);
 
@@ -80,6 +91,22 @@ class Class_WebService_Fnac extends Class_WebService_Abstract {
 	}
 
 
+	protected function extractResumeFormBlk($html) {
+		$start_string = 'resMarkContent">';
+
+		if (!$pos = striPos($html, $start_string))
+			return '';
+
+		$pos = $pos + strlen($start_string);
+
+		$posfin = strPos($html, "</", $pos);
+
+		$resume = substr($html, $pos, ($posfin - $pos));
+
+		return trim($resume);
+	}
+
+
 	public function extractLireLaSuiteDivAvisEditeurFromHTML($html) {
 		$pos = strPos($html, "avisEdContent") + 15;
 		$posfin = strPos($html, "</div>", $pos);
diff --git a/library/Class/WebService/HarvestLog.php b/library/Class/WebService/HarvestLog.php
new file mode 100644
index 0000000000000000000000000000000000000000..d51f748e44a7f744c129a35129d727709817f200
--- /dev/null
+++ b/library/Class/WebService/HarvestLog.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_HarvestLog extends Storm_Model_Abstract {
+
+	protected $_table_name = 'harvest_log';
+	protected $_table_primary = 'id';
+
+	protected $_default_attribute_values = ['end_date' => ''];
+
+}
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/OAI.php b/library/Class/WebService/OAI.php
index 9efc72f935146e5858441209826e324570c40edf..263cdf916aeff11b503c48e4b420fb1122c0caa0 100644
--- a/library/Class/WebService/OAI.php
+++ b/library/Class/WebService/OAI.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 //////////////////////////////////////////////////////////////////////////////////////////
 // OPAC3 - Interrogation dépôts Open Archives Initiative
@@ -33,7 +33,7 @@
  * $oai_service->setOAIHandler('http://oai.bnf.fr/oai2/OAIHandler');
  * $oai_service->getSets()   //retourne les sets sous forme de tableau associatifs
  * $oai_service->getRecords('gallica'); //les 100 premiers records du set gallica
- * while ($oai_service->hasNextRecords())  //prends les enregistrements suivants 
+ * while ($oai_service->hasNextRecords())  //prends les enregistrements suivants
  *     $oai->service->getNextRecords();    // tant qu'il y en a
  */
 class Class_WebService_OAI extends Class_WebService_Abstract {
@@ -41,6 +41,8 @@ class Class_WebService_OAI extends Class_WebService_Abstract {
 	protected $web_client;
 	protected $numeric_resource_class = 'Class_WebService_BibNumerique_Numilog_LivreNumerique';
 	protected $_listRecordsResumptionToken;
+	protected $metadata_prefix='oai_dc';
+	protected $_first_page = 1;
 	const ListSets = 'ListSets';
 	const ListRecords = 'ListRecords';
 
@@ -49,6 +51,10 @@ class Class_WebService_OAI extends Class_WebService_Abstract {
 	}
 
 
+	public function __construct() {
+			$this->parser = new Class_WebService_DublinCoreParser();
+	}
+
 
 	public function setOAIHandler($oai_handler) {
 		$this->oai_handler = $oai_handler;
@@ -87,7 +93,7 @@ class Class_WebService_OAI extends Class_WebService_Abstract {
 
 	public function oaiAsks($verb, $parameters) {
 		$url = $this->oai_handler.'?verb='.$verb;
-		foreach ($parameters as $name => $value) 
+		foreach ($parameters as $name => $value)
 			$url .= '&'.$name.'='.urlencode($value);
 		return $this->getContent($url);
 	}
@@ -122,38 +128,45 @@ class Class_WebService_OAI extends Class_WebService_Abstract {
 		return $this->getRecordsFromSet($set);
 	}
 
+	public function setParser($parser) {
+		$this->parser = $parser;
+		return $this;
+	}
+
 
-	public function getRecordsResourcesNumerique() {
-		$xml_data = $this->oaiAsks(self::ListRecords, 
-															 array('metadataPrefix' => 'oai_dc'
-																		 ));
-		return $this->parseListRecordsRessourcesNumeriqueXML($xml_data);
+	public function getRecordsResourcesNumerique($params = []) {
+		if(!$this->isFirstPage())
+			return $this->getNextNumericResources();
 
+		$params = array_merge(['metadataPrefix' => $this->metadata_prefix], $params);
+		$this->_first_page = 0;
+
+		$xml_data = $this->oaiAsks(self::ListRecords, $params);
+		return $this->parseListRecordsRessourcesNumeriqueXML($xml_data);
 	}
 
 
 	public function getRecordsFromSet($set) {
 		$xml_data = $this->oaiAsks(self::ListRecords,
-															 array('metadataPrefix' => 'oai_dc',
+															 array('metadataPrefix' => $this->metadata_prefix,
 																		 'set' => $set));
 		return $this->parseListRecordsXML($xml_data);
 	}
 
 
 	public function parseListRecordsXML($xml_data) {
-		$parser = new Class_WebService_DublinCoreParser();
-		$parser->parse($xml_data);
-		$this->setListRecordsResumptionToken($parser->getResumptionToken());
-		return $parser->getRecords();
+
+		$this->parser->parse($xml_data);
+		$this->setListRecordsResumptionToken($this->parser->getResumptionToken());
+		return $this->parser->getRecords();
 	}
 
 
 	public function parseListRecordsRessourcesNumeriqueXML($xml_data) {
-		$parser = new Class_WebService_DublinCoreParser();
-		$parser->acceptVisitor($this);
-		$parser->parseRessourcesNumeriques($xml_data);
-		$this->setListRecordsResumptionToken($parser->getResumptionToken());
-		return $parser->getRecordsRessourceNumeriques();
+		$this->parser->acceptVisitor($this);
+		$this->parser->parse($xml_data);
+		$this->setListRecordsResumptionToken($this->parser->getResumptionToken());
+		return $this->parser->getRecordsRessourceNumeriques();
 	}
 
 
@@ -169,19 +182,20 @@ class Class_WebService_OAI extends Class_WebService_Abstract {
 
 
 	public function getNextRecords() {
-		if (!$this->hasNextRecords()) 
-			return array();
+		if (!$this->hasNextRecords())
+			return [];
 		$xml_data = $this->oaiAsks(
-											 self::ListRecords, 
+											 self::ListRecords,
 									     array('resumptionToken' => $this->getListRecordsResumptionToken()->getToken()));
 		return $this->parseListRecordsXML($xml_data);
 	}
 
+
 	public function getNextNumericResources() {
-		if (!$this->hasNextRecords()) 
+		if (!$this->hasNextRecords())
 			return array();
 		$xml_data = $this->oaiAsks(
-											 self::ListRecords, 
+											 self::ListRecords,
 									     array('resumptionToken' => $this->getListRecordsResumptionToken()->getToken()));
 		return $this->parseListRecordsRessourcesNumeriqueXML($xml_data);
 	}
@@ -197,10 +211,26 @@ class Class_WebService_OAI extends Class_WebService_Abstract {
 	}
 
 
+	public function hasRecordsToHarvest() {
+		return null != $this->hasNextRecords() || $this->isFirstPage();
+	}
+
+
 	public function getTotalNumberOfRecords() {
 		if (!isset($this->_listRecordsResumptionToken)) return 0;
 		return $this->_listRecordsResumptionToken->getListSize();
 	}
+
+
+	public function setMetadataPrefix($metadata_prefix) {
+		$this->metadata_prefix=$metadata_prefix;
+		return $this;
+	}
+
+
+	protected function isFirstPage() {
+		return $this->_first_page == 1;
+	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/library/Class/WebService/OneDTouchDCParser.php b/library/Class/WebService/OneDTouchDCParser.php
new file mode 100644
index 0000000000000000000000000000000000000000..29a3089a862012bc9c99b4f55a554d296e898a1d
--- /dev/null
+++ b/library/Class/WebService/OneDTouchDCParser.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+/* Sait extraire informations du XML retourné par
+ * l'opération OAI ListRecords, format DublinCore
+ * Functions:
+ * - parse($xml): analyse le xml donné
+ * - getRecords: retourne tous les enregistrements sous forme de tableau associatif
+ * - getResumptionToken: retourne le token qui permet de rechercher
+ *   les enregistrements suivants
+ */
+class Class_WebService_OneDTouchDCParser extends Class_WebService_DublinCoreParser{
+  public function endId($data) {
+    $this->enddc_identifier($data);
+  }
+
+
+	public function endTitle($data) {
+		if ($this->parser->getParent()=='track')
+			return $this->current_track->setTitre($data);
+		$this->enddc_title($data);
+	}
+
+
+  public function endUrl($data) {
+    if ($this->parser->getParent() == 'track') {
+      return $this->current_track->setUrl($data);
+    }
+    $this->ressource_numerique->setExternalUri($data);
+  }
+
+
+  public function endLength($data) {
+    $this->current_track->setDuration($data);
+  }
+
+
+  public function startTracks() {
+    $this->tracks = [];
+  }
+
+
+	public function startTrack() {
+		$this->current_track= new Class_AlbumRessource();
+		$this->tracks[]=$this->current_track;
+	}
+
+
+  public function endTracks() {
+    $this->ressource_numerique->setRessources($this->tracks);
+  }
+
+
+	public function endLabel($data) {
+		$this->enddc_publisher($data);
+	}
+
+
+	public function endDescription($data) {
+		$this->enddc_description($data);
+	}
+
+
+	public function endCover_url($data) {
+		$this->ressource_numerique->addPoster($data);
+	}
+
+
+	public function endArtist($data) {
+    if ($this->parser->inParents('track')) {
+      return $this->current_track->addAuthor($data);
+    }
+		$this->enddc_creator($data);
+	}
+
+
+	public function endStyle($data) {
+		$this->enddc_subject($data);
+	}
+}
+?>
diff --git a/library/Class/WebService/SIGB/AbstractService.php b/library/Class/WebService/SIGB/AbstractService.php
index 1c8bf744c8025d748822fa1fee539d7301dcb585..3a34374ea0f7eb0b9274326fc590dc307b6d4689 100644
--- a/library/Class/WebService/SIGB/AbstractService.php
+++ b/library/Class/WebService/SIGB/AbstractService.php
@@ -105,6 +105,16 @@ abstract class Class_WebService_SIGB_AbstractService {
 	}
 
 
+	public function providesPickupLocations() {
+		return false;
+	}
+
+
+	public function pickupLocationsFor($user, $item) {
+		return [];
+	}
+
+
 	protected function _success() {
     return array('statut' => true, 'erreur' => '');
 	}
@@ -112,7 +122,7 @@ abstract class Class_WebService_SIGB_AbstractService {
 
 	protected function _error($message) {
 		return array('statut' => false,
-								  'erreur' => $message);
+								 'erreur' => $message);
 	}
 
 
diff --git a/library/Class/WebService/SIGB/Carthame/ReserveInfoResponseReader.php b/library/Class/WebService/SIGB/Carthame/ReserveInfoResponseReader.php
index 356ecd3cc8d7ab5fcada1ba565029c8e1ff29a38..c9a9a9c2133503896ed325bf46a62343bafa4119 100644
--- a/library/Class/WebService/SIGB/Carthame/ReserveInfoResponseReader.php
+++ b/library/Class/WebService/SIGB/Carthame/ReserveInfoResponseReader.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class Class_WebService_SIGB_Carthame_ReserveInfoResponseReader {
 	/** @var Class_WebService_XMLParser */
@@ -26,10 +26,6 @@ class Class_WebService_SIGB_Carthame_ReserveInfoResponseReader {
 	protected $_sites;
 	protected $_current_site_id;
 
-	protected $_codif_site_ifr = ['Institut F' => 1,
-																'Cluj-Napoc' => 2,
-																'Iasi' => 3,
-																'Timisoara' => 4];
 
 	/**
 	 * @return Class_WebService_SIGB_Carthame_AccountResponseReader
@@ -39,6 +35,11 @@ class Class_WebService_SIGB_Carthame_ReserveInfoResponseReader {
 	}
 
 
+	public static function read($xml) {
+		return (new self())->readXml($xml);
+	}
+
+
 	/**
 	 * @param string $xml
 	 * @return Class_WebService_SIGB_Emprunteur
@@ -53,18 +54,13 @@ class Class_WebService_SIGB_Carthame_ReserveInfoResponseReader {
 	}
 
 
-	public function getId($code) {
-		return $this->_codif_site_ifr[$code];
-	}
-
-
 	public function getSites() {
 		return $this->_sites;
 	}
 
 
 	public function isSiteAllowed($code) {
-		return array_key_exists($this->getId($code), $this->_sites);
+		return array_key_exists($code, $this->_sites);
 	}
 
 
diff --git a/library/Class/WebService/SIGB/Carthame/Service.php b/library/Class/WebService/SIGB/Carthame/Service.php
index 7b4dd9178174ab557b7776d1d0859d345298a2db..09e68594fbd5f9780b1ac25de6f6bf7d216ddd04 100644
--- a/library/Class/WebService/SIGB/Carthame/Service.php
+++ b/library/Class/WebService/SIGB/Carthame/Service.php
@@ -20,10 +20,13 @@
  */
 
 class Class_WebService_SIGB_Carthame_Service extends Class_WebService_SIGB_AbstractRESTService {
+	const CARTHAME_NAME = 'ktm';
+	const KARVI_NAME = 'karvi';
+
 	protected $_key;
 	protected $_translate;
 	protected $_hold_error_messages;
-	protected $_sigb_field_name = "ktm";
+	protected $_sigb_field_name = self::CARTHAME_NAME;
 
 	/**
 	 * @param string $server_root
@@ -48,6 +51,39 @@ class Class_WebService_SIGB_Carthame_Service extends Class_WebService_SIGB_Abstr
 	}
 
 
+	public function providesPickupLocations() {
+		return true;
+	}
+
+
+	public function isKarvi() {
+		return self::KARVI_NAME == $this->_sigb_field_name;
+	}
+
+
+	public function isCarthame() {
+		return self::CARTHAME_NAME == $this->_sigb_field_name;
+	}
+
+
+	public function pickupLocationsFor($user, $item) {
+		if (!$user || !$item)
+			return [];
+
+		$user_id = $this->_authenticate($user);
+		$record_id = $item->getIdOrigine();
+
+		$xml = $this->_callAction('reserveInfo',
+															['userid' => $user_id, 'nn' => $record_id]);
+
+		if (1 <= (int)$this->_getTagData($xml, 'error'))
+			return [];
+
+		return Class_WebService_SIGB_Carthame_ReserveInfoResponseReader::read($xml)
+			->getSites();
+	}
+
+
 	/**
 	 * @param $translate Zend_Translate
 	 * @return self
@@ -57,11 +93,13 @@ class Class_WebService_SIGB_Carthame_Service extends Class_WebService_SIGB_Abstr
 		return $this;
 	}
 
+
 	public function setSigbFieldName($sigb_field_name) {
 		$this->_sigb_field_name=$sigb_field_name;
 		return $this;
 	}
 
+
 	/**
 	 * @param Class_Users $user
 	 * @return Class_WebService_SIGB_Emprunteur
@@ -90,7 +128,8 @@ class Class_WebService_SIGB_Carthame_Service extends Class_WebService_SIGB_Abstr
 		$userId = $this->_authenticate($user);
 		$notice_id = $exemplaire->getIdOrigine();
 
-		$xml = $this->_callAction('reserveInfo', ['userid' => $userId, 'nn' => $notice_id]);
+		$xml = $this->_callAction('reserveInfo',
+															['userid' => $userId, 'nn' => $notice_id]);
 
 		if (1 <= (int)$this->_getTagData($xml, 'error')) {
 			$error_code = (string)$this->_getTagData($xml, 'code');
@@ -98,15 +137,16 @@ class Class_WebService_SIGB_Carthame_Service extends Class_WebService_SIGB_Abstr
 			return $this->_error($error_message);
 		}
 
-		$reserveInfoReader = Class_WebService_SIGB_Carthame_ReserveInfoResponseReader::newInstance()->readXML($xml);
-		if (!$reserveInfoReader->isSiteAllowed($code_annexe)) {
+		$reader = Class_WebService_SIGB_Carthame_ReserveInfoResponseReader::read($xml);
+		if (!$reader->isSiteAllowed($code_annexe)) {
 			return $this->_error(sprintf('Réservation impossible. Autorisée seulement sur %s',
-																	 implode(',' , $reserveInfoReader->getSites())));
+																	 implode(', ' , $reader->getSites())));
 		}
 
-		$xml = $this->_callAction('reserveDocument', ['userid' => $userId,
-																									'nn'			=> $notice_id,
-																									'site'		=> $reserveInfoReader->getId($code_annexe)]);
+		$xml = $this->_callAction('reserveDocument',
+															['userid' => $userId,
+															 'nn'			=> $notice_id,
+															 'site'		=> $code_annexe]);
 
 		if (1 === (int)$this->_getTagData($xml, 'error'))
 			return $this->_success();
diff --git a/library/Class/WebService/SIGB/Dynix/Service.php b/library/Class/WebService/SIGB/Dynix/Service.php
index 860a8bb51502ce10c7ba5009dffa8c5b799a4b62..80bd597336393d4eacd4047ae5910c603820dd71 100644
--- a/library/Class/WebService/SIGB/Dynix/Service.php
+++ b/library/Class/WebService/SIGB/Dynix/Service.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class Class_Webservice_SIGB_Dynix_Service extends Class_WebService_SIGB_AbstractRESTService {
 	protected $_client_id;
@@ -33,9 +33,9 @@ class Class_Webservice_SIGB_Dynix_Service extends Class_WebService_SIGB_Abstract
 			'CRETMAC'=>'bibliotheque.creteil.mac@agglo-plainecentrale94.fr',
 			'CRETMUL'=>'',
 			'CRETRES'=>'bibliotheque.creteil.servicesinternes@agglo-plainecentrale94.fr',
-			'CRETVIL'=>'bibliotheque.creteil.village@agglo-plainecentrale94.fr',
+			'CRETVIL'=>'mediatheque.creteil.village@agglo-plainecentrale94.fr',
 			'LB'=>'bibliotheque.limeilbrevannes@agglo-plainecentrale94.fr'];
-		
+
 	/**
 	 * @param string $server_root
 	 * @return Class_Webservice_SIGB_Dynix_Service
@@ -113,8 +113,8 @@ class Class_Webservice_SIGB_Dynix_Service extends Class_WebService_SIGB_Abstract
 		}
 
 		if ($sigb_exemplaire->getDisponibilite() !== Class_WebService_SIGB_Exemplaire::DISPO_LIBRE)
-			return $this->_userHttpAction($user, 
-																		'createMyHold', 
+			return $this->_userHttpAction($user,
+																		'createMyHold',
 																		['titleKey' => $exemplaire->getIdOrigine(),
 																		 'pickupLibraryID' => $code_annexe]);
 
@@ -142,7 +142,7 @@ class Class_Webservice_SIGB_Dynix_Service extends Class_WebService_SIGB_Abstract
 		$content = "Bonjour,\n\n";
 		$content .= sprintf("%s, %s (N° : %s) désire réserver le document suivant : \n",
 												$user->getNom(), $user->getPrenom(), $user->getIdabon());
-		
+
 		$content .= "URL de la notice : ".$this->_getUrlNotice($exemplaire->getNotice())."\n";
 
 		$content .= "Titre : ".$exemplaire->getTitreEtSousTitre()."\n";
@@ -165,15 +165,15 @@ class Class_Webservice_SIGB_Dynix_Service extends Class_WebService_SIGB_Abstract
 
 
 	public function supprimerReservation($user, $reservation_id){
-		return $this->_userHttpAction($user, 
-																	'cancelMyHold', 
+		return $this->_userHttpAction($user,
+																	'cancelMyHold',
 																	['holdKey' => $reservation_id]);
 	}
 
 
 	public function prolongerPret($user, $pret_id){
-		return $this->_userHttpAction($user, 
-																	'renewMyCheckout', 
+		return $this->_userHttpAction($user,
+																	'renewMyCheckout',
 																	['itemID' => $pret_id]);
 	}
 
@@ -205,10 +205,10 @@ class Class_Webservice_SIGB_Dynix_Service extends Class_WebService_SIGB_Abstract
 		$service = $options['service'];
 		unset($options['service']);
 
-		return sprintf('%s/rest/%s/%s?%s', 
-									 $this->getServerRoot(), 
+		return sprintf('%s/rest/%s/%s?%s',
+									 $this->getServerRoot(),
 									 $namespace,
-									 $service, 
+									 $service,
 									 http_build_query($options));
 	}
 
diff --git a/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php b/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php
index 2e6ec667dd685a6fa6f176a561fbc726dc2835d1..913dae6b6e18a77f6665436349f709b5c1871454 100644
--- a/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php
+++ b/library/Class/WebService/SIGB/Koha/GetRecordsResponseReader.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class Class_WebService_SIGB_Koha_GetRecordsResponseReader {
 	use Class_WebService_SIGB_Koha_TraitFormat;
@@ -44,6 +44,7 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader {
 		return new self();
 	}
 
+
 	public function setInterdireResaDocDispo($dispo) {
 		$this->interdire_resa_doc_dispo = $dispo;
 		return $this;
@@ -56,6 +57,7 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader {
 		return $this;
 	}
 
+
 	public function getNoticeFromXML($xml) {
 		$this->_xml_parser = Class_WebService_XMLParser::newInstance();
 		$this->_xml_parser
@@ -100,9 +102,8 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader {
 		$date = $this->formatDate($data);
 		$this->_current_exemplaire->setDateRetour($date);
 
-		if (('' != $date)  || ($this->allowAvailableDocumentReservation())) {
+		if (('' != $date)  || ($this->allowAvailableDocumentReservation()))
 			$this->_current_exemplaire->setReservable(true);
-		}
 	}
 
 
@@ -142,10 +143,9 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader {
 		if (!$this->_xml_parser->inParents('item'))
 			return;
 
-
 		if (array_key_exists($data, $this->_not_for_loan_status) and !$this->_current_exemplaire->isPiege()) {
 			$this->_current_exemplaire->setDisponibilite($this->_not_for_loan_status[$data]);
-			if (!in_array($data, array('0', '4'))) 
+			if (!in_array($data, array('0', '4')))
 				$this->_current_exemplaire->notForLoan();
 		}
 	}
@@ -157,11 +157,12 @@ class Class_WebService_SIGB_Koha_GetRecordsResponseReader {
 			return;
 		}
 
-			
 		if ($this->_xml_parser->inParents('item')) {
 			$this->_current_exemplaire->setId($data);
-			if (in_array($data, $this->_reservations))
+			if (in_array($data, $this->_reservations)) {
 				$this->_current_exemplaire->setDisponibiliteDejaReserve();
+				$this->_current_exemplaire->setReservable(true);
+			}
 		}
 	}
 }
diff --git a/library/Class/WebService/Vignette.php b/library/Class/WebService/Vignette.php
index 3f751744cbe9f6f7047dbfcf4f2bfb9b6b25c226..93ca6a458bc7c117bad284b819f36d3eca041074 100644
--- a/library/Class/WebService/Vignette.php
+++ b/library/Class/WebService/Vignette.php
@@ -16,108 +16,54 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//  OPAC3: Vignettes documents 
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-class Class_WebService_Vignette {
+
+class Class_WebService_Vignette extends Class_WebService_Abstract {
+	protected static $_file_system;
+
+	/** @category testing */
+	public static function setFileSystem($file_system) {
+		static::$_file_system = $file_system;
+	}
+
+
+	protected static function getFileSystem() {
+		if (null !== static::$_file_system)
+			return static::$_file_system;
+		return new Storm_FileSystem_Disk();
+	}
 
 //------------------------------------------------------------------------------------------------------
 // Clef de controle anti hack
-//------------------------------------------------------------------------------------------------------  
+//------------------------------------------------------------------------------------------------------
 	static function getClefControle() {
 		$clef="IMG".date("DxzxYxM")."VIG";
 		return md5($clef);
 	}
 
-//------------------------------------------------------------------------------------------------------
-// Cherche l'image dans les web-services et renvoie une url
-//------------------------------------------------------------------------------------------------------
-	public function getImage($id_notice, $cache=false)	{
-		// Chercher dans le cache
-		if (!$notice = Class_Notice::find($id_notice))
-			return URL_ADMIN_IMG.'supports/vignette_vide.gif';
-
-		return $notice->withUrlVignetteDo(
-			function($notice, $url_vignette, $url_image) use ($cache) {
-				return $this->fetchAndSaveImage($notice, $url_vignette, $url_image, $cache);
-			});
-	}
 
+	public function getThumbnailProviderFor($notice) {
+		if ($notice->isArticleCms())
+			return new Class_WebService_Thumbnail_Provider_Article(static::getFileSystem());
 
-	public function fetchAndSaveImage($notice, $url_vignette, $url_image, $cache) {
-		if ($url_vignette) {
-			if($url_vignette == "NO") {
-				$fic=$this->saveImage($notice->getId(), $notice->getTitrePrincipal(), $notice->getTypeDoc());
-				return BASE_URL.$fic;
-			}	else { 
-				if($cache==true) 
-					$url_vignette = $this->writeImageCache($notice->getId(), $url_vignette);
-				return $url_vignette;
-			}
-		}
+		if ($notice->isSite())
+			return new Class_WebService_Thumbnail_Provider_Site(static::getFileSystem());
 
-		// Pas dans le cache on la cherche
-		if ($urls=$this->getUrls($notice)) {
-			$url_vignette = $urls['vignette'];
-			$notice
-			->setUrlVignette($url_vignette)
-			->setUrlImage($urls['image'])
-			->save();
+		return new Class_WebService_Thumbnail_Provider_CacheServer(static::getFileSystem());
+	}
 
-			return ($cache==true) 
-			? $this->writeImageCache($notice->getId(), $url_vignette)
-			: $url_vignette;
-		}
 
-		$notice
-			->setUrlVignette('NO')
-			->setUrlImage('NO')
-			->save();
-		
-		$fic = $this->saveImage($notice->getId(),
-														$notice->getTitrePrincipal(),
-														$notice->getTypeDoc());
-		return BASE_URL.$fic;
+	public function updateUrlsFromCacheServer($notice) {
+		$this->getThumbnailProviderFor($notice)->updateNotice($notice);
+		return $this;
 	}
 
-//------------------------------------------------------------------------------------------------------
-// Url ajax
-//------------------------------------------------------------------------------------------------------  
-	static function getUrl($id_notice, $js=true)	{
-		// Chercher dans la base de données
-		$notice = Class_Notice::find($id_notice);
-		if (!$notice)
-			return [ 'image' => '',
-							 'vignette' => '' ];
-		return $notice->withUrlVignetteDo(
-			function($notice, $url_vignette, $url_image) use ($js) {
-				return static::getOrGenerateUrls($notice, $url_vignette, $url_image, $js);
-			});
-	}
 
-	static function getOrGenerateUrls($notice, $url_vignette, $url_image, $js) {
-		if($url_vignette) {
-			if($url_vignette == "NO"){ 
-				$url_image = $ret["vignette"] = BASE_URL.static::saveImage($notice->getId(),
-																																	 $notice->getTitrePrincipal(),
-																																	 $notice->getTypeDoc());
-			}	else {
-				$ret["vignette"] = $url_vignette;
-			}
-		}
-		else	{
-			// Url de retour pour chercher avec les web services
-			$clef_controle=Class_WebService_Vignette::getClefControle();
-			$ret["vignette"] = BASE_URL."/recherche/vignette?clef=".$clef_controle."&amp;id_notice=".$notice->getId();
-			$url_image = $ret["vignette"];
-		}
 
-		$ret['image'] = ($js==true)
-		                ? "afficher_image('".$url_image."');"
-		                :$url_image;
-		return $ret;
+	public static function getAjaxUrl($notice) {
+		$clef_controle = Class_WebService_Vignette::getClefControle();
+		return BASE_URL."/recherche/vignette?clef=".$clef_controle."&amp;id_notice=".$notice->getId();
 	}
 
 //------------------------------------------------------------------------------------------------------
@@ -138,7 +84,7 @@ class Class_WebService_Vignette {
 			"Fan-de-cinema"=>"fan-de-cinema",
 			"Premiere"=>"premiere"
 		);
-		
+
 		// renvoyer la source
 		if(!$url) return $defaut;
 		foreach($sources as $key => $valeur)
@@ -148,88 +94,21 @@ class Class_WebService_Vignette {
 		return $defaut;
 	}
 
-//------------------------------------------------------------------------------------------------------
-// Rend le contenu binaire d'une image au navigateur
-//------------------------------------------------------------------------------------------------------    
-	public function getFluxImage($clef_controle,$id_notice)	{
-		// Verif clef de controle
-		if($clef_controle != Class_WebService_Vignette::getClefControle()) return false;
-		
-		// lire la notice
-		if (!$notice = Class_Notice::find(abs((int)$id_notice)))
-			return false;
 
-		// Chercher dans les web-services
-		$urls=$this->getUrls($notice);
-		if($urls)	{ 
-			$notice
-			->setUrlVignette($url['vignette'])
-			->setUrlImage($url['image'])
-			->save();
-		
-			// Http request
-			$httpClient = Zend_Registry::get('httpClient');
-			$httpClient->setUri($urls["vignette"]);
-			$response = $httpClient->request();
-			$data = $response->getBody();
-		}
-		else	{
-			$notice
-			->setUrlVignette('NO')
-			->setUrlImage('NO')
-			->save();
-
-			$img = $this->createimage("", 100, 90, $notice->getTypeDoc());
-			header("Content-type: image/jpeg");
-			imagejpeg($img);
-			exit;
-		}
-		
-		// On envoie le flux de l'image
-		if(strpos(substr($data,0,10),"PNG") !== false)	header ("Content-type: image/png");
-		if(strpos(substr($data,0,10),"GIF") !== false)	header ("Content-type: image/gif");
-		else header("Content-type: image/jpeg");  // @TODO : gerer les images vides des differents fournisseurs
-		print($data);
-		exit;
-	}
-
-//------------------------------------------------------------------------------------------------------
-// Rend les urls pour la vignette et la grande image
-//------------------------------------------------------------------------------------------------------    
-	public function getUrls($notice) {
-		$args=["titre" => $notice->isPeriodique() 
-											 ?  $notice->getClefChapeau() 
-											 : $notice->getTitrePrincipal(),
+	static function saveImage($id_notice,$titre,$type_doc)	{
+		$filename = "/temp/vignettes_titre/notice_".$id_notice.".png";
+		$full_path = getcwd().$filename;
 
-					 "auteur"=> $notice->getAuteurPrincipal(),
-					 "isbn" => $notice->getIsbn(),
-					 "ean"=> $notice->getEan(),
-					 "type_doc" =>  $notice->getFamilleId(),
-					 "numero" => $notice->isPeriodique() 
-					             ? $notice->getTomeAlpha()
-					             : ''];
+		if (static::getFileSystem()->fileExists($full_path))
+			return $filename;
 
-		$response = Class_WebService_AllServices::runServiceGetUrlVignette($args);
+		$image = static::createImage($titre,
+																 $width=100,
+																 $height=90,
+																 $type_doc);
 
-		if ($response["statut_recherche"] !=2)	
-			return false;
-
-		$ret["vignette"]=$response["vignette"];
-		$ret["image"]=$response["image"];
-		return $ret;
-	}
- 
-//------------------------------------------------------------------------------------------------------
-// Crée l'image avec le titre et la sauvegarde dans le dossier temp
-//------------------------------------------------------------------------------------------------------  
-	static function saveImage($id_notice,$titre,$type_doc)	{
-		$path = getcwd();
-		$nom_fic = "/temp/vignettes_titre/notice_".$id_notice.".png";
-		if(file_exists($path.$nom_fic)==false) {
-			$image = static::createImage($titre,$width=100,$height=90,$type_doc);
-			imagepng($image, $path.$nom_fic);
-		}
-		return $nom_fic;
+		imagepng($image, $full_path);
+		return $filename;
 	}
 
 
@@ -240,44 +119,29 @@ class Class_WebService_Vignette {
  		  if (file_exists($filepath)) unlink($filepath);
     }
 	}
-  
-//------------------------------------------------------------------------------------------------------
-// Prend l'image sur internet et la met en cache (pour contourner le pb des objets flash)
-//------------------------------------------------------------------------------------------------------ 
-	private function writeImageCache($id_notice,$url)	{
-		$path=PATH_TEMP."vignettes_titre/";
-		$nom_fic="notice_".$id_notice.".jpg";
-		try {
-			if(file_exists($path.$nom_fic)==false) { 
-					$httpClient = Zend_Registry::get('httpClient');
-					$httpClient->setUri($url);
-					$response = $httpClient->request();
-					$data = $response->getBody();
-					file_put_contents($path.$nom_fic,$data);
-				}
-		} catch(Exception $e) {
-			return null;
-		}
-		$url="../vignettes_titre/".$nom_fic;
-		return $url;
+
+
+	/** download and save image at given url */
+	public function writeImageCache($notice, $url)	{
+		return $this->getThumbnailProviderFor($notice)->writeImageCache($notice, $url);
 	}
-  
+
 //------------------------------------------------------------------------------------------------------
 // Crée l'image avec le titre
-//------------------------------------------------------------------------------------------------------    
+//------------------------------------------------------------------------------------------------------
 	public static function createImage($titre,$width=100,$height=110,$type_doc) {
 		$image = imagecreatetruecolor($width,$height);
-		
+
 		// Couleur de fond
-		$fond = imagecolorallocate($image, 230, 230, 230);
+		$fond = imagecolorallocate($image, 255, 255, 255);
 		imagefill($image, 0, 0, $fond);
-		
+
 		// Titre
-		if($titre > "") 
+		if($titre > "")
 			$image = static::writeText($titre,$image);
 		return $image;
 	}
-    
+
 //------------------------------------------------------------------------------------------------------
 // Ecrit le texte
 //------------------------------------------------------------------------------------------------------
@@ -286,15 +150,15 @@ class Class_WebService_Vignette {
 		$texte=wordwrap(utf8_decode(str_replace('<br />', ';', $titre)), 12, ';');
 		$texte=explode(";", $texte);
 
-		
+
 		// Parametres
 		$font = 3;
-		$couleur = imagecolorallocate($image_obj,212, 65, 0);
+		$couleur = imagecolorallocate($image_obj, 102, 102, 102);
 		$pos_x=0;
 		$pos_y=2;
 		$hauteur=15;
 		$largeur=100;
-		
+
 		// Afficher
 		foreach($texte as $ligne)
 		{
@@ -305,3 +169,174 @@ class Class_WebService_Vignette {
 		return $image_obj;
 	}
 }
+
+
+
+
+abstract class Class_WebService_Thumbnail_Provider_Abstract extends Class_WebService_Abstract {
+	protected $_filesystem;
+
+	public function __construct($filesystem) {
+		$this->_filesystem = $filesystem;
+	}
+
+
+	abstract public function updateNotice($notice);
+
+	abstract public function writeImageCache($notice, $url);
+}
+
+
+
+
+
+class Class_WebService_Thumbnail_Provider_CacheServer extends Class_WebService_Thumbnail_Provider_Abstract {
+	public function updateNotice($notice) {
+		$urls = $this->_getUrls($notice);
+
+		$notice
+			->setUrlVignette($urls ? $urls['vignette'] : 'NO')
+			->setUrlImage($urls ? $urls['image'] : 'NO')
+			->save();
+
+		return $this;
+	}
+
+
+	protected function _getUrls($notice) {
+		$args=["titre" => $notice->isPeriodique()
+											 ?  $notice->getClefChapeau()
+											 : $notice->getTitrePrincipal(),
+
+					 "auteur"=> $notice->getAuteurPrincipal(),
+					 "isbn" => $notice->getIsbn(),
+					 "ean"=> $notice->getEan(),
+					 "type_doc" =>  $notice->getFamilleId(),
+					 "numero" => $notice->isPeriodique()
+					             ? $notice->getTomeAlpha()
+					             : ''];
+
+		$response = Class_WebService_AllServices::runServiceGetUrlVignette($args);
+
+		if ($response["statut_recherche"] !=2)
+			return false;
+
+		$ret["vignette"]=$response["vignette"];
+		$ret["image"]=$response["image"];
+		return $ret;
+	}
+
+
+	public function writeImageCache($notice, $url) {
+		$path = PATH_TEMP. 'vignettes_titre/';
+		$nom_fic = "notice_" . $notice->getId().".jpg";
+		try {
+			if ($this->_filesystem->fileExists($path.$nom_fic)==false) {
+					$data = $this->httpGet($url);
+					$this->_filesystem->filePutContents($path.$nom_fic, $data);
+				}
+		} catch(Exception $e) {
+			return null;
+		}
+		$url = "/temp/vignettes_titre/".$nom_fic;
+		return $url;
+	}
+}
+
+
+
+
+class Class_WebService_Thumbnail_Provider_Article extends Class_WebService_Thumbnail_Provider_Abstract {
+	protected static $_default_image_factory;
+
+	public static function setDefaultImageFactory($factory) {
+		static::$_default_image_factory = $factory;
+	}
+
+
+	public function getImageFactory() {
+		return isset(static::$_default_image_factory)
+			?	static::$_default_image_factory
+			: new Class_WebService_Thumbnail_Provider_ImageFactory();
+	}
+
+
+	public function updateNotice($notice) {
+		if (!$url = $notice->getArticleCms()->getFirstImageAbsoluteURL())
+			return $this->noWebThumbRecord($notice);
+
+		if(!$image = $this->getImageFactory()->newImage($url))
+			return $this->noWebThumbRecord($notice);
+
+		$path = PATH_TEMP. 'vignettes_titre/';
+		$filename = $notice->getClefAlpha().'.jpg';
+
+		$image->thumbnailImage(160, 220, true, true);
+		$image->writeImage($path . $filename);
+
+		$notice
+			->setUrlVignette('/temp/vignettes_titre/' . $filename)
+			->setUrlImage('/temp/vignettes_titre/' . $filename)
+			->save();
+
+		return $this;
+	}
+
+
+	protected function noWebThumbRecord($record) {
+		$record
+				->setUrlVignette('NO')
+				->setUrlImage('NO')
+				->save();
+
+			return $this;
+	}
+
+
+	public function writeImageCache($notice, $url) {
+		return $url;
+	}
+}
+
+
+
+class Class_WebService_Thumbnail_Provider_Site extends Class_WebService_Thumbnail_Provider_Abstract {
+	public function updateNotice($notice) {
+		$webthumbnail = new Class_WebService_WebSiteThumbnail();
+		if (!$site=$notice->getSite())
+			return $this;
+		$url = $site->getUrl();
+
+		if (!$url_thumbnail = $webthumbnail->fetchFullUrl($url))
+			$url_thumbnail = 'NO';
+
+		$url_thumbnail = str_replace(BASE_URL, '', $url_thumbnail);
+		$notice
+				->setUrlVignette($url_thumbnail)
+				->setUrlImage($url_thumbnail)
+				->save();
+
+		return $this;
+	}
+
+	public function writeImageCache($notice, $url) {
+		return $url;
+	}
+}
+
+
+
+class Class_WebService_Thumbnail_Provider_ImageFactory {
+	public function newImage($url) {
+		$img = null;
+		try {
+			$img = new Imagick($url);
+		} catch (Exception $e) {}
+
+		return $img;
+	}
+}
+
+
+
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/WebSiteThumbnail.php b/library/Class/WebService/WebSiteThumbnail.php
new file mode 100644
index 0000000000000000000000000000000000000000..cdd1764c021e20a581d6bfe383d8037a05815aee
--- /dev/null
+++ b/library/Class/WebService/WebSiteThumbnail.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class Class_WebService_WebSiteThumbnail {
+	use Trait_StaticFileWriter;
+	const THUMBS_DIR = 'web_thumbnails';
+	static protected $_thumbnailer;
+
+	public static function setThumbnailer($thumbnailer) {
+		self::$_thumbnailer = $thumbnailer;
+	}
+
+	public static function getThumbnailer() {
+		if (!isset(self::$_thumbnailer))
+			self::$_thumbnailer = new Class_WebService_Bluga();
+		return self::$_thumbnailer;
+	}
+
+
+	public function getWebThumbnailURL($url) {
+		$this->checkThumbsDir();
+
+		$filename = $this->fileNameFromUrl($url);
+		$filepath = $this->fullPath($filename);
+
+		if (!$this->getFileWriter()->fileExists($filepath)) {
+			return Class_AdminVar::isBlugaEnabled()
+				? (new Class_Url)->absoluteUrl(['controller' => 'sito',
+																				'action' => 'webthumbnail'],null,true) . '?url=' . urlencode($url)
+				: '';
+		}
+
+		return $this->fullUrl($filename);
+	}
+
+
+	public function fullUrl($thumbnail) {
+		$url = USERFILESURL.'/'.self::THUMBS_DIR.'/'.$thumbnail;
+		return str_replace('//', '/', $url);
+	}
+
+
+	public function fetchFullUrl($url) {
+		$filename = $this->fileNameFromUrl($url);
+		$filepath = $this->fullPath($filename);
+
+		if ($this->getFileWriter()->fileExists($filepath))
+			return $this->fullUrl($filename);
+
+		if (!Class_AdminVar::isBlugaEnabled())
+			return '';
+
+		if (!$this->getThumbnailer()->fetchUrlToFile($url, $filepath))
+			return '';
+
+		return $this->fullUrl($filename);
+	}
+
+
+	protected function getThumbsDir() {
+		$path = USERFILESPATH.'/'.self::THUMBS_DIR.'/';
+		return str_replace('//', '/', $path);
+	}
+
+
+	protected function checkThumbsDir() {
+		$dir = $this->getThumbsDir();
+		$file_writer = $this->getFileWriter();
+		if (!$file_writer->dirExists($dir))
+			$file_writer->mkdir($dir);
+	}
+
+	protected function fullPath($thumbnail) {
+		return $this->getThumbsDir().$thumbnail;
+	}
+
+	protected function fileNameFromUrl($url) {
+		$decoded = urldecode($url);
+		$wo_http = preg_replace('/^.*:\/\//', '', $decoded);
+		$filename = preg_replace('/[^\w\-]/', '_', $wo_http);
+		return $filename.'.jpg';
+	}
+}
+
+
+?>
\ No newline at end of file
diff --git a/library/Class/WebService/XMLParser.php b/library/Class/WebService/XMLParser.php
index cd9a570551ba48dd0fc59e4e37d48a15e8a870c8..f05c4c913ad05755cd6ccaa82beb9912405fe79a 100644
--- a/library/Class/WebService/XMLParser.php
+++ b/library/Class/WebService/XMLParser.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_XMLParser {
@@ -25,7 +25,7 @@ class Class_WebService_XMLParser {
 	protected $_parents ;
 	protected $_element_handler ;
 	protected $_parsed_xml ;
-
+	protected $remove_namespace=true;
 
 	/**
 	 * @return Class_WebService_XMLParser
@@ -34,6 +34,10 @@ class Class_WebService_XMLParser {
 		return new static();
 	}
 
+	public function keepNameSpace() {
+		$this->remove_namespace=false;
+	}
+
 	/**
 	 * @param string $xml
 	 * @return string
@@ -120,15 +124,12 @@ class Class_WebService_XMLParser {
 	 */
 	public function startElement($parser, $tag, $attributes) {
 		$tag = $this->tagWithoutNamespace($tag);
-		$this->_parents[] = strtolower($tag); 
+		$this->_parents[] = strtolower($tag);
 
 		if ($this->isDataToBeResetOnTag($tag))
 			$this->_current_data = null ;
 
-		$method_name = 'start'.$tag ;
-		if (method_exists($this->_element_handler, $method_name)) {
-			$this->_element_handler->$method_name($attributes) ;
-		}
+		$this->_callFuncOrClosure('start'.$tag, $attributes);
 	}
 
 
@@ -147,21 +148,33 @@ class Class_WebService_XMLParser {
 	 * @param string $tag
 	 */
 	public function endElement($parser, $tag) {
-		$method_name = 'end'.$this->tagWithoutNamespace($tag);
-
-		if (method_exists($this->_element_handler, $method_name))	 {
-			$this->_element_handler->$method_name($this->_current_data);
-		}
+		$this->_callFuncOrClosure('end'.$this->tagWithoutNamespace($tag),
+															trim($this->_current_data));
 		array_pop($this->_parents) ;
 	}
 
 
+
+	protected function _callFuncOrClosure($method_name, $data) {
+		$callable  = null;
+
+		if (property_exists($this->_element_handler, $method_name))
+			$callable = $this->_element_handler->$method_name;
+
+		if (method_exists($this->_element_handler, $method_name))
+			$callable = [$this->_element_handler, $method_name];
+
+		if ($callable)
+			call_user_func($callable, $data);
+	}
+
+
 	/**
 	 * @param PHP Resource $parser
 	 * @param string $data
 	 */
 	public function onData($parser, $data) {
-		$this->_current_data .= $data ;
+		$this->_current_data .= $data;
 	}
 
 
@@ -174,13 +187,21 @@ class Class_WebService_XMLParser {
 	}
 
 
+	public function getParent() {
+		return $this->_parents[count($this->_parents) - 2];
+	}
+
+
 	/**
 	 * @param string $tag
 	 * @return string
 	 */
 	public function tagWithoutNamespace($tag) {
-		$parts = explode(':', $tag);
-		return end($parts);
+		if ($this->remove_namespace) {
+			$parts = explode(':', $tag);
+			return end($parts);
+		}
+		return str_replace(':','_',$tag);
 	}
 }
 
diff --git a/library/Trait/Indexable.php b/library/Trait/Indexable.php
index 8120e7b975c0a0c06e01503a5474336aed631d9e..cbd2bf6b39f14159115e6efb15240700df016632 100644
--- a/library/Trait/Indexable.php
+++ b/library/Trait/Indexable.php
@@ -37,14 +37,18 @@ trait Trait_Indexable {
 			return $this;
 		}
 
-		Class_NoticeDomain::deleteBy(['record_alpha_key' => $alpha_key]);
+		$existing = Class_NoticeDomain::findAllBy(['record_alpha_key' => $alpha_key]);
+		$existing_ids = array_map(function ($item) { return $item->getDomainId();}, $existing);
 
-		foreach($domains_ids as $domain_id) {
-			Class_NoticeDomain::newInstance(['domain_id' => $domain_id,
-																			 'record_alpha_key' => $alpha_key])
-				->save();
+		if ($to_delete = array_diff($existing_ids, $domains_ids))
+			Class_NoticeDomain::deleteBy(['record_alpha_key' => $alpha_key,
+																		'domain_id' => $to_delete]);
 
-			Class_NoticeDomain::updateRecordsFacette($domain_id);
+		foreach(array_diff($domains_ids, $existing_ids) as $domain_id) {
+			$notice_domain = Class_NoticeDomain::newInstance(['domain_id' => $domain_id,
+																												'record_alpha_key' => $alpha_key]);
+			$notice_domain->save();
+			$notice_domain->updateFacette();
 		}
 
 		return $this;
diff --git a/library/Trait/TimeSource.php b/library/Trait/TimeSource.php
index cfe9c5db2abe546a281c41c0a61bec136d515a3d..e4be4f6aa7de04bc1ef4ab362880a61f444c6a87 100644
--- a/library/Trait/TimeSource.php
+++ b/library/Trait/TimeSource.php
@@ -38,6 +38,11 @@ trait Trait_TimeSource {
 	}
 
 
+	public static function getCurrentDate() {
+		return date('Y-m-d',self::getTimeSource()->time());
+	}
+
+
 	/** @return Class_TimeSource */
 	public static function getTimeSource() {
 		if (null == self::$_time_source)
diff --git a/library/ZendAfi/Controller/Action.php b/library/ZendAfi/Controller/Action.php
index 195a1d89d317d32d47f5f3c18da0da72735f7a66..3a7c4d67cde6cc1249623ee50fcab20186096ca7 100644
--- a/library/ZendAfi/Controller/Action.php
+++ b/library/ZendAfi/Controller/Action.php
@@ -242,38 +242,50 @@ class ZendAfi_Controller_Action extends Zend_Controller_Action {
 
 
 		$this->view->form = $form;
-		if ($this->_request->isPost()) {
-			// for multicheckboxes, if none is checked nothing is posted, default to empty
-			$defaults = [];
-			foreach ($form->getMulticheckboxNames() as $checkbox_name)
-				$defaults[$checkbox_name] = [];
-			$post = array_merge($defaults, $this->_getPost());
-
-			$custom_values = [];
-
-			foreach ($post as $k=>$v)
-				if (preg_match('/field_[0-9]+/', $k)) {
-					$custom_values[$k] = $v;
-					unset($post[$k]);
-				}
-			$model->updateAttributes($post);
-			if ((!$form->isValidModelAndArray($model,$this->_getPost())))
-				return false;
-			if  (!$model->save())
-				return false;
-			$this->_doAfterSave($model);
-
-			$model_values = $this->_getCustomFieldModelValues($model);
-			$custom_form = $this->_getCustomFieldForm($model_values);
-			$custom_form->populate($custom_values);
-			$custom_form->updateModelValues();
-			$model_values->save();
-			return true;
-		}
-		return false;
+		if (!$this->_request->isPost())
+			return false;
+
+
+		// for multicheckboxes, if none is checked nothing is posted, default to empty
+		$defaults = [];
+		foreach ($form->getMulticheckboxNames() as $checkbox_name)
+			$defaults[$checkbox_name] = [];
+		$post = array_merge($defaults, $this->_getPost());
+
+		$custom_values = [];
+
+		foreach ($post as $k=>$v)
+			if (preg_match('/field_[0-9]+/', $k)) {
+				$custom_values[$k] = $v;
+				unset($post[$k]);
+			}
+
+		$model->updateAttributes($post);
+
+		if ((!$form->isValidModelAndArray($model,$this->_getPost())))
+			return false;
+
+		$this->_doBeforeSave($model);
+
+		if  (!$model->save())
+			return false;
+
+		$this->_doAfterSave($model);
+
+		$model_values = $this->_getCustomFieldModelValues($model);
+		$custom_form = $this->_getCustomFieldForm($model_values);
+		$custom_form->populate($custom_values);
+		$custom_form->updateModelValues();
+		$model_values->save();
+		return true;
   }
 
 
+	protected function _doBeforeSave($model) {
+		return $this;
+	}
+
+
 	protected function _doAfterSave($model) {
 		return $this;
 	}
diff --git a/library/ZendAfi/Form/Admin/AdminVar.php b/library/ZendAfi/Form/Admin/AdminVar.php
new file mode 100644
index 0000000000000000000000000000000000000000..1d9a09480367669b01ba12272a57cf1558d3b8d7
--- /dev/null
+++ b/library/ZendAfi/Form/Admin/AdminVar.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class ZendAfi_Form_Admin_AdminVar extends ZendAfi_Form {
+	protected static $_FORM_CLASSES =
+		[
+		 Class_AdminVar::TYPE_ON_OFF => 'ZendAfi_Form_Admin_AdminVar_Checkbox',
+		 Class_AdminVar::TYPE_MULTI_INPUT => 'ZendAfi_Form_Admin_AdminVar_MultiInput',
+		 Class_AdminVar::TYPE_DEFAULT => 'ZendAfi_Form_Admin_AdminVar',
+		 Class_AdminVar::TYPE_ENCODED_DATA => 'ZendAfi_Form_Admin_AdminVar_EncodedData',
+		];
+
+
+	public static function newWithAdminVar($admin_var) {
+		$form_class = static::$_FORM_CLASSES[$admin_var->getType()];
+
+		$form = (new $form_class());
+		$form->setValue($admin_var->getValeur());
+		return $form;
+	}
+
+
+	public function setValue($value) {
+		$this->populate(['valeur' => $value]);
+	}
+
+
+	public function getAdminVarValue() {
+		$values = $this->getValues();
+		$filter = new Zend_Filter_StripTags();
+		return trim($filter->filter($values['valeur']));
+	}
+
+
+	public function init() {
+		parent::init();
+
+		$this->addVariableEditElement();
+
+		$this->addDisplayGroup([ 'valeur' ],
+													 'variable',
+													 ['legend' => $this->_('Variable')]);
+	}
+
+
+	public function addVariableEditElement() {
+		$this->addElement('textarea',
+											'valeur',
+											['label' => $this->_('Valeur'),
+											 'rows' => 10,
+											 'cols' => 40,
+											 'required' => true,
+											 'allowEmpty' => false]);
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Admin/AdminVar/Checkbox.php b/library/ZendAfi/Form/Admin/AdminVar/Checkbox.php
new file mode 100644
index 0000000000000000000000000000000000000000..0b0af3826cb0a860e6ad201e112475ce20ec1604
--- /dev/null
+++ b/library/ZendAfi/Form/Admin/AdminVar/Checkbox.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_Form_Admin_AdminVar_Checkbox extends ZendAfi_Form_Admin_AdminVar {
+	public function addVariableEditElement() {
+		$this->addElement('checkbox',
+											'valeur',
+											['label' => $this->_('Activé ?'),
+											 'required' => true,
+											 'allowEmpty' => false]);
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Admin/AdminVar/EncodedData.php b/library/ZendAfi/Form/Admin/AdminVar/EncodedData.php
new file mode 100644
index 0000000000000000000000000000000000000000..a819ed039bf4b47740c80223ab7f6e3caf3f9833
--- /dev/null
+++ b/library/ZendAfi/Form/Admin/AdminVar/EncodedData.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_Form_Admin_AdminVar_EncodedData extends ZendAfi_Form_Admin_AdminVar {
+	public function setValue($value) {
+		parent::setValue(urldecode($value));
+	}
+
+
+	public function getAdminVarValue() {
+		$values = $this->getValues();
+		return urlencode(trim($values['valeur']));
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Admin/AdminVar/MultiInput.php b/library/ZendAfi/Form/Admin/AdminVar/MultiInput.php
new file mode 100644
index 0000000000000000000000000000000000000000..25ab4e142a9823c0e27e640351fc67aefbf220fc
--- /dev/null
+++ b/library/ZendAfi/Form/Admin/AdminVar/MultiInput.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_Form_Admin_AdminVar_MultiInput extends ZendAfi_Form_Admin_AdminVar {
+	public function addVariableEditElement() {
+		$this->addElement('multiInput',
+											'valeur',
+											['label' => $this->_('Liste de valeurs'),
+											 'fields' => [
+																		['name' => 'values', 'label' => $this->_('Valeur')]
+											 ]
+											]);
+	}
+
+
+	public function setValue($value) {
+		$this->getElement('valeur')->setValues(['values' => explode(';', $value)]);
+	}
+
+
+	public function getAdminVarValue() {
+		$values = $this->getValues();
+		return implode(';', $values['valeur']['values']);
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Admin/UserGroup.php b/library/ZendAfi/Form/Admin/UserGroup.php
index 9b38d306a28f2db604d2fbc8444fa8e058aef70b..de2e885ee5644d5f8414bdca1cd254d3104f932b 100644
--- a/library/ZendAfi/Form/Admin/UserGroup.php
+++ b/library/ZendAfi/Form/Admin/UserGroup.php
@@ -34,7 +34,8 @@ class ZendAfi_Form_Admin_UserGroup extends ZendAfi_Form {
 									 'group_type',
 									 ['label' => $this->_('Mode de sélection des utilisateurs'),
 										'multiOptions' => [Class_UserGroup::TYPE_MANUAL =>  $this->_(Class_UserGroup::TYPE_MANUAL_TEXT),
-																			 Class_UserGroup::TYPE_DYNAMIC => $this->_(Class_UserGroup::TYPE_DYNAMIC_TEXT)] ] )
+																			 Class_UserGroup::TYPE_DYNAMIC => $this->_(Class_UserGroup::TYPE_DYNAMIC_TEXT),
+																			 Class_UserGroup::TYPE_MULTIMEDIA => $this->_(Class_UserGroup::TYPE_MULTIMEDIA_TEXT)]] )
 			->addElement('select',
 									 'role_level',
 									 ['label' => $this->_('Rôle'),
@@ -52,6 +53,7 @@ class ZendAfi_Form_Admin_UserGroup extends ZendAfi_Form {
 												['legend' => $this->_('Filtre')]);
 
 		$this->displayGroupFiltreVisibleOnlyOnDynamicGroup();
+		$this->displayRightsGroupVisibleOnlyOnDynamicAndManuelGroup();
 
 		$rights = Class_UserGroup::getActivatedRightDefinitionList();
 
@@ -96,5 +98,10 @@ class ZendAfi_Form_Admin_UserGroup extends ZendAfi_Form {
 		Class_ScriptLoader::getInstance()
 			->addInlineScript('formSelectToggleVisibilityForElement("input[name=\'group_type\']", "#fieldset-dynamic_filter", ["1"]);');
 	}
+
+	public function displayRightsGroupVisibleOnlyOnDynamicAndManuelGroup() {
+		Class_ScriptLoader::getInstance()
+			->addInlineScript('formSelectToggleVisibilityForElement("input[name=\'group_type\']", "#fieldset-rights_group", ["0","1"]);');
+	}
 }
 ?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Album.php b/library/ZendAfi/Form/Album.php
index c3d7f4f6adc6996e213a71711f8bd133a8bfcf57..140325595ca4cadf3b82a4af26391698665c673e 100644
--- a/library/ZendAfi/Form/Album.php
+++ b/library/ZendAfi/Form/Album.php
@@ -24,7 +24,15 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 	const RIGHT_OTHER_KEY = 2;
 	const RIGHT_PUBLIC_DOMAIN = 'Domaine public';
 
-	public static function newWith($album = [], $custom_form = null) {
+	protected $_simple_elements = ['titre',
+																 'cat_id',
+																 'type_doc_id',
+																 'visible',
+																 'status',
+																 'frbr_multi'];
+
+
+	public static function newWithAlbum($album) {
 		$form = new self();
 
 		$form
@@ -42,6 +50,7 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 												 'cat_id',
 												 'type_doc_id',
 												 'visible',
+												 'status',
 												 'fichier',
 												 'pdf',
 												 'authors',
@@ -54,8 +63,7 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 												 'album_desc',
 				                 ['legend' => $form->_('Description')])
 
-			->addDisplayGroup(['droits',
-					               'droits_precision',
+			->addDisplayGroup([
 												 'annee',
 												 'cote',
 												 'provenance',
@@ -71,6 +79,12 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 												 'album_metadata',
 				                 ['legend' => $form->_('Metadonnées')])
 
+			->addDisplayGroup(['droits',
+					               'droits_precision',
+												 'usage_constraints'],
+												'album_usage',
+												['legend' => $form->_('Utilisation')])
+
 			->addDisplayGroup(['bibliotheques',
 												 'annexes',
 												 'sections'],
@@ -87,10 +101,9 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 
 	public function addAuthorsFor($album) {
 		$values = ['author' => [], 'fonction' => []];
-		$datas=$album->getDatasOfField(Class_Album::AUTHOR_FIELD);
-		foreach($datas as $data) {
-			$values['author'][] = $data['a'];
-			$values['fonction'][] = $data['4'];
+		foreach($album->getAuthors() as $author) {
+			$values['author'][] = $author->getName();
+			$values['fonction'][] = $author->getResponsibility();
 		}
 		$this->authors->setValues($values);
 		return $this;
@@ -98,25 +111,13 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 
 
 	public function addEditorsFor($album) {
-		$values = ['editor' => []];
-		$datas=$album->getDatasOfField(Class_Album::EDITOR_FIELD);
-		foreach($datas as $data){
-			foreach($data as $value) {
-				if ($value[0] == 'c')
-					$values['editor'][] = $value[1];
-			}
-		}
-		$this->editors->setValues($values);
+		$this->editors->setValues(['editor' => $album->getEditors()]);
 		return $this;
 	}
 
+
 	public function addCollectionsFor($album) {
-		$values = ['collection' => []];
-		$datas=$album->getDatasOfField(Class_Album::COLLECTION_FIELD);
-		foreach($datas as $data) {
-			$values['collection'][] = $data['a'];
-		}
-		$this->collections->setValues($values);
+		$this->collections->setValues(['collection' => $album->getCollections()]);
 		return $this;
 	}
 
@@ -146,9 +147,15 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 																					'style'				=> 'width:440px;'])
 
 			->addElement('select', 'cat_id', ['label' => $this->_('Catégorie'),
-																				'multiOptions' => Class_AlbumCategorie::getAllLibelles()])
+																				'multiOptions' => ['' => $this->_('Choisissez une catégorie')]
+																					+ Class_AlbumCategorie::getAllLibelles()])
+
+			->addElement('checkbox', 'visible', ['label' => $this->_("Indexer l'album dans le catalogue ?")])
 
-			->addElement('checkbox', 'visible', ['label' => $this->_('Visible')])
+			->addElement('radio', 'status', ['label' => $this->_('Statut'),
+																			 'separator' => ' ',
+																			 'value' => 1,
+																			 'multiOptions' => Class_Album::getKnownStatus()])
 
 			->addElement('ckeditor', 'description')
 
@@ -297,7 +304,9 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 			->addElement('text', 'droits_precision',
 									 ['label' => '',
 										'value' => $current_precision,
-										'style'	=> 'width:440px;']);
+										'style'	=> 'width:440px;'])
+			->addElement('usageConstraints', 'usage_constraints', ['label' => 'Utilisations',
+																														 'value' => $album->getUsageConstraints()]);
 	}
 
 	public function addAffichageFor($album) {
@@ -351,6 +360,32 @@ class ZendAfi_Form_Album extends ZendAfi_Form {
 	public function getPublicDomain() {
 		return self::RIGHT_PUBLIC_DOMAIN;
 	}
+
+	public function populateFrbrUrl($url) {
+		$values = ['frbr_type' => [], 'frbr_url' => [$url]];
+		$this->frbr_multi
+			->setValues($values);
+	}
+
+	public function beSimple() {
+			$this->getElement('visible')->setValue("0");
+			$this->_removeNotSimpleElements();
+			$this->_removeEmptyGroups();
+
+			return $this;
+	}
+
+	protected function _removeNotSimpleElements() {
+		foreach ($this->getElements() as $element)
+			if (!in_array($element->getName(), $this->_simple_elements))
+				$this->removeElement($element->getName());
+	}
+
+	protected function _removeEmptyGroups() {
+		foreach ($this->getDisplayGroups() as $group)
+			if (!count($group->getElements()))
+				$this->removeDisplayGroup($group->getName());
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Decorator/MultiInput.php b/library/ZendAfi/Form/Decorator/MultiInput.php
index 79f31e9d24e4438e1035c47b6d3faf2778e05818..26901b3bdc3a9e0a336b0596e3106678512fcdc8 100644
--- a/library/ZendAfi/Form/Decorator/MultiInput.php
+++ b/library/ZendAfi/Form/Decorator/MultiInput.php
@@ -27,17 +27,16 @@ class ZendAfi_Form_Decorator_MultiInput extends Zend_Form_Decorator_Abstract {
 		Class_ScriptLoader::getInstance()
 			->loadJQuery()
 			->loadJQueryUI()
-			->addAdminScript('multi_inputs/multi_inputs.js');
-
-		return $content
-			. ' <div id="multi_inputs_' . $this->_element->getId() . '"></div>
-<script type="text/javascript">$("#multi_inputs_' . $this->_element->getId()  .'").multi_inputs({
+			->addAdminScript('multi_inputs/multi_inputs.js')
+			->addJQueryReady('$("#multi_inputs_' . $this->_element->getId()  .'").multi_inputs({
 fields:' . json_encode($this->_element->getFields()) . ',
 values:' . json_encode($this->_element->getValues()) . ',
 line_errors:' . json_encode($this->_element->getLineErrors()) . ',
 descs:' . json_encode($this->_element->getDescs()) . ',
-"delete_message":'. json_encode($this->_element->getDeleteMessage()) . '});
-</script>';
+"delete_message":'. json_encode($this->_element->getDeleteMessage()) . '});');
+
+		return $content
+			. ' <div id="multi_inputs_' . $this->_element->getId() . '"></div>';
 	}
 }
 ?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Decorator/UsageConstraints.php b/library/ZendAfi/Form/Decorator/UsageConstraints.php
new file mode 100644
index 0000000000000000000000000000000000000000..8c5623bac89d4f5555e653d83029917ac221d8e3
--- /dev/null
+++ b/library/ZendAfi/Form/Decorator/UsageConstraints.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class ZendAfi_Form_Decorator_UsageConstraints extends Zend_Form_Decorator_Abstract {
+	/**
+	 * @param  string $content
+	 * @return string
+	 */
+	public function render($content) {
+		return
+			$content.
+			$this->_element->getView()->album_UsageConstraints($this->_element->getValue());
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Element/MultiInput.php b/library/ZendAfi/Form/Element/MultiInput.php
index 1bf5eff5218216935efed0c413955c94b297533b..ec91bf7bac8acbb1e00042186654aac14f525f8f 100644
--- a/library/ZendAfi/Form/Element/MultiInput.php
+++ b/library/ZendAfi/Form/Element/MultiInput.php
@@ -32,7 +32,7 @@ class ZendAfi_Form_Element_MultiInput extends Zend_Form_Element {
 		parent::__construct($spec, $options);
 		$decorators = $this->_decorators;
 		$this->_decorators = ['MultiInput' => new ZendAfi_Form_Decorator_MultiInput()];
-
+		$this->addDecorator('Errors');
 		foreach ($decorators as $name => $value)
 			$this->_decorators[$name] = $value;
 		$this->removeDecorator('ViewHelper');
@@ -165,4 +165,9 @@ class ZendAfi_Form_Element_MultiInput extends Zend_Form_Element {
 	public function getDescs() {
 		return $this->_descs;
 	}
+
+
+	protected function _getErrorMessages() {
+		return $this->getErrorMessages();
+	}
 }
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Element/UsageConstraints.php b/library/ZendAfi/Form/Element/UsageConstraints.php
new file mode 100644
index 0000000000000000000000000000000000000000..13aa231eeb5d720eba097e09b2f6f815d227c137
--- /dev/null
+++ b/library/ZendAfi/Form/Element/UsageConstraints.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class ZendAfi_Form_Element_UsageConstraints extends Zend_Form_Element_Xhtml {
+	public function __construct($spec, $options = null) {
+		parent::__construct($spec, $options);
+		$decorators = $this->_decorators;
+		$this->_decorators = ['UsageConstraints' => new ZendAfi_Form_Decorator_UsageConstraints()];
+
+		foreach ($decorators as $name => $value) {
+			$this->_decorators[$name] = $value;
+		}
+
+		$this->removeDecorator('ViewHelper');
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/Form/Report.php b/library/ZendAfi/Form/Report.php
index 8e9f447e8df5921417bc6723f0b3146303a05b85..08c000cf6d14f11472c4f448f8635fe1689bf035 100644
--- a/library/ZendAfi/Form/Report.php
+++ b/library/ZendAfi/Form/Report.php
@@ -16,18 +16,11 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
 class ZendAfi_Form_Report extends ZendAfi_Form {
-	public static function newWith($datas = []) {
-		$instance = new self();
-		$instance->populate($datas);
-		return $instance;
-	}
-
-
 	public function init() {
 		parent::init();
 		$this
diff --git a/library/ZendAfi/Validate/Dilicom/IpAdresses.php b/library/ZendAfi/Validate/Dilicom/IpAdresses.php
new file mode 100644
index 0000000000000000000000000000000000000000..165957eebba6dae0810f27d73f89eb30568ec697
--- /dev/null
+++ b/library/ZendAfi/Validate/Dilicom/IpAdresses.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * AFI-OPAC 2.0 is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * AFI-OPAC 2.0 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with AFI-OPAC 2.0; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_Validate_Dilicom_IpAdresses extends Zend_Validate_Abstract{
+	const
+		DECLARE_IP_FAIL = 'declareIpFail',
+		CONFIGURATION_INCOMPLETE = 'configurationIncomplete',
+		COMMUNICATION_ERROR = 'communicationError';
+
+	protected $_messageTemplates = [
+																	self::DECLARE_IP_FAIL   => "%value%",
+																	self::CONFIGURATION_INCOMPLETE => 'configuration du PNB Dilicom incomplète',
+																	self::COMMUNICATION_ERROR => 'échec de communication avec le serveur PNB Dilicom'];
+
+	public function isValid($value)	{
+		if (!Class_AdminVar::isDilicomPNBEnabled()) {
+			$this->_error(self::CONFIGURATION_INCOMPLETE);
+			return false;
+		}
+
+		$content = (new Class_WebService_BibNumerique_Dilicom_Hub())->declareIp(explode(';', $value));
+		if (!$result = json_decode($content)) {
+			$this->_error(self::COMMUNICATION_ERROR);
+			return false;
+		}
+
+		$this->_setValue(implode(',', $result->returnMessage));
+
+		if ('OK' !== $result->returnStatus) {
+			$this->_error(self::DECLARE_IP_FAIL);
+			return false;
+		}
+		return true;
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/Accueil/BibNumerique/TreeRenderer.php b/library/ZendAfi/View/Helper/Accueil/BibNumerique/TreeRenderer.php
index dcd3e6d3db01ab91abe14354e455926c546458b6..a981eef7151231b3b205b62aec2dc90254831fba 100644
--- a/library/ZendAfi/View/Helper/Accueil/BibNumerique/TreeRenderer.php
+++ b/library/ZendAfi/View/Helper/Accueil/BibNumerique/TreeRenderer.php
@@ -101,7 +101,7 @@ class ZendAfi_View_Helper_Accueil_BibNumerique_TreeRenderer {
 	 */
 	protected function _getAlbumsOf($categorie) {
 		$content = '';
-		if (0 < count($albums = $categorie->getAlbums())) {
+		if (0 < count($albums = $categorie->getValidatedAlbums())) {
 			$content .= '<ul>';
 			foreach ($albums as $album) {
 				$options = ($this->_isCurrentAlbum($album)) ? ['class' => 'selected'] : [];
diff --git a/library/ZendAfi/View/Helper/Accueil/Kiosque.php b/library/ZendAfi/View/Helper/Accueil/Kiosque.php
index 1d0cc702607ee74732e56f211be31c0514ce745b..6520a4b926b16bb955f51b010b633fbca90a3d80 100644
--- a/library/ZendAfi/View/Helper/Accueil/Kiosque.php
+++ b/library/ZendAfi/View/Helper/Accueil/Kiosque.php
@@ -25,14 +25,8 @@ class ZendAfi_View_Helper_Accueil_Kiosque extends ZendAfi_View_Helper_Accueil_Ba
 	public function __construct($id_module, $params) {
 		parent::__construct($id_module, $params);
 
-		$this->preferences['id_module'] = $id_module;
-		$this->preferences['id_profil'] = Class_Profil::getCurrentProfil()->getId();
-
-		if ('' != $this->preferences['profil_redirect']) {
-			$this->preferences['id_profil'] = $this->preferences['profil_redirect'];
-			$this->preferences['id_module'] = Class_Profil::getCurrentProfil()->getId()
-				. '-' . $id_module;
-		}
+		$this->preferences = Class_Systeme_ModulesAccueil_Kiosque::updatePreferencesForProfileRedirect($id_module,
+																																																	 $this->preferences);
 	}
 
 
diff --git a/library/ZendAfi/View/Helper/Accueil/Tags.php b/library/ZendAfi/View/Helper/Accueil/Tags.php
index 772b1d621101a236a25bec7d4ff94d6949979550..46e1b11f3813ef3e0c5e475357ec2507673a15b3 100644
--- a/library/ZendAfi/View/Helper/Accueil/Tags.php
+++ b/library/ZendAfi/View/Helper/Accueil/Tags.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class ZendAfi_View_Helper_Accueil_Tags extends ZendAfi_View_Helper_Accueil_Base {
 	public function getHtml() {
@@ -29,7 +29,7 @@ class ZendAfi_View_Helper_Accueil_Tags extends ZendAfi_View_Helper_Accueil_Base
 		 * pour l'instant mappe cette valeur sur 'tri' comme pour les kiosques / critiques
 		 * type_tags: données à afficher dans le nuage
 		 */
-		
+
 		/*
 		 * On adapte les préférences à Class_Catalogue::getNotices,
 		 * ce qui permet de réutiliser les fonctions
@@ -59,12 +59,12 @@ class ZendAfi_View_Helper_Accueil_Tags extends ZendAfi_View_Helper_Accueil_Base
 				$type = $this->preferences["type_tags"][$i];
 				if (!array_key_exists($type, $facettes)) continue;
 				$yen_a_plus = false;
-				
+
 				if (!array_key_exists($type, $sorted)) {
-					arsort($facettes[$type]); 
+					arsort($facettes[$type]);
 					$sorted[$type] = true;
 				}
-				
+
 				$lig = array_slice($facettes[$type], 0, 1);
 				if (!$lig)
 					continue;
@@ -92,29 +92,29 @@ class ZendAfi_View_Helper_Accueil_Tags extends ZendAfi_View_Helper_Accueil_Base
 
 			array_shift($facettes[$controle["type"]]);
 		}
-	
+
 		// Html avec le view helper
 		$this->contenu .= $this->view->nuageTags($table).'<br />';
-	
+
 		return $this->getHtmlArray();
 	}
 
 
 	protected function _getFacettesFromNotices($notices) {
-		$facettes = array('T' => array());
+		$facettes = [Class_TypeDoc::CODE_FACETTE => []];
 		foreach ($notices as $notice)	{
-			$type = 'T' . $notice['type_doc'];
-			array_key_exists($type, $facettes['T']) ? 
-				$facettes['T'][$type]++ : 
-				$facettes['T'][$type] = 1;
+			$type = Class_TypeDoc::CODE_FACETTE . $notice->getTypeDoc();
+			array_key_exists($type, $facettes[Class_TypeDoc::CODE_FACETTE]) ?
+				$facettes[Class_TypeDoc::CODE_FACETTE][$type]++ :
+				$facettes[Class_TypeDoc::CODE_FACETTE][$type] = 1;
 
-			$items = array_filter(explode(" ", trim($notice['facettes'])));
+			$items = $notice->getFacetCodes();
 			foreach ($items as $item) {
 				$type = substr($item, 0, 1);
 				if (!array_key_exists($type, $facettes))
-					$facettes[$type] = array();
+					$facettes[$type] = [];
 
-				array_key_exists($item, $facettes[$type]) ? 
+				array_key_exists($item, $facettes[$type]) ?
 					$facettes[$type][$item]++ :
 					$facettes[$type][$item] = 1;
 			}
diff --git a/library/ZendAfi/View/Helper/Admin/FrbrLabel.php b/library/ZendAfi/View/Helper/Admin/FrbrLabel.php
index eef1295fb4986edbfc5630d8797bd4f105470ab4..594cd30ef11c8e16a72f2a350579c87f6feec354 100644
--- a/library/ZendAfi/View/Helper/Admin/FrbrLabel.php
+++ b/library/ZendAfi/View/Helper/Admin/FrbrLabel.php
@@ -84,7 +84,7 @@ class ZendAfi_View_Helper_Admin_FrbrLabelAlbumRenderer
 	extends ZendAfi_View_Helper_Admin_FrbrLabelRenderer{
 	public function render() {
 		return $this->_renderTitleAuthor($this->entity->getTitre(),
-																		 $this->entity->getMainAuthor());
+																		 $this->entity->getMainAuthorName());
 	}
 }
 ?>
diff --git a/library/ZendAfi/View/Helper/Admin/MenuGaucheAdmin.php b/library/ZendAfi/View/Helper/Admin/MenuGaucheAdmin.php
index 02be24f12df5f4a156a4b8b5f21fa4bf40e684c1..9a46ec18fa1dc8022c28d2173b1da95ffb0fefdd 100644
--- a/library/ZendAfi/View/Helper/Admin/MenuGaucheAdmin.php
+++ b/library/ZendAfi/View/Helper/Admin/MenuGaucheAdmin.php
@@ -115,6 +115,10 @@ class ZendAfi_View_Helper_Admin_MenuGaucheAdmin extends ZendAfi_View_Helper_Base
 											Class_AdminVar::isVodeclicEnabled()
 											&& $this->filterAdmin($this->user))
 
+			.$this->addMenu("orphea_16.png",	$this->translate()->_("Orphea"), "/admin/harvest/orphea-browse",
+											Class_AdminVar::isOrpheaEnabled()
+											&& $this->filterAdmin($this->user))
+
 			.$this->addMenu("numeriquepremium_16.png",				$this->translate()->_("Numérique Premium"), "/admin/harvest/numerique-premium-browse",
 											Class_AdminVar::isNumeriquePremiumEnabled()
 											&& $this->filterAdmin($this->user))
@@ -144,6 +148,10 @@ class ZendAfi_View_Helper_Admin_MenuGaucheAdmin extends ZendAfi_View_Helper_Base
 											Class_AdminVar::isBibNumEnabled()
 											&& $this->filterAdmin($this->user))
 
+			.$this->addMenu("epub_16.png",				$this->translate()->_("Import offres Dilicom"), "/admin/album/import-dilicom",
+											Class_AdminVar::isDilicomPNBEnabled()
+											&& $this->filterAdmin($this->user))
+
 			.$this->addMenu('frbr_16.png', 			$this->translate()->_('Notices liées'), "/admin/frbr-link",
 											$this->filterAdmin($this->user)
 											|| $this->user->hasRightToAccess(Class_UserGroup::RIGHT_USER_NOTICES_LIEES))
diff --git a/library/ZendAfi/View/Helper/Album/UsageConstraints.php b/library/ZendAfi/View/Helper/Album/UsageConstraints.php
new file mode 100644
index 0000000000000000000000000000000000000000..4106454f3697d1f03622fb6e24dd2c5f9bfeee75
--- /dev/null
+++ b/library/ZendAfi/View/Helper/Album/UsageConstraints.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class ZendAfi_View_Helper_Album_UsageConstraints extends Zend_View_Helper_HtmlElement {
+	protected
+		$_usage_type_labels,
+		$_data_labels,
+		$_content;
+
+	public function album_UsageConstraints($constraints){
+		if (!$constraints)
+			return '';
+
+		$this->_content = '';
+		$constraints->acceptVisitor($this);
+		return $this->_tag('dl', $this->_content);
+	}
+
+
+	public function visitUsageConstraint($constraint) {
+		$this->_constraint_content = '';
+		$this->_constraint_type = '';
+
+		$constraint->acceptVisitor($this);
+
+		$this->_content .= $this->getDtDd($this->_constraint_type,
+																			$this->getListedConstraints());
+	}
+
+
+	public function visitUsageType($id) {
+		$this->_constraint_type = $this->getUsageTypeLabel($id);
+	}
+
+
+	public function visitUsageData($name, $value) {
+		$this->_constraint_content .= $this->getDtDd($this->getDataLabel($name), $value);
+	}
+
+
+	public function getUsageTypeLabel($id) {
+		if (!isset($this->_usage_type_labels))
+			$this->_usage_type_labels =
+				[
+				 Class_Album_UsageConstraint::DEVICE_SHARE_CONSTRAINT => $this->view->_('Appareils autorisés'),
+				 Class_Album_UsageConstraint::LOAN_CONSTRAINT => $this->view->_('Prêt'),
+				 Class_Album_UsageConstraint::AVAILABILITY_CONSTRAINT => $this->view->_('Mise à disposition')
+				];
+
+		return $this->_usage_type_labels[$id];
+	}
+
+
+	public function getDataLabel($id) {
+		if (!isset($this->_data_labels))
+			$this->_data_labels =
+				[
+				 'duration' => $this->view->_('Durée (j)'),
+				 'quantity' => $this->view->_('Quantité'),
+				 'max_number_of_users' => $this->view->_('Nombre d\'utilisateurs')
+				];
+
+		return $this->_data_labels[$id];
+	}
+
+
+	protected function getListedConstraints() {
+		return $this->_tag('dl', $this->_constraint_content);
+	}
+
+
+	protected function getDtDd($term, $data) {
+		return $this->_tag('dt', $term) .	$this->_tag('dd', $data);
+	}
+
+
+	protected function _tag() {
+		return call_user_func_array([$this->view, 'tag'], func_get_args());
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/AlbumRessourceInfos.php b/library/ZendAfi/View/Helper/AlbumRessourceInfos.php
index 11e450dbd818db8a98618eb2847673dd3c1bf3dc..1d16e1b37905584600355bce90be77f35714a0c8 100644
--- a/library/ZendAfi/View/Helper/AlbumRessourceInfos.php
+++ b/library/ZendAfi/View/Helper/AlbumRessourceInfos.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class ZendAfi_View_Helper_AlbumRessourceInfos extends Zend_View_Helper_HtmlElement {
@@ -27,9 +27,10 @@ class ZendAfi_View_Helper_AlbumRessourceInfos extends Zend_View_Helper_HtmlEleme
 		if ($size = $file_info->fileSize())
 			$description .=', '.$this->view->memoryFormat($size);
 
-		return $ressource->findTitle()
-			.'<br/>'
-			.'['.$description.']';
+		if ($description != '')
+			$description = '<br/>'
+				.'['.$description.']';
+		return $ressource->findTitle().$description;
 	}
 }
 
diff --git a/library/ZendAfi/View/Helper/Avis.php b/library/ZendAfi/View/Helper/Avis.php
index 26139c20bdba32eda3d4d07acb9919168b12ac11..5c13d06fe3e7c6eb4c2438ba2200feaa353949ad 100644
--- a/library/ZendAfi/View/Helper/Avis.php
+++ b/library/ZendAfi/View/Helper/Avis.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
@@ -48,7 +48,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 		return $this;
 	}
 
-	
+
 	/** @param $context array for url helper */
 	public function addUrlContext($context) {
 		$this->_url_context = $context;
@@ -71,10 +71,10 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 			"<div class='critique'>".
 				"<h2>%s</h2>".
 				"%s".
-			"</div>", 
-			($article = $avis->getArticle()) 
+			"</div>",
+			($article = $avis->getArticle())
 			? $this->view->tagAnchor($this->view->url(['module' => 'admin',
-																								 'controller' => 'cms', 
+																								 'controller' => 'cms',
 																								 'action' => 'viewcms',
 																								 'id' => $article->getId()]),
 															 $article->getTitre()) : '',
@@ -97,7 +97,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 
 			$url_vignette = $notice->fetchUrlVignette();
 		}
-		
+
 		$contenu_avis = $this->contenu_avis($avis);
 		$html = sprintf(
 			"<div class='critique'>".
@@ -108,7 +108,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 					"</a>".
 					"<a href='%s'>%s</a>".
 				"</div>%s".
-			"</div>", 
+			"</div>",
 			$titre_notice,
 			$url_click_vignette,
 			$this->translate()->_('vignette de la notice'), $url_vignette,
@@ -121,12 +121,16 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 
 	public function contenu_avis($avis) {
 		$entete = $this->view->escape($avis->getEntete());
+
 		$url_avis = $this->_getUrlAvis($avis);
-		$format_text_avis = $this->_formatTextAvis($this->view->escape($avis->getAvis()));
+		$format_text_avis = $avis->getAbonOuBib() ?
+			['text_avis' => $avis->getAvis(), 'lire_la_suite' => false] :
+			$this->_formatTextAvis($this->view->escape($avis->getAvis()));
+
 		$text_avis = $format_text_avis['text_avis'];
 		$lire_la_suite = '';
 		if ($format_text_avis['lire_la_suite'] == true)
-			$lire_la_suite = sprintf("<div class='lire_la_suite'><a href='%s'>%s</a></div>", 
+			$lire_la_suite = sprintf("<div class='lire_la_suite'><a href='%s'>%s</a></div>",
 															 $url_avis,
 															 $this->translate()->_('Lire la suite'));
 
@@ -138,11 +142,11 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 		$read_speaker_tag = $this->_getReadSpeakerTag($avis);
 		$actions_tag = $this->_getActionsTag($avis);
 		$moderation_tag = $this->_getModerationTag($avis);
-		$entete_tag = ('#' != $url_avis || $avis->isAvisNotice()) 
+		$entete_tag = ('#' != $url_avis || $avis->isAvisNotice())
 			? '<a class="entete_critique" href="'.$url_avis.'">'.$entete."</a>"
 			: $entete;
 
-		$html = 
+		$html =
 			"<div class='contenu_critique'>".
 					$this->view->noteImg($avis->getNote()).
 					$entete_tag .
@@ -161,7 +165,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 
 
 	protected function _getUrlAuthor($avis) {
-		if ($avis->isAvisNotice()) 
+		if ($avis->isAvisNotice())
 			return ['module' => 'opac',
 							'controller' => 'blog',
 							'action' => 'viewauteur',
@@ -195,7 +199,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 
 	protected function _getModerationTag($avis) {
 		if ($avis->isWaitingForModeration())
-			return sprintf('<div class="moderation">%s</div>', 
+			return sprintf('<div class="moderation">%s</div>',
 										 $this->translate()->_('En attente de modération'));
 		return '';
 	}
@@ -212,7 +216,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 		}
 
 		if (!$avis->isAvisNotice() && $avis->hasUserMail())
-			$html_actions .= $this->view->boutonIco('type=MAIL', 
+			$html_actions .= $this->view->boutonIco('type=MAIL',
 																							'mailto='.$avis->getUserMail().'?Subject='.rawurlencode($this->view->_('Avis:').' '.$avis->getEntete()));
 
 		return ($html_actions ? "<span class='actions'>$html_actions</span>" : '');
@@ -240,7 +244,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 		return $this->_url(array('module' => 'opac',
 														 'controller' => 'blog',
 														 'action' => 'viewavis',
-														 'id' => $avis->getId())); 
+														 'id' => $avis->getId()));
 	}
 
 
@@ -257,7 +261,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 
 
 	protected function _getUrlClickVignette($avis) {
-		if ($this->_vignette_link_to_avis) 
+		if ($this->_vignette_link_to_avis)
 			return $this->_getUrlAvis($avis);
 
 		return $this->_getUrlNotice($avis);
@@ -268,14 +272,14 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper {
 		if (null == $avis->getId())
 			return '';
 		$read_speaker_helper = new ZendAfi_View_Helper_ReadSpeaker();
-		return $read_speaker_helper->readSpeaker('blog', 
-																						 'readavis', 
+		return $read_speaker_helper->readSpeaker('blog',
+																						 'readavis',
 																						 array('id' => $avis->getId()));
 	}
 
 
 	protected function _formatTextAvis($txt_avis) {
-		if (($this->_limit_nb_word <= 0) or 
+		if (($this->_limit_nb_word <= 0) or
 				(count($words = explode(' ', $txt_avis)) <= $this->_limit_nb_word))
 			return array('text_avis' => nl2br($txt_avis),
 									 'lire_la_suite' => false);
diff --git a/library/ZendAfi/View/Helper/Notice/Avis.php b/library/ZendAfi/View/Helper/Notice/Avis.php
index e2f3f411be45b7330ced840d5fa239ba8c916652..2e637281d093aca01398cf33458b43fac281b256 100644
--- a/library/ZendAfi/View/Helper/Notice/Avis.php
+++ b/library/ZendAfi/View/Helper/Notice/Avis.php
@@ -21,90 +21,153 @@
 class ZendAfi_View_Helper_Notice_Avis extends Zend_View_Helper_HtmlElement {
 	use Trait_Translator;
 
-	public function Notice_Avis($notice,$avis,$params)	{
-		$id_notice = $notice->getId();
-		$cls_rating = $this->view->getHelper('NoteImg');
+	protected $_notice, $_avis, $_params;
+
+	public function Notice_Avis($notice, $avis, $params)	{
+		$this->_notice = $notice;
+		$this->_avis = $avis;
+		$this->_params = $params;
 
-		// Identité user connecté
 		$user = Class_Users::getIdentity();
 
-		// Debut html
-		$html='<table cellspacing="0" width="100%">';
-		$url_avis = $this->getAvisLink($user, $id_notice);
-		$html.='<tr><td style="text-align:left" colspan="3">'.$url_avis.'</td></tr>';
-		$html.='<tr><td colspan="3"><ul class="notice_info" style="margin-top:2px">';
-
-		// Recap du haut
-		foreach($avis as $source => $ligne) {
-			$ev="aucune évaluation";
-			if(0 <= $nb = $avis[$source]["nombre"])	{
-				$ev=$nb." évaluation";
-				if($nb>1) $ev.="s";
-			}
-
-			if (isset($params['onglet']) && (substr($params["onglet"],0,4)) == "bloc") $fct="infos_bloc"; else $fct="infos_onglet";
-
-			$url_site="javascript:".$fct."('".$params["onglet"]."','".$id_notice."','avis','".$source."',1,1)";
-			if($nb > 0)
-				$html.='<li>'.$cls_rating->NoteImg($ligne["note"]).'&nbsp;&nbsp;<a class="notice" href="'.$url_site.'">'. $avis[$source]["titre"]. ' </a><small>('.$ev.")</small></li>";
+		return $this->_tag('table',
+											 $this->_header($user)
+											 . $this->_advices($user),
+											 ['cellspacing' => 0, 'width' => '100%']);
+	}
+
+
+	protected function _advices($user) {
+		if (!$source = $this->_getCurrentSource())
+			return '';
+
+		$avis_helper = $this->view->getHelper('Avis');
+		if ($user && $user->isBibliothecaire())
+			$avis_helper->setAdminActions(['edit', 'del']);
+
+		$html = $this->_tag('tr',
+												$this->_tag('td', '&nbsp;', ['colspan' => 3]))
+			. $this->_tag('tr',
+												$this->_tag('td', $this->_avis[$source]["titre"],
+																		['class' => 'notice_info_ligne_titre',
+																		 'align' => 'left',
+																		 'colspan' => 3]));
+
+		if (0 == $this->_avis[$source]['nombre']) {
+			return $html .= $this->_tag('tr',
+																	$this->_tag('td', '&nbsp;', ['colspan' => 3]))
+				. $this->_tag('tr',
+											$this->_tag('td', $this->_('Aucun avis pour le moment'),
+																	['colspan' => 3,
+																	 'class' => 'notice_info',
+																	 'style' => 'text-align:left']))
+				. $this->_tag('tr',
+											$this->_tag('td', '&nbsp;', ['colspan' => 3]));
 		}
-		$html.='</ul></td></tr>';
 
-		// Avis page courante
-		$source = null;
-		if (array_key_exists('cherche', $params))
-			$source = $params["cherche"];
+		foreach($this->_avis[$source]["liste"] as $detail) {
+			if ($detail->isVisibleForUser($user))
+				$html .= $this->_tag('tr',
+														 $this->_tag('td', $avis_helper->contenu_avis($detail),
+																				 ['colspan' => 3]));
+		}
 
-		if(!$source) {
-			if($avis["bib"]["nombre"] > 0) $source="bib";
-			elseif($avis["abonne"]["nombre"] > 0) $source="abonne";
+		if (isset($this->_avis[$source]["nb_pages"])
+				&& ($this->_avis[$source]["nb_pages"] > 1)) {
+			$pager = $this->view->getHelper('Pager');
+			$lien = "javascript:".$fct."('".$this->_params["onglet"]."','".$this->_notice->getId()."','avis','".$source."',1,@PAGE@)";
+			$urlPagesHtml = $pager->Pager($this->_avis[$source]["nombre"], 5, $this->_params["page"], $lien);
+			$html .= $this->_tag('tr',
+													 $this->_tag('td', $urlPagesHtml,
+																			 ['colspan' => 3,
+																				'class' => 'notice_info',
+																				'style' => 'text-align:center']));
 		}
 
-		if($source)	{
-			$avis_helper = $this->view->getHelper('Avis');
-			if (($user = Class_Users::getIdentity())
-					&& $user->isBibliothecaire())
-				$avis_helper->setAdminActions(['edit', 'del']);
-
-			$html.='<tr><td colspan="3">&nbsp;</td></tr>';
-			$html.='<tr><td class="notice_info_ligne_titre" align="left" colspan="3">' . $avis[$source]["titre"] . '</td></tr>';
-			if($avis[$source]["nombre"]>0) {
-				$num=0;
-				foreach($avis[$source]["liste"] as $detail) {
-					if ($detail->isVisibleForUser($user))
-						$html .= '<tr><td colspan="3">'.$avis_helper->contenu_avis($detail).'</td>';
-				}
-
-				if (isset($avis[$source]["nb_pages"]) && ($avis[$source]["nb_pages"]>1)) {
-					$pager = $this->view->getHelper('Pager');
-					$lien="javascript:".$fct."('".$params["onglet"]."','".$id_notice."','avis','".$source."',1,@PAGE@)";
-					$urlPagesHtml = $pager->Pager($avis[$source]["nombre"], 5, $params["page"],$lien);
-					$html.='<tr><td colspan="3" class="notice_info" style="text-align:center"><b>'.$urlPagesHtml.'</b></td></tr>';
-				}
-			}
-			else $html.='<tr><td colspan="3">&nbsp;</td></tr><tr><td colspan="3" class="notice_info" style="text-align:left">'.
-						 $this->_('Aucun avis pour le moment').
-						 '</td></tr><tr><td colspan="3">&nbsp;</td></tr>';
+		return $html;
+	}
+
+
+	protected function _getCurrentSource() {
+		if (array_key_exists('cherche', $this->_params))
+			return $this->_params['cherche'];
+
+		if($this->_avis["bib"]["nombre"] > 0)
+			return 'bib';
+
+		if($this->_avis["abonne"]["nombre"] > 0)
+			return 'abonne';
+		return null;
+	}
+
+
+	protected function _header($user) {
+		return
+			$this->_tag('tr',
+									$this->_tag('td', $this->getAvisLink($user),
+															['style' => 'text-align:left', 'colspan' => 3]))
+			. $this->_tag('tr',
+										$this->_tag('ul', $this->_headerSources(),
+																['class' => 'notice_info',
+																 'style' => 'margin-top:2px']),
+										['colspan' => 3]);
+	}
+
+
+	protected function _headerSources() {
+		$html = '';
+		foreach($this->_avis as $source => $ligne) {
+			$count = $this->_avis[$source]['nombre'];
+			if (0 == $count)
+				continue;
+
+			$fct = (isset($this->_params['onglet'])
+							&& (substr($this->_params['onglet'], 0, 4)) == 'bloc') ?
+				'infos_bloc' : 'infos_onglet';
+
+			$url_site = "javascript:".$fct."('" . $this->_params["onglet"]."','".$this->_notice->getId() . "','avis','" . $source . "',1,1)";
+
+			$html .= $this->_headerSource($this->_avis[$source]["titre"],
+																		$this->_getAdviceCountLabel($count),
+																		$ligne['note'],
+																		$url_site);
 		}
 
-		// Fin
-		$html.='</table>';
 		return $html;
 	}
 
 
-	protected function getAvisLink($user, $id_notice) {
+	protected function _headerSource($label, $count, $note, $url) {
+		return $this->_tag('li',
+											 $this->view->NoteImg($note) . '&nbsp;&nbsp;'
+											 . $this->_tag('a', $label,
+																		 ['class' => 'notice', 'href' => $url])
+											 . ' ' . $this->_tag('small', '('. $count . ')'));
+	}
+
+
+	protected function _getAdviceCountLabel($count) {
+		return $this->_plural($count,
+													'aucune évaluation',
+													'%d évaluation',
+													'%d évaluations',
+													$count);
+	}
+
+
+	protected function getAvisLink($user) {
+		$id_notice = $this->_notice->getId();
 		if(!$user)
 			return $this->getLink($id_notice);
 
-		if((Class_AdminVar::get('AVIS_BIB_SEULEMENT') > 0) && ($user->getRoleLevel() > ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB))
+		if((Class_AdminVar::get('AVIS_BIB_SEULEMENT') > 0)
+			 && ($user->getRoleLevel() > ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB))
 			return $this->getLink($id_notice);
 
 		if(Class_AdminVar::get('AVIS_BIB_SEULEMENT') < 1)
 			return $this->getLink($id_notice);
 
 		return '';
-
 	}
 
 	protected function getLink($id_notice) {
@@ -115,5 +178,10 @@ class ZendAfi_View_Helper_Notice_Avis extends Zend_View_Helper_HtmlElement {
 																	['class' => 'notice',
 																	 'data-popup' => 'true']);
 	}
+
+
+	protected function _tag() {
+		return call_user_func_array([$this->view, 'tag'], func_get_args());
+	}
 }
 ?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/Notice/HtmlThumbnail.php b/library/ZendAfi/View/Helper/Notice/HtmlThumbnail.php
new file mode 100644
index 0000000000000000000000000000000000000000..2ea4ad446f2479cd3eeb6e609734e4d85579106a
--- /dev/null
+++ b/library/ZendAfi/View/Helper/Notice/HtmlThumbnail.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_View_Helper_Notice_HtmlThumbnail extends Zend_View_Helper_HtmlElement {
+	public function Notice_HtmlThumbnail($notice, $preferences = []) {
+		$url = $this->view->urlNotice($notice, $preferences);
+		$onclick = 'javascript:window.location=\''.$url.'\'';
+
+		$img = $this->view->tagImg(URL_ADMIN_IMG . 'blank.gif', ['title' => '',
+																														 'alt' => '']);
+
+		$anchor = $this->view->tagAnchor($url, $this->view->tag('div', $notice->getAuteurPrincipal()) .
+																		 $this->view->tag('div', $notice->getTitrePrincipal()));
+
+		$nothumbnail = $this->view->tag('div', $img . $anchor, ['class' => 'nothumbnail type_doc_'.$notice->getTypeDoc(),
+																														'onclick' => $onclick]);
+
+		return $this->view->tag('div', $nothumbnail, ['class' => 'nothumbnail_wrapper']);
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/Notice/Unimarc.php b/library/ZendAfi/View/Helper/Notice/Unimarc.php
index 7f32dee82e99bbf72d31b200878e16e6cda643db..9e91cf4edbfe487e5080e7953f4588f1094ffa5f 100644
--- a/library/ZendAfi/View/Helper/Notice/Unimarc.php
+++ b/library/ZendAfi/View/Helper/Notice/Unimarc.php
@@ -32,12 +32,19 @@ class ZendAfi_View_Helper_Notice_Unimarc extends Zend_View_Helper_HtmlElement {
 		$reader->setNotice($notice->getUnimarc(), 0);
 		$reader->acceptVisitor($this);
 
-		return
-			$this->renderHeader($notice)
-			. '<hr>'
-			. $this->renderNotice($notice)
-			. '<hr>'
-			. $this->renderZones();
+		Class_ScriptLoader::getInstance()
+			->addJQueryReady('$(".ig-tabs").tabs({activate: function(event, ui) {
+if (ui.newPanel.attr("id") == "ig-tab-items")
+  ui.newPanel.accordion();
+}});');
+
+		return $this->renderHeader($notice) . $this->_tag('hr')
+			. $this->renderNotice($notice) . $this->_tag('hr')
+			. $this->_tag('div',
+										$this->renderTabs()
+										. $this->renderZones()
+										. $this->renderItems($notice),
+										['class' => 'ig-tabs']);
 	}
 
 
@@ -50,24 +57,34 @@ class ZendAfi_View_Helper_Notice_Unimarc extends Zend_View_Helper_HtmlElement {
 		$html = '';
 		foreach ($fields as $field => $label)
 			$html .= $label . ': ' . $notice->callGetterByAttributeName($field) . '<br>';
+
 		return $html;
 	}
 
 
+	protected function renderTabs() {
+		return $this->_tag('ul',
+											 $this->_tag('li', $this->_tag('a', $this->_('Zones'),
+																										 ['href' => '#ig-tab-zones']))
+											 . $this->_tag('li', $this->_tag('a', $this->_('Exemplaires'),
+																										 ['href' => '#ig-tab-items'])));
+	}
+
+
 	protected function renderHeader($notice) {
 		$html = '';
 		foreach($this->_headers as $k => $v)
 			$html .= $k . ' : ' . $v . '<br>';
 
-		$button = $this->view->tag('button', $this->_('Télécharger'),
-															 ['style' => 'float:right;font-size:80%',
-																'onclick' => 'window.location.href=\''
-																.$this->view->url(['controller' => 'recherche',
-																									 'action' => 'download-record',
-																									 'id' => $notice->getId()],
-																									null, true).'\'']);
+		$button = $this->_tag('button', $this->_('Télécharger'),
+													['style' => 'float:right;font-size:80%',
+													 'onclick' => 'window.location.href=\''
+													 .$this->view->url(['controller' => 'recherche',
+																							'action' => 'download-record',
+																							'id' => $notice->getId()],
+																						 null, true).'\'']);
 
-		return $this->view->tag('h2', $this->_('Notice unimarc') . $button) . $html;
+		return $this->_tag('h2', $this->_('Notice unimarc') . $button) . $html;
 	}
 
 
@@ -76,7 +93,46 @@ class ZendAfi_View_Helper_Notice_Unimarc extends Zend_View_Helper_HtmlElement {
 		foreach ($this->_zones as $zone)
 			$html .= $zone->render();
 
-		return $this->view->tag('table', $html);
+		return $this->_tag('div', $this->_tag('table', $html),
+											 ['id' => 'ig-tab-zones']);
+	}
+
+
+	protected function renderItems($notice) {
+		$mapping = ['getCote' => $this->_('Cote'),
+								'getSectionLabel' => $this->_('Section'),
+								'getKindLabel' => $this->_('Genre'),
+								'getAnnexe' => $this->_('Annexe'),
+								'getLocationLabel' => $this->_('Emplacement'),
+								'getActivite' => $this->_('Activité'),
+								'getIdOrigine' => $this->_('Id origine'),
+								'getDateNouveaute' => $this->_('Date nouveaté')];
+
+		$html = '';
+		foreach($notice->getExemplaires() as $item)
+			$html .= $this->renderItem($item, $mapping);
+
+		return $this->_tag('div', $html,
+											 ['id' => 'ig-tab-items',
+												'style' => 'height:100%']);
+	}
+
+
+	protected function renderItem($item, $mapping) {
+		$html = '';
+		foreach($mapping as $getter => $label)
+			$html .= $this->_tag('strong', $label . ' : ')
+			. call_user_func([$item, $getter])
+			. $this->_tag('br');
+		$html .= $this->renderItem995($item);
+
+		return $this->_tag('h3', $item->getBibLibelle() . ' ' . $item->getCodeBarres())
+			. $this->_tag('div', $html);
+	}
+
+
+	protected function renderItem995($item) {
+		return $this->_tag('hr') . $item->zone995toString();
 	}
 
 
@@ -107,6 +163,11 @@ class ZendAfi_View_Helper_Notice_Unimarc extends Zend_View_Helper_HtmlElement {
 	public function visitZone($name, $value) {
 		$this->_zones[] = new ZendAfi_View_Helper_Notice_UnimarcZone($this->view, $name, $value);
 	}
+
+
+	protected function _tag() {
+		return call_user_func_array([$this->view, 'tag'], func_get_args());
+	}
 }
 
 
@@ -147,18 +208,23 @@ class ZendAfi_View_Helper_Notice_UnimarcZone {
 		$style = 'vertical-align:top;';
 		return $this->view
 			->tag('tr',
-						$this->view->tag('td', $first ? $this->_label : '',
-														 ['style' => $style . 'font-weight:bolder;'])
-						. $this->view->tag('td',
-															 $first
-															 ? $this->_fields['indicateur1']
-															 . $this->_fields['indicateur2']
-															 : '',
-															 ['style' => $style])
-						. $this->view->tag('td', $name, ['style' => $style . 'color:green;'])
-						. $this->view->tag('td', $value, ['style' => $style])
+						$this->_tag('td', $first ? $this->_label : '',
+												['style' => $style . 'font-weight:bolder;'])
+						. $this->_tag('td',
+													$first
+													? $this->_fields['indicateur1']
+													. $this->_fields['indicateur2']
+													: '',
+													['style' => $style])
+						. $this->_tag('td', $name, ['style' => $style . 'color:green;'])
+						. $this->_tag('td', $value, ['style' => $style])
 			);
 	}
+
+
+	protected function _tag() {
+		return call_user_func_array([$this->view, 'tag'], func_get_args());
+	}
 }
 
 ?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/Notice/Vignette.php b/library/ZendAfi/View/Helper/Notice/Vignette.php
index ffa254eec5404a27a0aadb5958cdeb590b38fb84..353226ff1ff310284b7da29837e60a1e9b8857b0 100644
--- a/library/ZendAfi/View/Helper/Notice/Vignette.php
+++ b/library/ZendAfi/View/Helper/Notice/Vignette.php
@@ -16,37 +16,19 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class ZendAfi_View_Helper_Notice_Vignette extends Zend_View_Helper_HtmlElement {
 	use Trait_Translator;
 
 	public function notice_Vignette($notice, $preferences=[]) {
-		if ($article = $notice->getArticleCms()) {
-			if ($url = $article->getFirstImageURL())
-				return $this->linkTagForNoticeUrlVignetteTitle($notice, $url, $article->getTitre(), $preferences);
-		}
+		if (!$notice->getUrlVignette())
+			$notice->fetchUrlVignette();
 
-		if ($notice->isSite()
-				&& ($site = $notice->getSite())
-				&& ($url = $this->view->webThumbnail($site->getUrl()))) {
-			return $this->linkTagForNoticeUrlVignetteTitle($notice, $url, $site->getTitre(), $preferences);
-		}
-			
-		if ($notice->getUrlVignette() !== 'NO')
+		if($notice->getUrlVignette() != 'NO')
 			return $this->imgVignette($notice, $preferences);
 
-		$url = $this->view->urlNotice($notice, $preferences);
-		return 
-			'<div class="nothumbnail_wrapper">'.
-			  '<div class="nothumbnail type_doc_'.$notice->getTypeDoc().'" onclick="javascript:window.location=\''.$url.'\'">'.
-			      '<img src="'.URL_ADMIN_IMG.'blank.gif'.'" title="" alt=""/>'.
-			    '<a href="'.$url.'">'.
-			      '<div>'.$notice->getAuteurPrincipal().'</div>'. 
-			      '<div>'.$notice->getTitrePrincipal().'</div>'.
-			    '</a>'.
-			  '</div>'.
-			'</div>';
+		return $this->view->notice_HtmlThumbnail($notice, $preferences);
 	}
 
 
@@ -57,9 +39,14 @@ class ZendAfi_View_Helper_Notice_Vignette extends Zend_View_Helper_HtmlElement {
 
 
 	public function linkTagForNoticeUrlVignetteTitle($notice, $url, $title, $preferences) {
-		return 	'<a href="'.$this->view->urlNotice($notice, $preferences).'">'
-		          .'<img src="'.$url.'" width="90" alt="'.$this->_('Vignette').'" title="'.$title.'"  style="border:0" />'
-		        .'</a>';
+		$img = $this->view->tagImg($this->view->absoluteUrl($url),
+												 ['width' => '90',
+													'alt' => $this->_('Vignette'),
+													'title' => $title,
+													'style' => 'border:0']);
+
+		return $this->view->tagAnchor($this->view->urlNotice($notice, $preferences),
+														$img);
 	}
 }
 
diff --git a/library/ZendAfi/View/Helper/RecordAlbums.php b/library/ZendAfi/View/Helper/RecordAlbums.php
index 0e51666721370e875429b0a592cfcea340d0b545..31fe927dcae25aee91fd46f7ea65ed8875f20989 100644
--- a/library/ZendAfi/View/Helper/RecordAlbums.php
+++ b/library/ZendAfi/View/Helper/RecordAlbums.php
@@ -24,24 +24,40 @@ class ZendAfi_View_Helper_RecordAlbums extends Zend_View_Helper_Abstract {
 	public function recordAlbums($record) {
 		$html = '';
 		foreach ($this->_getGroupedLinks($record) as $from_source => $links)
-			$html .= $this->_renderGroup($from_source, $links);
+			$html .= $this->_renderGroup($from_source, $this->_filterLinks($links));
 
 		return $html;
 	}
 
 
 	protected function _renderGroup($label, $links) {
-		$html = $this->view->tag('div', $label, ['class' => 'notice_info_titre']);
-		foreach ($links as $link)
-			$html .= $this->_renderLink($link);
+		$html = '';
+		if (!empty($links)) {
+			$html = $this->view->tag('div', $label, ['class' => 'notice_info_titre']);
+			foreach ($links as $link) {
+				$html .= $this->_renderLink($link);
+			}
+		}
 
 		return $html;
 	}
 
+	protected function _filterLinks($links) {
+		return array_filter($links, function($link) {
+			if (!$album = $link->getEntityOfType(Class_FRBR_Link::TYPE_ALBUM)) {
+				return FALSE;
+			}
+
+			if (!$album->isValidated() && !Class_Users::isCurrentUserAdmin()) {
+				return FALSE;
+			}
+
+			return TRUE;
+		});
+	}
 
 	protected function _renderLink($link) {
-		if (!$album = $link->getEntityOfType(Class_FRBR_Link::TYPE_ALBUM))
-			return '';
+		$album = $link->getEntityOfType(Class_FRBR_Link::TYPE_ALBUM);
 
 		return $this->view->tag('h3', $album->getTitre())
 			. $this->view->renderAlbum($album);
diff --git a/library/ZendAfi/View/Helper/RenderAlbum.php b/library/ZendAfi/View/Helper/RenderAlbum.php
index f212487292424aec0eb47712607bd940daa39856..d5ae5fa2183a31fa870a6e23847905afffc190ed 100644
--- a/library/ZendAfi/View/Helper/RenderAlbum.php
+++ b/library/ZendAfi/View/Helper/RenderAlbum.php
@@ -21,9 +21,14 @@
 
 class ZendAfi_View_Helper_RenderAlbum extends Zend_View_Helper_HtmlElement {
 	public function renderAlbum($album) {
-		return $album
-			? sprintf('<div id="resnum">%s</div>', $this->renderAlbumHelper($album))
-			: '';
+		if (!$album)
+			return '';
+
+		$actions = '<div class="actions">'
+			. $this->view->tagEditAlbumMedia($album)
+			. $this->view->tagEditAlbum($album)
+			. '</div>';
+		return $actions . sprintf('<div id="resnum">%s</div>', $this->renderAlbumHelper($album));
 	}
 
 
@@ -67,6 +72,12 @@ class ZendAfi_View_Helper_RenderAlbum extends Zend_View_Helper_HtmlElement {
 		if ($album->isNumeriquePremium())
 			return $this->view->tagNumeriquePremiumBook($album);
 
+		if ($album->isDilicom())
+			return $this->view->tagDilicomWidget($album);
+
+		if ($album->isOrphea())
+			return $this->view->tagOrpheaRessource($album);
+
 		return $this->view->tagAlbumMediaList($album);
 	}
 }
diff --git a/library/ZendAfi/View/Helper/Search/NoRecordFound.php b/library/ZendAfi/View/Helper/Search/NoRecordFound.php
new file mode 100644
index 0000000000000000000000000000000000000000..5fffc2576d314fdc2efd6991389572afb016b592
--- /dev/null
+++ b/library/ZendAfi/View/Helper/Search/NoRecordFound.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_View_Helper_Search_NoRecordFound extends ZendAfi_View_Helper_BaseHelper {
+	public function Search_NoRecordFound() {
+		echo $this->view->tag('p',
+													$this->view->_('Aucun document n\'a été trouvé'),
+													['style' => 'margin-left:10px;color:red;font-size:10pt']);
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/TagDilicomWidget.php b/library/ZendAfi/View/Helper/TagDilicomWidget.php
new file mode 100644
index 0000000000000000000000000000000000000000..97126d62caf4c071ad2cfeb27cb365e0920d4510
--- /dev/null
+++ b/library/ZendAfi/View/Helper/TagDilicomWidget.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_View_Helper_TagDilicomWidget extends Zend_View_Helper_HtmlElement {
+	public function tagDilicomWidget($album) {
+		$iframe = $this->view->tag('iframe',
+															 null,
+															 ['src' => $album->getExternalURI(),
+																'width' => '100%',
+																'height' => '600px']);
+
+		$link = $this->view->tag('p', $this->view->_('Vous devez vous connecter pour accéder à la consultation en ligne.'));
+
+		if(($user = Class_Users::getIdentity()) && ($user->hasRightAccessDilicom()))
+			$link = 	$this->view->tagAnchor(['controller' => 'bib-numerique',
+																				'action' => 'consult-book',
+																				'id' => $album->getId()],
+																			 $this->view->_('Consulter le livre en ligne'),
+																			 ['target' => '_blank']);
+
+		return $link . $iframe;
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/TagEditAlbum.php b/library/ZendAfi/View/Helper/TagEditAlbum.php
new file mode 100644
index 0000000000000000000000000000000000000000..be33cf54295a45e73eced326d77df9465a19c385
--- /dev/null
+++ b/library/ZendAfi/View/Helper/TagEditAlbum.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class ZendAfi_View_Helper_TagEditAlbum extends Zend_View_Helper_HtmlElement {
+	/**
+	 * @param Class_Album $album
+	 * @return string
+	 */
+	public function tagEditAlbum($album) {
+		if (!Class_Users::isCurrentUserAdmin())
+			return '';
+
+		return $this->view->tagAnchor($this->view->url(['module' => 'admin',
+																										'controller' => 'album',
+																										'action' => 'edit_album',
+																										'id' => $album->getId()]),
+																	$this->view->tagImg(URL_ADMIN_IMG.'ico/edit.gif',
+																											['class' => 'album_edit',
+																											 'alt' => $this->view->translate("Modifier l'album"),
+																											 'title' => $this->view->translate("Modifier l'album")]),
+																	['class' => 'edit_album']);
+	}
+}
+?>
diff --git a/library/ZendAfi/View/Helper/TagEditAlbumMedia.php b/library/ZendAfi/View/Helper/TagEditAlbumMedia.php
new file mode 100644
index 0000000000000000000000000000000000000000..290aa3a6b3cdf9ce787ce30713f98e6eb99ba8ee
--- /dev/null
+++ b/library/ZendAfi/View/Helper/TagEditAlbumMedia.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class ZendAfi_View_Helper_TagEditAlbumMedia extends Zend_View_Helper_HtmlElement {
+	/**
+	 * @param Class_Album $album
+	 * @return string
+	 */
+	public function tagEditAlbumMedia($album) {
+		if (!Class_Users::isCurrentUserAdmin())
+			return '';
+
+		return $this->view->tagAnchor($this->view->url(['module' => 'admin',
+																										'controller' => 'album',
+																										'action' => 'edit_images',
+																										'id' => $album->getId()]),
+																	$this->view->tagImg(URL_ADMIN_IMG.'ico/album_images.png',
+																											['class' => 'media_album_edit',
+																											 'alt' => $this->view->translate("Gérer les médias"),
+																											 'title' => $this->view->translate("Gérer les médias")]) . $album->formatedCount(),
+																	['class' => 'edit_images']);
+	}
+}
+?>
diff --git a/library/ZendAfi/View/Helper/TagImg.php b/library/ZendAfi/View/Helper/TagImg.php
index 3912992b77833ee9e77d9baccf3ff2278a8d2a2f..64d7f71eca655d4dc7a5321df4b0a7bc3b630ec3 100644
--- a/library/ZendAfi/View/Helper/TagImg.php
+++ b/library/ZendAfi/View/Helper/TagImg.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class ZendAfi_View_Helper_TagImg extends Zend_View_Helper_HtmlElement {
 	/**
diff --git a/library/ZendAfi/View/Helper/TagOrpheaRessource.php b/library/ZendAfi/View/Helper/TagOrpheaRessource.php
new file mode 100644
index 0000000000000000000000000000000000000000..36afcfa091927b8cc05a9dcb13313e82866e4b18
--- /dev/null
+++ b/library/ZendAfi/View/Helper/TagOrpheaRessource.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_View_Helper_TagOrpheaRessource extends Zend_View_Helper_HtmlElement {
+	public function tagOrpheaRessource($album) {
+		return $this->view->tagImg($album->getPoster());
+	}
+}
+?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/TagTitreEtNombreDeResultats.php b/library/ZendAfi/View/Helper/TagTitreEtNombreDeResultats.php
index bc22cfbe6943d086928880a05bc4309a920ebd9c..12b3d14365b1d576543543895c2ea4420da02898 100644
--- a/library/ZendAfi/View/Helper/TagTitreEtNombreDeResultats.php
+++ b/library/ZendAfi/View/Helper/TagTitreEtNombreDeResultats.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class ZendAfi_View_Helper_TagTitreEtNombreDeResultats extends Zend_View_Helper_HtmlElement {
 
@@ -38,11 +38,11 @@ class ZendAfi_View_Helper_TagTitreEtNombreDeResultats extends Zend_View_Helper_H
 
 	protected function _getExpressionRecherche( $criteres_recherche ) {
 		$expression_critere_recherche = $this->view->escape($criteres_recherche->getExpressionRecherche());
-		
-		$expression=$this->view->_('pour:&nbsp;');
-		$catalogue=$this->view->_('dans le catalogue:&nbsp;');
-		$panier=$this->view->_('dans le panier:&nbsp;');
-			
+
+		$expression=$this->view->_('pour : ');
+		$catalogue=$this->view->_('dans le catalogue : ');
+		$panier=$this->view->_('dans le panier : ');
+
 		$expression_recherche =$expression.$this->_addClassExpressionRecherche($expression_critere_recherche);
 
 		if(!$expression_critere_recherche){
diff --git a/library/ZendAfi/View/Helper/Telephone/Frbr.php b/library/ZendAfi/View/Helper/Telephone/Frbr.php
index 3c2c39ecddd543c1e7fb26b3f0fa4377914f7d31..159128fa4143d78da8691a02055710c85d51d24a 100644
--- a/library/ZendAfi/View/Helper/Telephone/Frbr.php
+++ b/library/ZendAfi/View/Helper/Telephone/Frbr.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class ZendAfi_View_Helper_Telephone_Frbr extends ZendAfi_View_Helper_Frbr {
   public function frbr($model) {
@@ -25,24 +25,35 @@ class ZendAfi_View_Helper_Telephone_Frbr extends ZendAfi_View_Helper_Frbr {
 
 
   public function getLinksRenderer() {
-    return new FrbrNoticesTelephoneRenderer();
+     $renderer = new FrbrNoticesTelephoneRenderer();
+		 $renderer->setView($this->view);
+		 return $renderer;
   }
 }
 
-class FrbrNoticesTelephoneRenderer {
 
+
+class FrbrNoticesTelephoneRenderer extends Zend_View_Helper_HtmlElement {
   public function render($notices, $view) {
-    $html = '';
-    foreach ($notices as $notice) {
-      $titrePrincipal = $notice->getTitrePrincipal();
-      $auteurPrincipal = $notice->getAuteurPrincipal();
-      $id_notice = $notice->getId();
-      $url =  $view->urlNotice($notice);
-      $img = Class_WebService_Vignette::getUrl($id_notice);
-
-      $html .= '<li date-theme="c"><a href="' . $url . '" data-transition="slide"><img src="' . $img['vignette']  . '"><h3> ' . $titrePrincipal . '</h3><p>'. $auteurPrincipal .  '</p></a></li>';
-    }
-    return $html;
+		return implode('',
+									 array_map([$this, 'renderNotice'],
+														 $notices));
+
+	}
+
+
+	public function renderNotice($notice) {
+		$url =  $this->view->urlNotice($notice);
+
+		$img = $this->view->tagImg($notice->fetchUrlVignette());
+		$h3 = $this->view->tag('h3', $notice->getTitrePrincipal());
+		$auteur = $this->view->tag('p', $notice->getAuteurPrincipal());
+
+		return $this->view->tag('li',
+														$this->view->tagAnchor($url,
+																									 $img . $h3 . $auteur,
+																									 ['data-transition' => 'slide']),
+														['data-theme' => 'c']);
   }
 
 
@@ -50,12 +61,12 @@ class FrbrNoticesTelephoneRenderer {
     return '<li data-role="list-divider">' . $type . '</li>';
   }
 
-  
+
   public function returnNoResultMessage() {
     return '<li data-role="list-divider">' . 'Aucun lien n\'a été trouvé' . '</li>';
   }
 }
 
-  
+
 
 ?>
\ No newline at end of file
diff --git a/library/ZendAfi/View/Helper/Telephone/Kiosque.php b/library/ZendAfi/View/Helper/Telephone/Kiosque.php
index 05ea3d9959a15d6d8d9d338e55e243f708dda9df..74722981458f93a75465e717db06cb096cd22617 100644
--- a/library/ZendAfi/View/Helper/Telephone/Kiosque.php
+++ b/library/ZendAfi/View/Helper/Telephone/Kiosque.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 class ZendAfi_View_Helper_Telephone_Kiosque extends ZendAfi_View_Helper_Accueil_Base {
 	protected function _renderHeadScriptsOn($script_loader) {
@@ -65,14 +65,14 @@ class ZendAfi_View_Helper_Telephone_Kiosque extends ZendAfi_View_Helper_Accueil_
 		$this->contenu .= '<div id="slideshow" style="height:' . $this->preferences['op_hauteur_img'] . 'px"><ul>';
 		foreach ($notices as $notice)	{
 			$this->contenu .= sprintf('<li><a href="%s"><img src="%s" width="%s" title="%s"></a></li>',
-																$this->view->url(array('controller' => 'recherche',
-																											 'action' => 'viewnotice',
-																											 'id' => $notice['id_notice'],
-																											 'type_doc' => $notice['type_doc']), 
+																$this->view->url(['controller' => 'recherche',
+																									'action' => 'viewnotice',
+																									'id' => $notice->getId(),
+																									'type_doc' => $notice->getTypeDoc()],
 																								 null, true),
-																$notice['vignette'],
+																$notice->fetchUrlVignette(true),
 																$this->preferences["op_largeur_img"],
-																$notice['titre']);
+																htmlentities($notice->getTitrePrincipal()));
 		}
 
 		$this->contenu .= '</ul></div>';
diff --git a/library/ZendAfi/View/Helper/Telephone/ListeNotices.php b/library/ZendAfi/View/Helper/Telephone/ListeNotices.php
index 0e9d964d46ac815149f2eaa5a451e4bc2f4155b7..a538b997a15616eda4165a1862445ea00e8be5d1 100644
--- a/library/ZendAfi/View/Helper/Telephone/ListeNotices.php
+++ b/library/ZendAfi/View/Helper/Telephone/ListeNotices.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 //////////////////////////////////////////////////////////////////////////////////////////
 // OPAC3 :	Liste de notices
@@ -24,39 +24,39 @@
 
 class ZendAfi_View_Helper_Telephone_ListeNotices extends ZendAfi_View_Helper_BaseHelper {
 	public function urlNotice($id, $type_doc) {
-		return $this->view->url(array('controller' => 'recherche', 
-																	'action' => 'viewnotice', 
-																	'id' => $id, 
+		return $this->view->url(array('controller' => 'recherche',
+																	'action' => 'viewnotice',
+																	'id' => $id,
 																	'type_doc' => $type_doc));
 	}
 
 
 	public function listeNotices($notices, $nombre_resultats, $page, $preferences) 	{
 		// Message d'erreur
-		if (array_key_exists('statut', $notices) 
+		if (array_key_exists('statut', $notices)
 				&& ($notices["statut"] == "erreur")) {
 			$html = '<h2>' . $notices["erreur"] . '</h2>';
 			if ($notices["nb_mots"] > 1) {
 				$html .= sprintf('<a href="%s">&raquo;&nbsp;%s</a>',
-												 $this->view->url(['controller' => 'recherche', 
+												 $this->view->url(['controller' => 'recherche',
 																					 'action' => 'simple',
 																					 'pertinence'=>1]),
 												 $this->translate()->_('Elargir la recherche sur tous les mots'));
 			}
 			return $html;
 		}
-		
+
 		// Nombre de resultats et n° de page
 		$html = '<table><tr><td align="left" width="100%">';
     if (!$nombre_resultats)
 			return $html . $this->translate()->_('Aucune notice trouvée') .	'</td></tr></table>';
 
-		if (!intval($page)) 
-			$page = 1;		
+		if (!intval($page))
+			$page = 1;
 
-    if ($nombre_resultats == 1) 
+    if ($nombre_resultats == 1)
 			$html .= $this->translate()->_('1 notice trouvée');
-    if ($nombre_resultats > 1) 
+    if ($nombre_resultats > 1)
       $html .= $this->translate()->_('%s notices trouvées', $nombre_resultats) . '</td><td align="right">page&nbsp;' . $page;
 
     $html .= '</td></tr></table>';
@@ -68,10 +68,10 @@ class ZendAfi_View_Helper_Telephone_ListeNotices extends ZendAfi_View_Helper_Bas
 
 
 
-	public function listeVignette($data, $champs) {	
+	public function listeVignette($data, $champs) {
 		$html = '';
 		foreach ($data as $notice)
-			$this->_writeNoticeOn($notice, $champs, $html);		
+			$this->_writeNoticeOn($notice, $champs, $html);
 		return $html;
 	}
 
@@ -84,14 +84,13 @@ class ZendAfi_View_Helper_Telephone_ListeNotices extends ZendAfi_View_Helper_Bas
 		$id_notice = $notice->getId();
 		$type_doc = $notice->getTypeDoc();
 
-		$html .= '<li class="lien">' 
-			.sprintf('<a href="%s">', $this->getUrlNotice($notice)) 
+		$html .= '<li class="lien">'
+			.sprintf('<a href="%s">', $this->getUrlNotice($notice))
 							.'<table cellspacing="0" cellpadding="0">';
 
 		// Image
-		$img = Class_WebService_Vignette::getUrl($id_notice);
 		$html .= sprintf('<tr><td width="70px" valign="top"><img src="%s" width="60px" style="cursor:pointer;"></td>',
-										$img['vignette']);
+										 $notice->fetchUrlVignette());
 
 		// Titre / auteur principal
 		$html .= '<td valign="top">' . $this->view->iconeSupport($type_doc) . '&nbsp;' . $notice->getTitrePrincipal() . BR . $notice->getAuteurPrincipal();
@@ -100,7 +99,7 @@ class ZendAfi_View_Helper_Telephone_ListeNotices extends ZendAfi_View_Helper_Bas
 		// Dispo
 		if(Class_AdminVar::isAfficherDispoSurRechercheEnabled())
 			$html.= ''. BR . ($notice->hasExemplaireDisponible() ? 'Disponible' : 'Non disponible');
- 
+
 
 
 		// Données variables
diff --git a/library/ZendAfi/View/Helper/TreeSelect.php b/library/ZendAfi/View/Helper/TreeSelect.php
index fa34aeff3facdd04c4cc61aecd83facf9ee24b0f..88af59209f70ca9a1a72c0d08b7197e68e45b996 100644
--- a/library/ZendAfi/View/Helper/TreeSelect.php
+++ b/library/ZendAfi/View/Helper/TreeSelect.php
@@ -35,8 +35,8 @@ class ZendAfi_View_Helper_TreeSelect extends ZendAfi_View_Helper_BaseHelper {
 											$input_id_categories_name = "id_categorie",
 											$input_id_items_name = "id_items"){
 
-		$this->id_items = $id_items;
-		$this->id_categories = str_replace(';', '-', $id_categories);
+		$this->id_items = $this->dedupe($id_items);
+		$this->id_categories = $this->dedupe($id_categories);
 		$this->default_visibility = $default_visibility;
 		$this->url_data_source = $url_data_source;
 		$this->form_selector = $form_selector;
@@ -50,6 +50,11 @@ class ZendAfi_View_Helper_TreeSelect extends ZendAfi_View_Helper_BaseHelper {
 	}
 
 
+	protected function dedupe($elements) {
+		return implode('-', array_unique(array_filter(explode('-', str_replace(';', '-', $elements)))));
+	}
+
+
 	function categoriesNotSelectable() {
 		$this->_categories_selectable = false;
 		return $this;
diff --git a/library/ZendAfi/View/Helper/UrlNotice.php b/library/ZendAfi/View/Helper/UrlNotice.php
index e8efef75305387c2129407d4f1bc1d776ffae1c7..ca5369c0f12a1126bb63cbadd040eaaf8a820968 100644
--- a/library/ZendAfi/View/Helper/UrlNotice.php
+++ b/library/ZendAfi/View/Helper/UrlNotice.php
@@ -23,16 +23,22 @@ class ZendAfi_View_Helper_UrlNotice extends Zend_View_Helper_HtmlElement {
 	/**
 	 * @param mixed $notice array or Class_Notice
 	 */
-	public function urlNotice($notice, $preferences=[]) {
+	public function urlNotice($notice, $preferences=[], $name = null, $reset = false) {
 		if (!$notice)
 			return $this->view->url(['controller'=>'recherche',
-															 'action' => 'simple']);
+															 'action' => 'simple'], $name, $reset);
 
 		if (is_array($notice))
 			$notice = Class_Notice::find($notice['id_notice']);
 
 		$type_doc = $notice->getTypeDoc();
 
+		$options = ['controller' => 'recherche',
+								'action' => 'viewnotice',
+								'clef' => $notice->getClefAlpha(),
+								'id' =>  $notice->getId()];
+
+
 		if (in_array($type_doc, [Class_TypeDoc::ARTICLE,
 														 Class_TypeDoc::RSS,
 														 Class_TypeDoc::SITE,
@@ -64,22 +70,19 @@ class ZendAfi_View_Helper_UrlNotice extends Zend_View_Helper_HtmlElement {
 				break;
 
 			}
-		} else {
-			$options = array_merge(['controller' => 'recherche',
-															'action' => 'viewnotice',
-															'clef' => $notice->getClefAlpha(),
-															'id' =>  $notice->getId()],
-
-														 array_intersect_key(array_filter($preferences),
-																								 ['retour_panier' => '',
-																									'id_panier' => 0,
-																									'id_catalogue' => 0,
-																									'tri' => '',
-																									'id_profil' => null,
-																									'id_module' => null]));
 		}
 
-		return $this->view->url(array_filter($options));
+		$options = array_merge($options,
+													 array_intersect_key(array_filter($preferences),
+																							 ['retour_panier' => '',
+																								'id_panier' => 0,
+																								'id_catalogue' => 0,
+																								'module' => 'opac',
+																								'tri' => '',
+																								'id_profil' => null,
+																								'id_module' => null]));
+
+		return $this->view->url(array_filter($options), $name, $reset);
 	}
 
 
diff --git a/library/ZendAfi/View/Helper/WebThumbnail.php b/library/ZendAfi/View/Helper/WebThumbnail.php
index 5a2a595941ce4b0fbe8765b80914d4dbb38e3911..60ac3db3e6cbe4f8756f510490f0d97d6f5777ed 100644
--- a/library/ZendAfi/View/Helper/WebThumbnail.php
+++ b/library/ZendAfi/View/Helper/WebThumbnail.php
@@ -18,68 +18,29 @@
  * along with BOKEH; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-//////////////////////////////////////////////////////////////////////////////////////////
-// OPAC3 :	Créer un thumbnail d'un site web et renvoi l'adresse de l'image
-//////////////////////////////////////////////////////////////////////////////////////////
-class ZendAfi_View_Helper_WebThumbnail extends ZendAfi_View_Helper_BaseHelper {
-	use Trait_StaticFileWriter;
-	const THUMBS_DIR = 'web_thumbnails';
-	static protected $_thumbnailer;
-
-
-	public function webThumbnail($url) {
-		$this->checkThumbsDir();
-
-		$filename = $this->fileNameFromUrl($url);
-		$filepath = $this->fullPath($filename);
 
-		if (!$this->getFileWriter()->fileExists($filepath)) {
-			return Class_AdminVar::isBlugaEnabled()
-				? $this->view->absoluteUrl(['controller' => 'sito',
-																		'action' => 'webthumbnail'],null,true) . '?url=' . urlencode($url)
-				: '';
-		}
 
-		return $this->fullUrl($filename);
-	}
-
-
-	public function getThumbsDir() {
-		$path = USERFILESPATH.'/'.self::THUMBS_DIR.'/';
-		return str_replace('//', '/', $path);
+class ZendAfi_View_Helper_WebThumbnail extends ZendAfi_View_Helper_BaseHelper {
+	public static function setThumbnailer($thumbnailer) {
+		Class_WebService_WebSiteThumbnail::setThumbnailer($thumbnailer);
 	}
 
-
-	public function checkThumbsDir() {
-		$dir = $this->getThumbsDir();
-		$file_writer = $this->getFileWriter();
-		if (!$file_writer->dirExists($dir))
-			$file_writer->mkdir($dir);
+	public static function getThumbnailer() {
+		return Class_WebService_WebSiteThumbnail::getThumbnailer();
 	}
 
-	public function fullUrl($thumbnail) {
-		$url = USERFILESURL.'/'.self::THUMBS_DIR.'/'.$thumbnail;
-		return str_replace('//', '/', $url);
-	}
 
-	public function fullPath($thumbnail) {
-		return $this->getThumbsDir().$thumbnail;
+	static public function setFileWriter($filewriter) {
+		Class_WebService_WebSiteThumbnail::setFileWriter($filewriter);
 	}
 
-	public function fileNameFromUrl($url) {
-		$decoded = urldecode($url);
-		$wo_http = preg_replace('/^.*:\/\//', '', $decoded);
-		$filename = preg_replace('/[^\w\-]/', '_', $wo_http);
-		return $filename.'.jpg';
-	}
 
-	public static function setThumbnailer($thumbnailer) {
-		self::$_thumbnailer = $thumbnailer;
+	static public function getFileWriter() {
+		return Class_WebService_WebSiteThumbnail::getFileWriter();
 	}
 
-	public static function getThumbnailer() {
-		if (!isset(self::$_thumbnailer))
-			self::$_thumbnailer = new Class_WebService_Bluga();
-		return self::$_thumbnailer;
+	public function webThumbnail($url) {
+		$webthumbnail = new Class_WebService_WebSiteThumbnail();
+		return $webthumbnail->getWebThumbnailUrl($url);
 	}
 }
diff --git a/library/startup.php b/library/startup.php
index e89c8ac62463fc6274483fde3f0834f5628503f2..40b89b76326f5ec9e9ac4b0a71b55b891e0d8480 100644
--- a/library/startup.php
+++ b/library/startup.php
@@ -56,7 +56,7 @@ function defineConstant($name, $value) {
 
 function setupConstants() {
 	defineConstant('BOKEH_MAJOR_VERSION','7.1');
-	defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.11');
+	defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.19');
 
 	defineConstant('ROOT_PATH',  realpath(dirname(__FILE__).'/..').'/');
 
diff --git a/library/storm b/library/storm
index aa890c69508b0c9f62cb2313f9ae8269890d9ce1..fa7d2ff2c3c3def70d67ee8ee7f7c7ec3601fdda 160000
--- a/library/storm
+++ b/library/storm
@@ -1 +1 @@
-Subproject commit aa890c69508b0c9f62cb2313f9ae8269890d9ce1
+Subproject commit fa7d2ff2c3c3def70d67ee8ee7f7c7ec3601fdda
diff --git a/public/admin/css/global.css b/public/admin/css/global.css
index 8be9bafdfec0ba1674eaef1c32c8aba880f160a6..169005624ac3c559b3bbc1419241587842f2797f 100644
--- a/public/admin/css/global.css
+++ b/public/admin/css/global.css
@@ -207,6 +207,13 @@ form#user_subscribe label {
     vertical-align:middle;
 }
 
+
+.content_edit_head dt {
+		float: left;
+		clear: left;
+		margin-right: 0.2em;
+}
+
 .form .art_original {
     background-color: #CECECE;
     padding: 5px;
@@ -999,6 +1006,10 @@ form#album #fieldset-album_display tr>td:first-child {
 		width: 1%;
 }
 
+
+form#album dl dl dt {display:inline-block; width: 180px}
+form#album dl dl dd {display: inline;}
+
 button.switchview {
     float: right;
     border: 0px;
@@ -1221,3 +1232,4 @@ span.ui-dialog-title {
 div#reader {
 		min-width: 700px;
 }
+
diff --git a/public/admin/images/picto/orphea_16.png b/public/admin/images/picto/orphea_16.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0aeded42769f54e91a8505db1e67970b6a51ec3
Binary files /dev/null and b/public/admin/images/picto/orphea_16.png differ
diff --git a/public/admin/images/picto/orphea_48.png b/public/admin/images/picto/orphea_48.png
new file mode 100644
index 0000000000000000000000000000000000000000..071c8e256ca7729ed4ad498cdd430db80ecd08d5
Binary files /dev/null and b/public/admin/images/picto/orphea_48.png differ
diff --git a/public/opac/css/global.css b/public/opac/css/global.css
index 18e385023957b4aba9fdea59513219a21ff8390a..2bf319356e93430e0e6d6a7d0fb728d0667f19cd 100644
--- a/public/opac/css/global.css
+++ b/public/opac/css/global.css
@@ -767,6 +767,15 @@ ul.view-raw-rss li {
     left: 0px;
 }
 
+.edit_album {
+	float: right;
+}
+
+.edit_images {
+	float: right;
+	margin-left: 10px;
+}
+
 
 .titre div.rss {
     float: right;
diff --git a/public/opac/js/calendrier.js b/public/opac/js/calendrier.js
index 6f86838fa3c7e0996ce7cca68a84e6a9fe227098..d435451e90fa88187654e0f8c86b18b15f65169c 100644
--- a/public/opac/js/calendrier.js
+++ b/public/opac/js/calendrier.js
@@ -12,7 +12,13 @@ var ajaxify_calendars = function () {
     if (url == '#')
       url = $(this).jqmData('href');
 
-    $(this).closest(".contenu").load(url+'/render/ajax', 
+		// JQuery allows to put selector in url parameter
+		// of load() method. The purpose is to put content of
+		// received calendar div into the existing calendar div
+		// instead of insert another calendar div into the existing.
+		// This should be tested before removed.
+		// See http://afi-forge.afi-sa.fr/issues/18602
+    $(this).closest(".calendar").load(url+'/render/ajax .calendar > *',
 				     ajaxify_calendars);
     event.preventDefault();
   });
diff --git a/scripts/apply_patch.php b/scripts/apply_patch.php
new file mode 100644
index 0000000000000000000000000000000000000000..aae6316b1ecb8f95b28def6e947217f723dd09ab
--- /dev/null
+++ b/scripts/apply_patch.php
@@ -0,0 +1,5 @@
+<?php
+require('console.php');
+require('cosmogramme/sql/patch/patch_'.$argv[1].'.php');
+echo "done\n";
+?>
\ No newline at end of file
diff --git a/scripts/emacs/phafi-mode.el b/scripts/emacs/phafi-mode.el
index 3d0b35b7ff86940a648f6fc9e00d31319b7a4f43..6a3b400ca349e1ea675b4d2e09727bb3c65b688a 100644
--- a/scripts/emacs/phafi-mode.el
+++ b/scripts/emacs/phafi-mode.el
@@ -356,6 +356,17 @@
   )
 
 
+(defun phafi-sql-patch(patch)
+  "Force execution of db migration"
+	(interactive (list (read-number "Enter patch number: ")))
+	
+  (async-shell-command (concat
+												"cd "	(phafi-root-dir) ";"
+												"php scripts/apply_patch.php "(number-to-string patch)
+												))
+  )
+
+
 (defun phafi-root-dir()
   (concat
    (file-name-directory phafi-phpunit-config) "../")
diff --git a/scripts/emacs/yasnippet/snippets/text-mode/php-mode/teardown b/scripts/emacs/yasnippet/snippets/text-mode/php-mode/teardown
new file mode 100644
index 0000000000000000000000000000000000000000..577d1da6a99dbfa153f32919bb33a4ce73788aa2
--- /dev/null
+++ b/scripts/emacs/yasnippet/snippets/text-mode/php-mode/teardown
@@ -0,0 +1,7 @@
+#contributor : Ghislain Loas <gloas@afi-sa.fr>
+#name : funct ...(...)
+# --
+public function tearDown() {
+  $0
+  parent::tearDown();
+}
\ No newline at end of file
diff --git a/scripts/import_typo3.php b/scripts/import_typo3.php
index 07068d665db6b1a25005e0a0f028bdd7b6ca101a..3b059a8111ba02b19075bafb5b5f33b281b0c487 100644
--- a/scripts/import_typo3.php
+++ b/scripts/import_typo3.php
@@ -12,13 +12,6 @@ require('console.php');
 $toRun = $argv[1];
 
 Class_Import_Typo3_Logs::getInstance()->activateOutput();
-Class_CustomField_Model::registerAll([
-																			new Class_CustomField_ModelConfiguration_Article(),
-																			new Class_CustomField_ModelConfiguration_Sitotheque(),
-																			new Class_CustomField_ModelConfiguration_SitothequeCategorie(),
-																			new Class_CustomField_ModelConfiguration_Catalogue(),
-																			new Class_CustomField_ModelConfiguration_ArticleCategorie()]);
-
 $migration = new Class_Import_Typo3();
 
 if ($toRun=="update" && sizeof($argv)<3) {
diff --git a/scripts/opac2.sql b/scripts/opac2.sql
index 7c4289e287841ea95d29f4159e2a44e59ee455da..acd4cc13054928bb3ab92277374a64b64bd0571d 100644
--- a/scripts/opac2.sql
+++ b/scripts/opac2.sql
@@ -842,10 +842,10 @@ INSERT INTO `codif_dewey` VALUES ('0289','Intérêts et pratiques (habitudes) de
 INSERT INTO `codif_dewey` VALUES ('030','Encyclopédies générales',0);
 INSERT INTO `codif_dewey` VALUES ('030285','',0);
 INSERT INTO `codif_dewey` VALUES ('0309','Encyclopédies . Traitement historique, géographique, biographique',0);
-INSERT INTO `codif_dewey` VALUES ('034','Encyclopédies générales en français',0);
-INSERT INTO `codif_dewey` VALUES ('054','Publications en série d\'\'ordre général en français, en provençal, en catalan',0);
+INSERT INTO `codif_dewey` VALUES ('034','Encyclopédies générales en français',0);
+INSERT INTO `codif_dewey` VALUES ('054','Publications en série d\'\'ordre général en français, en provençal, en catalan',0);
 INSERT INTO `codif_dewey` VALUES ('060','Organisations générales et muséologie',0);
-INSERT INTO `codif_dewey` VALUES ('064','Académie française',0);
+INSERT INTO `codif_dewey` VALUES ('064','Académie française',0);
 INSERT INTO `codif_dewey` VALUES ('069','Muséologie (science des musées)',0);
 INSERT INTO `codif_dewey` VALUES ('069094','',0);
 INSERT INTO `codif_dewey` VALUES ('0695','',0);
@@ -879,7 +879,7 @@ INSERT INTO `codif_dewey` VALUES ('07092','Etude historique et relative à des p
 INSERT INTO `codif_dewey` VALUES ('074','Presse France',0);
 INSERT INTO `codif_dewey` VALUES ('07409','',0);
 INSERT INTO `codif_dewey` VALUES ('074092','',0);
-INSERT INTO `codif_dewey` VALUES ('080','Recueils généraux en français',0);
+INSERT INTO `codif_dewey` VALUES ('080','Recueils généraux en français',0);
 INSERT INTO `codif_dewey` VALUES ('0841','',0);
 INSERT INTO `codif_dewey` VALUES ('091','Manuscrits',0);
 INSERT INTO `codif_dewey` VALUES ('094','',0);
@@ -1887,7 +1887,7 @@ INSERT INTO `codif_dewey` VALUES ('33094','Economie de l\'\'Europe',0);
 INSERT INTO `codif_dewey` VALUES ('330940','',0);
 INSERT INTO `codif_dewey` VALUES ('330941','Economie britannique',0);
 INSERT INTO `codif_dewey` VALUES ('330943','Economie de l\'\'Allemagne',0);
-INSERT INTO `codif_dewey` VALUES ('330944','Economie politique française',0);
+INSERT INTO `codif_dewey` VALUES ('330944','Economie politique française',0);
 INSERT INTO `codif_dewey` VALUES ('330946','Histoire économique de l\'\' Espagne',0);
 INSERT INTO `codif_dewey` VALUES ('330947','Economie des pays de l\'\' Est',0);
 INSERT INTO `codif_dewey` VALUES ('330949','Economie suisse',0);
@@ -2084,7 +2084,7 @@ INSERT INTO `codif_dewey` VALUES ('33891','Croissance et développement internat
 INSERT INTO `codif_dewey` VALUES ('338911','',0);
 INSERT INTO `codif_dewey` VALUES ('3389144','Aide économique internationale par les juridictions partulières ou groupes particuliers de juridicti',0);
 INSERT INTO `codif_dewey` VALUES ('338927','',0);
-INSERT INTO `codif_dewey` VALUES ('338944','Développement et croissance économiques française',0);
+INSERT INTO `codif_dewey` VALUES ('338944','Développement et croissance économiques française',0);
 INSERT INTO `codif_dewey` VALUES ('338947','',0);
 INSERT INTO `codif_dewey` VALUES ('339','Macro-économie et sujets connexes',0);
 INSERT INTO `codif_dewey` VALUES ('3391','',0);
@@ -2235,7 +2235,7 @@ INSERT INTO `codif_dewey` VALUES ('346082','',0);
 INSERT INTO `codif_dewey` VALUES ('346402','',0);
 INSERT INTO `codif_dewey` VALUES ('346407','',0);
 INSERT INTO `codif_dewey` VALUES ('346409','',0);
-INSERT INTO `codif_dewey` VALUES ('34644','Droit privé français',0);
+INSERT INTO `codif_dewey` VALUES ('34644','Droit privé français',0);
 INSERT INTO `codif_dewey` VALUES ('347','Procédure civile',0);
 INSERT INTO `codif_dewey` VALUES ('34701','Tribunaux',0);
 INSERT INTO `codif_dewey` VALUES ('347012','Compétence des tribunaux, erreurs judiciaires, outrages à magistrat',0);
@@ -2388,7 +2388,7 @@ INSERT INTO `codif_dewey` VALUES ('36219795','Dons d\'\'organes',0);
 INSERT INTO `codif_dewey` VALUES ('3622','Maladies et troubles mentaux et affectifs ',0);
 INSERT INTO `codif_dewey` VALUES ('362208','',0);
 INSERT INTO `codif_dewey` VALUES ('362209','',0);
-INSERT INTO `codif_dewey` VALUES ('36227','Troubles de la personnalité, des facultés intellectuelles, du contrçole des pulsions',0);
+INSERT INTO `codif_dewey` VALUES ('36227','Troubles de la personnalité, des facultés intellectuelles, du contrçole des pulsions',0);
 INSERT INTO `codif_dewey` VALUES ('36229','Toxicomanie',0);
 INSERT INTO `codif_dewey` VALUES ('362290','',0);
 INSERT INTO `codif_dewey` VALUES ('362292','Alcool',0);
@@ -2504,7 +2504,7 @@ INSERT INTO `codif_dewey` VALUES ('366','Associations',0);
 INSERT INTO `codif_dewey` VALUES ('366009','Associations et sociétés ésotériques : Histoire',0);
 INSERT INTO `codif_dewey` VALUES ('366025','',0);
 INSERT INTO `codif_dewey` VALUES ('36609','Société secrètes : histoire',0);
-INSERT INTO `codif_dewey` VALUES ('3661','Franc-maçonnerie',0);
+INSERT INTO `codif_dewey` VALUES ('3661','Franc-maçonnerie',0);
 INSERT INTO `codif_dewey` VALUES ('366103','',0);
 INSERT INTO `codif_dewey` VALUES ('366109','',0);
 INSERT INTO `codif_dewey` VALUES ('367','',0);
@@ -2803,7 +2803,7 @@ INSERT INTO `codif_dewey` VALUES ('418','',0);
 INSERT INTO `codif_dewey` VALUES ('41802','Traduction et interprétation',0);
 INSERT INTO `codif_dewey` VALUES ('4184','Lecture',0);
 INSERT INTO `codif_dewey` VALUES ('419','Langage structuré autre que le langage parlé et le langage écrit',0);
-INSERT INTO `codif_dewey` VALUES ('41944','Langage par signes français',0);
+INSERT INTO `codif_dewey` VALUES ('41944','Langage par signes français',0);
 INSERT INTO `codif_dewey` VALUES ('420','Langue anglaise et anglo-saxon',0);
 INSERT INTO `codif_dewey` VALUES ('42083','',0);
 INSERT INTO `codif_dewey` VALUES ('421','Système d\'\'écriture, phonologie, phonétique de l\'\'anglais standard',0);
@@ -2822,29 +2822,29 @@ INSERT INTO `codif_dewey` VALUES ('4391','Yiddish',0);
 INSERT INTO `codif_dewey` VALUES ('4393','Langues néerlandaises',0);
 INSERT INTO `codif_dewey` VALUES ('4395','Langues germaniques du Nord',0);
 INSERT INTO `codif_dewey` VALUES ('440','Langue romane',0);
-INSERT INTO `codif_dewey` VALUES ('44009','Français : histoire',0);
+INSERT INTO `codif_dewey` VALUES ('44009','Français : histoire',0);
 INSERT INTO `codif_dewey` VALUES ('4401','',0);
-INSERT INTO `codif_dewey` VALUES ('4407','Etude et enseignement du Français',0);
+INSERT INTO `codif_dewey` VALUES ('4407','Etude et enseignement du Français',0);
 INSERT INTO `codif_dewey` VALUES ('440710','',0);
 INSERT INTO `codif_dewey` VALUES ('44083','',0);
-INSERT INTO `codif_dewey` VALUES ('441','Ecriture et phonologie du français standard',0);
-INSERT INTO `codif_dewey` VALUES ('44152','Orthographe du français standard',0);
-INSERT INTO `codif_dewey` VALUES ('442','Etymologie de la langue française',0);
-INSERT INTO `codif_dewey` VALUES ('44203','Etymologie du français',0);
-INSERT INTO `codif_dewey` VALUES ('443','Dictionnaires français',0);
-INSERT INTO `codif_dewey` VALUES ('443028','Langue française -Lexicographie',0);
+INSERT INTO `codif_dewey` VALUES ('441','Ecriture et phonologie du français standard',0);
+INSERT INTO `codif_dewey` VALUES ('44152','Orthographe du français standard',0);
+INSERT INTO `codif_dewey` VALUES ('442','Etymologie de la langue française',0);
+INSERT INTO `codif_dewey` VALUES ('44203','Etymologie du français',0);
+INSERT INTO `codif_dewey` VALUES ('443','Dictionnaires français',0);
+INSERT INTO `codif_dewey` VALUES ('443028','Langue française -Lexicographie',0);
 INSERT INTO `codif_dewey` VALUES ('4431','Dictionnaires spécialisés ',0);
 INSERT INTO `codif_dewey` VALUES ('44321','',0);
-INSERT INTO `codif_dewey` VALUES ('445','Grammaire du français standard',0);
+INSERT INTO `codif_dewey` VALUES ('445','Grammaire du français standard',0);
 INSERT INTO `codif_dewey` VALUES ('447','Variantes et variations historiques et géographiques, variantes et variations modernes non régionale',0);
 INSERT INTO `codif_dewey` VALUES ('447003','Dictionnaire des variantes et variations historiques et géographiques, variantes et variations moder',0);
-INSERT INTO `codif_dewey` VALUES ('447009','Langue française : histoire',0);
-INSERT INTO `codif_dewey` VALUES ('44701','Français vieux jusqu\'\'à 1400',0);
+INSERT INTO `codif_dewey` VALUES ('447009','Langue française : histoire',0);
+INSERT INTO `codif_dewey` VALUES ('44701','Français vieux jusqu\'\'à 1400',0);
 INSERT INTO `codif_dewey` VALUES ('44702','',0);
 INSERT INTO `codif_dewey` VALUES ('44709','Variantes et variations modernes non régionales (expressions à la mode, argot)',0);
 INSERT INTO `codif_dewey` VALUES ('4478','Langue d\'\'Oc',0);
 INSERT INTO `codif_dewey` VALUES ('4479','Francophonie',0);
-INSERT INTO `codif_dewey` VALUES ('448','Français moderne correct',0);
+INSERT INTO `codif_dewey` VALUES ('448','Français moderne correct',0);
 INSERT INTO `codif_dewey` VALUES ('449','',0);
 INSERT INTO `codif_dewey` VALUES ('450','Langues italienne, roupaine, rhéto-romane',0);
 INSERT INTO `codif_dewey` VALUES ('451','Système d\'\'écriture, phonologie, phonétique, étymologie',0);
@@ -3857,7 +3857,7 @@ INSERT INTO `codif_dewey` VALUES ('6381','Apiculture',0);
 INSERT INTO `codif_dewey` VALUES ('6382','Vers à soie',0);
 INSERT INTO `codif_dewey` VALUES ('639','Animaux et plantes sauvages',0);
 INSERT INTO `codif_dewey` VALUES ('6392','Pêche commerciale',0);
-INSERT INTO `codif_dewey` VALUES ('639220','Pêches maritimes françaises',0);
+INSERT INTO `codif_dewey` VALUES ('639220','Pêches maritimes françaises',0);
 INSERT INTO `codif_dewey` VALUES ('6392763','Pêche à la morue',0);
 INSERT INTO `codif_dewey` VALUES ('6393','Elevage de vertébrés à sang froid',0);
 INSERT INTO `codif_dewey` VALUES ('63934','Aquarium d\'\'eau douce',0);
@@ -3918,7 +3918,7 @@ INSERT INTO `codif_dewey` VALUES ('64159','Cuisine d\'\'une région ou d\'\'un p
 INSERT INTO `codif_dewey` VALUES ('641591','Cuisine caractéristique des aires géographiques, régions, lieux en général',0);
 INSERT INTO `codif_dewey` VALUES ('6415941','Cuisine de Grande-Bretagne',0);
 INSERT INTO `codif_dewey` VALUES ('64159439','Cuisine hongroises',0);
-INSERT INTO `codif_dewey` VALUES ('6415944','Cuisine française',0);
+INSERT INTO `codif_dewey` VALUES ('6415944','Cuisine française',0);
 INSERT INTO `codif_dewey` VALUES ('6415945','Cuisine italienne',0);
 INSERT INTO `codif_dewey` VALUES ('6415946','Cuisine espagnole',0);
 INSERT INTO `codif_dewey` VALUES ('64159469','Cuisine portugaise',0);
@@ -3974,7 +3974,7 @@ INSERT INTO `codif_dewey` VALUES ('64185','Confitures',0);
 INSERT INTO `codif_dewey` VALUES ('641852','Confitures, marmelades, conserves de fruits',0);
 INSERT INTO `codif_dewey` VALUES ('641853','Confiseries',0);
 INSERT INTO `codif_dewey` VALUES ('64186','Desserts',0);
-INSERT INTO `codif_dewey` VALUES ('641862','Glaçes',0);
+INSERT INTO `codif_dewey` VALUES ('641862','Glaçes',0);
 INSERT INTO `codif_dewey` VALUES ('641865','Pâtisseries',0);
 INSERT INTO `codif_dewey` VALUES ('6418652','Tartes',0);
 INSERT INTO `codif_dewey` VALUES ('6418654','Biscuits',0);
@@ -4197,7 +4197,7 @@ INSERT INTO `codif_dewey` VALUES ('690','Batiments',0);
 INSERT INTO `codif_dewey` VALUES ('691','',0);
 INSERT INTO `codif_dewey` VALUES ('6921','',0);
 INSERT INTO `codif_dewey` VALUES ('693','Construction de bâtiments',0);
-INSERT INTO `codif_dewey` VALUES ('6931','Maçonnerie',0);
+INSERT INTO `codif_dewey` VALUES ('6931','Maçonnerie',0);
 INSERT INTO `codif_dewey` VALUES ('69322','',0);
 INSERT INTO `codif_dewey` VALUES ('6938','Construction à des usages particuliers ',0);
 INSERT INTO `codif_dewey` VALUES ('693832','Isolation thermique',0);
@@ -4260,7 +4260,7 @@ INSERT INTO `codif_dewey` VALUES ('708','Galeries, musées, collections',0);
 INSERT INTO `codif_dewey` VALUES ('7081','Musées Etats-Unis',0);
 INSERT INTO `codif_dewey` VALUES ('7082','Musées de Grande-Bretagne et d\'\' Irlande',0);
 INSERT INTO `codif_dewey` VALUES ('7083','Musées Allemagne',0);
-INSERT INTO `codif_dewey` VALUES ('7084','Musées français',0);
+INSERT INTO `codif_dewey` VALUES ('7084','Musées français',0);
 INSERT INTO `codif_dewey` VALUES ('708436','Musées en région parisienne',0);
 INSERT INTO `codif_dewey` VALUES ('708458','Musées en Région Rhône Alpes',0);
 INSERT INTO `codif_dewey` VALUES ('708495','Musées grecs',0);
@@ -4318,7 +4318,7 @@ INSERT INTO `codif_dewey` VALUES ('709415','Irlande',0);
 INSERT INTO `codif_dewey` VALUES ('70942','Art : étude historique, géographique. Angleterre',0);
 INSERT INTO `codif_dewey` VALUES ('70943','Art : étude historique, géographique. Europe Centrale (Allemagne)',0);
 INSERT INTO `codif_dewey` VALUES ('709439','Art hongrois',0);
-INSERT INTO `codif_dewey` VALUES ('70944','Art français',0);
+INSERT INTO `codif_dewey` VALUES ('70944','Art français',0);
 INSERT INTO `codif_dewey` VALUES ('70945','Art italien',0);
 INSERT INTO `codif_dewey` VALUES ('7094585','Art maltais',0);
 INSERT INTO `codif_dewey` VALUES ('70946','Art espagnol : étude historique, géographique.',0);
@@ -4715,7 +4715,7 @@ INSERT INTO `codif_dewey` VALUES ('7591','La Peinture en Amérique du Nord',0);
 INSERT INTO `codif_dewey` VALUES ('75913','Peinture américaine',0);
 INSERT INTO `codif_dewey` VALUES ('7592','Iles britaniques, Angleterre',0);
 INSERT INTO `codif_dewey` VALUES ('7593','Peinture d\'\'Europe Centrale ; Allemagne',0);
-INSERT INTO `codif_dewey` VALUES ('7594','Peinture française',0);
+INSERT INTO `codif_dewey` VALUES ('7594','Peinture française',0);
 INSERT INTO `codif_dewey` VALUES ('759409','',0);
 INSERT INTO `codif_dewey` VALUES ('75941','Peintres de Bretagne',0);
 INSERT INTO `codif_dewey` VALUES ('7594361','Peinture parisienne',0);
@@ -4961,10 +4961,10 @@ INSERT INTO `codif_dewey` VALUES ('78813','Eveil musical lié à la chanson',0);
 INSERT INTO `codif_dewey` VALUES ('7882','Chansons sociales',0);
 INSERT INTO `codif_dewey` VALUES ('78821','Chansons de lutte, de propagande, contestataires',0);
 INSERT INTO `codif_dewey` VALUES ('78822','Chansons d\'\'activités collectives: travail, marins, supporters...',0);
-INSERT INTO `codif_dewey` VALUES ('7884','Chansons à texte, Cabarets français',0);
-INSERT INTO `codif_dewey` VALUES ('7885','Chansons de variétés, Music-Hall français',0);
-INSERT INTO `codif_dewey` VALUES ('788615','Slam, spoken word français',0);
-INSERT INTO `codif_dewey` VALUES ('78862','Rock français',0);
+INSERT INTO `codif_dewey` VALUES ('7884','Chansons à texte, Cabarets français',0);
+INSERT INTO `codif_dewey` VALUES ('7885','Chansons de variétés, Music-Hall français',0);
+INSERT INTO `codif_dewey` VALUES ('788615','Slam, spoken word français',0);
+INSERT INTO `codif_dewey` VALUES ('78862','Rock français',0);
 INSERT INTO `codif_dewey` VALUES ('78869','Chansons en lien avec les musiques du monde, métissage musical',0);
 INSERT INTO `codif_dewey` VALUES ('78892','Musiciens et chanteurs francophones',0);
 INSERT INTO `codif_dewey` VALUES ('789','Musiques du monde',0);
@@ -5000,13 +5000,13 @@ INSERT INTO `codif_dewey` VALUES ('78956','Grèce, Crète, Chypre : musique folk
 INSERT INTO `codif_dewey` VALUES ('7895692','Musiciens et chanteurs de Grèce, Crète et Chypre',0);
 INSERT INTO `codif_dewey` VALUES ('78957','Italie, Sardaigne, Sicile, Malte : musique folklorique et chanson',0);
 INSERT INTO `codif_dewey` VALUES ('7895792','Musiciens et chanteurs d\'\'Italie, Sardaigne, Sicile, Malte',0);
-INSERT INTO `codif_dewey` VALUES ('78958','Portugal, Açores, Madère : musique folklorique et chanson',0);
+INSERT INTO `codif_dewey` VALUES ('78958','Portugal, Açores, Madère : musique folklorique et chanson',0);
 INSERT INTO `codif_dewey` VALUES ('78959','Espagne, Catalogne, Euskadi : musique folklorique et chanson',0);
 INSERT INTO `codif_dewey` VALUES ('7896','France : musique folklorique et régionale',0);
-INSERT INTO `codif_dewey` VALUES ('789601','Philosophie, sociologie des musiques régionales françaises',0);
-INSERT INTO `codif_dewey` VALUES ('789604','Répertoires, catalogues des musiques régionales françaises',0);
+INSERT INTO `codif_dewey` VALUES ('789601','Philosophie, sociologie des musiques régionales françaises',0);
+INSERT INTO `codif_dewey` VALUES ('789604','Répertoires, catalogues des musiques régionales françaises',0);
 INSERT INTO `codif_dewey` VALUES ('78961','Corse : musique folklorique et chanson',0);
-INSERT INTO `codif_dewey` VALUES ('78962','Occitanie : Gascogne, Pays basque français : musique folklorique et chanson',0);
+INSERT INTO `codif_dewey` VALUES ('78962','Occitanie : Gascogne, Pays basque français : musique folklorique et chanson',0);
 INSERT INTO `codif_dewey` VALUES ('78963','Occitanie : Languedoc et Provence : musique folklorique et chanson',0);
 INSERT INTO `codif_dewey` VALUES ('78964','Occitanie : Auvergne et Limousin : musique folklorique et chanson',0);
 INSERT INTO `codif_dewey` VALUES ('78969','Bretagne : musique folklorique et chanson',0);
@@ -5072,7 +5072,7 @@ INSERT INTO `codif_dewey` VALUES ('79203','Dictionnaire de théâtre',0);
 INSERT INTO `codif_dewey` VALUES ('792083','',0);
 INSERT INTO `codif_dewey` VALUES ('79209','Théâtre : Etude historique et géographique relative à des personnes',0);
 INSERT INTO `codif_dewey` VALUES ('792094','',0);
-INSERT INTO `codif_dewey` VALUES ('7920944','Théâtre  français',0);
+INSERT INTO `codif_dewey` VALUES ('7920944','Théâtre  français',0);
 INSERT INTO `codif_dewey` VALUES ('792095','',0);
 INSERT INTO `codif_dewey` VALUES ('7922','Comédie et mélodrame',0);
 INSERT INTO `codif_dewey` VALUES ('79223','',0);
@@ -5425,68 +5425,68 @@ INSERT INTO `codif_dewey` VALUES ('839817','Littérature danoise : 1900-1999',0)
 INSERT INTO `codif_dewey` VALUES ('83982','Littérature norvégienne',0);
 INSERT INTO `codif_dewey` VALUES ('839822','Littérature norvégienne : théâtre',0);
 INSERT INTO `codif_dewey` VALUES ('839826','Littérature norvégienne : lettres, mémoires...',0);
-INSERT INTO `codif_dewey` VALUES ('840','Littérature française : généralités',0);
-INSERT INTO `codif_dewey` VALUES ('84003','Dictionnaire de la langue française',0);
-INSERT INTO `codif_dewey` VALUES ('8401','Littérature française médiévale',0);
-INSERT INTO `codif_dewey` VALUES ('8402','Littérature française du XVIème siècle',0);
-INSERT INTO `codif_dewey` VALUES ('8403','Littérature française : dictionnaires, encyclopédies',0);
-INSERT INTO `codif_dewey` VALUES ('8404','Littérature française du XVIIIème siècle',0);
-INSERT INTO `codif_dewey` VALUES ('8405','Littérature française: XIXème siècle',0);
-INSERT INTO `codif_dewey` VALUES ('8406','Littérature française du XXe siècle',0);
-INSERT INTO `codif_dewey` VALUES ('8407','Littérature de langue française du XXI ème siècle',0);
-INSERT INTO `codif_dewey` VALUES ('8408','Littérature française : Anthologies, recueils',0);
+INSERT INTO `codif_dewey` VALUES ('840','Littérature française : généralités',0);
+INSERT INTO `codif_dewey` VALUES ('84003','Dictionnaire de la langue française',0);
+INSERT INTO `codif_dewey` VALUES ('8401','Littérature française médiévale',0);
+INSERT INTO `codif_dewey` VALUES ('8402','Littérature française du XVIème siècle',0);
+INSERT INTO `codif_dewey` VALUES ('8403','Littérature française : dictionnaires, encyclopédies',0);
+INSERT INTO `codif_dewey` VALUES ('8404','Littérature française du XVIIIème siècle',0);
+INSERT INTO `codif_dewey` VALUES ('8405','Littérature française: XIXème siècle',0);
+INSERT INTO `codif_dewey` VALUES ('8406','Littérature française du XXe siècle',0);
+INSERT INTO `codif_dewey` VALUES ('8407','Littérature de langue française du XXI ème siècle',0);
+INSERT INTO `codif_dewey` VALUES ('8408','Littérature française : Anthologies, recueils',0);
 INSERT INTO `codif_dewey` VALUES ('840800','',0);
-INSERT INTO `codif_dewey` VALUES ('8409','Histoire de la littérature française',0);
+INSERT INTO `codif_dewey` VALUES ('8409','Histoire de la littérature française',0);
 INSERT INTO `codif_dewey` VALUES ('840900','',0);
-INSERT INTO `codif_dewey` VALUES ('8409001','Littérature française : Période médiévale',0);
-INSERT INTO `codif_dewey` VALUES ('8409003','Littérature française : Renaissance 1500 - 1599',0);
-INSERT INTO `codif_dewey` VALUES ('8409004','Littérature  française : Période classique : 1600 - 1715',0);
-INSERT INTO `codif_dewey` VALUES ('8409005','Littérature française : 18e siècle . Siècle des lumières ',0);
-INSERT INTO `codif_dewey` VALUES ('8409006','Littérature française : Révolution et Empire, 1789 - 1815',0);
-INSERT INTO `codif_dewey` VALUES ('8409007','littérature française : 1815-1848',0);
+INSERT INTO `codif_dewey` VALUES ('8409001','Littérature française : Période médiévale',0);
+INSERT INTO `codif_dewey` VALUES ('8409003','Littérature française : Renaissance 1500 - 1599',0);
+INSERT INTO `codif_dewey` VALUES ('8409004','Littérature  française : Période classique : 1600 - 1715',0);
+INSERT INTO `codif_dewey` VALUES ('8409005','Littérature française : 18e siècle . Siècle des lumières ',0);
+INSERT INTO `codif_dewey` VALUES ('8409006','Littérature française : Révolution et Empire, 1789 - 1815',0);
+INSERT INTO `codif_dewey` VALUES ('8409007','littérature française : 1815-1848',0);
 INSERT INTO `codif_dewey` VALUES ('8409008','',0);
-INSERT INTO `codif_dewey` VALUES ('8409009','Littérature française : 1900 -',0);
-INSERT INTO `codif_dewey` VALUES ('84090091','Littérature française : 1900 - 1999',0);
-INSERT INTO `codif_dewey` VALUES ('840900914','Littérature française : 1945 - 1999',0);
+INSERT INTO `codif_dewey` VALUES ('8409009','Littérature française : 1900 -',0);
+INSERT INTO `codif_dewey` VALUES ('84090091','Littérature française : 1900 - 1999',0);
+INSERT INTO `codif_dewey` VALUES ('840900914','Littérature française : 1945 - 1999',0);
 INSERT INTO `codif_dewey` VALUES ('840912','',0);
 INSERT INTO `codif_dewey` VALUES ('840935','',0);
-INSERT INTO `codif_dewey` VALUES ('84099282','Histoire de la littérature enfantine française',0);
-INSERT INTO `codif_dewey` VALUES ('841','Littérature française : Poésie ',0);
-INSERT INTO `codif_dewey` VALUES ('841008','Anthologie de la poésie française',0);
-INSERT INTO `codif_dewey` VALUES ('841009','Poésie française : histoire, analyses, études',0);
+INSERT INTO `codif_dewey` VALUES ('84099282','Histoire de la littérature enfantine française',0);
+INSERT INTO `codif_dewey` VALUES ('841','Littérature française : Poésie ',0);
+INSERT INTO `codif_dewey` VALUES ('841008','Anthologie de la poésie française',0);
+INSERT INTO `codif_dewey` VALUES ('841009','Poésie française : histoire, analyses, études',0);
 INSERT INTO `codif_dewey` VALUES ('841032','',0);
 INSERT INTO `codif_dewey` VALUES ('84104','Poésie lyrique',0);
 INSERT INTO `codif_dewey` VALUES ('84108','Poésie de circonstance',0);
 INSERT INTO `codif_dewey` VALUES ('841085','',0);
-INSERT INTO `codif_dewey` VALUES ('8411','Poésie française jusqu\'\'à 1399 - Epoque médiévale',0);
-INSERT INTO `codif_dewey` VALUES ('8412','Poésie française : 1400 - 1499',0);
-INSERT INTO `codif_dewey` VALUES ('8413','Poésie française : Renaissance 1500 - 1599',0);
-INSERT INTO `codif_dewey` VALUES ('8414','Poésie française (1600-1715)',0);
-INSERT INTO `codif_dewey` VALUES ('8415','Poésie française : 1715 - 1789 Siècle des Lumières',0);
-INSERT INTO `codif_dewey` VALUES ('8417','Poésie française 1815-1848',0);
+INSERT INTO `codif_dewey` VALUES ('8411','Poésie française jusqu\'\'à 1399 - Epoque médiévale',0);
+INSERT INTO `codif_dewey` VALUES ('8412','Poésie française : 1400 - 1499',0);
+INSERT INTO `codif_dewey` VALUES ('8413','Poésie française : Renaissance 1500 - 1599',0);
+INSERT INTO `codif_dewey` VALUES ('8414','Poésie française (1600-1715)',0);
+INSERT INTO `codif_dewey` VALUES ('8415','Poésie française : 1715 - 1789 Siècle des Lumières',0);
+INSERT INTO `codif_dewey` VALUES ('8417','Poésie française 1815-1848',0);
 INSERT INTO `codif_dewey` VALUES ('841708','',0);
 INSERT INTO `codif_dewey` VALUES ('841709','',0);
-INSERT INTO `codif_dewey` VALUES ('8418','Poésie française : 1848 - 1899',0);
-INSERT INTO `codif_dewey` VALUES ('8419','Poésie française du 20ème siècle',0);
-INSERT INTO `codif_dewey` VALUES ('84191','Poésie française : 1900 - 1999',0);
+INSERT INTO `codif_dewey` VALUES ('8418','Poésie française : 1848 - 1899',0);
+INSERT INTO `codif_dewey` VALUES ('8419','Poésie française du 20ème siècle',0);
+INSERT INTO `codif_dewey` VALUES ('84191','Poésie française : 1900 - 1999',0);
 INSERT INTO `codif_dewey` VALUES ('841912','',0);
 INSERT INTO `codif_dewey` VALUES ('841914','Poésie 1945-',0);
-INSERT INTO `codif_dewey` VALUES ('842','Littérature française : théâtre',0);
+INSERT INTO `codif_dewey` VALUES ('842','Littérature française : théâtre',0);
 INSERT INTO `codif_dewey` VALUES ('842009','Littérature dramatique : histoires, analyse, études',0);
 INSERT INTO `codif_dewey` VALUES ('8420512','Théâtre : tragédie',0);
 INSERT INTO `codif_dewey` VALUES ('8420523','Théâtre : Comédie',0);
-INSERT INTO `codif_dewey` VALUES ('84205232','Théâtre français : Farce',0);
+INSERT INTO `codif_dewey` VALUES ('84205232','Théâtre français : Farce',0);
 INSERT INTO `codif_dewey` VALUES ('8421','',0);
-INSERT INTO `codif_dewey` VALUES ('8424','Théâtre français 1600-1715',0);
-INSERT INTO `codif_dewey` VALUES ('8425','Théâtre français : 1715-1789 ',0);
-INSERT INTO `codif_dewey` VALUES ('8427','Théâtre français : 1815 - 1848',0);
-INSERT INTO `codif_dewey` VALUES ('8428','Théâtre français : 1848 - 1899',0);
-INSERT INTO `codif_dewey` VALUES ('8429','Théâtre français : 1900 -',0);
+INSERT INTO `codif_dewey` VALUES ('8424','Théâtre français 1600-1715',0);
+INSERT INTO `codif_dewey` VALUES ('8425','Théâtre français : 1715-1789 ',0);
+INSERT INTO `codif_dewey` VALUES ('8427','Théâtre français : 1815 - 1848',0);
+INSERT INTO `codif_dewey` VALUES ('8428','Théâtre français : 1848 - 1899',0);
+INSERT INTO `codif_dewey` VALUES ('8429','Théâtre français : 1900 -',0);
 INSERT INTO `codif_dewey` VALUES ('842909','',0);
-INSERT INTO `codif_dewey` VALUES ('84291','Théâtre français : 1900 - 1999',0);
+INSERT INTO `codif_dewey` VALUES ('84291','Théâtre français : 1900 - 1999',0);
 INSERT INTO `codif_dewey` VALUES ('842912','',0);
 INSERT INTO `codif_dewey` VALUES ('842914','',0);
-INSERT INTO `codif_dewey` VALUES ('843','Oeuvres de fiction françaises',0);
+INSERT INTO `codif_dewey` VALUES ('843','Oeuvres de fiction françaises',0);
 INSERT INTO `codif_dewey` VALUES ('843009','Fiction : analyses, études, critique',0);
 INSERT INTO `codif_dewey` VALUES ('84306','',0);
 INSERT INTO `codif_dewey` VALUES ('843081','',0);
@@ -5494,36 +5494,36 @@ INSERT INTO `codif_dewey` VALUES ('843087','',0);
 INSERT INTO `codif_dewey` VALUES ('8430876','Littérature fantastique',0);
 INSERT INTO `codif_dewey` VALUES ('8431','Fiction, roman : période médiévale',0);
 INSERT INTO `codif_dewey` VALUES ('8433','Fiction, roman : Renaissance',0);
-INSERT INTO `codif_dewey` VALUES ('8435','Fiction française : 18e siècle, siècle des lumières',0);
-INSERT INTO `codif_dewey` VALUES ('8436','Fiction française : 1789-1815',0);
-INSERT INTO `codif_dewey` VALUES ('8437','Fiction française 1815-1848',0);
-INSERT INTO `codif_dewey` VALUES ('8438','Fiction française 1848-1899',0);
-INSERT INTO `codif_dewey` VALUES ('8439','Fiction française depuis 1900',0);
+INSERT INTO `codif_dewey` VALUES ('8435','Fiction française : 18e siècle, siècle des lumières',0);
+INSERT INTO `codif_dewey` VALUES ('8436','Fiction française : 1789-1815',0);
+INSERT INTO `codif_dewey` VALUES ('8437','Fiction française 1815-1848',0);
+INSERT INTO `codif_dewey` VALUES ('8438','Fiction française 1848-1899',0);
+INSERT INTO `codif_dewey` VALUES ('8439','Fiction française depuis 1900',0);
 INSERT INTO `codif_dewey` VALUES ('84391','',0);
 INSERT INTO `codif_dewey` VALUES ('843912','',0);
-INSERT INTO `codif_dewey` VALUES ('844','Littérature française : Essais ',0);
+INSERT INTO `codif_dewey` VALUES ('844','Littérature française : Essais ',0);
 INSERT INTO `codif_dewey` VALUES ('844009','Essais : histoire, analyses, études',0);
-INSERT INTO `codif_dewey` VALUES ('8443','Littérature française : Renaissance, 1500-1599',0);
+INSERT INTO `codif_dewey` VALUES ('8443','Littérature française : Renaissance, 1500-1599',0);
 INSERT INTO `codif_dewey` VALUES ('8444','',0);
-INSERT INTO `codif_dewey` VALUES ('8446','Littérature française : 1789-1815',0);
-INSERT INTO `codif_dewey` VALUES ('8447','Littérature française : 1815-1848',0);
-INSERT INTO `codif_dewey` VALUES ('8448','Littérature française : 1848-1899',0);
-INSERT INTO `codif_dewey` VALUES ('8449','Littérature française : 1900 -....',0);
-INSERT INTO `codif_dewey` VALUES ('84491','Littérature française : 1900 - 1999',0);
-INSERT INTO `codif_dewey` VALUES ('844914','Littérature française : essais : 1945-1999',0);
+INSERT INTO `codif_dewey` VALUES ('8446','Littérature française : 1789-1815',0);
+INSERT INTO `codif_dewey` VALUES ('8447','Littérature française : 1815-1848',0);
+INSERT INTO `codif_dewey` VALUES ('8448','Littérature française : 1848-1899',0);
+INSERT INTO `codif_dewey` VALUES ('8449','Littérature française : 1900 -....',0);
+INSERT INTO `codif_dewey` VALUES ('84491','Littérature française : 1900 - 1999',0);
+INSERT INTO `codif_dewey` VALUES ('844914','Littérature française : essais : 1945-1999',0);
 INSERT INTO `codif_dewey` VALUES ('84499494','Littérature suisse ',0);
 INSERT INTO `codif_dewey` VALUES ('845','Discours',0);
-INSERT INTO `codif_dewey` VALUES ('8455','la littérature française au 18e siècle',0);
-INSERT INTO `codif_dewey` VALUES ('846','Littérature française : Lettres, correspondance littéraire, mémoires',0);
-INSERT INTO `codif_dewey` VALUES ('846008','Littérature française : anthologie de lettres',0);
+INSERT INTO `codif_dewey` VALUES ('8455','la littérature française au 18e siècle',0);
+INSERT INTO `codif_dewey` VALUES ('846','Littérature française : Lettres, correspondance littéraire, mémoires',0);
+INSERT INTO `codif_dewey` VALUES ('846008','Littérature française : anthologie de lettres',0);
 INSERT INTO `codif_dewey` VALUES ('846009','Mémoires, correspondance : analyses, études, critique',0);
-INSERT INTO `codif_dewey` VALUES ('8464','Littérature française, lettres, correspondance littéraire, mémoires ... (Période classique, 1600-171',0);
-INSERT INTO `codif_dewey` VALUES ('8467','Littérature française, lettres, correspondance littéraire, mémoires ... ( 1815-1848)',0);
-INSERT INTO `codif_dewey` VALUES ('8468','Littérature française, lettres, correspondance littéraire, mémoires ... (1848-1899)',0);
-INSERT INTO `codif_dewey` VALUES ('8469','Littérature française, lettres, correspondance littéraire, mémoires - (1900-',0);
-INSERT INTO `codif_dewey` VALUES ('847','Littérature française : Satire, humour',0);
-INSERT INTO `codif_dewey` VALUES ('8478','Littérature française : satire, humour (1848-1899)',0);
-INSERT INTO `codif_dewey` VALUES ('848','Littérature française : Ecrits divers (entretiens...)',0);
+INSERT INTO `codif_dewey` VALUES ('8464','Littérature française, lettres, correspondance littéraire, mémoires ... (Période classique, 1600-171',0);
+INSERT INTO `codif_dewey` VALUES ('8467','Littérature française, lettres, correspondance littéraire, mémoires ... ( 1815-1848)',0);
+INSERT INTO `codif_dewey` VALUES ('8468','Littérature française, lettres, correspondance littéraire, mémoires ... (1848-1899)',0);
+INSERT INTO `codif_dewey` VALUES ('8469','Littérature française, lettres, correspondance littéraire, mémoires - (1900-',0);
+INSERT INTO `codif_dewey` VALUES ('847','Littérature française : Satire, humour',0);
+INSERT INTO `codif_dewey` VALUES ('8478','Littérature française : satire, humour (1848-1899)',0);
+INSERT INTO `codif_dewey` VALUES ('848','Littérature française : Ecrits divers (entretiens...)',0);
 INSERT INTO `codif_dewey` VALUES ('84803','Carnets, souvenirs, journaux intimes, correspondances personnelles',0);
 INSERT INTO `codif_dewey` VALUES ('84807','Oeuvres expérimentales et non formelles ',0);
 INSERT INTO `codif_dewey` VALUES ('8483','Ecrits divers : Renaissance, 1500-1599',0);
@@ -5540,10 +5540,10 @@ INSERT INTO `codif_dewey` VALUES ('8489','Ecrits divers : 1900 - ....',0);
 INSERT INTO `codif_dewey` VALUES ('84891','Ecrits divers : 1900 - 1999',0);
 INSERT INTO `codif_dewey` VALUES ('848910','',0);
 INSERT INTO `codif_dewey` VALUES ('848914','',0);
-INSERT INTO `codif_dewey` VALUES ('848993','Littérature belge de langue française',0);
+INSERT INTO `codif_dewey` VALUES ('848993','Littérature belge de langue française',0);
 INSERT INTO `codif_dewey` VALUES ('84899494','Littérature francophone européenne',0);
-INSERT INTO `codif_dewey` VALUES ('84899729','Littérature française des Antilles',0);
-INSERT INTO `codif_dewey` VALUES ('849','Littératures provençale (Langue d\'\'oc), franco-provençale, catalane',0);
+INSERT INTO `codif_dewey` VALUES ('84899729','Littérature française des Antilles',0);
+INSERT INTO `codif_dewey` VALUES ('849','Littératures provençale (Langue d\'\'oc), franco-provençale, catalane',0);
 INSERT INTO `codif_dewey` VALUES ('8491','Poésie',0);
 INSERT INTO `codif_dewey` VALUES ('8499','',0);
 INSERT INTO `codif_dewey` VALUES ('850','Littérature italienne',0);
@@ -5789,7 +5789,7 @@ INSERT INTO `codif_dewey` VALUES ('914424','Département de l\'\' Eure',0);
 INSERT INTO `codif_dewey` VALUES ('914425','Département de Seine-Maritime',0);
 INSERT INTO `codif_dewey` VALUES ('914426','Picardie',0);
 INSERT INTO `codif_dewey` VALUES ('914427','Département du Pas-de-Calais',0);
-INSERT INTO `codif_dewey` VALUES ('914428','Département du Nord (ancienne région de la Flandre française)',0);
+INSERT INTO `codif_dewey` VALUES ('914428','Département du Nord (ancienne région de la Flandre française)',0);
 INSERT INTO `codif_dewey` VALUES ('9144284','Lille',0);
 INSERT INTO `codif_dewey` VALUES ('91443','Nord-Est de la France . Champagne',0);
 INSERT INTO `codif_dewey` VALUES ('914431','',0);
@@ -5902,9 +5902,9 @@ INSERT INTO `codif_dewey` VALUES ('914675','Baléares',0);
 INSERT INTO `codif_dewey` VALUES ('91468','Communauté autonome d\'\'Andalousie et Gibraltar',0);
 INSERT INTO `codif_dewey` VALUES ('914682','Espagne : Province de Grenade',0);
 INSERT INTO `codif_dewey` VALUES ('914686','Province de Séville',0);
-INSERT INTO `codif_dewey` VALUES ('91469','Portugal, Açores, Baléares',0);
+INSERT INTO `codif_dewey` VALUES ('91469','Portugal, Açores, Baléares',0);
 INSERT INTO `codif_dewey` VALUES ('91469425','District de Lisbonne',0);
-INSERT INTO `codif_dewey` VALUES ('914699','Açores',0);
+INSERT INTO `codif_dewey` VALUES ('914699','Açores',0);
 INSERT INTO `codif_dewey` VALUES ('9147','Russie',0);
 INSERT INTO `codif_dewey` VALUES ('91472','Ouest de la Russie',0);
 INSERT INTO `codif_dewey` VALUES ('914721','Saint-Petersbourg (Leningrad)',0);
@@ -6104,7 +6104,7 @@ INSERT INTO `codif_dewey` VALUES ('91866','Equateur',0);
 INSERT INTO `codif_dewey` VALUES ('918665','Galapagos',0);
 INSERT INTO `codif_dewey` VALUES ('9187','Venezuela',0);
 INSERT INTO `codif_dewey` VALUES ('9188','Guyanes, Surinam',0);
-INSERT INTO `codif_dewey` VALUES ('91882','Guyane française',0);
+INSERT INTO `codif_dewey` VALUES ('91882','Guyane française',0);
 INSERT INTO `codif_dewey` VALUES ('9189','Autres parties de l\'\'Amérique du Sud (Paraguay, Uruguay)',0);
 INSERT INTO `codif_dewey` VALUES ('919','Autres parties du monde et monde extraterrestre Iles du pacifiques',0);
 INSERT INTO `codif_dewey` VALUES ('91904','Autres parties du monde : sujets particuliers',0);
@@ -6136,7 +6136,7 @@ INSERT INTO `codif_dewey` VALUES ('92071','Hommes célèbres',0);
 INSERT INTO `codif_dewey` VALUES ('92072','Femmes célèbres',0);
 INSERT INTO `codif_dewey` VALUES ('921','Biographies de philosophes et psychologues ',0);
 INSERT INTO `codif_dewey` VALUES ('9213','Philosophes et psychologues allemands et autrichiens',0);
-INSERT INTO `codif_dewey` VALUES ('9214','Philosophes et psychologues français',0);
+INSERT INTO `codif_dewey` VALUES ('9214','Philosophes et psychologues français',0);
 INSERT INTO `codif_dewey` VALUES ('9219','Philosophes et psychologues anciens, médiévaux, orientaux',0);
 INSERT INTO `codif_dewey` VALUES ('922','Chefs, penseurs, clergés',0);
 INSERT INTO `codif_dewey` VALUES ('9222','Catholiques romains',0);
@@ -6254,7 +6254,7 @@ INSERT INTO `codif_dewey` VALUES ('940232','Histoire de l\'\'Europe : 1517-1618'
 INSERT INTO `codif_dewey` VALUES ('94024','Guerre de Trente ans, 1618-1648',0);
 INSERT INTO `codif_dewey` VALUES ('94025','1648-1789',0);
 INSERT INTO `codif_dewey` VALUES ('940253','Histoire- Europe -1715 - 1789',0);
-INSERT INTO `codif_dewey` VALUES ('94027','Période de la Révolution française et de Napoléon I : 1789-1815',0);
+INSERT INTO `codif_dewey` VALUES ('94027','Période de la Révolution française et de Napoléon I : 1789-1815',0);
 INSERT INTO `codif_dewey` VALUES ('94028','19e siècle',0);
 INSERT INTO `codif_dewey` VALUES ('940287','1870-1899',0);
 INSERT INTO `codif_dewey` VALUES ('940288','1900-1914',0);
@@ -6369,7 +6369,7 @@ INSERT INTO `codif_dewey` VALUES ('9440262','Règne de Charles VII Le Victorieux
 INSERT INTO `codif_dewey` VALUES ('944027','Louis XI, Charles VIII, Louis XII : 1461-1515',0);
 INSERT INTO `codif_dewey` VALUES ('9440271','Règne de Louis XI, 1461-1483',0);
 INSERT INTO `codif_dewey` VALUES ('944028','France : le 16e siècle',0);
-INSERT INTO `codif_dewey` VALUES ('9440281','Règne de François Ier, 1515-1547',0);
+INSERT INTO `codif_dewey` VALUES ('9440281','Règne de François Ier, 1515-1547',0);
 INSERT INTO `codif_dewey` VALUES ('9440282','Règne d\'\'Henri II, 1547-1559',0);
 INSERT INTO `codif_dewey` VALUES ('944029','1559 - 1589 : guerres de religion',0);
 INSERT INTO `codif_dewey` VALUES ('9440293','Règne d\'\'Henri III, 1574-1589',0);
@@ -6692,7 +6692,7 @@ INSERT INTO `codif_dewey` VALUES ('964','Histoire du Nord-Ouest africain',0);
 INSERT INTO `codif_dewey` VALUES ('96405','Indépendance du Maroc',0);
 INSERT INTO `codif_dewey` VALUES ('965','Histoire de l\'\'Algérie',0);
 INSERT INTO `codif_dewey` VALUES ('96501','Algérie, des origines à 647',0);
-INSERT INTO `codif_dewey` VALUES ('96503','Algérie : Domination française, 1830-1962',0);
+INSERT INTO `codif_dewey` VALUES ('96503','Algérie : Domination française, 1830-1962',0);
 INSERT INTO `codif_dewey` VALUES ('96504','Algérie : 1900-1962',0);
 INSERT INTO `codif_dewey` VALUES ('965046','Révolution et guerre d\'\'Algérie, 1954-1962',0);
 INSERT INTO `codif_dewey` VALUES ('96505','Algérie : 1962-',0);
diff --git a/tests/TestSpeedTrap.php b/tests/TestSpeedTrap.php
index 8f712ce99352faa584b7711cd8391675ef034680..db39c54f9af3bd07735ec18d297c6f2e71721a9b 100644
--- a/tests/TestSpeedTrap.php
+++ b/tests/TestSpeedTrap.php
@@ -16,29 +16,23 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 /**
  * @package Tests
  */
 class TestSpeedTrap extends PHPUnit_Util_Printer  implements PHPUnit_Framework_TestListener {
-	protected static $_speed_trapped_test = [],
-		$_speed_limit = 0.1;
 
-	protected $_trapped_test = [];
+	protected static $_speed_trapped_test = [],
+		$_speed_limit = 0.01;
 
 
 	public static function printSpeedTrappedTests() {
-		if(!$_trapped = self::sortTrapped())
-			return;
-
-		$_high_score_in_seconds = self::getHighScore($_trapped);
-		$_high_score_speed_test = self::getHighSpeedTest($_trapped);
-
-		self::renderScore($_high_score_in_seconds, $_high_score_speed_test);
+		self::sortTrapped();
+		self::renderScore();
 	}
-  
+
 	/**
 	 * called when test is ended - determines if it was long and prints
 	 * @param PHUnit_Framework_Test $test
@@ -47,9 +41,9 @@ class TestSpeedTrap extends PHPUnit_Util_Printer  implements PHPUnit_Framework_T
 	public function endTest(PHPUnit_Framework_Test $test, $length)
 	{
 		if ($length > self::$_speed_limit)
-			$this->collect(['name' => $test->getName(), 'speed' => $length]);
+			$this->collect($test->getName(), round($length, 4));
 	}
-    
+
 	/**
 	 * Used to print error in error colors
 	 * @param string $error
@@ -58,10 +52,10 @@ class TestSpeedTrap extends PHPUnit_Util_Printer  implements PHPUnit_Framework_T
 	{
 		print  <<<END
 
-[ $error ] ⤞  $speed seconds
+ [ $error ] ⤞  $speed seconds
 END;
 	}
-    
+
 	/**
 	 * Required for Interface
 	 * (non-PHPdoc)
@@ -96,14 +90,14 @@ END;
 	 * @see PHPUnit_Framework_TestListener::addSkippedTest()
 	 */
 	public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) {}
-    
+
 	/**
 	 * Required for Interface
 	 * (non-PHPdoc)
 	 * @see PHPUnit_Framework_TestListener::startTestSuite()
 	 */
 	public function startTestSuite(PHPUnit_Framework_TestSuite $suite) {}
-    
+
 	/**
 	 * Required for Interface
 	 * (non-PHPdoc)
@@ -114,43 +108,59 @@ END;
 	public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time) {}
 
 
-	protected function collect($trapped) {
-		// disable: crash gitlab-ci runner 
-		// self::$_speed_trapped_test[floor($trapped['speed'])][$trapped['name']] = round($trapped['speed'], 2);
+	protected function collect($name, $speed) {
+		$count = count(self::$_speed_trapped_test);
+		if($count < 10 ) {
+			return self::$_speed_trapped_test[$name] = $speed;
+		}
+
+		$min_speed = min(self::$_speed_trapped_test);
+		$min_name = array_search($min_speed, self::$_speed_trapped_test);
+
+		if($speed > $min_speed) {
+			unset(self::$_speed_trapped_test[$min_name]);
+			self::$_speed_trapped_test[$name] = $speed;
+		}
 	}
 
-	
+
 	protected static function sortTrapped() {
 		if(!count(self::$_speed_trapped_test))
 			return false;
-		
-		krsort(self::$_speed_trapped_test);
+
+		arsort(self::$_speed_trapped_test);
 		reset(self::$_speed_trapped_test);
 		return self::$_speed_trapped_test;
 	}
 
-	
-	protected static function getHighScore($trapped_tests) {
-		return key($trapped_tests);
-	}
 
+	protected static function renderScore() {
+		$speed_limit= self::$_speed_limit;
 
-	protected static function getHighSpeedTest($trapped_tests) {
-		$high_score_tests = current($trapped_tests);
-		arsort($high_score_tests);
-		return $high_score_tests;
-	}
+		if(1 > ($count = count(self::$_speed_trapped_test))) {
+			print <<<END
+
+ :D  http://ljdchost.com/zLWnDY0.gif
+END;
+
+			return;
+		}
 
-	
-	protected static function renderScore($high_score_in_second, $high_score_tests) {
-		$emot = count($high_score_tests) > 1 ? '😣' : '😄';
-		$header = $emot.' SpeedTrap score: ' . $high_score_in_second . ' seconds.';
 		print <<<END
 
-$header
+ :(  http://ljdchost.com/UlaUCrU.gif
+
 END;
-		foreach($high_score_tests as $test_name => $speed )
+
+		foreach(self::$_speed_trapped_test as $test_name => $speed )
 			self::printError($test_name, $speed);
+
+		print <<<END
+
+
+Speed trap set to : $speed_limit second / test running
+
+END;
 	}
 }
 ?>
\ No newline at end of file
diff --git a/tests/application/modules/admin/controllers/AccueilControllerTest.php b/tests/application/modules/admin/controllers/AccueilControllerTest.php
index 65318879f5974e8bc9a87391c57969a262d4ce11..f82c9f25adb18c56d9c720278b5d8d2b7fa6a58e 100644
--- a/tests/application/modules/admin/controllers/AccueilControllerTest.php
+++ b/tests/application/modules/admin/controllers/AccueilControllerTest.php
@@ -984,7 +984,7 @@ class AccueilControllerKiosqueWidgetWithFlashSettingsSetTest extends Admin_Abstr
 			->updateModuleConfigAccueil(32, ['type_module' => 'KIOSQUE',
 																			 'division' => 4,
 																			 'id_module' => 32,
-																			 'preferences' => ['style_liste' => 'coverflow']]);
+																			 'preferences' => ['style_liste' => 'carrousel_horizontal']]);
 
 		$this->dispatch('/admin/accueil/kiosque?config=accueil&type_module=KIOSQUE&id_module=32', true);
 	}
@@ -1008,7 +1008,7 @@ class AccueilControllerKiosqueWidgetWithFlashSettingsSelectedTest extends Admin_
 																			 'id_module' => 32,
 																			 'preferences' => ['style_liste' => 'slide_show']]);
 
-		$this->dispatch('/admin/accueil/kiosque/config/accueil/type_module/KIOSQUE/id_module/32/style_liste/coverflow', true);
+		$this->dispatch('/admin/accueil/kiosque/config/accueil/type_module/KIOSQUE/id_module/32/style_liste/carrousel_horizontal', true);
 	}
 
 /** @test */
@@ -1029,7 +1029,7 @@ class AccueilControllerKiosqueWidgetWithFlashSettingsSavedAndJsSelectedTest exte
 			->updateModuleConfigAccueil(32, ['type_module' => 'KIOSQUE',
 																			 'division' => 4,
 																			 'id_module' => 32,
-																			 'preferences' => ['style_liste' => 'coverflow']]);
+																			 'preferences' => ['style_liste' => 'slide_show']]);
 
 		$this->dispatch('/admin/accueil/kiosque/config/accueil/type_module/KIOSQUE/id_module/32/style_liste/slide_show', true);
 	}
diff --git a/tests/application/modules/admin/controllers/AdminIndexControllerTest.php b/tests/application/modules/admin/controllers/AdminIndexControllerTest.php
index 461e2aa8cd21bd89e30cd9d51b3c7202a7c99807..92d2fe4d395f0e453c05a7a1561ce532c3d4604c 100644
--- a/tests/application/modules/admin/controllers/AdminIndexControllerTest.php
+++ b/tests/application/modules/admin/controllers/AdminIndexControllerTest.php
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AdminAbstractControllerTestCase.php';
+require_once 'fixtures/RessourcesNumeriquesFixtures.php';
 
 abstract class AdminIndexControllerTestCase extends Admin_AbstractControllerTestCase {
 	public function setUp() {
@@ -153,7 +154,9 @@ class AdminIndexControllerIndexActionTest extends AdminIndexControllerTestCase {
 class AdminIndexControllerAdminVarActionTest extends Admin_AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
-		$this->dispatch('/admin/index/adminvar');
+		Class_AdminVar::newInstanceWithId('BIBNUM', ['valeur' => '0']);
+		Class_AdminVar::newInstanceWithId('CACHE_ACTIF', ['valeur' => '1']);
+		$this->dispatch('/admin/index/adminvar', true);
 	}
 
 	/** @test */
@@ -163,7 +166,7 @@ class AdminIndexControllerAdminVarActionTest extends Admin_AbstractControllerTes
 
 	/** @test */
 	public function avisMaxSaisieShouldBePresent() {
-		$this->assertXpathContentContains('//td', 'AVIS_MAX_SAISIE');
+		$this->assertXpathContentContains('//td', 'AVIS_MAX_SAISIE', $this->_response->getBody());
 	}
 
 	/** @test */
@@ -201,6 +204,26 @@ class AdminIndexControllerAdminVarActionTest extends Admin_AbstractControllerTes
 		$this->assertXpathContentContains('//td', 'TEXT_REPLACEMENTS');
 	}
 
+	/** @test */
+	public function bibnumShouldDisplayDelImageAndDisabledLabel() {
+		$base_xpath = '//table[@id="adminvars"]//td[contains(text(), "BIBNUM")]/../td[2]';
+		$this->assertXPath($base_xpath . '/img[contains(@src, "del.gif")]');
+		$this->assertXPathContentContains($base_xpath, 'Désactivé');
+	}
+
+	/** @test */
+	public function cacheActifShouldDisplayCocheVerteImageAndEnabledLabel() {
+		$base_xpath = '//table[@id="adminvars"]//td[contains(text(), "CACHE_ACTIF")]/../td[2]';
+		$this->assertXPathContentContains($base_xpath, 'Activé');
+		$this->assertXPath($base_xpath . '/img[contains(@src, "coche_verte.gif")]');
+	}
+
+
+	/** @test */
+	public function dilicomPNBShouldBePresent() {
+		$this->assertXpathContentContains('//td', 'DILICOM_PNB');
+	}
+
 
 	/** @test */
 	public function pageShouldBeHTML5Valid() {
@@ -211,37 +234,39 @@ class AdminIndexControllerAdminVarActionTest extends Admin_AbstractControllerTes
 
 
 
-class AdminIndexControllerAdminVarEditModoBlogActionTest extends Admin_AbstractControllerTestCase {
+class AdminIndexControllerAdminVarEditActionTest extends Admin_AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
 
-		$this->modo_blog = Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AdminVar')
+		$this->genre_facet = Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AdminVar')
 			->whenCalled('save')
 			->answers('true')
 			->getWrapper()
-			->newInstanceWithId('MODO_BLOG')
+			->newInstanceWithId('FACETTE_GENRE_LIBELLE')
 			->setValeur('1');
 	}
 
 
 	/** @test */
-	public function editMODO_BLOG() {
-		$this->dispatch('/admin/index/adminvaredit/cle/MODO_BLOG');
-		$this->assertQueryContentContains('td.droite', 'MODO_BLOG');
+	public function editPageShouldContainsTitleFacetteGenreLibelle() {
+		$this->dispatch('/admin/index/adminvaredit/cle/FACETTE_GENRE_LIBELLE');
+		$this->assertQueryContentContains('h1',
+																			'FACETTE_GENRE_LIBELLE',
+																			$this->_response->getBody());
 	}
 
 
 	/** @test */
-	public function postTwoToMODO_BLOG() {
+	public function postTwoToFacetteGenreLibelleShouldRemoveTags() {
 		$this
 			->getRequest()
 			->setMethod('POST')
-			->setPost(array('cle' => 'MODO_BLOG',
-											'valeur' => "<b>2  \n</b>"));
-		$this->dispatch('/admin/index/adminvaredit/cle/MODO_BLOG');
-		$this->assertEquals(2, $this->modo_blog->getValeur());
-		$this->assertRedirectTo('/admin/index/adminvaredit/cle/MODO_BLOG');
-		$this->assertFlashMessengerContains('Variable MODO_BLOG sauvegardée');
+			->setPost(array('cle' => 'FACETTE_GENRE_LIBELLE',
+											'valeur' => "<b>test  \n</b>"));
+		$this->dispatch('/admin/index/adminvaredit/cle/FACETTE_GENRE_LIBELLE');
+		$this->assertEquals('test', $this->genre_facet->getValeur());
+		$this->assertRedirectTo('/admin/index/adminvaredit/cle/FACETTE_GENRE_LIBELLE');
+		$this->assertFlashMessengerContains('Variable FACETTE_GENRE_LIBELLE sauvegardée');
 	}
 }
 
@@ -422,8 +447,8 @@ class AdminIndexControllerAdminVarEditResaConditionActionTest extends Admin_Abst
 
 	/** @test */
 	public function editResaConditionShouldDecodeItsValeur() {
-		$this->dispatch('/admin/index/adminvaredit/cle/RESA_CONDITION');
-		$this->assertXPathContentContains('//textarea', 'Mes conditions de reservation');
+		$this->dispatch('/admin/index/adminvaredit/cle/RESA_CONDITION', true);
+		$this->assertXPathContentContains('//textarea', 'Mes conditions de reservation', $this->_response->getBody());
 	}
 
 
@@ -435,4 +460,122 @@ class AdminIndexControllerAdminVarEditResaConditionActionTest extends Admin_Abst
 		$this->assertEquals('Il+faut+demander', $this->_resa_condition->getValeur());
 	}
 }
+
+
+
+abstract class AdminIndexControllerDilicomPnbIpAdressesTestCase extends Admin_AbstractControllerTestCase {
+	protected $_http;
+
+
+	public function setUp() {
+		parent::setUp();
+		$this->_http = Storm_Test_ObjectWrapper::mock();
+		$this->_http
+			->whenCalled('setAuth')->answers(null)
+			->whenCalled('open_url')->answers(json_encode(['returnStatus' => 'OK',
+																										 'returnMessage' => []]));
+		RessourcesNumeriquesFixtures::activateDilicom();
+
+		Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient($this->_http);
+	}
+
+	public function tearDown() {
+		Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient(null);
+		RessourcesNumeriquesFixtures::deactivateDilicom();
+		parent::tearDown();
+	}
+}
+
+
+
+
+class AdminIndexControllerAdminVarEditDilicomPnbIpAdressesTest extends AdminIndexControllerDilicomPnbIpAdressesTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->fixture('Class_AdminVar', ['id' => 'DILICOM_PNB_IP_ADRESSES',
+																			'valeur' => '178.12.34.56;178.12.34.57']);
+		$this->dispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES',
+										true);
+	}
+
+
+	/** @test */
+	public function varNameDilicomPnbIpAdressesShouldBeDisplayed() {
+		$this->assertQueryContentContains('//h1', 'DILICOM_PNB_IP_ADRESSES');
+	}
+
+
+	/** @test */
+	public function pageShouldContainsMultiInputsValeur() {
+		$this->assertXPath('//div[@id="multi_inputs_valeur"]');
+	}
+
+
+	/** @test */
+	public function multiInputAdressesShouldContains178_12_34_56() {
+		$this->assertXPathContentContains('//script',
+																			'178.12.34.56');
+	}
+
+
+	/** @test */
+	public function descriptionShouldContainsListeDesAdressesIp() {
+		$this->assertXPathContentContains('//p', 'Liste des adresses IP');
+	}
+
+
+	/** @test */
+	public function backUrlShouldBeAdminVar() {
+		$this->assertXPath('//div[contains(@onclick, "/admin/index/adminvar")]',
+											 $this->_response->getBody());
+
+	}
+}
+
+
+
+class AdminIndexControllerAdminVarDilicomDeclareIpPostTest extends AdminIndexControllerDilicomPnbIpAdressesTestCase {
+	/** @test */
+	public function hubErrorMessageShouldAppearInNotification() {
+		$this->_http->whenCalled('open_url')
+								->answers(json_encode(['requestId' => 'xxx',
+																			 'returnStatus' => 'KO',
+																			 'returnMessage' => ['xxx is not a valid address']]));
+
+		$this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES',
+												['cle' => 'DILICOM_PNB_IP_ADRESSES',
+												 'valeurs' => ['xxx',
+																			 '123.156.15.3']]);
+
+		$this->assertXPathContentContains('//div//ul[@class="errors"]/li', 'xxx is not a valid address');
+	}
+
+
+	/** @test */
+	public function whenDilicomDisabledErrorMessageShouldAppearInNotification() {
+		RessourcesNumeriquesFixtures::deactivateDilicom();
+
+		$this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES',
+												['cle' => 'DILICOM_PNB_IP_ADRESSES',
+												 'valeurs' => ['xxx',
+																			 '123.156.15.3']]);
+
+		$this->assertXPathContentContains('//div//ul[@class="errors"]/li', 'configuration du PNB Dilicom incomplète');
+	}
+
+
+	/** @test */
+	public function emptyAnswerErrorMessageShouldBePresnt() {
+		$this->_http->whenCalled('open_url')
+								->answers('');
+
+		$this->postDispatch('/admin/index/adminvaredit/cle/DILICOM_PNB_IP_ADRESSES',
+												['cle' => 'DILICOM_PNB_IP_ADRESSES',
+												 'valeur' => ['xxx',
+																			'123.156.15.3']]);
+
+		$this->assertXPathContentContains('//div//ul[@class="errors"]/li', 'échec de communication avec le serveur PNB Dilicom');
+	}
+}
+
 ?>
\ No newline at end of file
diff --git a/tests/application/modules/admin/controllers/AlbumControllerDilicomPNBTest.php b/tests/application/modules/admin/controllers/AlbumControllerDilicomPNBTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f1f856e93c3fafee946d7c8097d2b024e47f70e5
--- /dev/null
+++ b/tests/application/modules/admin/controllers/AlbumControllerDilicomPNBTest.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class AlbumControllerDilicomPNBEditTest extends Admin_AbstractControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->fixture('Class_Album',
+									 ['id' => 23,
+										'titre' => 'Being human being',
+										'usage_constraints' =>
+
+			 [
+				$this->fixture('Class_Album_UsageConstraint',
+											 ['id' => 1,
+												'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
+												'serialized_datas' => json_encode([Class_Album_UsageConstraint::DURATION => 45,
+																													 Class_Album_UsageConstraint::QUANTITY => 30,
+																													 Class_Album_UsageConstraint::MAX_NB_OF_USERS => 15])]),
+
+				$this->fixture('Class_Album_UsageConstraint',
+											 ['id' => 2,
+												'usage_type' => Class_Album_UsageConstraint::DEVICE_SHARE_CONSTRAINT,
+												'serialized_datas' => json_encode([Class_Album_UsageConstraint::QUANTITY => 6])])
+			 ]
+			 ]);
+
+		$this->dispatch('/admin/album/editalbum/id/23', true);
+	}
+
+
+	/** @test */
+	public function inputTitreShouldContainsBeingHumanBeing() {
+		$this->assertXPath('//input[@name="titre"][@value="Being human being"]');
+	}
+
+
+	/** @test */
+	public function fieldsetUsageShouldBeVisible() {
+		$this->assertXPathContentContains('//fieldset/legend','Utilisation');
+	}
+
+
+	/** @test */
+	public function dtInUsageShouldContainsPret() {
+		$this->assertXPathContentContains('//fieldset//dl//dt', 'Prêt');
+	}
+
+
+	/** @test */
+	public function dddldtShouldContainsDuration() {
+		$this->assertXPathContentContains('//fieldset//dl/dd/dl/dt', 'Durée (j)');
+	}
+
+
+	/** @test */
+	public function dddlddShouldContains45() {
+		$this->assertXPathContentContains('//fieldset//dl/dd/dl/dd', '45');
+	}
+
+
+	/** @test */
+	public function dtInUsageShouldContainsAuthorizedDevices() {
+		$this->assertXPathContentContains('//fieldset//dl//dt', 'Appareils autorisés');
+	}
+}
+
+
+
+class AlbumControllerDilicomPNBEditPostTest extends Admin_AbstractControllerTestCase {
+	protected $_album;
+	public function setUp() {
+		parent::setUp();
+
+		$this->_album = $this->fixture('Class_Album',
+																	 ['id' => 3,
+																		'libelle' => 'Totem et Thora',
+																		'id_origine' => 'Dilicom-88817216',
+																		'external_uri' => 'http://www.edenlivres.fr/p/23416',
+																		'type_doc_id' => Class_TypeDoc::DILICOM,
+																		'isbn' => '435465',
+																		'usage_constraints' => [$this->fixture('Class_Album_UsageConstraint',
+																																					 ['id' => 1,
+																																						'id_album' => 3,
+																																						'titre ' => 'Totem et Thora',
+																																						'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
+																																						'order_line_id' => 'x321'])]]);
+
+		$this->postDispatch('/admin/album/edit_album/id/3',
+												['titre' => 'Tootem']);
+	}
+
+	/** @test */
+	public function constraintsShouldNotHaveBeenDeleted() {
+		$this->assertNotNull($this->_album->getUsageConstraints()->getLoanConstraint());
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php b/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php
index b644964ebb1336eeff6add240e324d1126dcc4a2..c6502e467c298ece84ff3428d52f3153ea102424 100644
--- a/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php
+++ b/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php
@@ -25,6 +25,7 @@ abstract class Admin_AlbumControllerPharoVideosTestCase extends Admin_AbstractCo
 	public function setUp() {
 		parent::setUp();
 		$this->fixture('Class_Album', ['id' =>'777',
+																	 'status' => Class_Album::STATUS_VALIDATED,
 																	 'categorie' => $this->fixture('Class_AlbumCategorie',['id'=>1,
 																																												 'libelle' => 'Languages de prog.'])
 										 ]);
diff --git a/tests/application/modules/admin/controllers/AlbumControllerTest.php b/tests/application/modules/admin/controllers/AlbumControllerTest.php
index 3097862887d8574370f20b19e5cf04129093fd45..d9571f188769040ba2e181ad2245b2f14496e5b2 100644
--- a/tests/application/modules/admin/controllers/AlbumControllerTest.php
+++ b/tests/application/modules/admin/controllers/AlbumControllerTest.php
@@ -95,12 +95,14 @@ abstract class Admin_AlbumControllerTestCase extends Admin_AbstractControllerTes
 			->setProvenance('Prieuré, Souvigny')
 			->setCote('MS001')
 			->setVisible(false)
+			->setStatus(Class_Album::STATUS_VALIDATED)
 			->setNatureDoc('1;3')
 			->setCategorie($favoris)
 			->save();
 
 		$this->fixture('Class_Album', ['id' => 44])
 			->setTitre('Bible Souvigny')
+			->setStatus(Class_Album::STATUS_VALIDATED)
 			->beLivreNumerique()
 			->setThumbnailAttributes(['thumbnail_width' => 350,
 																'thumbnail_left_page_crop_left' => 10,
@@ -113,12 +115,14 @@ abstract class Admin_AlbumControllerTestCase extends Admin_AbstractControllerTes
 		$romans = $this->fixture('Class_Album',
 														 ['id' => 24,
 															'titre' => 'Mes Romans',
+															'status' => Class_Album::STATUS_VALIDATED,
 															'langue' => '']);
 
 		$adulte->addAlbum($romans)->assertSave();
 
 		$this->fixture('Class_Notice', ['id' => 8,
 																		'clef_alpha' => 'DIAMANTSEMPOISONNES--HENRYA--PAYOT-2007-1',
+																		'unimarc' => "00649cam0 2200205   450 00100060000001000350000607300180004110000410005910100080010010200070010820000660011521000290018121500180021022500280022833001080025630000240036467600060038870000250039480100240041923767  a978-2-258-06159-0d17.60 Euros  a9782258061590  a20140419         m  u0frey0103      0 afre  aFR1 aColporteur d'étoiles (Le)fAnnie Degroote (Auteur Principal)  cPresses De La Cited2003  a233 p.d23 cm  aRomans Terres de France  aDouze nouvelles évoquant chacune un symbole du Nord et le charme d'une Flandre pudique et envoûtante.  acouv. ill. en coul.  aN 1aDegrootebAnnie4070  aFRbBDP62c20140419",
 																		'type_doc' => 1]);
 
 		$this->fixture('Class_Notice', ['id' => 9,
@@ -620,6 +624,18 @@ class Admin_AlbumControllerAddAlbumToPatrimoineTest extends Admin_AlbumControlle
 	}
 
 
+	/** @test */
+	public function formShouldContainDraftStatus() {
+		$this->assertXpath('//form[@id="album"]//input[@name="status"][@value="1"]');
+	}
+
+
+	/** @test */
+	public function formShouldContainValidatedStatus() {
+		$this->assertXpath('//form[@id="album"]//input[@name="status"][@value="3"]');
+	}
+
+
 	/** @test */
 	public function formShouldHaveAFileFieldForFichier() {
 		$this->assertXPath("//form[@id='album']//input[@type='file'][@name='fichier']");
@@ -710,6 +726,64 @@ class Admin_AlbumControllerAddAlbumToPatrimoineTest extends Admin_AlbumControlle
 
 
 
+
+class Admin_AlbumControllerAddAlbumFromFrontEnd extends Admin_AlbumControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->dispatch('/admin/album/add_album_to/id/0');
+	}
+
+
+	/** @test */
+	public function actionShouldNotBeRedirected() {
+		$this->assertNotRedirect('/admin/album');
+	}
+
+
+  /** @test */
+  public function titleShouldBeAjouterUnAlbum() {
+		$this->assertXPathContentRegex('//h1', "/^Ajouter un album$/");
+	}
+
+
+	/** @test */
+	public function fieldCatIdShouldBeEmpty() {
+		$this->assertXPath('//form[@id="album"]//select[@name="cat_id"]/option[1][@value=""]');
+	}
+
+}
+
+
+
+class Admin_AlbumControllerPostAlbumIronMaidenWithoutCategory extends Admin_AlbumControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->postDispatch('/admin/album/add_album_to/id/0',
+												['titre' => 'Iron Maiden',
+												 'status' => Class_Album::STATUS_VALIDATED,
+												 'type_doc_id' => '102',
+												 'sous_titre' => 'The Number of the Beast']);
+
+		$this->iron = Class_Album::findFirstBy(['titre' => 'Iron Maiden']);
+	}
+
+
+	/** @test */
+	public function albumShouldBeSaved() {
+		$this->assertNotNull($this->iron);
+	}
+
+
+	/** @test */
+	public function albumShouldHaveNonClassesCategory() {
+		$this->assertEquals('Albums non classés',
+												$this->iron->getCategorie()->getLibelle());
+	}
+}
+
+
+
 abstract class Admin_AlbumControllerPostAlbumRenaissanceToPatrimoineTestCase extends Admin_AlbumControllerTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -756,6 +830,7 @@ class Admin_AlbumControllerPostAlbumRenaissanceToPatrimoineFrbrNoTypeTest
 												 'nature_doc' => '2;3',
 												 'type_doc_id' => '102',
 												 'visible' => '1',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'genre' => '32;23',
 												 'dewey' => '0277;0285',
 												 'pcdm4' => '0683;0684',
@@ -796,6 +871,7 @@ class Admin_AlbumControllerPostAlbumRenaissanceToPatrimoineFrbrNoLinkTest
 												 'nature_doc' => '2;3',
 												 'type_doc_id' => '102',
 												 'visible' => '1',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'genre' => '32;23',
 												 'dewey' => '0277;0285',
 												 'pcdm4' => '0683;0684',
@@ -832,10 +908,12 @@ class Admin_AlbumControllerPostAlbumRenaissanceToPatrimoineTest
 		$this->postDispatch('/admin/album/add_album_to/id/38',
 												['titre' => 'Renaissance',
 												 'sous_titre' => 'Ze Renaissance',
+												 'cat_id' => 38,
 												 'description' => 'Oeuvres majeures sous François 1er',
 												 'nature_doc' => '2;3',
 												 'type_doc_id' => '102',
 												 'visible' => '1',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'genre' => '32;23',
 												 'dewey' => '0277;0285',
 												 'pcdm4' => '0683;0684',
@@ -902,13 +980,13 @@ class Admin_AlbumControllerPostAlbumRenaissanceToPatrimoineTest
 	}
 
 
-/** @test */
+  /** @test */
 	public function shouldHaveCollectionRatm() {
 		$this->assertContains('Ratm', $this->new_album->getCollections());
 	}
 
 
-/** @test */
+  /** @test */
 	public function shouldHaveCollectionSoad() {
 		$this->assertContains('Soad', $this->new_album->getCollections());
 	}
@@ -920,6 +998,24 @@ class Admin_AlbumControllerPostAlbumRenaissanceToPatrimoineTest
 	}
 
 
+	/** @test */
+	public function newAlbumShouldHaveStatusThree() {
+		$this->assertEquals(3, (int) $this->new_album->getStatus());
+	}
+
+
+	/** @test */
+	public function newAlbumShouldBeValidated() {
+		$this->assertTrue($this->new_album->isValidated());
+	}
+
+
+	/** @test */
+	public function newAlbumShouldBeIndexed() {
+		$this->assertNotNull($this->new_album->getNoticeId());
+	}
+
+
 	/** @test */
 	public function pseudoNoticeShouldBeIndexed() {
 		$this->assertNotNull($this->new_notice);
@@ -1129,10 +1225,12 @@ class Admin_AlbumControllerEditAlbumMesBDPostFrbrDeleteTest extends Admin_AlbumC
 		$this->postDispatch('/admin/album/edit_album/id/43',
 												['titre' => 'Renaissance',
 												 'sous_titre' => 'Ze Renaissance',
+												 'cat_id' => 2,
 												 'description' => 'Oeuvres majeures sous François 1er',
 												 'nature_doc' => '2;3',
 												 'type_doc_id' => '102',
 												 'visible' => '1',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'genre' => '32;23',
 												 'dewey' => '0277;0285',
 												 'pcdm4' => '0683;0684',
@@ -1176,10 +1274,12 @@ class Admin_AlbumControllerEditAlbumMesBDPostFrbrModifyTest extends Admin_AlbumC
 		$this->postDispatch('/admin/album/edit_album/id/43',
 												['titre' => 'Renaissance',
 												 'sous_titre' => 'Ze Renaissance',
+												 'cat_id' => 2,
 												 'description' => 'Oeuvres majeures sous François 1er',
 												 'nature_doc' => '2;3',
 												 'type_doc_id' => '102',
 												 'visible' => '1',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'genre' => '32;23',
 												 'dewey' => '0277;0285',
 												 'pcdm4' => '0683;0684',
@@ -1290,13 +1390,13 @@ class Admin_AlbumControllerEditAlbumMesBDTest extends Admin_AlbumControllerEditA
 
 	/** @test */
 	public function formShouldHaveAComboToSelectCategorie() {
-		$this->assertXPathContentContains("//form//select[@name='cat_id']/option[1][@value=2]", 'Favoris');
+		$this->assertXPathContentContains("//form//select[@name='cat_id']/option[2][@value=2]", 'Favoris');
 	}
 
 
 	/** @test */
 	public function comboCategoriesShouldDisplayFullPath() {
-		$this->assertXPathContentContains("//form//select[@name='cat_id']/option[2][@value=6]", 'Favoris&gt;Adulte');
+		$this->assertXPathContentContains("//form//select[@name='cat_id']/option[3][@value=6]", 'Favoris&gt;Adulte');
 	}
 
 
@@ -1455,20 +1555,37 @@ class Admin_AlbumControllerEditAlbumMesBDTest extends Admin_AlbumControllerEditA
 
 
 	/** @test */
+	public function pageShouldContainsMultiInputsAuthors() {
+		$this->assertXPath('//div[@id="multi_inputs_authors"]');
+	}
+
+
+  /** @test */
 	public function pageShouldContainsScriptWithAuthorPba() {
-		$this->assertXPathContentContains('//div[@id="multi_inputs_authors"]/following-sibling::script','Pba',$this->_response->getBody());
+		$this->assertXPathContentContains('//script','Pba');
+	}
+
+
+	/** @test */
+	public function pageShouldContainsMultiInputsEditors() {
+		$this->assertXPath('//div[@id="multi_inputs_editors"]');
 	}
 
 
 	/** @test */
 	public function pageShouldContainsScriptWithEditorGlo() {
-		$this->assertXPathContentContains('//div[@id="multi_inputs_editors"]/following-sibling::script','Glo',$this->_response->getBody());
+		$this->assertXPathContentContains('//script','Glo');
 	}
 
 
+	/** @test */
+	public function pageShouldContainsMultiInputsCollections() {
+		$this->assertXPath('//div[@id="multi_inputs_collections"]');
+	}
+
 	/** @test */
 	public function pageShouldContainsScriptWithCollectionRatm() {
-		$this->assertXPathContentContains('//div[@id="multi_inputs_collections"]/following-sibling::script','Ratm',$this->_response->getBody());
+		$this->assertXPathContentContains('//script','Ratm');
 	}
 
 
@@ -1563,10 +1680,12 @@ class Admin_AlbumControllerPostEditAlbumMesBDTest extends Admin_AlbumControllerT
 		Storm_Cache::setDefaultZendCache($this->cache_mock);
 		$this->postDispatch('/admin/album/edit_album/id/43',
 												['titre' => 'Mes BD',
+												 'cat_id' => 2,
 												 'description' => "Les préférées de l'année",
 												 'tags' => 'selection',
 												 'type_doc_id' => 201,
 												 'visible' => '1',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'annee' => 1998,
 												 'matiere' => '5;6',
 												 'dewey' => '15',
@@ -1700,6 +1819,7 @@ abstract class Admin_AlbumControllerAlbumHarlockTestCase extends Admin_AlbumCont
 			'Class_Album',
 			['id' => 999,
 			 'titre' => 'Harlock',
+			 'status' => Class_Album::STATUS_VALIDATED,
 			 'id_origine' => 'HL22',
 			 'type_doc_id' => Class_TypeDoc::DIAPORAMA,
 			 'categorie' => $this->fixture('Class_AlbumCategorie', ['id' => 999, 'libelle' => '']),
@@ -2092,6 +2212,7 @@ class Admin_AlbumControllerAlbumHarlockPostRessourceOneActionTest extends Admin_
 
 		$this->postDispatch('/admin/album/edit_ressource/id/1',
 												['titre' => 'Atlantis',
+												 'status' => Class_Album::STATUS_VALIDATED,
 												 'description' => 'autre vaisseau',
 												 'link_to' => 'http://www.atlantis.com',
 												 'matiere' => '666',
@@ -2349,6 +2470,7 @@ class Admin_AlbumControllerPreviewAlbumMonopageTest extends Admin_AlbumControlle
 		parent::setUp();
 
 		Class_Album::newInstanceWithId(56, ['titre' => 'Journal',
+																				'status' => Class_Album::STATUS_VALIDATED,
 																				'thumbnail_width' => 400,
 																				'thumbnail_crop_left' => 10,
 																				'thumbnail_crop_right' => 5,
@@ -2409,7 +2531,7 @@ class Admin_AlbumControllerImportEADTest extends Admin_AlbumControllerTestCase {
 
 
 	/** @test */
-	public function titreShouldBeRessourcesEAD() {
+	public function titreShouldBeImportExportEAD() {
 		$this->assertXPathContentContains('//h1', 'Import/Export EAD');
 	}
 
@@ -2442,6 +2564,34 @@ class Admin_AlbumControllerImportEADTest extends Admin_AlbumControllerTestCase {
 
 
 
+class Admin_AlbumControllerImportDilicomTest extends Admin_AlbumControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->dispatch('/admin/album/import-dilicom', true);
+	}
+
+
+	/** @test */
+	public function titleShouldBeImportOffresPNB() {
+		$this->assertXPathContentContains('//h1', 'Import des offres Dilicom/PNB');
+	}
+
+
+	/** @test */
+	public function formImportOffersShouldContainsFileInputForXML() {
+		$this->assertXPath('//form[contains(@action, "admin/album/import-dilicom")]//input[@type="file"][@name="offers"]');
+	}
+
+
+	/** @test */
+	public function formShouldHaveSubmitButtonImportXML() {
+		$this->assertXPath('//input[@type="submit"][@value="Importer le fichier XML"]');
+	}
+}
+
+
+
+
 /** LL: quand j'aurais trouvé comment contourner is_uploaded_file */
 abstract class Admin_AlbumControllerPostImportEADTest extends Admin_AlbumControllerAlbumHarlockTestCase {
 	public function setUp() {
@@ -2475,6 +2625,7 @@ class Admin_AlbumControllerPreviewFilmArteVODTest extends Admin_AlbumControllerT
 		Class_Album::getLoader()
 			->newInstanceWithId(102)
 			->setTitre('Mulholland drive')
+			->setStatus(Class_Album::STATUS_VALIDATED)
 			->beArteVOD()
 			->setNotes(array(
 											 array('field' => '856',
@@ -2770,4 +2921,136 @@ class AlbumControllerMultiMediasExportEAD extends ControllerAlbumMultiMediasTest
 	}
 
 }
+
+
+
+
+class Admin_AlbumControllerAddAlbumToAjaxTest extends Admin_AlbumControllerTestCase {
+	protected
+		$_json,
+		$_xpath;
+
+	public function setUp() {
+		parent::setUp();
+
+		$this->dispatch('/admin/album/link_album_to/id_notice/8/render/popup', true);
+		$this->_json = json_decode($this->_response->getBody());
+		$this->_xpath = new Storm_Test_XPath();
+	}
+
+
+	/** @test */
+	public function titleElementShouldContainRecordTitle() {
+		$this->_xpath->assertXPath($this->_json->content, '//input[@type="text"][@name="titre"][@value="Colporteur d\'étoiles (Le)"]', $this->_response->getBody());
+	}
+
+
+	/** @test */
+	public function categoryElementShouldBePresent() {
+		$this->_xpath->assertXPath($this->_json->content, '//select[@name="cat_id"]/option[1][@label="Choisissez une catégorie"]');
+	}
+
+
+	/** @test */
+	public function docTypeElementShouldBePresent() {
+		$this->_xpath->assertXPath($this->_json->content, '//select[@name="type_doc_id"]');
+	}
+
+
+	/** @test */
+	public function indexElementBoxShouldBeUnchecked() {
+		$this->_xpath->assertXPath($this->_json->content, '//input[@type="checkbox"][@name="visible"][not(@checked)]');
+	}
+
+
+	/** @test */
+	public function formShouldContainDraftStatus() {
+		$this->_xpath->assertXpath($this->_json->content, '//form[@id="album"]//input[@name="status"][@value="1"]');
+	}
+
+
+	/** @test */
+	public function formShouldContainValidatedStatus() {
+		$this->_xpath->assertXpath($this->_json->content, '//form[@id="album"]//input[@name="status"][@value="3"]');
+	}
+
+
+	/** @test */
+	public function frbrLinkTypeElementShouldBePresent() {
+		$this->_xpath->assertXPath($this->_json->content, '//script',
+																											'{"name":"frbr_type","label":"Type de lien","attribs":{"style":"width:180px;"},"type":"select","options":{"":"Aucun","2:source":"Diaporama - Est le diaporama de","2:target":"Diaporama - A pour diaporama","1:source":"Ebook - A pour ebook","1:target":"Ebook - Est l\'ebook de"}}');
+
+	}
+
+
+	/** @test */
+	public function frbrRecordLinkElementShouldContainRecordPermalink() {
+		$this->_xpath->assertXPath($this->_json->content, '//script', '"frbr_url":["'.str_replace('/', '\/', ROOT_URL.BASE_URL).'\/recherche\/viewnotice\/clef\/DIAMANTSEMPOISONNES--HENRYA--PAYOT-2007-1\/id\/8"');
+	}
+}
+
+
+
+
+class Admin_AlbumControllerAddAlbumToAjaxPostTest extends Admin_AlbumControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->postDispatch('/admin/album/link_album_to/id_notice/8/render/popup',
+			['titre' => 'Before The Flood',
+			 'cat_id' => 2,
+			 'visible' => '1',
+			 'status' => Class_Album::STATUS_DRAFT,
+			 'type_doc_id' => 100,
+			 'frbr_type' => ['1:source'],
+			 'frbr_url' => [ROOT_URL.BASE_URL.'/admin/recherche/viewnotice/id_notice/8/clef/DIAMANTSEMPOISONNES--HENRYA--PAYOT-2007-1/id/8']], true);
+	}
+
+
+	/** @test */
+	public function newAlbumTitleShouldBeBeforeTheFlood() {
+		$this->assertEquals('Before The Flood', Class_Album::findFirstBy(['order'=>'id desc'])->getTitre());
+	}
+
+
+	/** @test */
+	public function shouldHaveCreatedFrbrLinkForBeforeTheFlood() {
+		$this->assertNotNull(Class_FRBR_Link::findFirstBy(['target' => ROOT_URL.BASE_URL.'/admin/recherche/viewnotice/id_notice/8/clef/DIAMANTSEMPOISONNES--HENRYA--PAYOT-2007-1/id/8']));
+	}
+
+
+	/** @test */
+	public function albumShouldNotBeIndexed() {
+		$this->assertNull( Class_Album::findFirstBy(['order'=>'id desc'])->getNotice());
+	}
+}
+
+
+
+
+class Admin_AlbumControllerAddAlbumToAjaxPostNoVisibleTest extends Admin_AlbumControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->postDispatch('/admin/album/link_album_to/id_notice/8/render/popup',
+			['titre' => 'Dark',
+			 'visible' => '0',
+			 'status' => Class_Album::STATUS_VALIDATED,
+			 'type_doc_id' => 100,
+			 'frbr_type' => ['1:source'],
+			 'frbr_url' => [ROOT_URL.BASE_URL.'/admin/recherche/viewnotice/id_notice/8/clef/DIAMANTSEMPOISONNES--HENRYA--PAYOT-2007-1/id/8']], true);
+	}
+
+
+	/** @test */
+	public function darkAlbumShouldBeSaved() {
+		$this->assertNotNull(Class_Album::findFirstBy(['titre' => 'Dark']));
+	}
+
+
+	/** @test */
+	public function shouldHaveCreatedFrbrLinkForDark() {
+		$this->assertNotNull(Class_FRBR_Link::findFirstBy(['target' => ROOT_URL.BASE_URL.'/admin/recherche/viewnotice/id_notice/8/clef/DIAMANTSEMPOISONNES--HENRYA--PAYOT-2007-1/id/8']));
+	}
+}
 ?>
diff --git a/tests/application/modules/admin/controllers/BatchControllerTest.php b/tests/application/modules/admin/controllers/BatchControllerTest.php
index d30c1c065778acff98df45eddb90fa02f41f0718..6336df003abd8c2534336ce93d83c744e9ab66a2 100644
--- a/tests/application/modules/admin/controllers/BatchControllerTest.php
+++ b/tests/application/modules/admin/controllers/BatchControllerTest.php
@@ -16,18 +16,19 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AbstractControllerTestCase.php';
-
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
+include_once('tests/fixtures/HarvestOrpheaFixtures.php');
 
 abstract class BatchControllerTestCase extends AbstractControllerTestCase {
-	
+
 	protected $_batch_import;
 
 	public function setUp() {
 		parent::setUp();
-		
+
 		Class_Batch::beVolatile();
 		Class_AdminVar::beVolatile();
 
@@ -36,8 +37,8 @@ abstract class BatchControllerTestCase extends AbstractControllerTestCase {
 		RessourcesNumeriquesFixtures::deactivateArteVod();
 		RessourcesNumeriquesFixtures::deactivateToutApprendre();
 		RessourcesNumeriquesFixtures::deactivateNumilog();
-		$this->_batch_import = $this->fixture('Class_Batch', 
-																					['id' => 3, 
+		$this->_batch_import = $this->fixture('Class_Batch',
+																					['id' => 3,
 																					 'type' => 'IMPORT_TYPO3',
 																					 'last_run' => '2012-05-01 10:23:00']);
 	}
@@ -55,7 +56,7 @@ class BatchControllerWithBatchInDb extends BatchControllerTestCase {
 
 	/** @test */
 	public function tableShouldContainsMoissonnageArteVod() {
-		$this->assertXPathContentContains('//tbody//tr[1]//td', 
+		$this->assertXPathContentContains('//tbody//tr[1]//td',
 																			Class_Batch::getBatchLibelle('IMPORT_TYPO3'));
 	}
 
@@ -87,13 +88,13 @@ class BatchControllerAddTest extends BatchControllerTestCase {
 		$this->dispatch('/admin/batch/add', true);
 	}
 
-	
+
 	/** @test */
 	public function selectElementBatchShouldBePresent() {
 		$this->assertXPath('//select[@name="type"]');
 	}
 
-	
+
 	/** @test */
 	public function selectElementShouldContainsMoissonnageVodeclic(){
 		$this->assertXPath('//select[@name="type"]/option[@value="MOISSONNAGE_VODECLIC"][@label="Moissonner catalogue Vodeclic"][not(@selected)]',$this->_response->getBody());
@@ -191,10 +192,10 @@ class BatchControllerAddPostTest extends BatchControllerTestCase {
 class BatchControllerRunMoissonnageVodeclicTest extends BatchControllerTestCase {
 	public function setUp() {
 		parent::setUp();
-		
+
 		$this->mock_batch = Storm_Test_ObjectWrapper::mock()
 			->whenCalled('run')->answers(true);
-		
+
 		$this->fixture('Class_Batch', ['id' => 6, 'type' => 'MOCKED']);
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Batch')
 			->whenCalled('getKnownType')->with('MOCKED')
@@ -216,7 +217,6 @@ class BatchControllerRunMoissonnageVodeclicTest extends BatchControllerTestCase
 	public function batchRunShouldCallFunctionSave(){
 		$this->assertTrue($this->mock_batch->methodHasNotBeenCalled('save'));
 	}
-
 }
 
 
@@ -241,4 +241,104 @@ class BatchControllerRunAjaxAutocompleteTest extends BatchControllerTestCase {
 	}
 }
 
+
+
+class BatchControllerRunMoissonnageOrpheaTest extends BatchControllerTestCase {
+	protected $_web_client;
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_web_client = Storm_Test_ObjectWrapper::mock()
+		->whenCalled('open_url')->answers('');
+
+		$this->batch_orphea = $this->fixture('Class_Batch',
+																				 ['id' => 4,
+																					'type' => 'MOISSONNAGE_ORPHEA',
+																					'last_run' => '2012-05-01 10:23:00']);
+
+		Class_WebService_BibNumerique_Orphea::setDefaultHttpClient($this->_web_client);
+
+		RessourcesNumeriquesFixtures::activateOrphea();
+
+		$this->_web_client
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_createsession&username=Bokeh&password=pwd&language=1')
+		->answers(HarvestOrpheaFixtures::correctLoginXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_search&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&extended=-1')
+		->answers(HarvestOrpheaFixtures::countNineRecordsXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_search&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&startfrom=0&maxrows=' . Class_WebService_BibNumerique_Orphea::RECORDS_BY_PAGE)
+		->answers(HarvestOrpheaFixtures::oneRecordXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getmetadata&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25217')
+		->answers(HarvestOrpheaFixtures::getMetadatasOrnithogale())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getassetsurl&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25217&return_full_url=1&fk_objectsize=3')
+		->answers(HarvestOrpheaFixtures::getAssetsUrlOrnithogale())
+
+		->whenCalled('open_url')
+		->with('http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro')
+		->answers('img')
+
+		->beStrict();
+
+		$this->dispatch('/admin/batch/run/id/4', true);
+	}
+
+
+	/** @test */
+	public function albumOrnithogaleShouldBeInDb() {
+		$this->assertNotNull(Class_Album::findFirstBy(['titre' => 'Ornithogale pyramidale']));
+	}
+}
+
+
+
+class BatchControllerIndexOrpheaTest extends BatchControllerTestCase {
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+
+		Storm_Model_Loader::defaultToVolatile();
+
+		$this->fixture('Class_Album',
+									 ['id' => 1,
+										'titre' => 'Orphea Album',
+										'status' => Class_Album::STATUS_VALIDATED,
+										'type_doc_id' => Class_TypeDoc::ORPHEA]);
+
+		$this->batch_indexation = $this->fixture('Class_Batch',
+																						 ['id' => 4,
+																							'type' => 'INDEX_RESSOURCES_NUMERIQUES',
+																							'last_run' => '2012-05-01 10:23:00']);
+		$this->batch_indexation->run();
+	}
+
+
+  /** @test */
+	public function orpheaAlbumShoudlBeIndexed() {
+		$this->assertNotNull(Class_Notice::find(1));
+	}
+}
 ?>
diff --git a/tests/application/modules/admin/controllers/CmsControllerTest.php b/tests/application/modules/admin/controllers/CmsControllerTest.php
index 8401f015acbe9b13cb4074ae9821cecac33a70d1..d2d89edd994e6446b5b05395153fc6ba1c1052cf 100644
--- a/tests/application/modules/admin/controllers/CmsControllerTest.php
+++ b/tests/application/modules/admin/controllers/CmsControllerTest.php
@@ -175,7 +175,8 @@ abstract class CmsControllerTestCase extends Admin_AbstractControllerTestCase {
 																		 'tags' => 'concert;jazz',
 																		 'avis' => true,
 																		 'indexation' => false,
-																		 'date_creation' => '2010-12-25',
+																		 'date_creation' => '2010-12-25 10:23:23',
+																		 'date_maj' => '2010-12-26  11:12:34',
 																		 'domaine_ids' => [11,12],
 																		 'avis_users' => []]);
 
@@ -273,7 +274,6 @@ class CmsControllerArticleEditWithoutLanguesTest extends CmsControllerWithPermis
 
 
 class CmsControllerArticleConcertAsAdminPortailEditActionTest extends CmsControllerWithPermissionTestCase {
-
 	protected function _loginHook($account) {
 		$account->ROLE = "admin_portail";
 		$account->ROLE_LEVEL = ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL;
@@ -301,6 +301,20 @@ class CmsControllerArticleConcertAsAdminPortailEditActionTest extends CmsControl
 	}
 
 
+	/** @test */
+	public function contentHeadShouldContainsLastEditOn26December() {
+		$this->assertXPathContentContains('//div[@class="content_edit_head"]//dl/dd[preceding-sibling::dt[contains(text(), "Modifié le")]]',
+																			'26 décembre 2010 11:12:34');
+	}
+
+
+	/** @test */
+	public function contentHeadShouldContainsCretedOn25December() {
+		$this->assertXPathContentContains('//div[@class="content_edit_head"]//dl/dd[preceding-sibling::dt[contains(text(), "Créé le")]]',
+																			'25 décembre 2010 10:23:23');
+	}
+
+
 	/** @test */
 	function categorieSelectShouldContainsOptGroupAnnecy() {
 		$this->assertXPath('//select[@name="id_cat"]//optgroup[@label="Annecy"]');
@@ -875,14 +889,14 @@ class CmsControllerArticleConcertEditActionPostTest extends CmsControllerWithPer
 
 	/** @test */
 	public function clefAlphaShouldBeAsExpected() {
-		$this->assertEquals('ERIKTRUFFAZLADYLANDQUARTETENCONCERT------8',
+		$this->assertEquals('ERIKTRUFFAZLADYLANDQUARTETENCONCERT-4-TOM----8',
 												Class_Article::find(4)->getAlphaKey());
 	}
 
 
 	/** @test */
 	public function erikTruffazShouldBeLinkedToExpectedDomain() {
-		$this->assertEquals(10, Class_NoticeDomain::findFirstBy(['record_alpha_key' => 'ERIKTRUFFAZLADYLANDQUARTETENCONCERT------8'])->getDomainId());
+		$this->assertEquals(10, Class_NoticeDomain::findFirstBy(['record_alpha_key' => 'ERIKTRUFFAZLADYLANDQUARTETENCONCERT-4-TOM----8'])->getDomainId());
 	}
 
 
@@ -955,7 +969,6 @@ class CmsControllerArticleConcertEditActionPostTest extends CmsControllerWithPer
 
 	/** @test */
 	function derniereModificationShouldBeNow() {
-
 		$this->assertContains( date('Y-m-d'),
 													 Class_Article::find(4)->getDateMaj());
 	}
diff --git a/tests/application/modules/admin/controllers/HarvestControllerOrpheaTest.php b/tests/application/modules/admin/controllers/HarvestControllerOrpheaTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e9d3b42d5b3ffb487605dbee0beb2f2c83666d46
--- /dev/null
+++ b/tests/application/modules/admin/controllers/HarvestControllerOrpheaTest.php
@@ -0,0 +1,371 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+include_once('tests/fixtures/HarvestOrpheaFixtures.php');
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
+
+abstract class HarvestControllerOrpheaTestCase extends Admin_AbstractControllerTestCase {
+
+	protected $_web_client;
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_web_client = Storm_Test_ObjectWrapper::mock()
+		->whenCalled('open_url')->answers('');
+
+		Class_WebService_BibNumerique_Orphea::setDefaultHttpClient($this->_web_client);
+	}
+}
+
+
+
+class HarvestControllerOrpheaNotActivatedTest extends HarvestControllerOrpheaTestCase {
+	public function setUp() {
+		parent::setUp();
+		RessourcesNumeriquesFixtures::deactivateOrphea();
+		$this->dispatch('/admin/harvest/orphea-browse', true);
+	}
+
+
+	/** @test */
+	public function orpheaNotActivatedShouldRedirectToIndex() {
+		$this->assertRedirectTo('/admin/index');
+	}
+}
+
+
+class HarvestControllerOrpheaBrowseTest extends HarvestControllerOrpheaTestCase {
+	public function setUp() {
+		parent::setUp();
+		RessourcesNumeriquesFixtures::activateOrphea();
+
+		$this->dispatch('/admin/harvest/orphea-browse', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveProgressBar() {
+		$this->assertContains("orphea_harvest(data['unid'], page_number+1, data['total_pages'])", $this->_response->getBody());
+	}
+}
+
+
+
+class HarvestControllerOrpheaActivatedWrongParamsTest extends HarvestControllerOrpheaTestCase {
+	public function setUp() {
+		parent::setUp();
+		RessourcesNumeriquesFixtures::activateOrphea();
+
+		$this->_web_client
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_createsession&username=Bokeh&password=pwd&language=1')
+		->answers(HarvestOrpheaFixtures::errorLoginXML());
+
+		$this->dispatch('/admin/harvest/orphea-ajax', true);
+	}
+
+
+	/** @test */
+	public function shouldReturnErrorMessage() {
+		$expected = [
+			'error' => 'Invalid Username/Password.',
+		];
+		$this->assertEquals($expected, json_decode($this->_response->getBody(), TRUE));
+	}
+}
+
+class HarvestControllerOrpheaActivatedGoodParamsTest extends HarvestControllerOrpheaTestCase {
+	public function setUp() {
+		parent::setUp();
+		RessourcesNumeriquesFixtures::activateOrphea();
+
+		$this->_web_client
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_createsession&username=Bokeh&password=pwd&language=1')
+		->answers(HarvestOrpheaFixtures::correctLoginXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_search&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&extended=-1')
+		->answers(HarvestOrpheaFixtures::countRecordsXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_search&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&startfrom=0&maxrows=' . Class_WebService_BibNumerique_Orphea::RECORDS_BY_PAGE)
+		->answers(HarvestOrpheaFixtures::oneRecordXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getmetadata&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25217')
+		->answers(HarvestOrpheaFixtures::getMetadatasOrnithogale())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getassetsurl&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25217&return_full_url=1&fk_objectsize=3')
+		->answers(HarvestOrpheaFixtures::getAssetsUrlOrnithogale())
+
+		->whenCalled('open_url')
+		->with('http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro')
+		->answers('img')
+
+		->beStrict();
+
+		$this->dispatch('/admin/harvest/orphea-ajax', true);
+	}
+
+
+	/** @test */
+	public function shouldReturnExpectedJson() {
+		$response = json_decode($this->_response->getBody(), TRUE);
+		$expected = ['unid' => 'zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg',
+								 'total_count' => 311,
+								 'current_page' => 1,
+								 'total_pages' => 32,
+								 'has_next' => 1,
+		];
+
+		$this->assertEquals($expected, $response);
+	}
+
+
+	/** @test */
+	public function parserShouldReturnOrnithogaleAlbum() {
+		$this->assertNotNull(Class_Album::findFirstBy(['titre' => 'Ornithogale pyramidale']));
+	}
+
+
+	/** @test */
+	public function contextShouldExpectation() {
+		$this->assertEquals('Ornithogale pyramidale', Class_Album::find(1)->getTitre());
+	}
+
+
+	/** @test */
+	public function captionShouldBeHasExpected() {
+		$this->assertEquals('Ornithogale pyramidale [...]', Class_Album::find(1)->getDescription());
+	}
+
+
+	/** @test */
+	public function copyrightShouldBeHasExpected() {
+		$this->assertEquals('Ville de Cherbourg-Octeville', Class_Album::find(1)->getDroits());
+	}
+
+
+	/** @test */
+	public function bylineShouldNeHasExpect() {
+		$this->assertEquals('Redouté, Pierre-Joseph (1759-1840)', Class_Album::find(1)->getAuthors()[0]->getName());
+	}
+
+
+	/** @test */
+	public function provinceStateShouldBeHasExpected() {
+		$this->assertEquals('Ville de Cherbourg', Class_Album::find(1)->getProvenance());
+	}
+
+
+	/** @test */
+	public function longStringShouldBeHasExpected() {
+		$this->assertEquals('Didot jeune', Class_Album::find(1)->getEditors()[0]);
+	}
+
+
+	/** @test */
+	public function keywordsShouldBeHasExpected() {
+		$this->assertEquals('Botanique;Flore;Plantes', Class_Album::find(1)->getGenre());
+	}
+
+
+	/** @test */
+	public function idOrigineShouldBeHasExpected() {
+		$this->assertEquals('25102', Class_Album::find(1)->getIdOrigine());
+	}
+
+
+	/** @test */
+	public function albumShouldBeInOrpheaCategorie() {
+		$this->assertContains(Class_Album::find(1), Class_AlbumCategorie::findFirstBy(['libelle' => 'Orphea'])->getAlbums());
+	}
+
+
+  /** @test */
+  public function ornithogaleShouldContainsUrlMedia() {
+    $ressources = Class_Album::find(1)->getRessources();
+    $this->assertEquals('http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro', $ressources[0]->getUrl());
+  }
+
+
+	/** @test */
+	public function albumShouldHavePoster() {
+		$this->assertEquals('http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro', Class_Album::find(1)->getPoster());
+	}
+
+}
+
+
+
+class HarvestControllerOrpheaActivatedHarvestPageFourGoodParamsTest extends HarvestControllerOrpheaTestCase {
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		RessourcesNumeriquesFixtures::activateOrphea();
+
+		$this->_web_client
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_search&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&startfrom=310&maxrows=' . Class_WebService_BibNumerique_Orphea::RECORDS_BY_PAGE)
+		->answers(HarvestOrpheaFixtures::twoRecordsXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getmetadata&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25100')
+		->answers(HarvestOrpheaFixtures::getMetadatasOrnithogale())
+
+->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getmetadata&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25093')
+		->answers(HarvestOrpheaFixtures::getMetadatasPyramidale())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getassetsurl&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25100&return_full_url=1&fk_objectsize=3')
+		->answers(HarvestOrpheaFixtures::getAssetsUrlOrnithogale())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getassetsurl&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25093&return_full_url=1&fk_objectsize=3')
+		->answers(HarvestOrpheaFixtures::getAssetsUrlPyramidale())
+
+		->whenCalled('open_url')
+		->with('http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro')
+		->answers('img')
+
+		->beStrict();
+
+		$this->dispatch('/admin/harvest/orphea-ajax/unid/zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg/page/32/total_count/311', true);
+	}
+
+
+	/** @test */
+	public function shouldReturnExpectedJson() {
+		$response = json_decode($this->_response->getBody(), TRUE);
+		$expected = ['unid' => 'zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg',
+								 'total_count' => 311,
+								 'current_page' => 32,
+								 'total_pages' => 32];
+
+		$this->assertEquals($expected, $response);
+	}
+
+
+	/** @test */
+	public function twoAlbumsShouldHabeBeenSaved() {
+		$this->assertCount(2, Class_Album::findAll());
+	}
+
+
+	/** @test */
+	public function pyramidaleShouldBeTpyeOrphea() {
+		$this->assertTrue(Class_Album::findFirstBy(['titre' => 'Pyramidale'])->isOrphea());
+	}
+
+
+	/** @test */
+	public function pyramidaleRessourceShouldBePresent() {
+		$this->assertNotNull(Class_AlbumRessource::findFirstBy(['titre' => 'Pyramidale']));
+	}
+}
+
+
+
+
+class HarvestControllerOrpheaUpdateTest extends HarvestControllerOrpheaTestCase {
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		RessourcesNumeriquesFixtures::activateOrphea();
+
+		$this->fixture('Class_Album',
+									 ['id' => 1,
+										'titre' => 'Ornitogale',
+										'id_origine' => '25100',
+										'type_doc_id' => Class_TypeDoc::ORPHEA]);
+
+		$this->fixture('Class_Album',
+									 ['id' => 2,
+										'titre' => 'Octogonale',
+										'id_origine' => '98742',
+										'type_doc_id' => Class_TypeDoc::ORPHEA]);
+
+		$this->_web_client
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_search&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&startfrom=30&maxrows=' . Class_WebService_BibNumerique_Orphea::RECORDS_BY_PAGE)
+		->answers(HarvestOrpheaFixtures::twoRecordsXML())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getmetadata&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25093')
+		->answers(HarvestOrpheaFixtures::getMetadatasPyramidale())
+
+		->whenCalled('open_url')
+		->with('https://phototheque.bokeh.org/dotgateway/index.pgi?function=f_getassetsurl&unid=zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg&objectident=25093&return_full_url=1&fk_objectsize=3')
+		->answers(HarvestOrpheaFixtures::getAssetsUrlPyramidale())
+
+			;//->beStrict();
+
+		$this->dispatch('/admin/harvest/orphea-ajax/unid/zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg/page/4/total_count/311', true);
+	}
+
+
+	/** @test */
+	public function pyramidaleAlbumShouldBeCreated() {
+		$this->assertNotNull(Class_Album::findFirstBy(['titre' => 'Pyramidale']));
+	}
+
+
+		/** @test */
+	public function pyramidaleAlbumShouldBeSavedWithValidatedStatus() {
+		$this->assertEquals(Class_Album::STATUS_VALIDATED, Class_Album::findFirstBy(['titre' => 'Pyramidale'])->getStatus());
+	}
+
+
+
+	/** @test */
+	public function octogonaleShouldNotBeDeleted() {
+		$this->assertNotNull(Class_Album::findFirstBy(['titre' => 'Octogonale']));
+	}
+
+
+	/** @test */
+	public function threeAlbumsShouldBePresent() {
+		$this->assertCount(3, Class_Album::findAll());
+	}
+}
\ No newline at end of file
diff --git a/tests/application/modules/admin/controllers/ProfilControllerTest.php b/tests/application/modules/admin/controllers/ProfilControllerTest.php
index 2a84ff649fe5ff6673ece84f1ded140ef7c86000..37a02c60db108b030a673c01ac263534dfd4d9e5 100644
--- a/tests/application/modules/admin/controllers/ProfilControllerTest.php
+++ b/tests/application/modules/admin/controllers/ProfilControllerTest.php
@@ -618,7 +618,8 @@ class Admin_ProfilControllerProfilJeunesseModuleNoticeTest extends Admin_ProfilC
 									'date_retour' => 1,
 									'localisation' => 0,
 									'plan' => 1,
-									'resa' => 1);
+									'resa' => 1,
+									'en_pret' => 'emprunté');
 		$this
 			->getRequest()
 			->setMethod('POST')
diff --git a/tests/application/modules/admin/controllers/SystemeControllerWebServicesTest.php b/tests/application/modules/admin/controllers/SystemeControllerWebServicesTest.php
index dbaafd189debfd85d5bc41d6a45ef2c330e42e8d..d4fa1b9241a40bef931f83b29f302d40dd6280bd 100644
--- a/tests/application/modules/admin/controllers/SystemeControllerWebServicesTest.php
+++ b/tests/application/modules/admin/controllers/SystemeControllerWebServicesTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AdminAbstractControllerTestCase.php';
 
@@ -35,7 +35,7 @@ class SystemeControllerWebServicesIndexActionTest extends Admin_AbstractControll
 
 	/** @test */
 	public function amazonRendAvisShouldBeVisible() {
-		$this->assertXPathContentContains('//a[contains(@href, "webservices/id_service/Amazon/id_fonction/1")]', 
+		$this->assertXPathContentContains('//a[contains(@href, "webservices/id_service/Amazon/id_fonction/1")]',
 																			'rend_avis(isbn,page)');
 	}
 }
@@ -44,28 +44,28 @@ class SystemeControllerWebServicesIndexActionTest extends Admin_AbstractControll
 
 
 class SystemeControllerWebServicesActionTest extends Admin_AbstractControllerTestCase {
-	/** 
+	/**
 	 * @group longtest
 	 * @group integration
-	 * @test 
+	 * @test
 	 */
 	public function webServiceFnacGetResumeShouldWork() {
 		$this->dispatch('/admin/systeme/webservices/id_service/Fnac/id_fonction/1');
-		$this->assertXPathContentContains('//pre[@class="resultat"]', 
-																			'Tandis que Lisbeth Salander',
+		$this->assertXPathContentContains('//pre[@class="resultat"]',
+																			'Une enquête sur un réseau de prostitution dévoile des secrets d\'espionnage',
 																			$this->_response->getBody());
 	}
 
 
-	/** 
+	/**
 	 * @group longtest
 	 * @group integration
-	 * @test 
+	 * @test
 	 */
 	public function webServicePremiereGetResumeShouldWork() {
 		$this->dispatch('/admin/systeme/webservices/id_service/Premiere/id_fonction/1', true);
-		$this->assertXPathContentContains('//pre[@class="resultat"]', 
-																			'Jake Sully est un ancien marine');
+		$this->assertXPathContentContains('//pre[@class="resultat"]',
+																			'Jake Sully est un ancien marine', $this->_response->getBody());
 	}
 }
 
diff --git a/tests/application/modules/admin/controllers/UsersControllerTest.php b/tests/application/modules/admin/controllers/UsersControllerTest.php
index 91937830278924e227dcae14d53cfd42a83b9491..efb11aa247b647a15361b5081ba59534281253af 100644
--- a/tests/application/modules/admin/controllers/UsersControllerTest.php
+++ b/tests/application/modules/admin/controllers/UsersControllerTest.php
@@ -37,29 +37,32 @@ abstract class UsersControllerWithMarcusTestCase extends AbstractControllerTestC
 
 		$group_stagiaires = Class_UserGroup::newInstanceWithId(25, ['libelle' => 'Stagiaires']);
 
-		$this->marcus = Class_Users::getLoader()
-			->newInstanceWithId(10)
-			->setPrenom('Marcus')
-			->setNom('Miller')
-			->setLogin('mmiller')
-			->setMail('marcus@gmail.com')
-			->setPseudo('mimi')
-			->setPassword('mysecret')
-			->setFicheSIGB(array('type_comm' => 0, 'nom_aff' => 'Marcus'))
-			->setRole('abonne_sigb')
-			->setRoleLevel(ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB)
-			->setBib(Class_Bib::getLoader()->newInstanceWithId(1)->setIdZone(null))
-			->setIdabon('00123')
-			->setOrdreabon(1)
-			->setDateDebut('19-07-2009')
-			->setDateFin('19-07-2010')
-			->setTelephone('01 23 45 67 89')
-			->setMobile('06 23 45 67 89')
-			->setAdresse('34 avenue Funk')
-			->setCodePostal('99000')
-			->setVille('Jazz City')
+		$this->mybib = $this->fixture('Class_Bib', ['id' => 1,
+																								'id_zone' => null]);
+
+		$this->marcus = $this->fixture('Class_Users', ['id' => 10,
+																									 'prenom' => 'Marcus',
+																									 'nom' => 'Miller',
+																									 'login' => 'mmiller',
+																									 'mail'=> 'marcus@gmail.com',
+																									 'pseudo' => 'mimi',
+																									 'password' => 'mysecret',
+																									 'role' => 'abonne_sigb',
+																									 'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB,
+																									 'idabon' => '00123',
+																									 'bib' => $this->mybib,
+																									 'ordreabon' => 1,
+																									 'date_debut' => '19-07-2009',
+																									 'date_fin' => '19-07-2010',
+																									 'telephone' => '01 23 45 67 89',
+																									 'mobile' => '06 23 45 67 89',
+																									 'adresse' => '34 avenue Funk',
+																									 'code_postal' => '99000',
+																									 'ville' => 'Jazz City',
+																									 'civilite' => Class_Users::CIVILITE_MONSIEUR]);
+
+		$this->marcus->setFicheSIGB(array('type_comm' => 0, 'nom_aff' => 'Marcus'))
 			->setUserGroups([$group_vodeclic,$group_referent])
-			->setCivilite(Class_Users::CIVILITE_MONSIEUR)
 			->setIntBib(Class_IntBib::newInstanceWithId(1, ['comm_sigb' => 0]));
 
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_UserGroup')
@@ -261,6 +264,24 @@ class rsControllerEditMarcusAsAdminPortailTest extends UsersControllerWithMarcus
 
 
 
+class UsersControllerDeleteMarcusTest extends UsersControllerWithMarcusTestCase {
+	public function setUp() {
+	  parent::setUp();
+		$this->dispatch('/admin/users/delete/id/10', true);
+	  Class_Users::clearCache();
+	}
+
+
+	/** @test */
+	public function marcusShouldHaveBeenDeleted() {
+		$this->assertEmpty(Class_Users::find(10));
+	}
+
+}
+
+
+
+
 class UsersControllerPostMarcusDataTest extends UsersControllerWithMarcusTestCase {
 	public function setUp() {
 		parent::setUp();
diff --git a/tests/application/modules/opac/controllers/AbonneControllerAvisTest.php b/tests/application/modules/opac/controllers/AbonneControllerAvisTest.php
index 1ff877529fb7ecedb7828c70a52767ec37cf1801..975dd709719242d637f6d1655f33045859c749e8 100644
--- a/tests/application/modules/opac/controllers/AbonneControllerAvisTest.php
+++ b/tests/application/modules/opac/controllers/AbonneControllerAvisTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AbstractControllerTestCase.php';
 
@@ -35,7 +35,7 @@ abstract class AbonneFlorenceIsLoggedControllerTestCase extends AbstractControll
 		Class_Notice::beVolatile();
 		$this->florence = Class_Users::newInstanceWithId(123456)
 			->setPseudo('FloFlo')
-			->setRoleLevel(3)
+			->setRoleLevel(2)
 			->setRole('abonne_sigb')
 			->setLogin('florence')
 			->setPassword('caramel')
@@ -43,9 +43,9 @@ abstract class AbonneFlorenceIsLoggedControllerTestCase extends AbstractControll
 			->setIdabon('00123')
 			->setFicheSIGB(['type_com' => 0]);
 		$this->florence->save();
-		
+
 		ZendAfi_Auth::getInstance()->logUser($this->florence);
-		
+
 	}
 }
 
@@ -54,7 +54,7 @@ abstract class AbonneFlorenceIsLoggedControllerTestCase extends AbstractControll
 abstract class AbonneControllerAvisTestCase extends AbonneFlorenceIsLoggedControllerTestCase {
 	public function setUp() {
 		parent::setUp();
-	
+
 		$this->potter = Class_Notice::newInstanceWithId(53,
 																												['clef_oeuvre' =>'POTTER']);
 		$this->potter->save();
@@ -118,10 +118,10 @@ class AbonneControllerAvisInvalidNoticeAvisSaveTest extends  AbonneControllerAvi
 
 
 	public function testAvisTooShort() {
-		$data = array('avisEntete' => 'Sorcellerie',
-									'avisTexte' => 'On adore',
-									'avisNote' => 5,
-									'avisSignature' => 'FloCouv');
+		$data = ['avisEntete' => 'Sorcellerie',
+						 'avisTexte' => 'On adore',
+						 'avisNote' => 5,
+						 'avisSignature' => 'FloCouv'];
 		$this->xpath = new Storm_Test_XPath();
 		$this->getRequest()
 			->setMethod('POST')
@@ -130,7 +130,9 @@ class AbonneControllerAvisInvalidNoticeAvisSaveTest extends  AbonneControllerAvi
 		$this->json = json_decode($this->_response->getbody());
 		$this->assertController('abonne');
 		$this->assertAction('avis');
-		$this->xpath->assertXPathContentContains($this->json->content,'//p[@class="error"]','une longueur comprise entre 10 et 1200',$this->_response->getBody());
+		$this->xpath->assertXPathContentContains($this->json->content,
+																						 '//p[@class="error"]','une longueur comprise entre 10 et 1200',
+																						 $this->_response->getBody());
 	}
 
 	public function testEmptyEntete() {
@@ -166,7 +168,7 @@ class AbonneControllerAvisNoticeAvisSaveTest extends  AbonneControllerAvisTestCa
 		$expected_avis->save();
 		$this->postAndAssertAvisIsSaved($expected_avis);
 	}
-	
+
 
 	public function postAndAssertAvisIsSaved($expected_avis) {
 		$data = ['avisEntete' => 'Sorcellerie',
@@ -298,7 +300,7 @@ abstract class AvisControllersFixturesTestCase extends AbonneFlorenceIsLoggedCon
 																																	 'abon_ou_bib'=>1 ,
 																																	 'notices' => [$this->millenium,
 																																								 $this->millenium_with_vignette] ]);
-		
+
 		$this->avis_millenium->save();
 		$this->potter = Class_Notice::newInstance();
 		$this->potter
@@ -306,7 +308,7 @@ abstract class AvisControllersFixturesTestCase extends AbonneFlorenceIsLoggedCon
 			->setAuteurPrincipal('')
 			->setUrlVignette('http://amazon.com/vignette_potter.png');
 		$this->potter->save();
-		$this->avis_potter = Class_AvisNotice::newInstanceWithId(25, 
+		$this->avis_potter = Class_AvisNotice::newInstanceWithId(25,
 																														 ['entete' => 'Prenant',
 																															'avis' => "Mais un peu trop naïf",
 																															'note'=>4,
@@ -315,7 +317,7 @@ abstract class AvisControllersFixturesTestCase extends AbonneFlorenceIsLoggedCon
 																															'statut' => 1,
 																															'abon_out_bib' => 1,
 																															'notices' => [$this->potter]]);
-		
+
 		$this->avis_potter->save();
 
 		$this->avis_lost = Class_AvisNotice::newInstanceWithId(67,
@@ -380,7 +382,7 @@ class AbonneControllerAvisViewFicheWithAvisTest extends AvisControllersFixturesT
 
 	/** @test */
 	public function pageShouldDisplayVousAvezRedigeDeuxAvis() {
-		$this->assertXPathContentContains('//a', 
+		$this->assertXPathContentContains('//a',
 																			'Vous avez rédigé 2 avis',
 																			$this->_response->getBody());
 	}
@@ -482,8 +484,8 @@ class AbonneControllerAvisRssControllerViewAvisUserTest extends AvisControllersF
 
 	/** @test */
 	function linkShouldBeLocalhostAfiOpac3BlogRssUser123456() {
-		$this->assertXPathContentContains('//channel/link', 
-																			'http://localhost' . BASE_URL . '/blog/viewauteur/id/123456', 
+		$this->assertXPathContentContains('//channel/link',
+																			'http://localhost' . BASE_URL . '/blog/viewauteur/id/123456',
 																			$this->_response->getBody());
 	}
 
@@ -502,7 +504,7 @@ class AbonneControllerAvisRssControllerViewAvisUserTest extends AvisControllersF
 
 	/** @test */
 	function firstItemLinkShouldBeBlogViewAvisId13() {
-		$this->assertXPathContentContains('//channel/item/link', 
+		$this->assertXPathContentContains('//channel/item/link',
 																			"http://localhost" . BASE_URL . "/blog/viewavis/id/13",$this->_response->getBody());
 	}
 
@@ -532,7 +534,7 @@ class RssControllerViewAvisInexistingUserTest extends AvisControllersFixturesTes
 
 	/** @test */
 	function linkShouldBeLocalhostAfiOpac3BlogRssUserMinusOne() {
-		$this->assertXPathContentContains('//channel/link', 
+		$this->assertXPathContentContains('//channel/link',
 																			'http://localhost' . BASE_URL . '/blog/viewauteur/id/-1');
 	}
 }
@@ -611,8 +613,8 @@ abstract class ModuleSelectionCritiquesTestCase extends AvisControllersFixturesT
 		$this->_generateLoaderFor('Class_AvisNotice', array('getAvisFromPreferences'))
 			->expects($this->once())
 			->method('getAvisFromPreferences')
-			->will($this->returnValue([$this->avis_millenium, 
-																 $this->avis_potter, 
+			->will($this->returnValue([$this->avis_millenium,
+																 $this->avis_potter,
 																 $this->avis_lost]));
 	}
 }
@@ -711,7 +713,7 @@ class AbonneControllerAvisBlogControllerViewReadAvisTest extends  AbonneFlorence
 	/** @test */
 	public function blogViewAvisWithClefInUrlShouldCleanItInNoticeLink() {
 		$this->dispatch('/opac/blog/viewavis/id/18/clef/ZORK');
-		$this->assertXPath('//a[contains(@href, "recherche/viewnotice/id/23/clef/MILLENIUM")]', 
+		$this->assertXPath('//a[contains(@href, "recherche/viewnotice/id/23/clef/MILLENIUM")]',
 											 $this->_response->getBody());
 	}
 
@@ -762,7 +764,7 @@ class AbonneControllerEditAvisNoticeNotAdminLoggedActionTest extends AbstractCon
 
 	/** @test */
 	public function responseShouldReloadPage() {
-		$this->assertTrue(false !== strpos(json_decode($this->_response->getBody())->title, 'Sauvegarde en cours'), 
+		$this->assertTrue(false !== strpos(json_decode($this->_response->getBody())->title, 'Sauvegarde en cours'),
 											$this->_response->getBody());
 	}
 }
@@ -794,7 +796,7 @@ class AbonneControllerEditAvisNoticeAdminLoggedActionTest extends AbstractContro
 		$this->xpath->assertXPath($this->json->content, '//form[contains(@action, "abonne/editavisnotice")]');
 	}
 
-	
+
 	/** @test */
 	public function enteteInputShouldBePresent() {
 		$this->xpath->assertXPath($this->json->content, '//input[@name="entete"]');
@@ -834,7 +836,7 @@ class AbonneControllerEditAvisNoticeAdminLoggedPostActionTest extends AbstractCo
 																		'clef_oeuvre' => 'GARCONNIERELA--GREMILLONH-',
 																		'clef_alpha' => 'GARCONNIERELA--GREMILLONH--FLAMMARION-2013-1']);
 
-		$this->postDispatch('/opac/abonne/editavisnotice/id/54', 
+		$this->postDispatch('/opac/abonne/editavisnotice/id/54',
 												['entete' => 'bye',
 												 'avis' => 'ceci n\'est pas le contenu',
 												 'url' => 'http://localhost/recherche/viewnotice/expressionRecherche/la+garconniere/tri/%2A/facette/T1/clef/GARCONNIERELA--GREMILLONH--FLAMMARION-2013-1/id/1190178'],
@@ -880,7 +882,7 @@ class AbonneControllerDeleteAvisNoticeAdminLoggedActionTest extends AbstractCont
 		$this->assertEmpty(Class_AvisNotice::findAll());
 	}
 
-	
+
 	/** @test */
 	public function shouldContainsSciptToRedirectToReferer() {
 		$this->assertContains('window.location=\"opac\/recherche\/viewnotice\/id\/1\"', $this->_response->getBody());
diff --git a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
index b9259d9266ab98307f201c2295f78f793ddb43ae..60e2f57f558bf635f90d7856ac1332ebe9f640f3 100644
--- a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
+++ b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
@@ -11,12 +11,12 @@
  *
  * BOKEH 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
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
  * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 require_once 'AbstractControllerTestCase.php';
@@ -28,17 +28,17 @@ trait TAbonneControllerMultimediaFixtureHoldSuccessOnSept12 {
 			->whenCalled('findByIdOrigine')
 			->answers(Class_Multimedia_Location::newInstanceWithId(1));
 
-				
+
 		$this->onLoaderOfModel('Class_Multimedia_Device')
 			->whenCalled('findByIdOrigineAndLocation')
 			->answers(Class_Multimedia_Device::newInstanceWithId(1));
-				
+
 		$this->onLoaderOfModel('Class_Multimedia_DeviceHold')
 			->whenCalled('getHoldOnDeviceAtTime')
 			->answers(Class_Multimedia_DeviceHold::newInstanceWithId(333)
 				->setIdUser($this->_user->getId())
 				->setEnd(strtotime('2012-09-12 16:40:00')));
-				
+
 		parent::_launch();
 	}
 }
@@ -69,7 +69,7 @@ abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractCo
 			->whenCalled('getIdentity')->answers(null)
 			->whenCalled('newAuthSIGB')->answers('auth_sigb')
 			->whenCalled('newAuthDb')->answers('auth_db');
-		
+
 		ZendAfi_Auth::setInstance($this->_auth);
 	}
 
@@ -108,7 +108,7 @@ abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractCo
 			->whenCalled('findFirstBy')
 			->with(array('login'=> $user->getLogin()))
 			->answers($user)
-				
+
 			->whenCalled('findFirstBy')
 			->answers(null);
 	}
@@ -130,7 +130,7 @@ abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractCo
 
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_UserGroup')
 			->whenCalled('findAllBy')
-			->with(['role_level' => $user->getRoleLevel(), 
+			->with(['role_level' => $user->getRoleLevel(),
 							'group_type' => Class_UserGroup::TYPE_DYNAMIC])
 			->answers([]);
 	}
@@ -143,7 +143,7 @@ class AbonneControllerMultimediaAuthenticateValidationTest extends AbonneControl
 	public function setUp() {
 		parent::setUp();
 		$this->_expectUserToLoad(AbonneControllerMultimediaUsersFixtures::getLaurent());
-	}		
+	}
 
 
 	/** @test */
@@ -185,7 +185,7 @@ class AbonneControllerMultimediaAuthenticateValidationTest extends AbonneControl
 	/** @test */
 	public function authenticateAbonneLaurentPasswordXXXShouldReturnWrongPassword() {
 		$json = $this->getJson('/abonne/authenticate/login/laurent/password/xxx/poste/1/site/1');
-		$this->assertEquals("PasswordIsWrong", $json->error);	
+		$this->assertEquals("PasswordIsWrong", $json->error);
 	}
 }
 
@@ -204,7 +204,7 @@ class AbonneControllerMultimediaAuthenticateMireilleTest extends AbonneControlle
 
 	/** @test */
 	public function shouldReturnSubscriptionExpired() {
-		$this->assertEquals('SubscriptionExpired', $this->_json->error);	
+		$this->assertEquals('SubscriptionExpired', $this->_json->error);
 	}
 
 
@@ -233,8 +233,8 @@ abstract class AbonneControllerMultimediaAuthenticateValidTestCase extends Abonn
 
 	protected function _launch() {
 		$this->_json = $this->getJson(sprintf('/abonne/authenticate/login/%s/password/%s/poste/1/site/1',
-				                                  $this->_user->getLogin(),
-				                                  $this->_user->getPassword()));
+																					$this->_user->getLogin(),
+																					$this->_user->getPassword()));
 	}
 
 
@@ -245,28 +245,28 @@ abstract class AbonneControllerMultimediaAuthenticateValidTestCase extends Abonn
 
 
 class AbonneControllerMultimediaAuthenticateLaurentTest extends AbonneControllerMultimediaAuthenticateValidTestCase {
-	use 
+	use
 		TAbonneControllerMultimediaFixtureHoldSuccessOnSept12,
 		TAbonneControllerMultimediaFixtureWithUserLaurentInDevsAgiles;
-	
+
 	/** @test */
 	public function shouldNotReturnError() {
 		$this->assertFalse(property_exists($this->_json, 'error'));
 	}
-	
-	
+
+
 	/** @test */
 	public function idShoudBe8() {
 		$this->assertEquals('8', $this->_json->id);
 	}
-	
-	
+
+
 	/** @test */
 	public function loginShoudBelaurent() {
 		$this->assertEquals('laurent', $this->_json->login);
 	}
-	
-	
+
+
 	/** @test */
 	public function passwordShoudBeAfi() {
 		$this->assertEquals('afi', $this->_json->password);
@@ -277,14 +277,14 @@ class AbonneControllerMultimediaAuthenticateLaurentTest extends AbonneController
 	public function nomShoudBelaffont() {
 		$this->assertEquals('laffont', $this->_json->nom);
 	}
-	
-	
+
+
 	/** @test */
 	public function prenomShoudBelaurent() {
 		$this->assertEquals('laurent', $this->_json->prenom);
 	}
-	
-	
+
+
 	/** @test */
 	public function dateNaissanceShoudBe1978_02_17() {
 		$this->assertEquals('1978/02/17', $this->_json->date_naissance);
@@ -294,7 +294,7 @@ class AbonneControllerMultimediaAuthenticateLaurentTest extends AbonneController
 	/** @test */
 	public function groupShoudBeAdulteAbonneAdminAndAgile() {
 		$this->assertEquals(array('adulte','abonne', 'abonne_sigb', 'Devs agiles'),
-			                  $this->_json->groupes);
+												$this->_json->groupes);
 	}
 
 
@@ -311,6 +311,92 @@ class AbonneControllerMultimediaAuthenticateLaurentTest extends AbonneController
 }
 
 
+class AbonneControllerMultimediaAuthenticateLaurentAtClosingDaysDeviceHoldByUserTest extends AbonneControllerMultimediaAuthenticateValidTestCase {
+	use TAbonneControllerMultimediaFixtureWithUserLaurentInDevsAgiles;
+
+	protected function _launch() {
+
+		Class_Multimedia_Location::setTimeSource(new TimeSourceForTest('2012-09-12 09:30:00'));
+
+		$this->onLoaderOfModel('Class_Multimedia_Location')
+			->whenCalled('findByIdOrigine')
+			->answers($location = Class_Multimedia_Location::newInstanceWithId(1)
+								->setSlotSize(30)
+								->setAutoholdSlotsMax(1)
+								->setAuthDelay(1)
+								->setAutohold(1)
+								->setOuvertures([])
+								->setAutoholdForClosingDays(1)
+								->setOpenHour('09:00')
+								->setCloseHour('17:00'));
+
+		$this->onLoaderOfModel('Class_Multimedia_Device')
+			->whenCalled('findByIdOrigineAndLocation')
+			->answers(Class_Multimedia_Device::newInstanceWithId(1)
+								->setGroup(Class_Multimedia_DeviceGroup::newInstanceWithId(34)->setLocation($location)));
+
+
+		$this->onLoaderOfModel('Class_Multimedia_DeviceHold')
+			->whenCalled('getHoldOnDeviceAtTime')
+			->answers(null);
+
+		parent::_launch();
+	}
+
+
+	/** @test */
+	public function shouldHaveHold() {
+		$this->assertEquals(1, $this->_json->auth);
+	}
+
+	/** @test */
+	public function holdShouldLastUntil16h40() {
+		$this->assertEquals('2012-09-12T10:00:00+02:00', $this->_json->until);
+	}
+
+
+}
+
+
+class AbonneControllerMultimediaAuthenticateLaurentAtClosingDaysDeviceNotHeldByUserTest extends AbonneControllerMultimediaAuthenticateValidTestCase {
+	use TAbonneControllerMultimediaFixtureWithUserLaurentInDevsAgiles;
+
+	protected function _launch() {
+
+		Class_Multimedia_Location::setTimeSource(new TimeSourceForTest('2012-09-12 09:30:00'));
+
+		$this->onLoaderOfModel('Class_Multimedia_Location')
+			->whenCalled('findByIdOrigine')
+			->answers($location = Class_Multimedia_Location::newInstanceWithId(1)
+								->setAuthDelay(1)
+								->setAutohold(1)
+								->setOuvertures([])
+								->setAutoholdForClosingDays(0)
+								->setOpenHour('09:00')
+								->setCloseHour('17:00'));
+
+		$this->onLoaderOfModel('Class_Multimedia_Device')
+			->whenCalled('findByIdOrigineAndLocation')
+			->answers(Class_Multimedia_Device::newInstanceWithId(1)
+								->setGroup(Class_Multimedia_DeviceGroup::newInstanceWithId(34)->setLocation($location)));
+
+
+		$this->onLoaderOfModel('Class_Multimedia_DeviceHold')
+			->whenCalled('getHoldOnDeviceAtTime')
+			->answers(null);
+
+		parent::_launch();
+	}
+
+
+	/** @test */
+	public function shouldHaveNotHeld() {
+		$this->assertEquals(0, $this->_json->auth);
+	}
+
+
+}
+
 
 
 class AbonneControllerMultimediaAuthenticateLaurentDeviceNotHeldByUserTest extends AbonneControllerMultimediaAuthenticateValidTestCase {
@@ -319,8 +405,9 @@ class AbonneControllerMultimediaAuthenticateLaurentDeviceNotHeldByUserTest exten
 	protected function _launch() {
 		$this->onLoaderOfModel('Class_Multimedia_Location')
 			->whenCalled('findByIdOrigine')
-			->answers($location = Class_Multimedia_Location::newInstanceWithId(1)								
+			->answers($location = Class_Multimedia_Location::newInstanceWithId(1)
 								->setAuthDelay(1)
+								->setAutoholdForClosingDays(0)
 								->setAutohold(1));
 
 		$this->onLoaderOfModel('Class_Multimedia_Device')
@@ -334,7 +421,7 @@ class AbonneControllerMultimediaAuthenticateLaurentDeviceNotHeldByUserTest exten
 								->setIdUser(9878)
 								->setStart(strtotime('2012-09-12 08:30:00'))
 								->setEnd(strtotime('2012-09-12 16:40:00')));
-				
+
 		parent::_launch();
 	}
 
@@ -370,7 +457,7 @@ class AbonneControllerMultimediaAuthenticateLaurentDeviceNotFoundTest extends Ab
 		$this->onLoaderOfModel('Class_Multimedia_Device')
 			->whenCalled('findByIdOrigineAndLocation')
 			->answers(null);
-				
+
 		parent::_launch();
 	}
 
@@ -400,7 +487,7 @@ class AbonneControllerMultimediaAuthenticateArnaudTest extends AbonneControllerM
 
 	/** @test */
 	public function groupsShouldBeAbonneAndPatrons() {
-		$this->assertEquals(array('abonne_sigb', 'Patrons'), $this->_json->groupes);	
+		$this->assertEquals(array('abonne_sigb', 'Patrons'), $this->_json->groupes);
 	}
 
 
@@ -421,11 +508,11 @@ class AbonneControllerMultimediaAuthenticateBaptisteTest extends AbonneControlle
 		$this->_group= 'Devs Oldschool';
 	}
 
-		
+
 	/** @test */
 	public function groupsShouldBeMineurAbonneAndOldSchool() {
-		$this->assertEquals(['mineur','abonne_sigb', 'Devs Oldschool'], 
-												$this->_json->groupes);	
+		$this->assertEquals(['mineur','abonne_sigb', 'Devs Oldschool'],
+												$this->_json->groupes);
 	}
 
 
@@ -448,7 +535,7 @@ class AbonneControllerMultimediaAuthenticateBaptisteTest extends AbonneControlle
 abstract class AbonneControllerMultimediaHoldTestCase extends AbstractControllerTestCase {
 	protected $_session;
 	protected $_bean;
-	
+
 	public function setUp() {
 		parent::setUp();
 		$this->_session = new Zend_Session_Namespace('abonneController');
@@ -459,7 +546,7 @@ abstract class AbonneControllerMultimediaHoldTestCase extends AbstractController
 											 ->setMaxDay(120)
 											 ->setMaxWeek(240)
 											 ->setMaxMonth(360)]);
-				
+
 		$this
 			->onLoaderOfModel('Class_Multimedia_DeviceHold')
 			->whenCalled('getDurationForUserBetweenTimes')
@@ -473,12 +560,13 @@ abstract class AbonneControllerMultimediaHoldTestCase extends AbstractController
 		Class_Bib::newInstanceWithId(3)
 			->setLibelle('Médiathèque d\'Antibes');
 
-		
+
 		Class_Multimedia_Location::newInstanceWithId(123)
 			->setIdSite(3)
 			->setLibelle('Antibes')
 			->setSlotSize(30)
 			->setMaxSlots(4)
+			->setAutoholdForClosingDays(0)
 			->setHoldDelayMin(0)
 			->setHoldDelayMax(60)
 			->setOuvertures([Class_Ouverture::chaqueLundi('08:30', '12:00', '12:00', '17:45')->setId(1)->cache(),
@@ -531,7 +619,7 @@ abstract class AbonneControllerMultimediaHoldTestCase extends AbstractController
 		$this->_bean->group = 5;
 	}
 
-	
+
 	protected function _assertCurrentTimelineStep($step) {
 		$this->_assertTimeLineStepWithClass($step, 'selected');
 	}
@@ -544,7 +632,7 @@ abstract class AbonneControllerMultimediaHoldTestCase extends AbstractController
 
 	protected function _assertTimeLineStepWithClass($step, $class) {
 		$this->assertXPathContentContains('//div[@class="timeline"]//li[@class="' . $class . '"]',
-			                                $step);
+																			$step);
 	}
 }
 
@@ -592,7 +680,7 @@ abstract class AbonneControllerMultimediaHoldLocationTest extends AbonneControll
 	public function currentTimelineStepShouldBeLieu() {
 		$this->_assertCurrentTimelineStep('Lieu');
 	}
-		
+
 
 	/** @test */
 	public function locationSalle1ShouldBePresent() {
@@ -707,7 +795,7 @@ class AbonneControllerMultimediaHoldDayChoiceWithOverQuotaTest extends AbonneCon
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
 			->whenCalled('getDurationForUserBetweenTimes')
 			->answers(8000);
-				
+
 		$this->dispatch('/abonne/multimedia-hold-day/day/2012-09-12', true);
 	}
 
@@ -745,7 +833,7 @@ class AbonneControllerMultimediaHoldHoursTest extends AbonneControllerMultimedia
 	public function currentTimelineStepShouldBeHoraires() {
 		$this->_assertCurrentTimelineStep('Horaires');
 	}
-		
+
 
 	/** @test */
 	public function listOfStartTimesShouldBePresent() {
@@ -942,7 +1030,7 @@ class AbonneControllerMultimediaHoldDeviceTest extends AbonneControllerMultimedi
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
 				->whenCalled('countBy')
 				->answers(0);
-				
+
 		$this->dispatch('/abonne/multimedia-hold-device', true);
 	}
 
@@ -1030,7 +1118,7 @@ class AbonneControllerMultimediaHoldConfirmTest extends AbonneControllerMultimed
 		$this->_assertCurrentTimelineStep('Confirmation');
 	}
 
-		
+
 	/** @test */
 	public function locationShouldBeAntibes() {
 		$this->assertXPathContentContains('//li', 'Lieu : Médiathèque d\'Antibes');
@@ -1161,7 +1249,7 @@ class AbonneControllerMultimediaHoldViewTest extends AbonneControllerMultimediaH
 
 class AbonneControllerMultimediaHoldViewDeleteTest extends AbonneControllerMultimediaHoldTestCase {
 	protected $_wrapper;
-	
+
 	public function setUp() {
 		parent::setUp();
 		Class_Multimedia_DeviceHold::getLoader()->newInstanceWithId(455)
@@ -1178,7 +1266,7 @@ class AbonneControllerMultimediaHoldViewDeleteTest extends AbonneControllerMulti
 		$this->assertTrue($this->_wrapper->methodHasBeenCalled('delete'));
 	}
 
-		
+
 	/** @test */
 	public function shouldRedirectToFicheAbonne() {
 		$this->assertRedirectTo('/abonne/fiche');
diff --git a/tests/application/modules/opac/controllers/BibNumeriqueControllerDilicomTest.php b/tests/application/modules/opac/controllers/BibNumeriqueControllerDilicomTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..81cbc8965ccb25df4ed1e42b3960a995cf179a9f
--- /dev/null
+++ b/tests/application/modules/opac/controllers/BibNumeriqueControllerDilicomTest.php
@@ -0,0 +1,159 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+abstract class BibNumeriqueContollerDilicomTestCase extends AbstractControllerTestCase {
+	protected
+		$_http,
+		$_time_source;
+
+	public function setUp() {
+		parent::setUp();
+
+		$logged_user = $this->fixture('Class_Users',
+																	['id' => 6,
+																	 'nom'=>'Pito',
+																	 'login'=>'Chat',
+																	 'password'=>'123456',
+																	 'id_site' => 1,
+																	 'idabon' => '12345',
+																	 'user_groups' => [$this->fixture('Class_UserGroup',
+																																		['id' => '20',
+																																		 'libelle' => 'Multimedia',
+																																		 'rights' => [Class_UserGroup::RIGHT_ACCES_PNB_DILICOM]])]]);
+		$logged_user->beAbonneSIGB()->assertSave();
+		ZendAfi_Auth::getInstance()->logUser($logged_user);
+
+		$this->book = $this->fixture('Class_Album',
+																 ['id' => 3,
+																	'libelle' => 'Totem et Thora',
+																	'id_origine' => 'Dilicom-88817216',
+																	'external_uri' => 'http://www.edenlivres.fr/p/23416',
+																	'type_doc_id' => Class_TypeDoc::DILICOM,
+																	'isbn' => '435465',
+																	'usage_constraints' => [$this->fixture('Class_Album_UsageConstraint',
+																																				 ['id' => 1,
+																																					'id_album' => 3,
+																																					'titre ' => 'Totem et Thora',
+																																					'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
+																																					'order_line_id' => 'x321'])]]);
+
+
+
+		RessourcesNumeriquesFixtures::activateDilicom();
+
+
+		$this->_http = Storm_Test_ObjectWrapper::mock();
+		Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient($this->_http);
+
+		$this->_http
+			->whenCalled('setAuth')
+			->with('afi-bib', 'secretPassword')
+			->answers(null);
+
+		$this->_time_source = new TimeSourceForTest('2014-05-02 14:14:14');
+		Class_WebService_BibNumerique_Dilicom_Hub::setTimeSource($this->_time_source);
+	}
+}
+
+
+
+
+class BibNumeriqueContollerDilicomConsultBookActionTest extends BibNumeriqueContollerDilicomTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->_http
+			->whenCalled('open_url')
+			->with('https://pnb-test.centprod.com/v2/pnb-numerique/json/consultBook?glnContractor=123456789&orderLineId=x321'
+						 .'&accessMedium=STREAMING'
+						 .'&localization=IN_SITU'
+						 .'&consultEndDate='.urlencode('2014-05-02T15:14:14+0200')
+						 .'&ean13=435465'
+						 .'&ipAddress=195.251.88.223'
+						 .'&loanId='.base_convert($this->_time_source->time(), 10, 36).'63')
+			->answers('{"orderLineId":"54e7473f975a2fa6aa4d3e17","consultEndDate":"2014-05-02T15:14:14+0200","loanId":"3","returnStatus":"OK","returnMessage":[],"requestId":"awvzrcttestpnbv2_000000039_201503051511","link":{"url":"https://pnb-test.centprod.com/v2//link/3056000302801/CONSULT/3/9791023501766-FGR9FJJGJCMXYMB8BO87XR9TPHDN9QNS.do","aformatDescription":"EPUB","mimetype":"application/epub+zip","ean13":"9791023501766","format":"E101"}}')
+			->beStrict();
+
+
+		$_SERVER['HTTP_X_FORWARDED_FOR'] = '195.251.88.223';
+
+		$this->dispatch('/bib-numerique/consult-book/id/3', true);
+	}
+
+
+	public function tearDown() {
+		Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient(null);
+		RessourcesNumeriquesFixtures::deactivateDilicom();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function openUrlShouldHaveBeenCalled() {
+		$this->assertTrue($this->_http->methodHasBeenCalled('open_url'));
+	}
+
+
+	/** @test */
+	public function setAuthShouldHaveBeenCalled() {
+		$this->assertTrue($this->_http->methodHasBeenCalled('setAuth'));
+	}
+
+
+	/** @test */
+	public function responseShouldRedirectToConsultBookUrl() {
+		$this->assertRedirectTo('https://pnb-test.centprod.com/v2//link/3056000302801/CONSULT/3/9791023501766-FGR9FJJGJCMXYMB8BO87XR9TPHDN9QNS.do');
+	}
+}
+
+
+
+
+class BibNumeriqueContollerDilicomConsultBookWithErrorsActionTest extends BibNumeriqueContollerDilicomTestCase {
+	public function setUp() {
+		parent::setUp();
+
+
+		$this->_http
+			->whenCalled('open_url')
+			->answers('{"orderLineId":"54e7473f975a2fa6aa4d3e17","consultEndDate":"","loanId":"3","returnStatus":"ERROR","returnMessage":["Crash boom"],"requestId":"awvzrcttestpnbv2_000000039_201503051511","link":{}}');
+
+		$_SERVER['HTTP_REFERER'] = '/viewnotice/id/3';
+
+		$this->dispatch('/bib-numerique/consult-book/id/3', true);
+	}
+
+
+	/** @test */
+	public function responseShouldRedirectToReferrer() {
+		$this->assertRedirectTo('/viewnotice/id/3', $this->getResponseLocation());
+	}
+
+
+	/** @test */
+	public function errorMessageShouldBeInNotifications() {
+		$this->assertFlashMessengerContains('Crash boom');
+	}
+}
+
+
+?>
\ No newline at end of file
diff --git a/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php b/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php
index 63b92abea1146166e3297ebab519c2123787a885..0f0574acd56f3a794d8e6c7eb7c462b82a9637c1 100644
--- a/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php
+++ b/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php
@@ -18,7 +18,6 @@
  * along with BOKEH; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-require_once 'AbstractControllerTestCase.php';
 
 class BibNumeriqueControllerViewAlbumActionTest extends AbstractControllerTestCase {
 	/** @test */
diff --git a/tests/application/modules/opac/controllers/CmsControllerTest.php b/tests/application/modules/opac/controllers/CmsControllerTest.php
index 1c58018fa0fd160779c6a804b27178abeb2e2dea..393b1d8751f2f5464fb8bed06e7e593fc371cb35 100644
--- a/tests/application/modules/opac/controllers/CmsControllerTest.php
+++ b/tests/application/modules/opac/controllers/CmsControllerTest.php
@@ -33,12 +33,11 @@ class CmsControllerRssNoProfileTest extends AbstractControllerTestCase {
 		$this->dispatch('cms/rss');
 	}
 
+
 	/** @test */
 	public function titleShouldBeFluxIndisponible() {
 		$this->assertXPathContentContains('//channel/title', 'Flux indisponible');
-
 	}
-
 }
 
 
@@ -279,7 +278,7 @@ abstract class AbstractCmsControllerArticleViewByDateTest extends AbstractContro
 					'options' =>[]]]
 				);
 
-		Class_AdminVar::newInstanceWithId('WORKFLOW',['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('WORKFLOW', ['valeur' => '']);
 
 		$articles = [	Class_Article::getLoader()
 									->newInstanceWithId(1)
@@ -353,6 +352,36 @@ abstract class AbstractCmsControllerArticleViewByDateTest extends AbstractContro
 
 
 
+/** @see http://forge.afi-sa.fr/issues/20971 */
+class CmsControllerArticleViewByDateOnMonthTest extends AbstractControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		Storm_Model_Loader::defaultToVolatile();
+		$this->wrapper = $this->onLoaderOfModel('Class_Article')
+													->whenCalled('getArticlesByPreferences')
+													->answers([]);
+
+		$this->dispatch('/cms/articleviewbydate/id_profil/1/d/2015-02/id_module/5/select_id_categorie/all', true);
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function shouldNotAllowUnpublishedArticles() {
+		$preferences = $this->wrapper
+			->getFirstAttributeForLastCallOn('getArticlesByPreferences');
+		$this->assertNotContains('published', array_keys($preferences));
+	}
+}
+
+
+
 
 class CmsControllerArticleViewByDateTest extends AbstractCmsControllerArticleViewByDateTest {
 	public function setUp() {
@@ -772,7 +801,7 @@ abstract class CmsControllerWithFeteDeLaFriteTestCase extends AbstractController
 		$article= $this->fixture('Class_Article',
 														 ['id' =>224,
 															'titre' => 'La fête de la frite',
-															'contenu' => '<div>Une fête appétissante</div>',
+															'contenu' => '<div><img src="userfiles/image/foo.jpg" /><p>Une fête appétissante</p></div>',
 															'events_debut' => '2011-09-03 12:00',
 															'events_fin' => '2011-10-05 16:00',
 															'tags' => 'Tout public;Concert',
@@ -812,7 +841,13 @@ class CmsControllerViewNoticeMetasTest extends CmsControllerWithFeteDeLaFriteTes
 
 	/** @test */
 	public function pageShouldContainDescriptionMeta() {
-		$this->assertXPath('//meta[@property="og:description"]/@content');
+		$this->assertXPath('//meta[@property="og:description"][@content="Une fête appétissante"]');
+	}
+
+
+	/** @test */
+	public function pageShouldContainImageMeta() {
+		$this->assertXPath('//meta[@property="og:image"][@content="' . ROOT_URL . BASE_URL . '/userfiles/image/foo.jpg"]');
 	}
 
 }
@@ -1481,4 +1516,5 @@ class CmsControllerCategorieViewTest extends CmsControllerListTestCase {
 		$this->dispatch('/cms/categorieview');
 	}
 }
+
 ?>
diff --git a/tests/application/modules/opac/controllers/JavaControllerTest.php b/tests/application/modules/opac/controllers/JavaControllerTest.php
index f33a806a96c37f14466cc9d3310ff9f622068248..d0caf6abbc79649639916e626ae9b90e36e5b2e4 100644
--- a/tests/application/modules/opac/controllers/JavaControllerTest.php
+++ b/tests/application/modules/opac/controllers/JavaControllerTest.php
@@ -65,7 +65,7 @@ class JavaControllerCarrouselHorizontalTest extends AbstractControllerTestCase {
 										'libelle' => 'kiosque test',
 										'cfg_accueil' => ['modules' => ['1' => ['division' => 1,
 																														'type_module' => 'KIOSQUE',
-																														'titre' => '',
+																														'titre' => 'My kiosk test',
 																														'vue' => 'mycarousel_horizontal',
 																														'preferences' => ['op_speed' => 400]]],
 																			'options' => 	[]]])
@@ -73,19 +73,18 @@ class JavaControllerCarrouselHorizontalTest extends AbstractControllerTestCase {
 
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
 			->whenCalled('getNoticesByPreferences')
-			->answers([
-								 ['id_notice' => 4,
-									'titre' => 'Madagascar',
-									'vignette' => 'http://thumbnail.com/madagascar.jpg'
-								 ]
-								 ]);
+			->answers([$this->fixture('Class_Notice',
+																['id' => 4,
+																 'titre' => 'Madagascar',
+																 'vignette' => 'http://thumbnail.com/madagascar.jpg'])]);
+
 		$this->dispatch('java/kiosque/id_module/1/titre/title+%2F+with+some+%2F+slashes/vue/mycarousel_horizontal', true);
 	}
 
 
 	/** @test */
 	public function titleShouldBeRemovedBecauseOfPossibleApacheMisconfigurationOfAllowEncodedSlashes() {
-		$this->assertXPath('//div[@class="jMyCarousel"]//a[@href="/recherche/viewnotice/id_module/1/vue/mycarousel_horizontal/id/4"]');
+		$this->assertXPath('//div[@class="jMyCarousel"]//a[@href="/recherche/viewnotice/id/4/tri/1/id_module/1/id_profil/3"]');
 	}
 
 
@@ -158,6 +157,9 @@ class JavaControllerWithKiosqueMurAndPanierDeletedTest extends AbstractControlle
 class JavaControllerKiosqueSlideShowWidthWrongParamsTest extends AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
+
+		Class_Notice::beVolatile();
+
 		$cfg_accueil = ['modules' => ['1' => ['division' => 1,
 																					'type_module' => 'MENU']],
 										'options' => 	[]];
@@ -168,62 +170,145 @@ class JavaControllerKiosqueSlideShowWidthWrongParamsTest extends AbstractControl
 																													 'libelle' => 'Profil cache',
 																													 'cfg_acceuil' => $cfg_accueil]);
 
+		}
 
-		$this->mock_sql = Storm_Test_ObjectWrapper::mock();
-		Zend_Registry::set('sql', $this->mock_sql);
-
-
-		$this->mock_sql
-			->whenCalled('fetchAll')
-			->with("select notices.id_notice, notices.editeur, notices.annee, notices.date_creation, notices.date_maj, notices.facettes, notices.clef_oeuvre from notices Where url_vignette > '' and url_vignette != 'NO' order by date_creation DESC  LIMIT 0,50",
-						 false)
-			->answers([])
-			->beStrict();
 
+	/** @test */
+	public function vueShouldDefaultsToDiaporama() {
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
+			->whenCalled('getNoticesByPreferences')
+			->answers(		$this->fixture('Class_Notice',
+																	 ['id' => 1,
+																		'titres' => 'Pomme']));
 		$this->dispatch('java/kiosque?id_module=1&id_profil=5345', true);
+		$this->assertXPathContentContains('//script', 'slideshow');
 	}
 
 
 	/** @test */
-	public function vueShouldDefaultsToDiaporama() {
-		$this->assertXPathContentContains('//script', 'slideshow');
+	public function withNoRecordsFoundBodyShouldContainsNoRecordsFoundMessage() {
+		$this->dispatch('java/kiosque?id_module=1&id_profil=5345', true);
+		$this->assertXPathContentContains('//p', utf8_encode('Aucun document n\'a été trouvé'), $this->_response->getBody());
 	}
 }
 
 
 
-
 class JavaControllerKiosqueSlideShowWithRedirectSettingsTest extends AbstractControllerTestCase {
-
-
 	public function setUp() {
 		parent::setUp();
-		$this->mock_sql = Storm_Test_ObjectWrapper::mock();
-		Zend_Registry::set('sql', $this->mock_sql);
 
-		$this->mock_sql
-			->whenCalled('fetchAll')
-			->answers([$this->fixture('Class_Notice',
-																['id' => 11,
-																 'clef_oeuvre' => 'POT'
-																])->toArray()]);
+
+		$this->fixture('Class_Profil',
+									 ['id' => 3,
+										'libelle' => 'modules',
+										'cfg_accueil' => ['modules' => ['1' => ['division' => '1',
+																														'type_module' => 'KIOSQUE',
+																														'preferences' => ['titre' => "My Kiosk",
+																																							'profil_redirect' => 123]]]]
+									 ])->beCurrentProfil();
+
+
+		$notice = Storm_Test_ObjectWrapper::mock();
+		$notice
+			->whenCalled('getId')
+			->answers(10)
+			->whenCalled('getTypeDoc')
+			->answers(Class_TypeDoc::LIVRE)
+			->whenCalled('getTitrePrincipal')
+			->answers('Programmers <br> Hell\'s "code"')
+			->whenCalled('fetchUrlVignette')
+			->answers('/img/hell_code.png')
+			->whenCalled('getClefAlpha')
+			->answers('PROGRAMMER_HELL');
+
+		$article = Storm_Test_ObjectWrapper::mock();
+		$article
+			->whenCalled('getId')
+			->answers(12)
+
+			->whenCalled('getTypeDoc')
+			->answers(Class_TypeDoc::ARTICLE)
+
+			->whenCalled('getTitrePrincipal')
+			->answers('Return of Harlock')
+
+			->whenCalled('getChamp856b')
+			->answers(23)
+
+			->whenCalled('getClefAlpha')
+			->answers('HARLOCK')
+
+			->whenCalled('fetchUrlVignette')
+			->answers('/img/harlock.png');
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
+			->whenCalled('getNoticesByPreferences')
+			->answers([$notice, $article]);
 	}
 
 
 	protected function javaUrlWithPreferences($display_mode, $redirect_profil) {
 		return 'java/kiosque/id_module/3-1/titre/title+%2F+with+some+%2F+slashes/vue/' . $display_mode. '/id_profil/'.$redirect_profil;
-
 	}
 
 
 	public function datas() {
-		return [[$this->javaUrlWithPreferences('slide_show', 123), '//div[@id="theImages"]//a[contains(@href, "id_profil/123")][contains(@href, "id_module/3-1")]'],
-						[$this->javaUrlWithPreferences('protoflow', 123), '//div[@id="protoflow"]//a[contains(@href, "id_profil/123")][contains(@href, "id_module/3-1")]'],
-						[$this->javaUrlWithPreferences('cube', 123), '//div[@id="linksCube"]//a[contains(@href, "id_profil/123")][contains(@href, "id_module/3-1")]'],
-						[$this->javaUrlWithPreferences('diaporama', 123), '//div[@class="slideshow"]//img[contains(@onclick, "id_profil/123")][contains(@onclick, "id_module/3-1")]'],
-						[$this->javaUrlWithPreferences('jcarousel', 123), '//ul[@id="mycarousel"]//a[contains(@href, "id_profil/123")][contains(@href, "id_module/3-1")]'],
-						[$this->javaUrlWithPreferences('mycarousel_horizontal', 123), '//div[@class="jMyCarousel"]//a[contains(@href, "id_profil/123")][contains(@href, "id_module/3-1")]'],
-						[$this->javaUrlWithPreferences('mycarousel_vertical', 123), '//div[@class="jMyCarousel"]//a[contains(@href, "id_profil/123")][contains(@href, "id_module/3-1")]']];
+		$xpath_title = 'concat("Programmers <br> Hell", "\'", "s ", \'"\', \'code\', \'"\')';
+		$url_notice = '/recherche/viewnotice/clef/PROGRAMMER_HELL/id/10/tri/1/id_module/3-1/id_profil/123';
+		return [
+						[
+						 $this->javaUrlWithPreferences('slide_show', 3),
+
+						 ['//div[@id="theImages"]//a[@href="' . $url_notice . '"]',
+
+							'//div[@id="theImages"]//a[contains(@href, "id_profil/123")][contains(@href, "cms/articleview")][contains(@href, "id/23")]',
+
+							'//a/img[@title=' . $xpath_title . ']' ]],
+
+						[$this->javaUrlWithPreferences('protoflow', 3),
+						 ['//div[@id="protoflow"]//a[@href="' . $url_notice . '"]',
+
+							'//a[contains(@href, "id_profil/123")][contains(@href, "cms/articleview")][contains(@href, "id/23")][contains(@target, "_parent")]',
+
+							'//a/img[@alt=' . $xpath_title . ']']],
+
+						[$this->javaUrlWithPreferences('cube', 3),
+						 ['//div[@id="linksCube"]//a[@href="' . $url_notice . '"]',
+
+							'//a[contains(@href, "id_profil/123")][contains(@href, "cms/articleview")][contains(@href, "id/23")]',
+
+							'//a/img[@title=' . $xpath_title . ']' ]],
+
+
+						[$this->javaUrlWithPreferences('diaporama', 3),
+						 ['//div[@class="slideshow"]//img[contains(@onclick, "' . $url_notice . '")]',
+
+							'//img[contains(@onclick, "id_profil/123")][contains(@onclick, "cms/articleview")][contains(@onclick, "id/23")]',
+
+							'//img[@title=' . $xpath_title . ']' ]],
+
+						[$this->javaUrlWithPreferences('jcarousel', 3),
+						 ['//ul[@id="mycarousel"]//a[@href="' . $url_notice . '"]',
+
+							'//a[contains(@href, "id_profil/123")][contains(@href, "cms/articleview")][contains(@href, "id/23")]',
+
+							'//a/img[@title=' . $xpath_title . ']' ]],
+
+						[$this->javaUrlWithPreferences('mycarousel_horizontal', 3),
+						 ['//div[@class="jMyCarousel"]//a[@href="' . $url_notice . '"]',
+
+							'//a[contains(@href, "id_profil/123")][contains(@href, "cms/articleview")][contains(@href, "id/23")]',
+
+							'//a/img[@title=' . $xpath_title . ']' ]],
+
+						[$this->javaUrlWithPreferences('mycarousel_vertical', 3),
+						 ['//div[@class="jMyCarousel"]//a[@href="' . $url_notice . '"]',
+
+							'//a[contains(@href, "id_profil/123")][contains(@href, "cms/articleview")][contains(@href, "id/23")]',
+
+							'//a/img[@title=' . $xpath_title . ']' ]]
+		];
 	}
 
 
@@ -231,8 +316,9 @@ class JavaControllerKiosqueSlideShowWithRedirectSettingsTest extends AbstractCon
 	 * @test
 	 * @dataProvider datas
 	 */
-	public function recordLinksShouldBeAsExpected($url, $xpath) {
+	public function contentFromUrlShouldSatisfyXPaths($url, $xpaths) {
 		$this->dispatch($url, true);
-		$this->assertXPath($xpath);
+		foreach($xpaths as $xpath)
+			$this->assertXPath($xpath, $this->_response->getBody());
 	}
 }
\ No newline at end of file
diff --git a/tests/application/modules/opac/controllers/ModulesControllerKidilanguesTest.php b/tests/application/modules/opac/controllers/ModulesControllerKidilanguesTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..59de402b688580967c65c2643faf52a69060433d
--- /dev/null
+++ b/tests/application/modules/opac/controllers/ModulesControllerKidilanguesTest.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
+
+
+abstract class ModulesControllerKidilanguesActivatedTestCase extends AbstractControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		RessourcesNumeriquesFixtures::activateKidilangues();
+		ZendAfi_Auth::getInstance()->clearIdentity();
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		RessourcesNumeriquesFixtures::deactivateKidilangues();
+		parent::tearDown();
+	}
+}
+
+
+
+class ModulesControllerKidilanguesNoAccessRightTest extends ModulesControllerKidilanguesActivatedTestCase {
+  public function setUp() {
+    parent::setUp();
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'admin',
+																												 'password' => 'pwd']));
+
+    $this->dispatch('/opac/modules/kidilangues', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$this->assertFlashMessengerContentContains('Vous n\'avez pas accès à cette ressource.');
+	}
+}
+
+
+
+class ModulesControllerKidilanguesLoggedTest extends ModulesControllerKidilanguesActivatedTestCase {
+  public function setUp() {
+    parent::setUp();
+
+		$group = $this->fixture('Class_UserGroup', ['id' => 1])
+									->addRight(Class_UserGroup::RIGHT_ACCES_KIDILANGUES);
+		$group->save();
+
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'admin',
+																												 'password' => 'pwd']));
+		$user = Class_Users::getIdentity();
+		$user->setUserGroups([$group])
+				 ->beAbonneSIGB()
+				 ->save();
+    $this->dispatch('/opac/modules/kidilangues', true);
+	}
+
+
+	/** @test */
+	public function shouldContainsScriptToRedirectToKidilangueSSOUrl() {
+		$this->assertXPathContentContains('//script', 'window.location="http://www.kidilangues.fr/directaccess/biblio/dcc509a6f7a4238a0b95849bc4c23820/fc2f6178abeec3a91654adc3f22419fd/Ud4x5rY2DddxHOL9AuC3pNGbnlKua8e4HK2SiO8JwWc/cfcd208495d565ef66e7dff9f98764da/0";');
+	}
+}
+
+
+
+class ModulesControllerKidilanguesNotLoggedTest extends ModulesControllerKidilanguesActivatedTestCase {
+  public function setUp() {
+    parent::setUp();
+		$_SERVER['HTTP_REFERER'] = '/opac/modules/kidilangues';
+    $this->dispatch('/opac/modules/kidilangues', true);
+	}
+
+
+	/** @test */
+	public function shouldRedirectToLogin() {
+		$this->assertContains('/auth/login?redirect='.urlencode('/opac/modules/kidilangues'),
+													$this->_response->getBody());
+	}
+}
+
+
+
+class ModulesControllerKidilanguesDeactivateAndUserLoggedTest extends ModulesControllerKidilanguesActivatedTestCase {
+  public function setUp() {
+    parent::setUp();
+
+		RessourcesNumeriquesFixtures::deactivateKidilangues();
+
+		$_SERVER['HTTP_REFERER'] = '/index';
+		$group = $this->fixture('Class_UserGroup', ['id' => 1])
+									->addRight(Class_UserGroup::RIGHT_ACCES_KIDILANGUES);
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'admin',
+																												 'password' => 'pwd']));
+		$user = Class_Users::getIdentity();
+		$user->setUserGroups([$group])->save();
+
+    $this->dispatch('/opac/modules/kidilangues', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$this->assertFlashMessengerContentContains('Vous n\'avez pas accès à cette ressource.');
+	}
+}
diff --git a/tests/application/modules/opac/controllers/ModulesControllerMyCowTest.php b/tests/application/modules/opac/controllers/ModulesControllerMyCowTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..ca54e8e9420b0d6873b6d8527d893f751e5c7cd8
--- /dev/null
+++ b/tests/application/modules/opac/controllers/ModulesControllerMyCowTest.php
@@ -0,0 +1,137 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class ModulesControllerMyCowSsoTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+    $this->dispatch('/opac/modules/mycow-sso/eid/afi/uid/tom', true);
+  }
+
+
+	/** @test */
+	public function postActionShouldBeMyCowConnectSSO() {
+		$this->assertXPath('//form[contains(@action, "mycow.eu/connectSSO.php")]');
+	}
+
+
+	/** @test */
+	public function postEidValueShouldBeAfi() {
+		$this->assertXPath('//form/input[@name="eid"][@value="afi"]');
+	}
+
+
+	/** @test */
+	public function postUidShouldBeTom() {
+		$this->assertXPath('//form//input[@name="uid"][@value="tom"]');
+	}
+
+
+	/** @test */
+	public function mycowShouldContainsPostJs() {
+		$this->assertXPath('//script', "('#mycow_form').submit()");
+	}
+}
+
+
+
+class ModulesControllerMyCowNoAccessRightTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+    $this->dispatch('/opac/modules/mycow', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$this->assertFlashMessengerContentContains('Vous n\'avez pas accès à cette ressource.');
+	}
+}
+
+
+
+class ModulesControllerMyCowLoggedTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+
+		RessourcesNumeriquesFixtures::activateMyCow();
+
+		$group = $this->fixture('Class_UserGroup', ['id' => 1])
+									->addRight(Class_UserGroup::RIGHT_ACCES_MYCOW);
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'admin',
+																												 'password' => 'pwd']));
+		$user = Class_Users::getIdentity();
+		$user->setUserGroups([$group])->save();
+    $this->dispatch('/opac/modules/mycow', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$this->assertContains('/modules/mycow-sso/eid/afi-sa-test/uid/admin', $this->_response->getBody());
+	}
+}
+
+
+
+class ModulesControllerMyCowNotLoggedTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+		ZendAfi_Auth::getInstance()->clearIdentity();
+		RessourcesNumeriquesFixtures::activateMyCow();
+		$_SERVER['HTTP_REFERER'] = '/opac/modules/mycow';
+    $this->dispatch('/opac/modules/mycow', true);
+	}
+
+
+	/** @test */
+	public function shouldRedirectToLogin() {
+		$this->assertContains('/auth/login?redirect='.urlencode('/opac/modules/mycow'),
+													$this->_response->getBody());
+	}
+}
+
+
+
+class ModulesControllerMyCowDeactivateAndUserLoggedTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+		RessourcesNumeriquesFixtures::deactivateMyCow();
+		$_SERVER['HTTP_REFERER'] = '/index';
+		$group = $this->fixture('Class_UserGroup', ['id' => 1])
+									->addRight(Class_UserGroup::RIGHT_ACCES_MYCOW);
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'admin',
+																												 'password' => 'pwd']));
+		$user = Class_Users::getIdentity();
+		$user->setUserGroups([$group])->save();
+
+    $this->dispatch('/opac/modules/mycow', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$this->assertFlashMessengerContentContains('Vous n\'avez pas accès à cette ressource.');
+	}
+}
diff --git a/tests/application/modules/opac/controllers/ModulesControllerPlanetNemoTest.php b/tests/application/modules/opac/controllers/ModulesControllerPlanetNemoTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..884bf8c68927b0adca92730a468e34d68efd5335
--- /dev/null
+++ b/tests/application/modules/opac/controllers/ModulesControllerPlanetNemoTest.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class ModulesControllerPlanetNemoNoAccessRightTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+    $this->dispatch('/opac/modules/planetnemo', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$this->assertFlashMessengerContentContains('Vous n\'avez pas accès à cette ressource.');
+	}
+}
+
+
+
+class ModulesControllerPlanetNemoLoggedTest extends AbstractControllerTestCase {
+  public function setUp() {
+    parent::setUp();
+
+		RessourcesNumeriquesFixtures::activatePlanetNemo();
+
+		$group = $this->fixture('Class_UserGroup', ['id' => 1])
+									->addRight(Class_UserGroup::RIGHT_ACCES_PLANETNEMO);
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'Tom',
+																												 'password' => 'pwd']));
+		$user = Class_Users::getIdentity();
+		$user->setUserGroups([$group])->save();
+    $this->dispatch('/opac/modules/planetnemo', true);
+	}
+
+
+	/** @test */
+	public function shouldHaveAccessForbiddenMessage() {
+		$bokeh_cas = urlencode(Class_Url::absolute(['controller' => 'cas-server'], null, true));
+		$this->assertContains('http://www.planetnemo.fr/site_pay/auth_cas/?url=' . $bokeh_cas .'&ticket=ST-', $this->_response->getBody());
+	}
+}
diff --git a/tests/application/modules/opac/controllers/ModulesControllerTest.php b/tests/application/modules/opac/controllers/ModulesControllerTest.php
index 182f03c0e3e67cc3f36e3ef98873fd6b3e66ba83..a14f21dec07d342ba45e491ff3b6c76517879caf 100644
--- a/tests/application/modules/opac/controllers/ModulesControllerTest.php
+++ b/tests/application/modules/opac/controllers/ModulesControllerTest.php
@@ -19,15 +19,15 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AbstractControllerTestCase.php';
-
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
 
 class ModulesControllerLoginRequiredTest extends AbstractControllerTestCase {
 	public function datas() {
 		return [
-			['CVS', 'cvs'],
-			['Vodeclic', 'vodeclic'],
-			['ToutApprendre', 'toutapprendre'],
-			['LeKiosk', 'lekiosk']
+						['CVS', 'cvs'],
+						['Vodeclic', 'vodeclic'],
+						['ToutApprendre', 'toutapprendre'],
+						['LeKiosk', 'lekiosk']
 		];
 	}
 
@@ -136,6 +136,8 @@ class ModulesControllerNumilogTest extends AbstractControllerTestCase {
 	}
 }
 
+
+
 class ModulesControllerNumeriquepremiumTest extends AbstractControllerTestCase {
   public function setUp() {
     parent::setUp();
@@ -147,5 +149,3 @@ class ModulesControllerNumeriquepremiumTest extends AbstractControllerTestCase {
     $this->assertXPathContentContains('//script', 'http://foo/', $this->_response->getBody());
   }
 }
-
-?>
diff --git a/tests/application/modules/opac/controllers/NoticeAjaxControllerPergameTest.php b/tests/application/modules/opac/controllers/NoticeAjaxControllerPergameTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..c1e562a7fcebbf3bc27e2385691f0c634daa3e3e
--- /dev/null
+++ b/tests/application/modules/opac/controllers/NoticeAjaxControllerPergameTest.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+require_once 'AbstractControllerTestCase.php';
+
+
+/** @see http://forge.afi-sa.fr/issues/21462 */
+abstract class NoticeAjaxControllerPergameItemTestCase extends AbstractControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->fixture('Class_IntBib', ['id' => 1,
+																		'nom' => 'Site principal',
+																		'nom_court' => 'limours',
+																		'sigb' => Class_IntBib::COM_PERGAME,
+																		'comm_sigb' => Class_IntBib::COM_PERGAME,
+																		'comm_params' => 'a:3:{s:26:"Autoriser_docs_disponibles";s:0:"";s:13:"Max_par_carte";s:1:"4";s:16:"Max_par_document";s:3:"100";}']);
+
+		$this->fixture('Class_Notice', ['id' => 23,
+																		'cle_oeuvre' => 'DDD']);
+
+		$this->fixture('Class_Exemplaire', ['id' => 732494,
+																				'id_notice' => 23,
+																				'id_bib' => 1,
+																				'code_barres' => '0213689147',
+																				'cote' => 'EA WAD',
+																				'genre' => 8,
+																				'documentaire' => 0,
+																				'section' => 3,
+																				'activite' => 'En rayon',
+																				'emplacement' => 0,
+																				'annexe' => 1,
+																				'date_nouveaute' => '0000-00-00',
+																				'id_origine' => '00013313',
+																				'id_int_bib' => 1,
+																				'is_available' => 1]);
+
+		$this->fixture('Class_Pret', ['id' => 98216,
+																	'id_site' => 1,
+																	'pergame' => 291392,
+																	'id_notice_origine' => '13313',
+																	'en_cours' => 1,
+																	'date_pret' => '2015-02-17',
+																	'date_retour' => '2015-03-31',
+																	'code_barres' => '0213689147']);
+	}
+}
+
+
+
+class NoticeAjaxControllerPergameItemNoDefaultLabelTest
+	extends NoticeAjaxControllerPergameItemTestCase {
+	public function setUp() {
+		parent::setUp();
+				$cfg = Class_Profil::getCurrentProfil()->getCfgNoticeAsArray();
+		$cfg['exemplaires']['grouper'] = 1;
+		unset($cfg['exemplaires']['en_pret']);
+		Class_Profil::getCurrentProfil()->setCfgNotice($cfg);
+
+		$this->dispatch('/noticeajax/exemplaires/id_notice/23', true);
+	}
+
+
+	/** @test */
+	public function availabilityLabelShouldBeEmprunte() {
+		$this->assertXPathContentContains('//td[contains(@class, "dispo")]',
+																			'emprunt',
+																			$this->_response->getBody());
+	}
+}
+
+
+
+
+class NoticeAjaxControllerPergameItemLabelConfiguredTest
+	extends NoticeAjaxControllerPergameItemTestCase {
+	public function setUp() {
+		parent::setUp();
+		$cfg = Class_Profil::getCurrentProfil()->getCfgNoticeAsArray();
+		$cfg['exemplaires']['grouper'] = 1;
+		$cfg['exemplaires']['en_pret'] = 'En pret';
+		Class_Profil::getCurrentProfil()->setCfgNotice($cfg);
+
+		$this->dispatch('/noticeajax/exemplaires/id_notice/23', true);
+	}
+
+
+	/** @test */
+	public function availabilityLabelShouldBeEnPret() {
+		$this->assertXPathContentContains('//td[contains(@class, "dispo")]',
+																			'En pret',
+																			$this->_response->getBody());
+	}
+}
diff --git a/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php b/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php
index 4c50518dc858150a67f2464adb693b2fc97f3bf8..cb6cad7bf4105712ff2eb2ce7babf4832658dde8 100644
--- a/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php
+++ b/tests/application/modules/opac/controllers/NoticeAjaxControllerTest.php
@@ -310,7 +310,8 @@ class NoticeAjaxControllerResNumeriquesTest extends AbstractControllerTestCase {
 
 
 
-class NoticeAjaxControllerResNumeriquesFromFrbrLinkTest extends AbstractControllerTestCase {
+
+abstract class NoticeAjaxControllerResNumeriquesFromFrbrLinkTestCase extends AbstractControllerTestCase {
 	public function setup() {
 		parent::setup();
 		$this->fixture('Class_Notice', ['id' => 123, 'clef_alpha' => 'ACESHIGH--IRONM---1984-1']);
@@ -319,6 +320,12 @@ class NoticeAjaxControllerResNumeriquesFromFrbrLinkTest extends AbstractControll
 														 'titre' => 'Aces High',
 														 'type_doc_id' => Class_TypeDoc::AUDIO_RECORD]);
 
+		$album = $this->fixture('Class_Album',
+														['id' => 43,
+														 'titre' => 'Digitak',
+														 'type_doc_id' => Class_TypeDoc::AUDIO_RECORD,
+														 'status' => Class_Album::STATUS_DRAFT]);
+
 		$this->fixture('Class_FRBR_LinkType',
 									 ['id' => 1,
 									  'libelle' => 'CD MP3',
@@ -343,6 +350,21 @@ class NoticeAjaxControllerResNumeriquesFromFrbrLinkTest extends AbstractControll
 										'target' => ROOT_URL . BASE_URL . '/recherche/viewnotice/clef/ACESHIGH--IRONM---1984-1',
 										'source' => ROOT_URL . BASE_URL . '/bib-numerique/notice/id/42']);
 
+		$this->fixture('Class_FRBR_Link',
+									 ['id' => 3,
+										'type_id' => 2,
+										'target' => ROOT_URL . BASE_URL . '/recherche/viewnotice/clef/ACESHIGH--IRONM---1984-1',
+										'source' => ROOT_URL . BASE_URL . '/bib-numerique/notice/id/43']);
+
+	}
+}
+
+
+
+class NoticeAjaxControllerResNumeriquesFromFrbrLinkTest extends NoticeAjaxControllerResNumeriquesFromFrbrLinkTestCase {
+	public function setup() {
+		parent::setup();
+
 		$this->dispatch('noticeajax/resnumeriques?id_notice=123', true);
 	}
 
@@ -369,6 +391,44 @@ class NoticeAjaxControllerResNumeriquesFromFrbrLinkTest extends AbstractControll
 	public function frbrLinkedAlbumTitleShouldBeDisplayed() {
 		$this->assertXPathContentContains('//h3', 'Aces High');
 	}
+
+
+	/** @test */
+	public function digitakTitleShouldBeDisplayed() {
+		$this->assertXPathContentContains('//h3', 'Digitak');
+	}
+
+
+	/** @test */
+	public function linkedAlbumShouldBeEditable() {
+		$this->assertXPath('//a[@class="edit_album"][contains(@href, "/admin/album/edit_album/id/42")]/img[contains(@src, "ico/edit.gif")]', $this->_response->getBody());
+	}
+
+
+	/** @test */
+	public function addAlbumLinkShouldBeDisplayed() {
+		$this->assertXPathContentRegex('//a[@class="link_album"][@data-popup="true"][contains(@href, "/admin/album/link_album_to/id_notice/123")]', '/Cr(.*)er un album/');
+	}
+}
+
+
+
+
+class NoticeAjaxControllerResNumeriquesFromFrbrLinkNonAdminTest extends NoticeAjaxControllerResNumeriquesFromFrbrLinkTestCase {
+	public function _login() {
+	}
+
+	public function setup() {
+		parent::setup();
+
+		$this->dispatch('noticeajax/resnumeriques?id_notice=123', true);
+	}
+
+
+	/** @test */
+	public function digitakTitleShouldNotBeDisplayed() {
+		$this->assertNotXPathContentContains('//h3', 'Digitak');
+	}
 }
 
 
diff --git a/tests/application/modules/opac/controllers/RechercheControllerAlbumAudioRecordTest.php b/tests/application/modules/opac/controllers/RechercheControllerAlbumAudioRecordTest.php
index c7083ed5988f2b80cade9221dcebd2230378978f..3a6f00fd2f5e840c96eb4affc9ccc4bc54b71592 100644
--- a/tests/application/modules/opac/controllers/RechercheControllerAlbumAudioRecordTest.php
+++ b/tests/application/modules/opac/controllers/RechercheControllerAlbumAudioRecordTest.php
@@ -50,7 +50,8 @@ abstract class RechercheControllerAlbumAudioRecordTestCase extends AbstractContr
 		$album = $this->fixture('Class_Album',
 														['id' => 4,
 														 'type_doc_id' => Class_TypeDoc::AUDIO_RECORD,
-														 'titre' => 'Seventh Son of a Seventh Son']);
+														 'titre' => 'Seventh Son of a Seventh Son',
+														 'status' => Class_Album::STATUS_VALIDATED]);
 		$this
 			->addAuthorToAlbum($album, 'Iron Maiden')
 			->addAuthorToAlbum($album, 'Bruce Dickinson', 'Chanteur')
@@ -74,10 +75,12 @@ abstract class RechercheControllerAlbumAudioRecordTestCase extends AbstractContr
 																		 'fichier' => 'unknown.mp3']))
 			->addRessource($this->fixture('Class_AlbumRessource',
 																		['id' => 4,
-																		 'fichier' => '502_05_the_prophecy.mp3']))
-			->addZone('856', ['a' => 'http://mabib.net/bib-numerique/notice/ido/1'])
-			->addZone('856', ['x' => 'external_uri'])
-			->assertSave();
+																		 'fichier' => '502_05_the_prophecy.mp3']));
+		$album->getMarc()
+					->addZone('856', ['a' => 'http://mabib.net/bib-numerique/notice/ido/1'])
+					->addZone('856', ['x' => 'external_uri']);
+
+		$album->assertSave();
 
 		$album->index();
 
@@ -126,14 +129,14 @@ class RechercheControllerAlbumAudioRecordViewNoticeTest extends RechercheControl
 
 
 	/** @test */
-	public function noticeShouldNotHaveUrlImageSet() {
-		$this->assertEmpty($this->_notice->getUrlImage());
+	public function noticeShouldHaveLocalUrlImageSet() {
+		$this->assertNotEmpty($this->_notice->getUrlImage());
 	}
 
 
 	/** @test */
-	public function noticeShouldNotHaveUrlVignetteSet() {
-		$this->assertEmpty($this->_notice->getUrlVignette());
+	public function noticeShouldHaveLocalUrlVignetteSet() {
+		$this->assertNotEmpty($this->_notice->getUrlVignette());
 	}
 
 
diff --git a/tests/application/modules/opac/controllers/RechercheControllerTest.php b/tests/application/modules/opac/controllers/RechercheControllerTest.php
index 5a2435388de9db9596331694ed656e59d3957645..9720a97d1ea073e40f95ea87458d1fdd1e734eb9 100644
--- a/tests/application/modules/opac/controllers/RechercheControllerTest.php
+++ b/tests/application/modules/opac/controllers/RechercheControllerTest.php
@@ -105,12 +105,6 @@ class RechercheControllerReseauTest extends RechercheControllerNoticeTestCase {
 
 
 class RechercheControllerViewNoticeBabelthequeTest extends RechercheControllerNoticeTestCase {
-	public function setUp() {
-		parent::setUp();
-
-	}
-
-
 	/** @test */
 	public function withoutBabelthequeJSShouldNotBeLoaded() {
 		Class_AdminVar::newInstanceWithId('BABELTHEQUE_JS')->setValeur('');
@@ -497,6 +491,50 @@ class RechercheControllerViewNoticeMetasTest extends AbstractControllerTestCase
 
 
 
+class RechercheControllerVignetteTest extends RechercheControllerNoticeTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->dispatch('recherche/vignette/id_notice/345', true);
+	}
+
+	/** @test */
+	public function responseShouldRedirectToVignetteUrl() {
+		$this->assertContains('/temp/vignettes_titre/notice_345.png',
+													$this->getResponseLocation());
+	}
+}
+
+
+
+class RechercheControllerVignetteEmptyTest extends AbstractControllerTestCase {
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+	}
+
+	public function setUp() {
+		parent::setUp();
+
+		Storm_Model_Loader::defaultToVolatile();
+
+		$article = $this->fixture('Class_Article',
+									 ['id' => 123,
+										'titre' => 'An article with img',
+										'contenu' => 'This article should contains an image like this <img src="/images/articles/img.png" />']);
+		$article->index();
+		$this->dispatch('recherche/vignette/id_notice/1', true);
+	}
+
+	/** @test */
+	public function responseShouldRedirectToVignetteUrl() {
+		$this->assertContains('/temp/vignettes_titre/notice_1.png',
+													$this->getResponseLocation());
+
+
+	}
+}
+
+
+
 class RechercheControllerViewNoticeClefAlphaTest extends RechercheControllerNoticeTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -637,12 +675,12 @@ class RechercheControllerUploadVignetteTest extends RechercheControllerNoticeTes
 
 
 
-
 class RechercheControllerViewNoticeAsAdminTest extends RechercheControllerNoticeTestCase {
 	public function setUp() {
 		parent::setUp();
 		$this->notice->setTypeDoc(5);
 		Class_Users::getIdentity()->beAdminPortail();
+
 		$this->dispatch(sprintf('recherche/viewnotice/id/%d', $this->notice->getId()), true);
 	}
 
@@ -664,6 +702,94 @@ class RechercheControllerViewNoticeAsAdminTest extends RechercheControllerNotice
 		$this->assertHTML5();
 	}
 }
+class RechercheControllerViewNoticeAndResnumeriqueTabAsAdminTest extends RechercheControllerNoticeTestCase {
+	public function setUp() {
+		parent::setUp();
+		Class_Users::getIdentity()->beAdminPortail();
+
+		$preferences = ['barre_nav' => 'Document',
+										'entete' =>"ABCDEFGIKLMNOPRSTtYZ8v9",
+										'onglets' =>	['detail' =>					['titre' =>	'Details',
+																												 'aff' =>	'1',
+																												 'ordre' =>	1,
+																												 'largeur' =>	10],
+																	 'avis' =>						['titre' =>	'avis',
+																												 'aff' =>	'1',
+																												 'ordre' =>	2,
+																												 'largeur' =>	10],
+																	 'exemplaires' =>		  ['titre' =>	'exemplaires',
+																												 'aff' =>	'2',
+																												 'ordre' =>	3,
+																												 'largeur' =>	10],
+																	 'resume' =>					['titre' =>	'resume',
+																												 'aff' =>	'2',
+																												 'ordre' =>	4,
+																												 'largeur' =>	10],
+																	 'tags' =>						['titre' =>	'tags',
+																												 'aff' =>	'2',
+																												 'ordre' =>	5,
+																												 'largeur' =>	10],
+																	 'biographie' =>		 	['titre' =>	'biographie',
+																												 'aff' =>	'2',
+																												 'ordre' =>	6,
+																												 'largeur' =>	10],
+																	 'similaires' =>			['titre' =>	'similaires',
+																												 'aff' =>	'2',
+																												 'ordre' =>	7,
+																												 'largeur' =>	10],
+																	 'bibliographie' =>	  ['titre' =>	'bibliographie',
+																												 'aff' =>	'3',
+																												 'ordre' =>	7,
+																												 'largeur' =>	10],
+																	 'morceaux' =>				['titre' =>	'morceaux',
+																												 'aff' =>	'3',
+																												 'ordre' =>	8,
+																												 'largeur' =>	10],
+																	 'bandeAnnonce' =>		['titre' =>	'bande annonce',
+																												 'aff' =>	'3',
+																												 'ordre' =>	9,
+																												 'largeur' =>	10],
+																	 'photos' =>					['titre' =>	'photos',
+																												 'aff' =>	'3',
+																												 'ordre' =>	14,
+																												 'largeur' =>	10],
+																	 'videos' =>					['titre' =>	'videos',
+																												 'aff' =>	'3',
+																												 'ordre' =>	11,
+																												 'largeur' =>	10],
+																	 'resnumeriques' =>	  ['titre' =>	'ressources n',
+																												 'aff' =>	'2',
+																												 'ordre' =>	12,
+																												 'largeur' =>	10],
+																	 'babeltheque' =>		  ['titre' =>	'babeltheque',
+																												 'aff' =>	'3',
+																												 'ordre' =>	13,
+																												 'largeur' =>	10],
+																	 'frbr' =>						['titre' =>	'frbr',
+																												 'aff' =>	'0',
+																												 'ordre' =>	10,
+																												 'largeur' =>	10],
+																	 'serie' =>					  ['titre' =>	'serie',
+																												 'aff' =>	'0',
+																												 'ordre' =>	11,
+																												 'largeur' =>	10]],
+										'boite' =>	null];
+
+		Class_Profil::beVolatile();
+    $this->fixture('Class_Profil', ['id' => 1,
+																		'libelle' => 'Afibre'])
+			->setBarreNavOn(true)
+			->setCfgModules(['recherche' =>	['viewnotice1' => $preferences]])
+			->beCurrentProfil();
+		$this->dispatch(sprintf('recherche/viewnotice/id/%d', $this->notice->getId()), true);
+	}
+
+
+	/** @test */
+	public function resnumeriquesBlocShouldBePresent() {
+		$this->assertXPathContentContains('//div[@class="resnumeriques block_info_notice"]//h2', 'ressources n');
+	}
+}
 
 
 
@@ -1789,6 +1915,10 @@ class RechercheControllerAjoutNoticePanierUrlWithMurConfigTest extends Recherche
 		$this->assertXPathContentContains('//div', 'pomme');
 	}
 
+	/** @test */
+	public function correctPunctuationSpacesShouldBeDisplayed() {
+		$this->assertXPathContentContains('//span',"pour : ");
+	}
 
 	/** @test */
 	public function pageShouldContainsLinkToSuggestionAchats() {
@@ -1811,7 +1941,7 @@ class RechercheControllerAjoutNoticePanierUrlWithMurConfigTest extends Recherche
 
 	/** @test */
 	public function linksAjoutPanierShouldHaveDataPopupTrue() {
-		$this->assertXPath('//a[contains(@href, "/panier/ajout-ajax/id_notice/")][@data-popup="true"]');
+		$this->assertXPath('//a[contains(@href, "/panier/ajout-ajax/id_notice/")][@data-popup="true"]',$this->_response->getBody());
 	}
 
 
@@ -2092,7 +2222,6 @@ class RechercheControllerSimpleActionWithCvsActivatedTest extends RechercheContr
 		return $xml;
 	}
 
-
 	/** @test **/
 	public function titleResultFromOpacShouldBeDiplay() {
 		$this->assertXPathContentContains('//h1','Results from opac');
diff --git a/tests/application/modules/opac/controllers/RssControllerTest.php b/tests/application/modules/opac/controllers/RssControllerTest.php
index 6fbf0f237714d3f23fc657e61ac9e70f1a006c9e..fd3712bcdee22d65a4320534bc02b638276ed67d 100644
--- a/tests/application/modules/opac/controllers/RssControllerTest.php
+++ b/tests/application/modules/opac/controllers/RssControllerTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AbstractControllerTestCase.php';
 
@@ -60,23 +60,23 @@ class RssControllerViewRawRssTest extends AbstractControllerTestCase {
 																														'preferences' => $preferences))));
 
 
-		
+
 		$this->old_http_client = Zend_Registry::get('httpClient');
 		Zend_Registry::set('httpClient', new MockZendHttpClient());
 
 		$this->dispatch('rss/view-raw-rss/id_rss/15/id_profil/25/id_module/1');
 	}
 
-	
+
 	public function tearDown() {
 		Zend_Registry::set('httpClient', $this->old_http_client);
 		parent::tearDown();
 	}
 
-	
+
 	/** @test */
 	function titleShouldContainsBlogDelinquanceEtc() {
-		$this->assertXPathContentContains('//div[@class="rss-title"]/a', 
+		$this->assertXPathContentContains('//div[@class="rss-title"]/a',
 																			utf8_encode('Blog - Délinquance des mineurs : le septième rapport en sept ans'),
 																			$this->_response->getBody());
 	}
@@ -84,7 +84,7 @@ class RssControllerViewRawRssTest extends AbstractControllerTestCase {
 
 	/** @test */
 	function titleShouldNotContainsLePremierTrainSolaire() {
-		$this->assertNotXPathContentContains('//div[@class="rss-title"]/a', 
+		$this->assertNotXPathContentContains('//div[@class="rss-title"]/a',
 																			'Le premier train solaire roule en Belgique',
 																			$this->_response->getBody());
 	}
@@ -107,7 +107,7 @@ class RssControllerKiosqueInexistingProfilTest extends AbstractControllerTestCas
 		$this->dispatch('/rss/kiosque/id_profil/-1/id_module/12', true);
 	}
 
-	
+
 	/** @test */
 	public function rssShouldBeEmpty() {
 		$this->assertNotXPath('//item');
@@ -140,7 +140,7 @@ class RssControllerKiosqueTest extends AbstractControllerTestCase {
 			'id_notice' => '1',
 			'titre' => 'Notice 1',
 			'auteur' => 'Author 1',
-			"vignette" => 'notice1.jpg',
+			"url_vignette" => 'notice1.jpg',
 			"type_doc" => '',
 			"editeur" => '',
 			"annee" => '',
@@ -148,13 +148,13 @@ class RssControllerKiosqueTest extends AbstractControllerTestCase {
 			"date_maj" => time(),
 			"facettes" => '',
 			"clef_oeuvre" => ''
-		])->toArray();
+																							 ]);
 		$notice2 = $this->fixture('Class_Notice', [
 			'id' => 2,
 			'id_notice'=> 2,
 			'titre' => 'Notice 2',
 			'auteur' => 'Auteur 2',
-			"vignette" => 'notice2.jpg',
+			"url_vignette" => 'notice2.jpg',
 			"type_doc" => '',
 			"editeur" => '',
 			"annee" => '',
@@ -162,13 +162,13 @@ class RssControllerKiosqueTest extends AbstractControllerTestCase {
 			"date_maj" => time(),
 			"facettes" => '',
 			"clef_oeuvre" => ''
-		])->toArray();
+																							 ]);
 		$notice3 = $this->fixture('Class_Notice', [
 			'id' => 3,
 			'id_notice' => 3,
 			'titre' => 'Notice 3',
 			'auteur' => 'Auteur 1',
-			"vignette" => 'notice3.jpg',
+			"url_vignette" => 'notice3.jpg',
 			"type_doc" => '',
 			"editeur" => '',
 			"annee" => '',
@@ -176,7 +176,7 @@ class RssControllerKiosqueTest extends AbstractControllerTestCase {
 			"date_maj" => time(),
 			"facettes" => '',
 			"clef_oeuvre" => ''
-		])->toArray();
+																							 ]);
 
 		$catalogue = $this->fixture('Class_Catalogue', [
 			'id' => 1,
@@ -189,31 +189,39 @@ class RssControllerKiosqueTest extends AbstractControllerTestCase {
 		$this->dispatch('/rss/kiosque/id_profil/76/id_module/10', true);
 	}
 
-	
+
   /** @test */
 	public function rssShouldContainsThreeItems() {
 		$this->assertXPath('//item[3]');
 	}
 
-	
+
 	/** @test */
 	public function rssOfNotice1ShouldContainsImgUrl() {
 		$this->assertXPath('//item[1]//media:content[contains(@url,"'.BASE_URL.'/notice1.jpg")]');
 	}
 
+
+	/** @test */
+	public function rssOfNotice2ShouldContainsImgUrl() {
+		$this->assertXPath('//item[2]//media:content[contains(@url,"'.BASE_URL.'/notice2.jpg")]');
+	}
+
+
 	/** @test */
 	public function rssLinkShouldContainBaseUrl() {
 		$this->assertXPathContentContains('//link', BASE_URL);
 	}
 
+
 	/** @test */
 	public function rssImageUrlShouldContainExpectedUrl() {
 		$this->assertXPathContentContains('//image/url', URL_IMG . 'site/logo.jpg');
 	}
-
 }
 
 
+
 class RssControllerModerationsTest extends AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -299,7 +307,7 @@ class RssControllerCritiquesTest extends AbstractControllerTestCase {
 		$this->dispatch('/rss/critiques/id_profil/76/id_module/10', true);
 	}
 
-	
+
   /** @test */
 	public function rssShouldContainsTwoItems() {
 		$this->assertXPath('//item[2]');
@@ -325,7 +333,7 @@ class RssControllerCritiquesTest extends AbstractControllerTestCase {
 
 class RssFixtures {
 	public static function lemondeRSS() {
-		return 
+		return
 			'<?xml version=\'1.0\' encoding=\'UTF-8\'?>
 			 <?xml-stylesheet type=\'text/xsl\' href=\'http://rss.lemonde.fr/xsl/fr/rss.xsl\'?>
 			 <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" version="2.0">
diff --git a/tests/application/modules/opac/controllers/SitoControllerTest.php b/tests/application/modules/opac/controllers/SitoControllerTest.php
index d86bc9fd260f29ecf62d791f953a476c66b40e39..0a18cc72cc260791aef4bf42e4744b803ad225c4 100644
--- a/tests/application/modules/opac/controllers/SitoControllerTest.php
+++ b/tests/application/modules/opac/controllers/SitoControllerTest.php
@@ -158,12 +158,34 @@ class SitoControllerSitoWebThumbnailUrl extends SitoControllerTestCase {
 	public function setup() {
 		parent::setUp();
 
-		 $this->dispatch('/sito/webthumbnail?url=http://linuxfr.org');
+		Class_AdminVar::newInstanceWithId('BLUGA_API_KEY', ['valeur' => '123456'])->save();
+
+		$filesystem = Storm_Test_ObjectWrapper::mock();
+		$filesystem
+			->whenCalled('fileExists')
+			->answers(false);
+
+		$thumbnailer = Storm_Test_ObjectWrapper::mock();
+		$thumbnailer
+			->whenCalled('fetchUrlToFile')
+			->answers(true);
+		Class_WebService_WebSiteThumbnail::setThumbnailer($thumbnailer);
+		Class_WebService_WebSiteThumbnail::setFileWriter($filesystem);
+		$this->dispatch('/sito/webthumbnail?url=http://linuxfr.org');
 	}
 
 
-	/** @test */	public function siteLinuxThumbnailUrlShouldBelinuxfrOrgDotJpg() {
-		$this->assertRedirectTo(BASE_URL.'/userfiles/web_thumbnails/linuxfr_org.jpg');
+	public function tearDown() {
+		Class_WebService_WebSiteThumbnail::setThumbnailer(null);
+		Class_WebService_WebSiteThumbnail::setFileWriter(null);
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function siteLinuxThumbnailUrlShouldBelinuxfrOrgDotJpg() {
+		$this->assertRedirectTo(BASE_URL.'/userfiles/web_thumbnails/linuxfr_org.jpg',
+														$this->getResponseLocation());
 	}
 }
 ?>
diff --git a/tests/application/modules/push/controllers/MultimediaControllerTest.php b/tests/application/modules/push/controllers/MultimediaControllerTest.php
index a2ca35a4b766efeff8102c964ecf4b8452fb82dc..d2531cebb071cd10d0fa7012f23c421b68c163a9 100644
--- a/tests/application/modules/push/controllers/MultimediaControllerTest.php
+++ b/tests/application/modules/push/controllers/MultimediaControllerTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'AbstractControllerTestCase.php';
 
@@ -35,7 +35,7 @@ abstract class Push_MultimediaControllerTestCase extends AbstractControllerTestC
 
 class Push_MultimediaControllerInvalidConfigTest extends Push_MultimediaControllerTestCase {
 	public function setUp() {
-		parent::setUp();				
+		parent::setUp();
 		$this->_log
 			->whenCalled('err')->answers(null)
 			->whenCalled('info')->answers(null);
@@ -48,14 +48,14 @@ class Push_MultimediaControllerInvalidConfigTest extends Push_MultimediaControll
 			[['json' => '{}'], 'Missing sign parameter'],
 			[['json' => 'it is invalid', 'sign' => 'iu/-@+uieiucrc'], 'Invalid json'],
 			[['json' => '[{"libelle":"Groupe 1", "id":1, "site":{"id":1,"libelle":"Site 1"}, "postes":[{"id":1, "libelle":"Poste 1", "os":"Windows XP", "maintenance":"1"}, {"id":2, "libelle":"Poste 2", "os":"Ubuntu Lucid Lynx", "maintenance":"0"}]}]',
-				'sign' => 'iu/-@+uieiucrc'], 
+				'sign' => 'iu/-@+uieiucrc'],
 			 'Sign check failure']
 			];
 	}
 
 
-	/** 
-	 * @test 
+	/**
+	 * @test
 	 * @dataProvider datas
 	 */
 	public function withParamsShouldHaveError($params, $message) {
@@ -112,22 +112,19 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 
 		Class_Multimedia_Location::beVolatile();
 		Class_Multimedia_DeviceGroup::beVolatile();
+		$this->fixture('Class_Multimedia_Device', ['id' => 34, 'id_origine' => '1-34']);
+		$this->fixture('Class_Multimedia_DeviceGroup', ['id' => 1, 'id_origine' => '1-64', 'libelle'=>'groupe Y']);
 
-		$this->_device_wrapper = Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_Device')
-			->whenCalled('findAllBy')
-  		->with(['where' => 'id_origine not in(\'1-1\',\'1-2\') and id_origine like \'1-%\''])		 
-			->answers([
-									$this->fixture('Class_Multimedia_Device', 
-																 ['id' => 34, 'id_origine' => '1-34'])]);
-
-		$datas = '[{"libelle":"Groupe 1", "id":1, "site":{"id":1,"libelle":"Site 1","admin_url":"192.168.2.92"}, "postes":[{"id":1, "libelle":"Poste 1", "os":"Windows XP", "maintenance":"1"}, {"id":2, "libelle":"Poste 2", "os":"Ubuntu Lucid Lynx", "maintenance":"0"}]}]';
+		$datas = '[{"libelle":"Groupe 1", "id":2, "site":{"id":1,"libelle":"Site 1","admin_url":"192.168.2.92"}, "postes":[{"id":1, "libelle":"Poste 1", "os":"Windows XP", "maintenance":"1"}, {"id":2, "libelle":"Poste 2", "os":"Ubuntu Lucid Lynx", "maintenance":"0"}]}]';
 
 		$this->postDispatch(
 				'/push/multimedia/config',
 				['json' => $datas,
 				 'sign' => $this->sign($datas)]);
 
-		$this->_group = Class_Multimedia_DeviceGroup::find(1);
+
+
+		$this->_group = Class_Multimedia_DeviceGroup::find(2);
 		$this->_devices = Class_Multimedia_Device::findAll();
 	}
 
@@ -137,7 +134,7 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 		return base64_encode($sign);
 	}
 
-		
+
 	/** @test */
 	public function deviceGroupLibelleShouldBeGroupeOne() {
 		$this->assertEquals('Groupe 1', $this->_group->getLibelle());
@@ -146,7 +143,7 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 
 	/** @test */
 	public function deviceGroupIdOrigineShouldBeOne() {
-		$this->assertEquals('1-1', $this->_group->getIdOrigine());
+		$this->assertEquals('1-2', $this->_group->getIdOrigine());
 	}
 
 
@@ -171,6 +168,7 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 
 	/** @test */
 	public function firstDeviceLibelleShouldBePoste1() {
+
 		$this->assertEquals('Poste 1', $this->_devices[0]->getLibelle());
 	}
 
@@ -190,7 +188,7 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 	/** @test */
 	public function firstDeviceGroupShouldBeGroupe1() {
 		$this->assertEquals($this->_group, $this->_devices[0]->getGroup());
-	}
+		}
 
 
 	/** @test */
@@ -216,7 +214,7 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 		$this->assertEquals('1-2', $this->_devices[1]->getIdOrigine());
 	}
 
-	
+
 	/** @test */
 	public function secondDeviceShouldNotBeDisabled() {
 		$this->assertFalse($this->_devices[1]->isDisabled());
@@ -227,11 +225,16 @@ l66WXceACmsgGWEdHMB7ZPUd4HqR5bdE1Xnr1Q0Z9IIku6Naxt/yy0P5Gv+ZlW7U
 	public function deviceNotInPushShouldHaveBeenDeleted() {
 		$this->assertNull(Class_Multimedia_Device::find(34));
 	}
+
+	/** @test */
+	public function deviceGroupWithoutPosteShouldHaveBeenDeleted() {
+		$this->assertNull(Class_Multimedia_DeviceGroup::find(26));
+	}
 }
 
 
 abstract class AllBorrowersMultimediaControllerTestCase extends AbstractControllerTestCase {
-	protected 
+	protected
 		$_resp,
 		$_private_key ="-----BEGIN RSA PRIVATE KEY-----
 MIICWwIBAAKBgQCm1hgee4LI7ji06BkuV8O4XpxHe59n80Gge/r3uROj+Tuxx2AO
@@ -276,18 +279,18 @@ yIuUs1qpg+Vx0R+3VwIDAQAB
 	public function getPublicKey(){
 		return $this->_public_key;
 	}
-	
+
 	public function signUrl($action){
 		$connector = new Class_Multimedia_Connector_Multimedia();
-		openssl_sign($connector->dataFor($action), 
-								 $sign, 
+		openssl_sign($connector->dataFor($action),
+								 $sign,
 								 $this->_private_key);
 		return base64_encode($sign);
 	}
 }
 
 
-abstract class AllBorrowersMultimediaControllerJsonEncodeOnlyTestCase 
+abstract class AllBorrowersMultimediaControllerJsonEncodeOnlyTestCase
 extends AllBorrowersMultimediaControllerTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -300,7 +303,7 @@ extends AllBorrowersMultimediaControllerTestCase {
 }
 
 
-class AllBorrowersMultimediaControllerGetAllBorrowersValidationTest 
+class AllBorrowersMultimediaControllerGetAllBorrowersValidationTest
 extends AllBorrowersMultimediaControllerJsonEncodeOnlyTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -309,7 +312,7 @@ extends AllBorrowersMultimediaControllerJsonEncodeOnlyTestCase {
 
 
 	/** @test */
-	public function responseShouldNotBeARedirect() {		
+	public function responseShouldNotBeARedirect() {
 		$this->assertNotRedirect();
 	}
 
@@ -335,7 +338,7 @@ class AllBorrowersMultimediaControllerNoParameterTest extends AllBorrowersMultim
 		$this->_resp = $this->getResponseJsonDecode('get-all-borrowers');
  	}
 
-	
+
 	/** @test */
 	public function shouldHaveNumberDataZero() {
 		$this->assertEquals(0, count($this->_resp->data));
@@ -361,7 +364,7 @@ class AllBorrowersMultimediaControllerDisabledTest extends AllBorrowersMultimedi
 		$this->_resp = $this->getResponseJsonDecode('get-all-borrowers?sign=' . urlencode($sign));
  	}
 
-	
+
 	/** @test */
 	public function shouldHaveNumberDataZero() {
 		$this->assertEquals(0, count($this->_resp->data));
@@ -388,7 +391,7 @@ class AllBorrowersMultimediaControllerInvalidSignatureTest extends AllBorrowersM
 		$this->_resp = $this->getResponseJsonDecode('get-all-borrowers?sign=' . urlencode($sign));
  	}
 
-	
+
 	/** @test */
 	public function shouldHaveNumberDataZero() {
 		$this->assertEquals(0, count($this->_resp->data));
@@ -417,7 +420,7 @@ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm1hgee4LI
 		$this->_resp = $this->getResponseJsonDecode('get-all-borrowers?sign=' . urlencode($sign));
  	}
 
-	
+
 	/** @test */
 	public function shouldHaveNumberDataZero() {
 		$this->assertEquals(0, count($this->_resp->data));
@@ -439,7 +442,7 @@ class AllBorrowersMultimediaControllerGetAllBorrowersNumberOfOccurencesReturnedT
 			->whenCalled('countBorrowers')
 			->answers(2)
 			->whenCalled('getBorrowersByPage')
-			->answers([AbonneMultimediaControllerMultimediaUsersFixtures::getLoas(), 
+			->answers([AbonneMultimediaControllerMultimediaUsersFixtures::getLoas(),
 								 AbonneMultimediaControllerMultimediaUsersFixtures::getAmadou()]);
 
 	  Class_AdminVar::getLoader()
@@ -457,7 +460,7 @@ class AllBorrowersMultimediaControllerGetAllBorrowersNumberOfOccurencesReturnedT
 
 	/** @test */
 	public function shouldHaveDateExportEqual2013_01_13() {
-		$date = new DateTime('2013-10-15 16:26:23'); 
+		$date = new DateTime('2013-10-15 16:26:23');
 		$this->assertEquals($date->format('c'),$this->_resp->date_export);
 	}
 }
@@ -471,7 +474,7 @@ class AllBorrowersMultimediaControllerFirstBorrowerReturnedIsLoasTest extends Al
 			->whenCalled('countBorrowers')
 			->answers(2)
 			->whenCalled('getBorrowersByPage')
-			->answers([AbonneMultimediaControllerMultimediaUsersFixtures::getLoas(), 
+			->answers([AbonneMultimediaControllerMultimediaUsersFixtures::getLoas(),
 								 AbonneMultimediaControllerMultimediaUsersFixtures::getAmadou()]);
 
 	  Class_AdminVar::getLoader()
@@ -487,7 +490,7 @@ class AllBorrowersMultimediaControllerFirstBorrowerReturnedIsLoasTest extends Al
 		$this->assertEquals('Loas', $this->_resp->data[0]->nom);
 	}
 
-	
+
 	/** @test */
 	public function shouldReturnedPasswordFisrtBorrowerIsLoas42Pat() {
 		$this->assertEquals('loas42Pat', $this->_resp->data[0]->password);
@@ -516,7 +519,7 @@ class AbonneMultimediaControllerMultimediaUsersFixtures {
 			->setEmail('loas@mail.fr');
 	}
 
- 
+
 	public static function getAmadou() {
 		return Class_Users::getLoader()->newInstanceWithId(13)
 			->beAbonneSIGB()
diff --git a/tests/application/modules/telephone/controllers/RechercheControllerTest.php b/tests/application/modules/telephone/controllers/RechercheControllerTest.php
index 0aa2a41ff3b10bfad3b4e072365a0cb2e0e0bb3e..52b146603a7ddb831933df106ac66a73bb5bcee8 100644
--- a/tests/application/modules/telephone/controllers/RechercheControllerTest.php
+++ b/tests/application/modules/telephone/controllers/RechercheControllerTest.php
@@ -195,8 +195,8 @@ class Telephone_RechercheControllerFrbrWithLinksTest extends TelephoneAbstractCo
 										'titre_principal' => 'Tintin e i picaros',
 										'clef_alpha' => $this->_tintinPicaros,
 										'auteur_principal' => 'Hergé',
-										'url_vignette' => 'picaros_small.png',
-										'url_image' => 'picaros.png']);
+										'url_vignette' => '',
+										'url_image' => '']);
 
 		$this->fixture('Class_Notice',
 									 ['id' => 777,
@@ -245,6 +245,18 @@ class Telephone_RechercheControllerFrbrWithLinksTest extends TelephoneAbstractCo
   public function tintinAventureShouldBePresent() {
     $this->assertXPathContentContains('//li/a[contains(@href, "/viewnotice/clef/' . $this->_tintinAventure . '")]', 'The adventure of Tintin');
   }
+
+
+	/** @test */
+	public function tintinAdventureShouldHaveImageTintinSmall() {
+		$this->assertXPath('//li/a/img[contains(@src, "tintin_small.png")]');
+	}
+
+
+	/** @test */
+	public function tintinPicarosShouldHaveImageFromVignetteAction() {
+		$this->assertXPath('//li/a/img[contains(@src, "/recherche/vignette?clef=")]');
+	}
 }
 
 
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index 866127bfa7c979d9bf28e436b8aca67c84ec0a93..784c43ec45fd4a429290d7175447959e7e4699a4 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -84,8 +84,9 @@ $_SERVER['HTTP_HOST'] = 'localhost';
 //Initialize the router for tests that do not rely on dispatch
 Zend_Controller_Front::getInstance()->getRouter()->route(new Zend_Controller_Request_Http('http://localhost/'));
 
-require_once "tests/library/ZendAfi/View/Helper/ViewHelperTestCase.php";
+require_once 'tests/library/ZendAfi/View/Helper/ViewHelperTestCase.php';
 require_once 'tests/application/modules/admin/controllers/AdminAbstractControllerTestCase.php';
+require_once 'tests/fixtures/RessourcesNumeriquesFixtures.php';
 
 register_shutdown_function(function(){
 	TestSpeedTrap::printSpeedTrappedTests();
diff --git a/tests/bootstrap_frontcontroller.php b/tests/bootstrap_frontcontroller.php
index af4c0de2ba119cfe03914a13ea0b0c348be1318f..8b82fc7e6ce54739b0e280bb473496c85f3eba68 100644
--- a/tests/bootstrap_frontcontroller.php
+++ b/tests/bootstrap_frontcontroller.php
@@ -31,4 +31,6 @@ $controller = newFrontController()->throwExceptions(true);
 Zend_Controller_Action_HelperBroker::addHelper(new ZendAfi_Controller_Action_Helper_ViewRenderer());
 
 setupRoutes($controller, new Zend_Config([]));
+
+$controller->getRouter()->addDefaultRoutes();
 ?>
\ No newline at end of file
diff --git a/tests/fixtures/HarvestOrpheaFixtures.php b/tests/fixtures/HarvestOrpheaFixtures.php
new file mode 100644
index 0000000000000000000000000000000000000000..17315524abcd87cfabd8c9c0459ff16036d39cc7
--- /dev/null
+++ b/tests/fixtures/HarvestOrpheaFixtures.php
@@ -0,0 +1,429 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class HarvestOrpheaFixtures {
+	public static function errorLoginXML() {
+		return '<?xml version="1.0" encoding="utf-8"?>
+		<root>
+			<errorcode>10</errorcode>
+			<errortext>An error occurred while processing your request</errortext>
+			<fullmessage>Invalid Username/Password.</fullmessage>
+			<oracletext></oracletext>
+			<oraclecode></oraclecode>
+		</root>';
+	}
+
+
+	public static function countRecordsXML() {
+		return '<?xml version="1.0" encoding="utf-8"?>
+		<root>
+		<count>311</count>
+		</root>';
+	}
+
+
+	public static function countNineRecordsXML() {
+		return '<?xml version="1.0" encoding="utf-8"?>
+		<root>
+		<count>9</count>
+		</root>';
+	}
+
+
+  public static function correctLoginXML() {
+    return
+			'<?xml version="1.0" encoding="utf-8"?>
+			<root>
+				<row>
+					<charset_db>AL32UTF8</charset_db>
+					<charset_macosx>NSUnicodeStringEncoding</charset_macosx>
+					<charset_windows>UTF-8</charset_windows>
+					<dateformat>MM/DD/YYYY</dateformat>
+					<default_download_quotas>10</default_download_quotas>
+					<disable_date>0</disable_date>
+					<disable_libraries>0</disable_libraries>
+					<errorcode>0</errorcode>
+					<extendedrights>0</extendedrights>
+					<group_id>1</group_id>
+					<httpmainaddress>http://phototheque.cherbourg-octeville.fr/</httpmainaddress>
+					<keylanguage>1</keylanguage>
+					<mainlanguage>1</mainlanguage>
+					<oracletext></oracletext>
+					<subscription_type>1</subscription_type>
+					<unid>zihovzjwgyfnayeqafnrxahjqzybbheenmbvggwwcqjysbtggscgntmdmmfkyribdsijbqhicdueopxohtrabrwvruuljygogqxdybpsg</unid>
+					<version_schema>400</version_schema>
+					<zip_maxfiles>100</zip_maxfiles>
+					<spiderenabled>0</spiderenabled>
+					<workflowenabled>1</workflowenabled>
+					<navigationtreeenabled>0</navigationtreeenabled>
+					<preindexenabled>0</preindexenabled>
+					<fk_lightbox>281</fk_lightbox>
+				</row>
+			</root>';
+  }
+
+	public static function oneRecordXML() {
+		return
+			'<?xml version="1.0" encoding="utf-8"?>
+			<root>
+				<row>
+					<id_objet>25217</id_objet>
+					<pk_library>2</pk_library>
+					<type>1</type>
+					<id_user>ORPHEA</id_user>
+					<modifiedby></modifiedby>
+					<numero_lot></numero_lot>
+					<pk_feature></pk_feature>
+					<date>07/11/2014</date>
+					<caption></caption>
+					<title>2gm chbg428</title>
+					<remarque></remarque>
+					<priority>0</priority>
+					<horz_vert>1</horz_vert>
+					<modifieddate></modifieddate>
+					<subtitle></subtitle>
+					<indexstatus>1</indexstatus>
+					<reference>2GM_CHBG428</reference>
+					<copyright></copyright>
+					<need_iptc_rewrite>0</need_iptc_rewrite>
+					<is_private_url>0</is_private_url>
+					<private_url></private_url>
+					<exif_data>
+						NewSubfileType=0
+						ImageWidth=1403
+						ImageLength=2439
+						BitsPerSample=8, 8, 8
+						Compression=TIFF
+						StripOffsets=23288
+						Orientation=Normal
+						SamplesPerPixel=3
+						RowsPerStrip=2439
+						StripByteCounts=10265751
+						XResolution=600,00
+						YResolution=600,00
+						PlanarConfiguration=1
+						ResolutionUnit=Inch
+						Software=Adobe Photoshop CS2 Windows
+						DateTime=2014:07:11 14:08:44
+						ImageResourceInformation=56, 66, 73, 77, 4, 37, 0, 0
+						ExifOffset=10289040</exif_data>
+					<has_exif>1</has_exif>
+					<rebuild_thumbnail></rebuild_thumbnail>
+					<code_language>FR</code_language>
+					<fk_pricecategory></fk_pricecategory>
+					<view_count></view_count>
+					<license_type>-1</license_type>
+					<pubbegindate></pubbegindate>
+					<pubenddate></pubenddate>
+					<iptc_win_encoding>0</iptc_win_encoding>
+					<url>/vignettes/00000000025/2gm_chbg428.thw</url>
+					<url_full>http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.thw</url_full>
+				</row>
+
+			</root>';
+	}
+
+
+	public static function twoRecordsXML() {
+		return
+			'<?xml version="1.0" encoding="utf-8"?>
+			<root>
+	<row>
+		<id_objet>25100</id_objet>
+		<pk_library>2</pk_library>
+		<type>1</type>
+		<id_user>ORPHEA</id_user>
+		<modifiedby>HIRARD</modifiedby>
+		<numero_lot></numero_lot>
+		<pk_feature>316</pk_feature>
+		<date>02/04/2014</date>
+		<caption>Narcisse</caption>
+		<title>Narcifse à feuilles menues</title>
+		<remarque></remarque>
+		<priority>0</priority>
+		<horz_vert>1</horz_vert>
+		<modifieddate>23/05/2014</modifieddate>
+		<subtitle>Les Liliacées</subtitle>
+		<indexstatus>0</indexstatus>
+		<reference>B50129_1666_IN2_08_198</reference>
+		<copyright></copyright>
+		<need_iptc_rewrite>0</need_iptc_rewrite>
+		<is_private_url>0</is_private_url>
+		<private_url></private_url>
+		<exif_data></exif_data>
+		<has_exif>0</has_exif>
+		<rebuild_thumbnail></rebuild_thumbnail>
+		<code_language>FR</code_language>
+		<fk_pricecategory></fk_pricecategory>
+		<view_count></view_count>
+		<license_type>-1</license_type>
+		<pubbegindate></pubbegindate>
+		<pubenddate></pubenddate>
+		<iptc_win_encoding>0</iptc_win_encoding>
+		<url>/vignettes/00000000024/b50129_1666_in2_08_198.thw</url>
+		<url_full>http://phototheque.cherbourg-octeville.fr//vignettes/00000000024/b50129_1666_in2_08_198.thw</url_full>
+	</row>
+	<row>
+		<id_objet>25093</id_objet>
+		<pk_library>2</pk_library>
+		<type>1</type>
+		<id_user>ORPHEA</id_user>
+		<modifiedby>HIRARD</modifiedby>
+		<numero_lot></numero_lot>
+		<pk_feature>316</pk_feature>
+		<date>02/04/2014</date>
+		<caption></caption>
+		<title>Amaryllis pâle</title>
+		<remarque></remarque>
+		<priority>0</priority>
+		<horz_vert>1</horz_vert>
+		<modifieddate>23/05/2014</modifieddate>
+		<subtitle>Les Liliacées</subtitle>
+		<indexstatus>0</indexstatus>
+		<reference>B50129_1666_IN2_08_177</reference>
+		<copyright></copyright>
+		<need_iptc_rewrite>0</need_iptc_rewrite>
+		<is_private_url>0</is_private_url>
+		<private_url></private_url>
+		<exif_data></exif_data>
+		<has_exif>0</has_exif>
+		<rebuild_thumbnail></rebuild_thumbnail>
+		<code_language>FR</code_language>
+		<fk_pricecategory></fk_pricecategory>
+		<view_count></view_count>
+		<license_type>-1</license_type>
+		<pubbegindate></pubbegindate>
+		<pubenddate></pubenddate>
+		<iptc_win_encoding>0</iptc_win_encoding>
+		<url>/vignettes/00000000024/b50129_1666_in2_08_177.thw</url>
+		<url_full>http://phototheque.cherbourg-octeville.fr//vignettes/00000000024/b50129_1666_in2_08_177.thw</url_full>
+	</row>';
+	}
+
+
+	public static function getMetadatasOrnithogale() {
+		return '<?xml version="1.0" encoding="utf-8"?>
+		<root>
+		<row>
+			<object>
+				<id_objet>25102</id_objet>
+				<pk_library>2</pk_library>
+				<type>1</type>
+				<id_user>ORPHEA</id_user>
+				<modifiedby>HIRARD</modifiedby>
+				<numero_lot></numero_lot>
+				<pk_feature>316</pk_feature>
+				<date>02/04/2014</date>
+				<caption>Ornithogale pyramidale [...]</caption>
+				<title>Ornithogale pyramidale</title>
+				<remarque></remarque>
+				<priority>0</priority>
+				<horz_vert>1</horz_vert>
+				<modifieddate>23/05/2014</modifieddate>
+				<subtitle>Les Liliacées</subtitle>
+				<indexstatus>0</indexstatus>
+				<reference>B50129_1666_IN2_08_011</reference>
+				<copyright></copyright>
+				<need_iptc_rewrite>0</need_iptc_rewrite>
+				<is_private_url>0</is_private_url>
+				<private_url></private_url>
+				<exif_data></exif_data>
+				<has_exif>0</has_exif>
+				<rebuild_thumbnail></rebuild_thumbnail>
+				<code_language>FR</code_language>
+				<fk_pricecategory></fk_pricecategory>
+				<view_count></view_count>
+				<license_type>-1</license_type>
+				<featuretitle>Les Liliacées</featuretitle>
+				<pubbegindate></pubbegindate>
+				<pubenddate></pubenddate>
+				<iptc_win_encoding>0</iptc_win_encoding>
+			 </object>
+			 <iptc>
+				<captionwriter>Société Arkhênum</captionwriter>
+				<specialinstructions></specialinstructions>
+				<categorycode></categorycode>
+				<byline>Redouté, Pierre-Joseph (1759-1840)</byline>
+				<bylinetitle></bylinetitle>
+				<credit>Bibliothèque Jacques Prévert</credit>
+				<source>Legs Bignon, 1877</source>
+				<objet>B50129_1666_IN2_08_011</objet>
+				<provincestate>Ville de Cherbourg</provincestate>
+				<ref_originales></ref_originales>
+				<object_cycle></object_cycle>
+				<copyright>Ville de Cherbourg-Octeville</copyright>
+				<edit_statut></edit_statut>
+				<image_type></image_type>
+				<countrycode></countrycode>
+				<original_program></original_program>
+				<created_time></created_time>
+				<release_date></release_date>
+				<release_time></release_time>
+				<city></city>
+				<country></country>
+				<date_created></date_created>
+				<fixed_ident>1666 in 2</fixed_ident>
+				<refservice></refservice>
+				<refnumber></refnumber>
+				<localcaption></localcaption>
+				<programversion></programversion>
+			 </iptc>
+			 <description>
+				<mediumstring5>1802-1816</mediumstring5>
+				<longstring11></longstring11>
+				<longstring12></longstring12>
+				<longstring20>Didot jeune</longstring20>
+			 	<longstring21>Imprimés</longstring21>
+			 	<longstring22></longstring22>
+			 	<longstring23></longstring23>
+			 	<longstring24>Gravure</longstring24>
+				<longstring25></longstring25>
+				<longstring26></longstring26>
+			 </description>
+			 <keywords>
+				<keyword_FR>Botanique</keyword_FR>
+				<keyword_FR>Flore</keyword_FR>
+				<keyword_FR>Plantes</keyword_FR>
+			 </keywords>
+			 <categories></categories>
+		</row>
+		</root>';
+	}
+
+	public static function getMetadatasPyramidale() {
+		return '<?xml version="1.0" encoding="utf-8"?>
+		<root>
+		<row>
+			<object>
+				<id_objet>25103</id_objet>
+				<pk_library>2</pk_library>
+				<type>1</type>
+				<id_user>ORPHEA</id_user>
+				<modifiedby>HIRARD</modifiedby>
+				<numero_lot></numero_lot>
+				<pk_feature>316</pk_feature>
+				<date>02/04/2014</date>
+				<caption>Ornithogale pyramidale [...]</caption>
+				<title>Pyramidale</title>
+				<remarque></remarque>
+				<priority>0</priority>
+				<horz_vert>1</horz_vert>
+				<modifieddate>23/05/2014</modifieddate>
+				<subtitle>Les Liliacées</subtitle>
+				<indexstatus>0</indexstatus>
+				<reference>B50129_1666_IN2_08_011</reference>
+				<copyright></copyright>
+				<need_iptc_rewrite>0</need_iptc_rewrite>
+				<is_private_url>0</is_private_url>
+				<private_url></private_url>
+				<exif_data></exif_data>
+				<has_exif>0</has_exif>
+				<rebuild_thumbnail></rebuild_thumbnail>
+				<code_language>FR</code_language>
+				<fk_pricecategory></fk_pricecategory>
+				<view_count></view_count>
+				<license_type>-1</license_type>
+				<featuretitle>Les Liliacées</featuretitle>
+				<pubbegindate></pubbegindate>
+				<pubenddate></pubenddate>
+				<iptc_win_encoding>0</iptc_win_encoding>
+			 </object>
+			 <iptc>
+				<captionwriter>Société Arkhênum</captionwriter>
+				<specialinstructions></specialinstructions>
+				<categorycode></categorycode>
+				<byline>Redouté, Pierre-Joseph (1759-1840)</byline>
+				<bylinetitle></bylinetitle>
+				<credit>Bibliothèque Jacques Prévert</credit>
+				<source>Legs Bignon, 1877</source>
+				<objet>B50129_1666_IN2_08_011</objet>
+				<provincestate>Ville de Cherbourg</provincestate>
+				<ref_originales></ref_originales>
+				<object_cycle></object_cycle>
+				<copyright>Ville de Cherbourg-Octeville</copyright>
+				<edit_statut></edit_statut>
+				<image_type></image_type>
+				<countrycode></countrycode>
+				<original_program></original_program>
+				<created_time></created_time>
+				<release_date></release_date>
+				<release_time></release_time>
+				<city></city>
+				<country></country>
+				<date_created></date_created>
+				<fixed_ident>1666 in 2</fixed_ident>
+				<refservice></refservice>
+				<refnumber></refnumber>
+				<localcaption></localcaption>
+				<programversion></programversion>
+			 </iptc>
+			 <description>
+				<mediumstring5>1802-1816</mediumstring5>
+				<longstring11></longstring11>
+				<longstring12></longstring12>
+				<longstring20>Didot jeune</longstring20>
+			 	<longstring21>Imprimés</longstring21>
+			 	<longstring22></longstring22>
+			 	<longstring23></longstring23>
+			 	<longstring24>Gravure</longstring24>
+				<longstring25></longstring25>
+				<longstring26></longstring26>
+			 </description>
+			 <keywords>
+				<keyword_FR>Botanique</keyword_FR>
+				<keyword_FR>Flore</keyword_FR>
+				<keyword_FR>Plantes</keyword_FR>
+			 </keywords>
+			 <categories></categories>
+		</row>
+		</root>';
+	}
+
+  public static function getAssetsUrlOrnithogale() {
+    return '<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <row>
+    <objectident>25217</objectident>
+    <title>Ornithogale</title>
+    <caption></caption>
+    <pathname>/vignettes/00000000025/ornithogale.bro</pathname>
+    <fk_objecttype>1</fk_objecttype>
+    <url_full>http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro</url_full>
+  </row>
+</root>';
+  }
+
+
+  public static function getAssetsUrlPyramidale() {
+    return '<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <row>
+    <objectident>25217</objectident>
+    <title>Pyramidale</title>
+    <caption></caption>
+    <pathname>/vignettes/00000000025/pyramidale.bro</pathname>
+    <fk_objecttype>1</fk_objecttype>
+    <url_full>http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro</url_full>
+  </row>
+</root>';
+  }
+}
+?>
diff --git a/tests/library/Class/RessourcesNumeriquesFixtures.php b/tests/fixtures/RessourcesNumeriquesFixtures.php
similarity index 62%
rename from tests/library/Class/RessourcesNumeriquesFixtures.php
rename to tests/fixtures/RessourcesNumeriquesFixtures.php
index 739f6854292f2a87b98862892132730dcc3b3c42..3babce9846ec52bcf5ba8fbd626217e0ce517eb5 100644
--- a/tests/library/Class/RessourcesNumeriquesFixtures.php
+++ b/tests/fixtures/RessourcesNumeriquesFixtures.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class RessourcesNumeriquesFixtures {
@@ -31,6 +31,10 @@ class RessourcesNumeriquesFixtures {
 		self::disableCVS();
 		self::deactivateLekiosk();
 		self::deactivateMusicMe();
+    self::deactivate1Dtouch();
+		self::deactivateMyCow();
+		self::deactivatePlanetNemo();
+		self::deactivateKidilangues();
 	}
 
 
@@ -45,6 +49,11 @@ class RessourcesNumeriquesFixtures {
 		self::activateCVS();
 		self::activateLekiosk();
 		self::activateMusicMe();
+    self::activate1Dtouch();
+		self::activateOrphea();
+		self::activateMyCow();
+		self::activatePlanetNemo();
+		self::activateKidilangues();
 	}
 
 
@@ -82,7 +91,7 @@ class RessourcesNumeriquesFixtures {
 		Class_AdminVar::newInstanceWithId('TOUTAPPRENDRE_KEY', ['valeur' => '']);
 	}
 
-	
+
 	public static function activateVodeclic() {
 		Class_AdminVar::newInstanceWithId('VODECLIC_KEY', ['valeur' => '6m5js1dPpFNrtAJbsfXO']);
 		Class_AdminVar::newInstanceWithId('VODECLIC_ID', ['valeur' => 'api-test']);
@@ -96,8 +105,7 @@ class RessourcesNumeriquesFixtures {
 
 
 	public static function activateCyberlibris() {
-		Class_AdminVar::newInstanceWithId('CYBERLIBRIS_URL', ['valeur' => 'http://oai-bibliovox.cyberlibris.fr/oai.
-aspx']);
+		Class_AdminVar::newInstanceWithId('CYBERLIBRIS_URL', ['valeur' => 'http://oai-bibliovox.cyberlibris.fr/oai.aspx']);
 	}
 
 
@@ -106,6 +114,16 @@ aspx']);
 	}
 
 
+	public static function activateMyCow() {
+		Class_AdminVar::newInstanceWithId('MYCOW_EID', ['valeur' => 'afi-sa-test']);
+	}
+
+
+	public static function deactivateMyCow() {
+		Class_AdminVar::newInstanceWithId('MYCOW_EID', ['valeur' => '']);
+	}
+
+
 	public static function activateArteVod() {
 		Class_AdminVar::newInstanceWithId('ARTE_VOD',['valeur' => '1']);
 		Class_AdminVar::newInstanceWithId('ARTE_VOD_LOGIN',['valeur' => 'user']);
@@ -171,5 +189,76 @@ aspx']);
 	public static function deactivateLekiosk() {
 		Class_AdminVar::newInstanceWithId('LEKIOSK_ID', ['valeur' => '']);
 	}
+
+
+  public static function activate1Dtouch() {
+		Class_AdminVar::newInstanceWithId('ONEDTOUCH_URL', ['valeur' => 'http://dev.1dtouch.com/oai']);
+  }
+
+
+  public static function deactivate1Dtouch() {
+		Class_AdminVar::newInstanceWithId('ONEDTOUCH_URL', ['valeur' => '']);
+  }
+
+
+	public static function activateOrphea() {
+		Class_AdminVar::newInstanceWithId('ORPHEA_URL', ['valeur' => 'https://phototheque.bokeh.org/dotgateway/index.pgi']);
+		Class_AdminVar::newInstanceWithId('ORPHEA_USERNAME', ['valeur' => 'Bokeh']);
+		Class_AdminVar::newInstanceWithId('ORPHEA_PWD', ['valeur' => 'pwd']);
+		Class_AdminVar::newInstanceWithId('ORPHEA_LANGUAGE', ['valeur' => '1']);
+	}
+
+
+	public static function deactivateOrphea() {
+		Class_AdminVar::newInstanceWithId('ORPHEA_URL', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('ORPHEA_USERNAME', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('ORPHEA_PWD', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('ORPHEA_LANGUAGE', ['valeur' => '']);
+	}
+
+
+	public static function activatePlanetNemo() {
+		Class_AdminVar::newInstanceWithId('PLANETNEMO', ['valeur' => '1']);
+	}
+
+
+	public static function deactivatePlanetNemo() {
+		Class_AdminVar::newInstanceWithId('PLANETNEMO', ['valeur' => '']);
+	}
+
+
+	public static function activateKidilangues() {
+		$key = '44f8d1e03fa8281584f0d2b13efcb4bdd0b2ef587001f34954a5d204ffc636a2';
+		$key = pack('H*', $key);
+
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_KEY', ['valeur' => $key]);
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_ID', ['valeur' => 'dcc509a6f7a4238a0b95849bc4c23820']);
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_LOGIN', ['valeur' => 'afi']);
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_PWD', ['valeur' => 'password']);
+	}
+
+
+	public static function deactivateKidilangues() {
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_KEY', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_ID', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_LOGIN', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('KIDILANGUES_PWD', ['valeur' => '']);
+	}
+
+
+	public static function activateDilicom() {
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_GLN_COLLECTIVITE', ['valeur' => 'afi-bib']);
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_PWD_COLLECTIVITE', ['valeur' => 'secretPassword']);
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_SERVER_URL', ['valeur' => 'https://pnb-test.centprod.com']);
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_GLN_CONTRACTOR', ['valeur' => 123456789]);
+	}
+
+
+	public static function deactivateDilicom() {
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_GLN_COLLECTIVITE', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_PWD_COLLECTIVITE', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_SERVER_URL', ['valeur' => '']);
+		Class_AdminVar::newInstanceWithId('DILICOM_PNB_GLN_CONTRACTOR', ['valeur' => '']);
+	}
 }
-?>
\ No newline at end of file
+?>
diff --git a/tests/fixtures/fnac_millenium_front.html b/tests/fixtures/fnac_millenium_front.html
index bc862000b6c2c53d7917c432f62e5d79a0e17f6a..60835ae8008aef4ed4732630aa115046c030e4f6 100644
--- a/tests/fixtures/fnac_millenium_front.html
+++ b/tests/fixtures/fnac_millenium_front.html
@@ -1,292 +1,218 @@
-
-
-
-
-
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
-<head id="HtmlHead1_Head1"><script src="http://www4-fr.fnac-static.com/js/HEADER.jsg" type="text/javascript"></script><script src="http://www4-fr.fnac-static.com/js/BASKET.jsg" type="text/javascript"></script><script src="http://www4-fr.fnac-static.com/js/FOOTER.jsg" type="text/javascript"></script><script src="http://www4-fr.fnac-static.com/js/FA.jsg" type="text/javascript"></script><title>
-	9782742765010, votre  recherche Autres avec la Fnac
-</title><meta id="HtmlHead1_desc" name="description" content="D&amp;#233;couvrez tous les Autres autour de 9782742765010 avec la Fnac" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta http-equiv="PICS-Label" content="(PICS-1.1 &quot;http://www.rsac.org/ratingsv01.html&quot; l gen true comment &quot;RSACi North America Server&quot; by &quot;webmaster@fnac.com&quot; for &quot;http://www.fnac.com/&quot; on &quot;1997.06.30T14:21-0500&quot; r (n 0 s 0 v 0 l 0))" /><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /><link rel="canonical" href="http://recherche.fnac.com/Search/SearchResult.aspx?Search=9782742765010" /><link rel="shortcut icon" href="/favicon.ico" />
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/fnacStruct.css?20120622" />
-      
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/fnacStyles.css?20110607" />
-      
-        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/seller.css" />
-        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/fnacsearch.css" />
-        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/fnacStyles_RIA.css" />
     
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/evenements/moisGaming2012.css?20121309" />
+<script type="text/javascript">
+    function GetWWWDOtNetPathRoot() {
+        var pathRoot = '';
+        if (pathRoot == "")
+            return pathRoot;
+        else
+            return "/" + pathRoot
+    }
+</script>
+<head id="HtmlHead1_Head1">
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/blkJNHs2TNsokT_qQZfWZp3207A1/HEADER.js"></script>
+
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/XlICVoFrdPwO7iJUb74N2O8KPLU1/BASKET.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/Cnloo63PeRtEicnRFqkJXCWMfSk1/FOOTER2.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/edwRY8xmbypr6TO1L5zPSmOXFE41/RESULTLIST.js"></script>
+<title>
+	9782742765010
+</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta http-equiv="PICS-Label" content="(PICS-1.1 &quot;http://www.rsac.org/ratingsv01.html&quot; l gen true comment &quot;RSACi North America Server&quot; by &quot;webmaster@fnac.com&quot; for &quot;http://www.fnac.com/&quot; on &quot;1997.06.30T14:21-0500&quot; r (n 0 s 0 v 0 l 0))" /><link rel="canonical" href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" /><link rel="shortcut icon" href="/favicon.ico" /><link href="https://plus.google.com/108105935173065357348" rel="publisher" />
+    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/static/css/iZQofTDMpl-ojnCN7TU-W-p_Gz41/css/fnacStruct.css" />
+
+    
     
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/Adherents/weAdh_20092012.css?20121909" />
     
 
-      
-    <!--[if IE 5]>
-    <style type="text/css">
-	    @import url("http://www4-fr.fnac-static.com/js/jsl.js ");
-    </style>
-    <![endif]-->
+<i class="contentOnTop" data-is-TryCard="false" data-is-AboIlli="true" data-image-path="http://www4-fr.fnac-static.com/img/" data-link-express="http://www4.fnac.com/service-livraison-express-plus#bl=surHeader" data-link-cnil="http://www4.fnac.com/Help/fnaccom-cookies.aspx#bl=CNILinfoCookies"></i>
 
-<script type="text/javascript">
 
-    var nbartval;
-    var AccCook;
+        
+        <script>window['adrum-start-time'] = new Date().getTime();</script>
+        <script src="http://www4-fr.fnac-static.com/static/js/e6foZ-KQE1xHasLhlCCmP9O1Ca41/js/adrum.js"></script>
 
-    function getCookieVal (offset) {
-	    var endstr = document.cookie.indexOf (";", offset);
-	    if (endstr == -1) endstr = document.cookie.length;
-	    return unescape(document.cookie.substring(offset, endstr));
-    }
-    function GetCookie (name) {
-	    var arg = name + "=";
-	    var alen = arg.length;
-	    var clen = document.cookie.length;
-	    var i = 0;
-	    while (i < clen) {
-		    var j = i + alen;
-		    if (document.cookie.substring(i, j) == arg) return getCookieVal (j);
-		    i = document.cookie.indexOf(" ", i) + 1;
-		    if (i == 0) break;
-	    }
-	    return null;
-    }
-    function SetCookie (name,value,expires,path,domain,secure) {
-    document.cookie = name + "=" + escape (value) +
-    ((expires) ? "; expires=" + expires.toGMTString() : "") +
-    ((path) ? "; path=" + path : "") +
-    ((domain) ? "; domain=" + domain : "") +
-    ((secure) ? "; secure" : "");
-    }
+    
+        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/static/css/KRrdTInD6J_tUowna1ILGhZ--CU1/css/resultlist.css" />
+    
+            <script type="text/javascript">
+                var oas_tag = {};
+                oas_tag.anchorElementPrefix = 'fnac';
+                oas_tag.enableRTB = true;
+                oas_tag.allowSizeOverride = true;
+                oas_tag.query = 'url=' + encodeURIComponent(location.href);
+                oas_tag.url = 'd.fnac.com'; //Define OAS URL
+                oas_tag.sizes = function () {
+                    oas_tag.definePos('Bottom', [1, 1]);
+                    oas_tag.definePos('Bottom2', [996, 42]);
+                };
+                oas_tag.site_page = 'www.fnac.com/rg';
+                (function () {
+                    oas_tag.version = '1'; var oas = document.createElement('script'),
+                    protocol = 'https:' == document.location.protocol ? 'https://' : 'http://',
+                    node = document.getElementsByTagName('script')[0];
+                    oas.type = 'text/javascript'; oas.async = true;
+                    oas.src = 'http://www4-fr.fnac-static.com/js/gestion_bandeaux/1.js';
+                    node.parentNode.insertBefore(oas, node);
+                })();
+            </script>
 
-    function CheckSeg() {
-	    AccCook = 1;
-	    var exp = new Date();
-	    exp.setTime(exp.getTime() + (12*60*60*1000));
-	    nbartval = GetCookie('TEST');
-	    if (nbartval == null) 
-	    {
-		    nbartval='OK';
-		    SetCookie('TEST', nbartval, exp, "/");
-		    var test = GetCookie('TEST');
-		    if (test != null)
-			    {AccCook = 1;}
-		    else
-			    {AccCook = 0;}
-	    }
-	    return AccCook;
-    }
+    
 
-    function NoSegInCook(){
-	    var cook = CheckSeg();	
-	    if (AccCook == 1)
-		    {var s = 1;}
-    }
 
-    function DeleteCookie() {
-	    var exp = new Date();
-	    exp.setTime(exp.getTime() -1000);
-	    nbartval='OK';
-	    SetCookie('TEST', nbartval, exp, "/");
-    }
+<div id="PopinRetourMag" class="hide genericPopin clearfix bg_blanc pdg_lg" style="width:650px !important;">
 
-    NoSegInCook();
+<a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+    
+    <img src="http://www4-fr.fnac-static.com/img/fr-FR/popin/popinRetourMag.png" class="dispeblock"/>
+    
+    <p class="fontS_11 noir pdg">* Hors Marketplace</p>
+</div>
 
-</script>
 
-<script type="text/javascript">
 
-	function DisplayPopUp(theURL) {
-		window.open(theURL,'PopUp','toolbar=no,location=no,menubar=no,status=no,top=0,left=0,resizable=yes,scrollbars=yes,width=530,height=585');
-	}
+    <script type="text/javascript" src="http://www4-fr.fnac-static.com/static/js/Gv3OSc-d38XPj0Y3VnlybJm2RDw1/js/mbox.js" language="JavaScript1.2"></script>
+<meta name="robots" content="noindex,follow" /><meta name="description" content="Découvrez tous les Roman policier et Thriller autour de 9782742765010 avec la Fnac" /></head>
 
-	function DisplayPopUpGratuit(theURL) {
-		window.open(theURL,'PopUp','toolbar=no,location=no,menubar=no,status=no,top=0,left=0,resizable=yes,scrollbars=yes,width=530,height=585');
-	}
 
-	function DisplayPopUpZoom(url)
-		{
-			window.open('http://www.fnac.com/' +url ,'Zoom','left=0,top=0,scrollbars=yes');
-		}
-
-    function newstyle(id,prop,value) {
-		var element_style=null
-		if (document.getElementById) {
-		  element_style=document.getElementById(id).style;
-		} else if (document.all) {
-		  element_style=document.all[id].style;
-		} else if (document.layers) {
-		  element_style=document.layers[id];
-		} 
-		if(element_style) 
-			eval( 'element_style.' + prop + '="' + value+ '"' );
-    }
-   function getElement(id) {
-		var element_style=null
-		if (document.getElementById) {
-		  element_style=document.getElementById(id);
-		} else if (document.all) {
-		  element_style=document.all[id];
-		} else if (document.layers) {
-		  element_style=document.layers[id];
-		} 
-		return element_style;
-    }
     
-function openPopAdherent(theURL,Largeur,Hauteur) {
-	window.open(theURL,'diaporama','toolbar=no,location=no,menubar=no,status=no,scrollbars=yes,top=0,left=0,width='+Largeur+',height='+Hauteur);
-}
-</script>
-     <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery-latest.js"></script>
-     <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/fonctions.js"></script>
-     <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/UserOpinion.js"></script>
-     <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.tooltips.js"></script>
-     <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/BasketAjax.js"></script>
-    <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.ajaxQueue.js"></script>
-    <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.autocomplete.js"></script>
-    <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.bgiframe.min.js"></script>
-    <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.preloadAndResize.js"></script>
-    <script type="text/javascript" src="http://www4-fr.fnac-static.com/js/f_fnac.js"></script></head>
-<!-- Fin -->
-
-<body id="search" class="footerOutsidePage ">
-    <div id="page_2cols">
-        <form method="post" action="http://recherche.fnac.com/r/9782742765010?SCat=2!1" id="ASPNetForm">
-<div class="aspNetHidden">
-<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
-<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
-<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTQ3NDA0Njg5MA9kFgYCAw9kFgJmD2QWCAICD2QWAmYPFQEzOTc4Mjc0Mjc2NTAxMCwgdm90cmUgIHJlY2hlcmNoZSBBdXRyZXMgYXZlYyBsYSBGbmFjZAIDDxYCHgdjb250ZW50BUNEJiMyMzM7Y291dnJleiB0b3VzIGxlcyBBdXRyZXMgYXV0b3VyIGRlIDk3ODI3NDI3NjUwMTAgYXZlYyBsYSBGbmFjZAIHDxYCHgRocmVmBUdodHRwOi8vcmVjaGVyY2hlLmZuYWMuY29tL1NlYXJjaC9TZWFyY2hSZXN1bHQuYXNweD9TZWFyY2g9OTc4Mjc0Mjc2NTAxMGQCCQ9kFgJmDxUDL2h0dHA6Ly93d3c0LWZyLmZuYWMtc3RhdGljLmNvbS9jc3MvdWkudGhlbWUuY3NzLmh0dHA6Ly93d3c0LWZyLmZuYWMtc3RhdGljLmNvbS9jc3MvdWkuY29yZS5jc3MwaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL2Nzcy91aS5zbGlkZXIuY3NzZAIHDw8WAh4HVmlzaWJsZWhkZAIID2QWAgICDw8WAh8CaGRkGAQFP0Zvb3RlciRGb290ZXJTdGVhbVJvbGxQbGFjZUhvbGRlcjEkY3RsMDAkRm9vdGVyQ29udGVudFN3aXRjaGVyMQ8PZGZkBSxIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyQ29udGVudFN3aXRjaGVyMQ8PZGZkBS1IZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyQmFza2V0JE11bHRpTW9kZTEPD2RmZAUwSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckxpbmtDb250ZW50U3dpdGNoZXIxDw9kZmRp2Rr4qFA+ArVSArX0wjnNkj/cpQ==" />
-</div>
 
-<script type="text/javascript">
-//<![CDATA[
-var theForm = document.forms['ASPNetForm'];
-if (!theForm) {
-    theForm = document.ASPNetForm;
-}
-function __doPostBack(eventTarget, eventArgument) {
-    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
-        theForm.__EVENTTARGET.value = eventTarget;
-        theForm.__EVENTARGUMENT.value = eventArgument;
-        theForm.submit();
-    }
-}
-//]]>
-</script>
+    
+    
+    
+    <body>
+        
+        
+        
+        <div class="mboxDefault"></div><script language= "JavaScript1.2">mboxCreate('Do You Mean');</script>
 
+        
+        <div class="mboxDefault"></div><script language= "JavaScript1.2">mboxCreate('Invert bloc');</script>
 
-<script src="http://www4.fnac.com//WebResource.axd?d=c3_21RDoYy8MFqNbP0ohoKYWm8b3LIVZMPr_A_qKEhCGmz2roAqL67q2bZ0BS1VSXCPVxVnMT1s6sWcWtfPiqbOOgCs1&amp;t=634816496190814884" type="text/javascript"></script>
+        
 
+    <script>
+       var global = eval({"data":{"environment":{"url":"http://recherche.fnac.com/SearchResult/ResultList.aspx?Search=9782742765010&sl=1.2003553","title":"","meta_title":"9782742765010","nb_results_number":1,"nb_results_text":null,"current_page_number":1,"current_page_text":null,"last_page_number":1,"query":{"text":"9782742765010","id":0,"type":"Standard","disabled_keywords":0,"search_debug":0,"categories":null,"first_time":false,"versionArbo":null,"filters":null,"nb_element_per_page":20,"page_index":1,"sort_option":0,"sort_direction":0,"score_limit":"1.2003553","new_facet":"True","double_facet":"True","facet_information":null,"multibuy_data":{"opc_code1":null,"opc_code2":null}}},"context":{"nb_per_page":{"content":null,"value":20},"view_mode":{"current":"list","is_multibuy":false},"favorite_shop":null,"omniture":{"html":null},"pager_bottom":null,"filters":{"price":{"min":2,"max":3,"current":{"min":2,"max":3}},"content":null}},"navigation":{"breadcrumb":null,"linked_searches":null},"content":{"body":{"html":null,"mode":"Full","lazy":null},"comparer":{"html":null},"multibuy":{"html":null,"message":null},"histonav":{"html":null},"users_advices":null}},"update":{"request":{"type":null,"value":null},"response":{"statut":0,"actions":[]}}}); 
+    </script> 
+    
 
-<script type="text/javascript">
-//<![CDATA[
 
-WebForm_InitCallback();//]]>
-</script>
-</form>
         
+        <div id="page_2cols">
+            
+    <script type="text/javascript" src="http://www4-fr.fnac-static.com/static/js/Gv3OSc-d38XPj0Y3VnlybJm2RDw1/js/mbox.js" language="JavaScript1.2"></script>
 
-<script type="text/javascript">
-    function Get_BasketLimitAddedArticles()
-    {
-        return 999 ;
-    }
-    function GetWWWDOtNetBaseUrl()
-    {
-        return 'http://www4.fnac.com/' ;
-    }
-    function GetWWWDOtNetPathRoot()
-    {
-        var pathRoot = '';
-        return (pathRoot == "" ? pathRoot : "/"+pathRoot);
-    }
-    function GetImagesPathWithCulture()
-    {
-        return 'http://www4-fr.fnac-static.com/img/fr-FR/' ;
-    }
-</script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/advancedAjax.js"></script>
+            
+        <div class="mboxDefault">
+        </div>
+        <script language="JavaScript1.2">
+            mboxCreate('Mbox_Bouton_Ajout_Panier');
+        </script>
 
+            
+            
 
 
+            <form method="post" action="http://recherche.fnac.com/r/9782742765010" id="ASPNetForm">
+<div class="aspNetHidden">
+<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJLTMwMzk5MDU4D2QWBAIBEGRkFgJmD2QWBAIFDxYCHgRocmVmBXlodHRwOi8vbGl2cmUuZm5hYy5jb20vYTE4OTEzNTQvTWlsbGVuaXVtLVRvbWUtMi1MYS1maWxsZS1xdWktcmV2YWl0LWQtdW4tYmlkb24tZC1lc3NlbmNlLWV0LWQtdW5lLWFsbHVtZXR0ZS1TdGllZy1MYXJzc29uZAIIEGRkFgICAw8VA1dodHRwOi8vd3d3NC1mci5mbmFjLXN0YXRpYy5jb20vc3RhdGljL2Nzcy9SZV9Ia29XNEpwUHZBZWtScl80bjdRTkNkNDQxL2Nzcy91aS50aGVtZS5jc3NWaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL3N0YXRpYy9jc3MvbmJ6QVV0WlowWUZubFM1dzZnRjZLWHB2SEJNMS9jc3MvdWkuY29yZS5jc3NYaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL3N0YXRpYy9jc3MvWU5EeEdFd1Rkd0RYUDhOTlFzei1NOUtpeWVVMS9jc3MvdWkuc2xpZGVyLmNzc2QCCxBkZBYCZhAPFgIeB1Zpc2libGVoZGRkGBIFNEhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51Q29mZnJldHMkY3RsMDAPD2QCAWQFNkhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiTXVzaXF1ZSRjdGwwMA8PZAIBZAUtSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckJhc2tldCRNdWx0aU1vZGUxDw9kZmQFNkhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51U3BlY3RhY2xlcyRjdGwwMA8PZAIBZAU4SGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUYWJKZXV4VmlkZW8kY3RsMDAPD2QCAWQFNUhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiTWFpc29uJGN0bDAwDw9kAgFkBTRIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYlZpZGVvJGN0bDAwDw9kAgFkBTNIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVZveWFnZXMkY3RsMDAPD2QCAWQFMUhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiVFYkY3RsMDAPD2QCAWQFP0Zvb3RlciRGb290ZXJTdGVhbVJvbGxQbGFjZUhvbGRlcjEkY3RsMDAkRm9vdGVyQ29udGVudFN3aXRjaGVyMQ8PZGZkBTtIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYkluZm9ybWF0aXF1ZSRjdGwwMA8PZAIBZAU0SGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUYWJMaXZyZSRjdGwwMA8PZAIBZAUzSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUaXJhZ2VzJGN0bDAwDw9kAgFkBTJIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYlNvbiRjdGwwMA8PZAIBZAUwSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckxpbmtDb250ZW50U3dpdGNoZXIxDw9kZmQFNEhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiUGhvdG8kY3RsMDAPD2QCAWQFNUhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiRW5mYW50JGN0bDAwDw9kAgFkBTVIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYlRlbEdQUyRjdGwwMA8PZAIBZLf/8uyWFaYqL9sM10NfRtgFVFPP" />
+</div>
+</form>
+           
+            
 <script type="text/javascript">
-    $(function () {
+function Get_BasketLimitAddedArticles() { return 999; }
+function GetWWWDOtNetBaseUrl() { return 'http://www4.fnac.com/'; }
+function GetWWWDOtNetPathRoot() { return ''; }
+function GetImagesPathWithCulture() { return 'http://www4-fr.fnac-static.com/img/fr-FR/'; }
+</script>
 
-        //on boucle sur tous les éléments de type "bouton ajouter au panier"
-        $('.FnacBtnAddBasket').live("click", function (o) {
-            o.stopPropagation();
-            //on récupère les attributs
-            var IdProd = $(this).attr("FnacIdProduct");
-            var IdOffre = $(this).attr("FnacIdOffre");
-            var PageOriginClick = $(this).attr("PageOriginClickToBasketType");
-            var Qt = $(this).attr("FnacQuantity");
-            var AdditionalEvent = $(this).attr("FnacAdditionalEvent");
-            var requete = '{|Id|:|this|^|ErgoIdentifier|:{|Quantity|:{3}^|Offer|:|{1}|^|UiUpdateMethod|:0^|UpdateMethodPlace|:0^|Prid|:{0}^|PossibleTarget|:1^|Origine|:0^|PopinId|:null^|PanelId|:null^|Type|:0^|ItemArticleType|:0^|Reference|:null^|ConfigName|:|default|^|OfferId|:0^|BundleItemIdentifiers|:null}}';
-
-            //valeurs par défaut
-            if (!IdOffre)
-                IdOffre = "00000000-0000-0000-0000-000000000000";
-
-            if (!Qt)
-                Qt = 1;
-
-            //on mets les bonnes valeurs dans la chaîne
-            requete = requete.replace('{0}', IdProd).replace('{1}', IdOffre).replace('{3}', Qt);
-            trackBasket(IdProd, PageOriginClick);
-            if (!AdditionalEvent) {
-                ManageBasketAjax(requete, this.href);
-                return false;
-            }
-            else {
-                ManageBasketAjax(requete, this.href);
-                eval(AdditionalEvent);
-                return false;
-            }
-        });
-        
+<input type="hidden" id="pathRoot" value="" />
 
-    });
 
-</script>
 
 
-<div id="HEADER">
+<div id="HEADER" class="posrel iPadHide">
 	<!-- *********************** #TOP **************************** -->
-    <div id="TOP">
-	
+	<div id="TOP" class="clearfix">
+
 		<p id="topLEFT">
-    
-            
+
             <a id="logoFnac" href="http://www.fnac.com/">fnac.com</a>
-         
             
 		</p><!-- /fin/#topLEFT-->
 
-		<div id="topRIGHT">
-
-			     
+        <div id="topChaines" class="clearfix">
+            <ul id="CHAINES" class="clearfix">
+                
                     
 
 
-<ul id="CHAINES">
-	<li id="ch-FnacPro" class="first"><span id="MHFnacpro" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A42C0C14F19424F4E1F1241482E4245B4494A4230C14F lkCh gras">Fnacpro</span>|</li>
-	<li id="ch-Argus"><span id="MHArgusUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4CC3464B43C21F424F4E4E4F491FC143C0C146C2431F4B43444AC348CB194AC2C0C51241482E4245BAC14CC3C2 lkCh gras">Argus reprise</span>|</li>
-	<li id="ch-Myfnac"><span id="MHMyFnacUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBEC6B4494A421FBB43444AC348CB194AC2C0C51241482E4245BEC6B4494A42 lkCh gras">My Fnac</span>|</li>
-	<li id="ch-Actu"><span id="MHActuFnac" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FB843C21EB3C44349434E4349CBC21EB4494A421FB3C44349434E4349CBC21F4248222A1FCC1E2B1241482E4245BA42CBC3 lkCh gras">Événements</span>|</li>
-	<li id="ch-Passion"><span id="MHEspacePassionUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1F4843C21E43C2C04A4243C21EC04AC2C2464F49C21E4B431E484A1EB4494A421FCC1E2B1241482E4245304AC2C2 lkCh gras">Communautés</span>|</li>
-	<li id="ch-Telech"><span id="MHTelechargementUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FCB43484342454AC14C43C1194AC2C01241482E42453B4348434245 lkCh gras">Téléchargements</span>|</li>
-    <li id="ch-Service"><span id="MHServiceUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F3243C1C44642431F4B43444AC348CB194AC2C0C51241482E42453243C1C4464243 lkCh gras">SAV &amp; SERVICES</span>|</li>
-	<li id="ch-Magasins"><span id="MHMagasinFnacUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484F424A4846C243C11E4E4A4C4AC246491E44494A421241482E4245BE4A4C lkCh gras">Magasins</span>|</li>
-	<li id="ch-Adherents"><span id="MHAdherentFnacUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FBE4A4C4ACD4649431F454F4E433F4A4B4543C14349CBC2194AC2C01241482E4245BA4B45 lkCh gras">Adhérents</span></li>
-</ul><!-- /fin/#CHAINES-->
+
+	<li id="ch-Adherents"><span id="MHAdherentFnacUrl" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FBE4A4C4ACD4649431F454F4E433F4A4B4543C14349CBC2194AC2C01241482E4245BA4B45 lkCh "><i class="icoCH icoAdh"><!-- --></i>Adhérents</span></li>
+	<li id="ch-Magasins"><span id="MHMagasinFnacUrl" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484F424A4846C243C11E4E4A4C4AC246491E44494A421241482E4245BE4A4C lkCh "><i class="icoCH icoMag"><!-- --></i>Magasins</span></li>
+    <li id="ch-Vendre"><a href="http://www4.fnac.com/Guides/marketplace/vente-et-revente/default.aspx#bl=chVen" class="lkCh">Revendre</a></li>
+    <li id="ch-FnacPro"><span id="MHFnacpro" class="fnac 45CBCBC02D1F1FCCCCCC1944494A42C0C14F19424F4E1F2F4A2E2A14BFC1464C46492EB4B9BAB23031BF3FB5B3BABBB331 lkCh ">Fnacpro</span></li>
+    <li id="ch-Actu"><span id="MHActuFnac" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FB843C21EB3C44349434E4349CBC21EB4494A421FB3C44349434E4349CBC21F4248222A1FCC1E2B1241482E4245BA42CBC3 lkCh ">Événements</span></li>
+	<li id="ch-Passion"><span id="MHEspacePassionUrl" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1F4843C21E43C2C04A4243C21EC04AC2C2464F49C21E4B431E484A1EB4494A421FCC1E2B1241482E4245304AC2C2 lkCh ">Nos conseils</span></li>
+    <li id="ch-Service"><span id="MHServiceUrl" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F3243C1C44642431F4B43444AC348CB194AC2C0C51241482E42453243C1C4464243 lkCh">SAV</span></li>
+    <li id="ch-Aide"><span id="MHAideUrl" target="_blank" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01FB44ACA194AC2C0C51241482E4245BA464B lkCh">Aide</span></li>
+
+
+
+
+
+
+
+
 
                 
-			<div id="SEARCH">
-				
 
+                <li class="pushCA">
+    <span class="pushCAtrigger">&Eacute;conomisez toute l'année<i class="icoFLE"><!-- --></i><i class="decoCA"><!-- --></i></span>
+
+
+<div id="pushCAcontent" class=" hide">
+    
+        <span class="pushCAimg">La carte fnac: -5% sur les livres et le high-tech + -40% de remises lors de ventes privées + Livraison gratuite sur les livres + des spectacles à prix reduit</span>
+    <a href="http://www4.fnac.com/Adherents/choisir_carte.aspx#bl=pushTop1" class="pushCAlk">Prendre la carte</a>
+    
+</div>
+    
 <script type="text/javascript">
-    function redirectToAdvancedSearch() { 
-        var url = "http://www4.fnac.com/Search/advancedSearch.aspx";
+    $(function () {
+        var wTrig, wLay, posXLay;
+        wTrig = $(".pushCAtrigger").parent().width();
+        wLay = $("#pushCAcontent").width();
+        posXLay = wTrig - wLay + 11;
+        $(".pushCAtrigger").popinManager({
+            targetContent: "#pushCAcontent",
+            modeView: "layer",
+            eventStart: "click",
+            eventStop: "mouseleave",
+            timer: "250",
+            customPosition: true,
+            relativePosition: { right: posXLay, top: 10 }
+        });
+        $("#pushCAcontent").on("click touchstart", function () {
+            $("#ContainerPopin_pushCAtrigger").css("display", "none");
+        });
+    });
+</script>
+
+</li>
+
+            </ul><!-- /fin/#CHAINES-->        
+        </div>
+
+
+		<div id="topRIGHT" class="clearfix">
+
+			<div id="SEARCH">
+				
+    <script type="text/javascript">
+        function redirectToAdvancedSearch() { 
+            var url = "http://www4.fnac.com/Search/advancedSearch.aspx";
         //get selected item
 
         var selectedCategory = $("#category");
@@ -306,258 +232,112 @@ WebForm_InitCallback();//]]>
         //redirect to url
         window.location = url
     }
-</script>
+    </script>
+
 <input type="hidden" id="advancedSearchUrl" value="http://www4.fnac.com/Search/advancedSearch.aspx" />
 
+
     <script type="text/javascript">
-    AppCore.ready(function(){
-        AppCore.modules.ready('searchAutocomplete', function(){
-            AppCore.modules.searchAutocomplete.urlAutocomplete = "http://autocompletion.fnac.com/search-autocomplete/autocomplete?method=GetCommonSuggest&isNewVersion=1";
-            AppCore.start("searchAutocomplete");
-        });
+        AppCore.ready(function(){
+            AppCore.modules.ready('searchAutocomplete', function () {
+            
 
-    });
+                if (AppCore.defaults != null && AppCore.defaults.searchAutocomplete != null)
+                    AppCore.modules.searchAutocomplete.defaultAB = AppCore.defaults.searchAutocomplete.defaultAB;
+
+                if (AppCore.modules.searchAutocomplete.defaultAB == null)
+                    AppCore.modules.searchAutocomplete.defaultAB =  'A' ;
+                AppCore.modules.searchAutocomplete.urlAutocomplete = "http://autocomplete-fr.ws.fnac.com/search-autocomplete/autocomplete?client=1&method=GetCommonSuggest";
+                AppCore.modules.searchAutocomplete.groups = [
+                    {
+                        name: "Suggestions de mots clés",
+                    type: 's',
+                    max: 5,
+                    maxChars: 33,
+                    order: 1
+                },
+                {
+                    name: "Voir les rayons",
+                    type: 'm',
+                    max: 5,
+                    maxChars: 33,
+                    order: 2
+                },
+                {
+                    name: "Produits",
+                    type: 'p',
+                    max: 5,
+                    maxChars: 50,
+                    order: 0
+                }
+            ];
+                
+                AppCore.start("searchAutocomplete");
+            });
+
+        });
     </script>
 
-    <form class="block_search" accept-charset="UTF-8" action="http://recherche.fnac.com/Search/SearchResult.aspx" method="GET" name="QuickSearchForm" id="QuickSearchForm">
-	    <fieldset>
-	        <span id="contain" class="boxSelect">
-		        <select name="SCat" id="category" class="realSelect">
-                    <option value='0!1'>Tous&nbsp;produits</option><option value='2!1' selected='selected'>Livre</option><option value='1!1'>Livre en VO</option><option value='22!1'>Livres numériques</option><option value='3!1'>Musique</option><option value='21!1'>Téléchargements MP3</option><option value='4!1'>DVD et Blu-Ray</option><option value='5!1'>Jeux vidéo</option><option value='6!1'>Logiciels</option><option value='7!1'>Jeux et Jouets</option><option value='8!1'>High-tech</option><option value='9!1'>Instrument de musique</option><option value='10!1'>Astronomie</option><option value='11!1'>Gadget et Goodies</option><option value='12!1'>Poster et décoration</option><option value='13!1'>Développement Durable</option><option value='14!1'>Fournitures de bureau</option><option value='20!1'>Loisirs et bien-être</option><option value='15!1'>Partition et Méthode</option><option value='23!1'>Petit Electroménager</option><option value='24!1'>Gros Electroménager</option><option value='25!1'>Coffrets Cadeaux</option><option value='16!1'>Spectacles</option>
-		        </select>
-		        <span class="txtCat foSelect">Texte</span><i class="handler">></i>
-		    </span>
-		    <input type="text" class="text" id="Fnac_Search" name="Search" value="9782742765010"/>
-		    <input type="hidden" name="sft" value="1" />
-			<input class="btSubmit" type="submit" name="submitbtn" value="OK" title='Lancer la recherche'/>
-
-		   
-			
+    
 
-	    </fieldset>
-    </form>
+<form class="block_search" accept-charset="UTF-8" action="http://recherche.fnac.com/SearchResult/ResultList.aspx" method="GET" name="QuickSearchForm" id="QuickSearchForm">
+    <fieldset>
+        <div id="contain" class="boxSelect">
+            <select name="SCat" id="category" class="realSelect">
+                <option value='0!1'>Tous&nbsp;produits</option><option value='7!1'>Jeu et Jouet</option><option value='2!1' selected='selected'>Livre</option><option value='36!1'>Son, Hifi, Lecteur MP3</option><option value='22!1'>Livre numérique</option><option value='32!1'>TV, Vidéo, Home cinéma</option><option value='1!1'>Livre en VO</option><option value='23!1'>Maison & Cuisine</option><option value='3!1'>Musique</option><option value='30!1'>Puériculture</option><option value='4!1'>DVD et Blu-Ray</option><option value='6!1'>Logiciel</option><option value='5!1'>Jeu vidéo</option><option value='14!1'>Papeterie</option><option value='8!1'>Tablette, Informatique</option><option value='16!1'>Billetterie</option><option value='34!1'>Téléphone, GPS</option><option value='11!1'>Gadget et Goodies</option><option value='35!1'>Photo, Caméscope</option><option value='25!1'>Coffret Cadeau</option>
+            </select>
+        </div>
+        <input type="text" class="text" placeholder="Rechercher" id="Fnac_Search" name="Search" value="9782742765010" />
+        <input type="hidden" name="sft" value="1" />
+        <input type="hidden" name="sa" id="QuickSearchFormSa" value="0" />
+        <input class="btSubmit" type="submit" name="submitbtn" value="OK" title='Lancer la recherche' />
+        
+    </fieldset>
+</form>
 <script type="text/javascript">
-	/* script categorie */
-	$("#contain .txtCat").click(function () {
-		$("#contain .handler").click();
-	})
-
-	$("#contain .handler").click(function () {
-		ExpandSelect(document.getElementById("category"), 25);
-	});
-
-	$("#category").change(function () {
-		loadValue();
-	});
+    $('.realSelect').comboToList({ hiddenInputName: 'SCat' });
+</script>
 
-	function loadValue() {
-		var loadCatValue = $("option:selected", "#category").text();
-		$("#contain .txtCat").text(loadCatValue);
-	}
-	loadValue();
-
-
-	function ExpandSelect(select, maxOptionsVisible) {
-		//
-		// ExpandSelect 1.00
-		// Copyright (c) Czarek Tomczak. All rights reserved.
-		//
-		// License:
-		//      New BSD License (free for any use, read more at http://www.opensource.org/licenses/bsd-license.php)
-		//
-		// Project's website:
-		//      http://code.google.com/p/expandselect/
-		//
-
-		if (typeof maxOptionsVisible == "undefined") {
-			maxOptionsVisible = 20;
-		}
-		if (typeof select == "string") {
-			select = document.getElementById(select);
-		}
-		if (typeof window["ExpandSelect_tempID"] == "undefined") {
-			window["ExpandSelect_tempID"] = 0;
-		}
-		window["ExpandSelect_tempID"]++;
-
-		var rects = select.getClientRects();
-
-		// ie: cannot populate options using innerHTML.
-		function PopulateOptions(select, select2) {
-			select2.options.length = 0; // clear out existing items
-			for (var i = 0; i < select.options.length; i++) {
-				var d = select.options[i];
-				select2.options.add(new Option(d.text, i))
-			}
-		}
-
-		var select2 = document.createElement("SELECT");
-		//select2.innerHTML = select.innerHTML;
-		PopulateOptions(select, select2);
-		select2.style.cssText = "visibility: hidden;";
-		if (select.style.width) {
-			select2.style.width = select.style.width;
-		}
-		if (select.style.height) {
-			select2.style.height = select.style.height;
-		}
-		select2.id = "ExpandSelect_" + window.ExpandSelect_tempID;
-
-		select.parentNode.insertBefore(select2, select.nextSibling);
-		select = select.parentNode.removeChild(select);
-
-		if (select.length > maxOptionsVisible) {
-			select.size = maxOptionsVisible;
-		} else {
-			select.size = select.length;
-		}
-
-		if ("pageXOffset" in window) {
-			var scrollLeft = window.pageXOffset;
-			var scrollTop = window.pageYOffset;
-		} else {
-			// ie <= 8
-			// Function taken from here: http://help.dottoro.com/ljafodvj.php
-			function GetZoomFactor() {
-				var factor = 1;
-				if (document.body.getBoundingClientRect) {
-					var rect = document.body.getBoundingClientRect();
-					var physicalW = rect.right - rect.left;
-					var logicalW = document.body.offsetWidth;
-					factor = Math.round((physicalW / logicalW) * 100) / 100;
-				}
-				return factor;
-			}
-			var zoomFactor = GetZoomFactor();
-			var scrollLeft = Math.round(document.documentElement.scrollLeft / zoomFactor);
-			var scrollTop = Math.round(document.documentElement.scrollTop / zoomFactor);
-		}
-
-		select.style.position = "absolute";
-		select.style.left = (rects[0].left + scrollLeft) + "px";
-		select.style.top = (rects[0].top + scrollTop + 29) + "px";
-		select.style.zIndex = "1000";
-
-		var keydownFunc = function (e) {
-			e = e ? e : window.event;
-			// Need to implement hiding select on "Escape" and "Enter".
-			if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
-				return 1;
-			}
-			// Escape, Enter.
-			if (27 == e.keyCode || 13 == e.keyCode) {
-				select.blur();
-				return 0;
-			}
-			return 1;
-		};
-
-		if (select.addEventListener) {
-			select.addEventListener("keydown", keydownFunc, false);
-		} else {
-			select.attachEvent("onkeydown", keydownFunc);
-		}
-
-		var tempID = window["ExpandSelect_tempID"];
-
-		var clickFunc = function (e) {
-			e = e ? e : window.event;
-			if (e.target) {
-				if (e.target.tagName == "OPTION") {
-					select.blur();
-				}
-			} else {
-				// IE case.
-				if (e.srcElement.tagName == "SELECT" || e.srcElement.tagName == "OPTION") {
-					select.blur();
-				}
-			}
-		};
-
-		if (select.addEventListener) {
-			select.addEventListener("click", clickFunc, false);
-		} else {
-			select.attachEvent("onclick", clickFunc);
-		}
-
-		var blurFunc = function () {
-			if (select.removeEventListener) {
-				select.removeEventListener("blur", arguments.callee, false);
-				select.removeEventListener("click", clickFunc, false);
-				select.removeEventListener("keydown", keydownFunc, false);
-			} else {
-				select.detachEvent("onblur", arguments.callee);
-				select.detachEvent("onclick", clickFunc);
-				select.detachEvent("onkeydown", keydownFunc);
-			}
-			select.size = 1;
-			select.style.position = "static";
-			select = select.parentNode.removeChild(select);
-			var select2 = document.getElementById("ExpandSelect_" + tempID);
-			select2.parentNode.insertBefore(select, select2);
-			select2.parentNode.removeChild(select2);
-
-		};
-
-		if (select.addEventListener) {
-			select.addEventListener("blur", blurFunc, false);
-		} else {
-			select.attachEvent("onblur", blurFunc);
-		}
-
-		document.body.appendChild(select);
-		select.focus();
-	}
 
-</script>
 
 
         
 
 			</div><!-- /fin/#SEARCH-->
 
-			<div id="MONCOIN">
+
+			<div id="MONCOIN" class="clearfix">
                 
-				<p id="monCompte">
-				    <strong>
-				        <span id="MonCompte" class="f_fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBA42424FC349CB1F30C14F4446481FBB43444AC348CB194AC2C0C51241482E45434A4B lkCompte">Mon Compte</span>
-                    </strong>
-                    <strong><a href="http://www4.fnac.com/Help/Faq.aspx#bl=head" target="aide" title="Aide" class="lkHelp">Aide</a></strong>
+				<p id="monCompte"> 
+                    <span id="MonCompteLink" class="monCompteOng ">
+
+                        <a id="FnacCryptLink1" href="#">
+                                <i class="icoMY icoId"><!-- --></i>
+                            </a>
+                        
+                            <a href="https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Standard&PageRedir=http%3a%2f%2fwww.fnac.com%2f" class="lkID colorLk">Se connecter</a>
+                        
+                    </span>
                 </p>
+
                 
-                <div id="HeaderBasket">
-<!--<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/Player30sFunctions.js"></script>-->
 
+
+<p class="maWL">
+    <a class="wlHeaderLk_new showBlockWishlistHeader" href="http://www4.fnac.com/Account/Wishlist/Home">
+        <i class="icoMY icoList"><!-- --></i>
+        <span>Mes listes</span>
+        
+    </a>
+
+    <span id="block-header-wishlist" class="hide">
+    </span>
+</p>
+                <div id="HeaderBasket">
 <script type="text/javascript">
     //Utilisé de partout surtout communautaire. Sera à supprimer.
     var scriptImagesPath = 'http://www4-fr.fnac-static.com/img/';
     
-    AppCore.ready(function(){
-        AppCore.modules.ready("playerIllimite", function(){
-            var params = {
-                playerUrl: 'http://www4.fnac.com/Shelf/Common/Content/Player30s.aspx',
-                playerDomain: '.fnac.com',
-                onPlayFlag: AppCore.modules.cookies.get("PlayerPlaying")=='1',
-                isOpen: AppCore.modules.cookies.get("Player") == '1'
-            };
-            //Init player module.
-            AppCore.start("playerIllimite", params);
-            playerIllimite = AppCore.modules.playerIllimite;
-            
-                
-                document.domain='fnac.com';
-                if(playerIllimite.isOpen())
-                {
-                    //On force la création du player pour pouvoir mettre a jour correctement les valeur des cookies pour assurer le "Un pour tous"
-                    playerIllimite.getStreamPlayerWindow();
-                }
-            
-            
-            try{
-                window.onbeforeunload = playerIllimite.updatePlayerCookies;
-            }catch(e){}
-        });
-    });
     //Basket interface.
     function AddToMyBasket(serializedId, obj)
     {
@@ -615,1625 +395,1976 @@ WebForm_InitCallback();//]]>
                 document.location.href = prev;
             }
         }
-    }	
+    }
+    
+    function getCookieVal(offset) {
+        var endstr = document.cookie.indexOf(";", offset);
+        if (endstr == -1)
+            endstr = document.cookie.length;
+        return unescape(document.cookie.substring(offset, endstr));
+    }
+    
+    function GetCookie(name) {
+        var arg = name + "=";
+        var alen = arg.length;
+        var clen = document.cookie.length;
+        var i = 0;
+        while (i < clen) {
+            var j = i + alen;
+            if (document.cookie.substring(i, j) == arg)
+                return getCookieVal(j);
+            i = document.cookie.indexOf(" ", i) + 1;
+            if (i == 0) break;
+        }
+        return null;
+    }
+    
+    $(document ).ready(function() {
+        var nbArtCookieCount = GetCookie('NBART');
+        var nbArtCount = 0;
+        if(nbArtCookieCount != nbArtCount ){
+            if(nbArtCount >= 1){
+                if(nbArtCookieCount >=1){
+                    $('#totalArticlesPanier').text(nbArtCookieCount);
+                }
+                else{
+                    $('#totArticlesCount').html('');
+                }
+            }
+            else {
+                if(nbArtCookieCount >=1){
+                    $('#totArticlesCount').html ('<span id="totalArticlesPanier">'+ nbArtCookieCount+'</span>');
+                }
+            }
+        }
+    });
 </script>
 
+
 <div id="monPanier">
 <input type="hidden" id="NbArt" value="" />
 
-			<div id="cartouche">
-				<p class="clearfix">
-				    
-				    
-						        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel="nofollow">
-					        
-					    <em class="panier">panier</em>
-					</a>		
-					<span class="recapPanier">
-					    
-							        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel="nofollow">
-						        Mon panier
-					    </a>
-					</span>
-					
-					<span id="totArticlesCount" class="totArticles"> 
-					
-					
+        
+        <span class="recapPanier">
+		Panier
 					
-					     :
-					     
-							        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel="nofollow">
-						        
+                        
+				
                     
-						    <strong>
-							   <span id="totalArticlesPanier" >1</span>
-						    </strong>
-					
-					
-						
-						    Article
-                            
-						   </a>
-					
-					</span>
-										
-				</p>
-			</div><!-- /fin/#cartouche -->
+                    </a>
+        </span>
+
+
 
-		
-		 <p id="msgVide" class="basketInfo">
         
-          </p>
-    
+            <p id="msgVide" class="basketInfo">
+	                
+		                Consulter votre panier
+	                 
+            </p>
         
 
 </div><!-- /fin/#monPanier -->
 
 
-<!--<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/BasketAjax.js"></script>-->
 <div id="GreyScreen"></div>
-
 </div>
                 
 			</div><!-- /fin/#MONCOIN-->
 
 		</div><!-- /fin/#topRIGHT-->
+        
+        
+        
+
+
+<div id="topPromo" class="clearfix">
+    <span id="topPromoTrigger" class=""><strong>
+        
+            Livraison gratuite sur tout le site<i class="icoFLE"><!-- --></i>
+        
+    </strong></span>
+        <div id="topPromoContent" class="hide">
+    
+            <ul class="topPromoList">
+                <li><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/Header/push-livraison-retraitmagasin-290x80.png" alt="Retrait gratuit en magasin ou relais colis" /></li>
+                <li><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/Header/push-livraison-retrait1heure-290x80.png" alt="Retrait 1h gratuit en magasin sur tout le high-tech" /></li>
+            	<li><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/Header/push-livraison-expressplus-290x80_0115.png" alt="Essai gratuit - Express+ Livraison en 1 jour chez vous, illimité toute l'année" /></li>
+            </ul>
+            <a href="http://www4.fnac.com/Help/livraison-gratuite.aspx#bl=pushTop2" class="topPromolk">En savoir plus</a>
+    
+    </div>
+</div>
+
+
+
+
+<!-- # script layer push top promo -->
+<script type="text/javascript">
+    $(function () {
+        $("#topPromoTrigger").popinManager({
+            targetContent: "#topPromoContent",
+            modeView: "layer",
+            eventStart: "click",
+            eventStop: "mouseleave",
+            timer:"250",
+            customPosition: true,
+            relativePosition: { left: 0, top: 20 }
+        });
+    });
+</script>
+  
 
 	</div>
 	<!-- *********************** /fin/#TOP **************************** -->
 
-         
-            
+	        
 
-	<!-- *********************** #MENU **************************** -->
-	<div id="MENU">
+<!-- *********************** #MENU **************************** -->
 
-		<ul id="onglets">
 
-            
-            <li id="ong-ope">
-				<a class="ongLink" href="http://www4.fnac.com/guides/evenements/FnacGaming/Default.aspx#bl=ongMoisGaming" title="Mois du Jeu Vidéo"><span class="inner">Mois du Jeu Vidéo</span></a>
-			</li>
-            
-            
-            		    
-			<li id="ong-Jouets">
-				<a  class="ongLink" href="http://www.fnac.com/enfants.asp#bl=ongENF"><span class="bulleNew bulleNewRouge">New</span><span class="inner">Kids, Jouets Puériculture</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/enfants.asp#bl=MMenf">Jouets et jeux</a></dt>
-								
-								
-								<dd><a href="http://www4.fnac.com/s120211/Jeux-de-societe#bl=MMenf">Jeux de société</a></dd>
-								<dd><a href="http://www4.fnac.com/s120225/Jeux-et-jouets-educatifs#bl=MMenf">Jeux éducatifs</a></dd>
-								<dd><a href="http://www4.fnac.com/s120219/Jeux-de-construction#bl=MMenf">Jeux de construction</a></dd>
-								<dd><a href="http://www4.fnac.com/s120216/Jeux-creatifs#bl=MMenf">Jeux créatifs</a></dd>
-								<dd><a href="http://www4.fnac.com/s120984/Jeux-de-plein-air-et-sports#bl=MMenf">Jeux de plein air</a></dd>
-								<dd><a href="http://www4.fnac.com/s134278/Jouets-pour-filles/Poupees-et-peluches#bl=MMenf">Poupées, peluches</a></dd>
-								<dd><a href="http://www4.fnac.com/s120214/Articles-de-fetes-et-deguisements#bl=MMenf">Déguisements</a></dd>
-								<dd><a href="http://www4.fnac.com/s132339/Jouets-pour-garcons/Vehicules-et-Circuits#bl=MMenf">Véhicules et circuits</a></dd>
-								
-							</dl>
-							<dl>
-								<dt>Univers</dt>
-								<dd><a href="http://www4.fnac.com/s130378/Notre-univers-Playmobil#bl=MMenf">L'univers Playmobil</a></dd>
-								<dd><a href="http://www4.fnac.com/s134778/Notre-univers-Lego#bl=MMenf">L'univers Lego</a></dd>
-								<dd><a href="http://www4.fnac.com/s129822/Tous-vos-heros-favoris/Barbie#bl=MMenf">La boutique Barbie</a></dd>
-								<dd><a href="http://www4.fnac.com/s135708/Vtech#bl=MMenf">La boutique Vtech</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Puericulture-Bebes/shi292171/w-4#bl=MMenf">Puériculture</a></dt>
-								<dd><a href="http://www.fnac.com/Poussettes/shi293407/w-4#bl=MMenf">Poussettes</a></dd>
-								<dd><a href="http://www.fnac.com/Porte-bebes/shi293408/w-4#bl=MMenf">Porte-bébés</a></dd>
-								<dd><a href="http://www.fnac.com/Sieges-Auto/shi293409/w-4#bl=MMenf">Sièges auto</a></dd>
-								<dd><a href="http://www.fnac.com/Promenade-Sortie/shi293413/w-4#bl=MMenf">Promenade / Sortie</a></dd>
-								<dd><a href="http://www.fnac.com/Protection-et-securite/shi293410/w-4#bl=MMenf">Protection et sécurité</a></dd>
-								<dd><a href="http://www.fnac.com/Repas/shi293411/w-4#bl=MMenf">Repas</a></dd>
-								<dd><a href="http://www.fnac.com/Toilette-et-soin/shi293412/w-4#bl=MMenf">Toilette et soin</a></dd>
-								<dd><a href="http://www.fnac.com/Sommeil-et-detente/shi293414/w-4#bl=MMenf">Sommeil et détente</a></dd>
-								<dd><a href="http://www4.fnac.com/s120992/Jouets-1er-age#bl=MMenf">Jeux d'éveil</a></dd>
-								<dd><a href="http://www.fnac.com/Cadeaux-de-naissance/shi296706/w-4#bl=MMenf">Cadeaux de naissance</a></dd>									
-							</dl>
-							<dl>
-								<dt><a onclick="TrackExternalLink('MMenf','http://www.fnacspectacles.com/place-spectacle/Theatre/Theatre-pour-enfants-p460630208962352128.htm%23a1283333674705#bl=MMenf')" href="http://www.fnacspectacles.com/place-spectacle/Theatre/Theatre-pour-enfants-p460630208962352128.htm%23a1283333674705#bl=MMenf">Spectacles pour enfants</a></dt>
-							</dl>							
-							<dl class="allProd">
-						        <dd><a href="http://www.fnac.com/enfants.asp#bl=MMenf" class="allLink">Tous les produits</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						
-						<dl>
-							<dt>Ages</dt>
-							<dd><a href="http://www4.fnac.com/s248337/Tout-petits#bl=MMenf">0 à 2 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126743/3-6-ans#bl=MMenf">3 à 5 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126744/6-9-ans#bl=MMenf">5 à 8 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126745/9-12-ans#bl=MMenf">8 à 12 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126746/Plus-de-12-ans#bl=MMenf">+ de 12 ans</a></dd>
-						</dl>
-											
-						<dl>
-							<dt>Conseils</dt>
-							<dd><a href="http://www4.fnac.com/n136420/Nos-coups-de-coeur-Jouets-et-puericulture#bl=MMenf">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://www4.fnac.com/s235424/Offres-de-remboursement-Jouets#bl=MMenf">Offres de remboursement Jouets</a></dd>
-						    <dd><a href="http://www.fnac.com/Offres-de-remboursement/shi297334/w-4#bl=MMenf">Offres de remboursement Puériculture</a></dd>
-						</dl>
-                        
-                        <p class="vignet"><a href="http://www.fnac.com/Puericulture-Bebes/shi292171/w-4#bl=MMvignENF" title="Découvrez l’espace Puériculture "><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/puericulture-68x86.jpg" alt="Découvrez l’espace Puériculture " class="visu"/>Découvrez l'espace <strong>puériculture</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Jouets -->
-		    
-			<li id="ong-Livres" class="first">
-				<a  class="ongLink" href="http://www.fnac.com/livre.asp#bl=ongLi"><span class="inner">Livres ebooks</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-						    <dl>
-						        <dt><a href="http://www.fnac.com/livre.asp#bl=MMli">Livres</a></dt>
-						    </dl>
-							<dl>
-							    <dt>Littérature et fiction</dt>
-							    <dd><a href="http://livre.fnac.com/s20/Roman-et-Nouvelles#bl=MMli">Romans</a></dd>
-							    <dd><a href="http://livre.fnac.com/s26/Roman-Policier-et-Thriller#bl=MMli">Polars et Thrillers</a></dd>
-							    <dd><a href="http://livre.fnac.com/s30/Fantasy-et-Science-Fiction#bl=MMli">Fantasy et SF</a></dd>
-							</dl>
-							<dl>
-							    <dt>BD &amp; Jeunesse</dt>
-							    <dd><a href="http://livre.fnac.com/s8/BD-et-Humour#bl=MMli">BD et Humour</a></dd>
-							    <dd><a href="http://livre.fnac.com/s30376/BD-et-Humour/Manga#bl=MMli">Manga</a></dd>
-							    <dd><a href="http://livre.fnac.com/s19/Livre-Jeunesse#bl=MMli">Jeunesse</a></dd>
-							</dl>
-                            <dl>
-						        <dt>Art de vivre, nature</dt>
-						        <dd><a href="http://livre.fnac.com/s11/Cuisine-et-vins#bl=MMli">Cuisine et vins</a></dd>
-						        <dd><a href="http://livre.fnac.com/s20670/Loisirs-creatifs-Decoration-Bricolage#bl=MMli">Déco et loisirs créatifs</a></dd>
-						        <dd><a href="http://livre.fnac.com/s1387/Tourisme-et-Voyage#bl=MMli">Tourisme et voyage</a></dd>
-						        <dd><a href="http://livre.fnac.com/s20673/Nature-Animaux-Jardin#bl=MMli">Nature, animaux</a></dd>
-						        <dd><a href="http://livre.fnac.com/s1364/Sports-Loisirs-Transports#bl=MMli">Sport et loisirs</a></dd>
-						        <dd><a href="http://livre.fnac.com/s29/Sante-Bien-etre-Puericulture#bl=MMli">Santé bien-être</a></dd>
-						    </dl>
-							
-						</div>
-						<div class="mainColRight">
-						    <dl>
-							    <dt>Culture et Société</dt>
-							    <dd><a href="http://livre.fnac.com/s556/Art-Cinema-Musique#bl=MMli">Art, Cinéma, Musique</a></dd>
-							    <dd><a href="http://livre.fnac.com/s166839/Actualite-Politique-Economie-Societe#bl=MMli">Actu politique, société</a></dd>
-							    <dd><a href="http://livre.fnac.com/s557/Sciences-humaines#bl=MMli">Sciences Humaines</a></dd>
-							    <dd><a href="http://livre.fnac.com/s17/Histoire#bl=MMli">Histoire</a></dd>
-							    <dd><a href="http://livre.fnac.com/s1891/Scolaire-et-soutien-scolaire#bl=MMli">Scolaire, parascolaire</a></dd>
-							    <dd><a href="http://livre.fnac.com/s64641/Entreprise-management#bl=MMli">Entreprise, Management</a></dd>
-                                <dd><a href="http://livre.fnac.com/s64664/Droit#bl=MMli">Droit</a></dd>
-                                <dd><a href="http://livre.fnac.com/s1253/Livres-Informatique#bl=MMli">Livres informatique</a></dd>
-                                <dd><a href="http://livre.fnac.com/s12/Dictionnaires-et-Langues#bl=MMli">Dictionnaires et Langues</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/telecharger-ebook.asp?RNID=-73&NID=-73#bl=MMli">Ebooks</a></dt>
-								<dd><a href="http://www4.fnac.com/livre-numerique/s165238/Romans-et-nouvelles#bl=MMli">Romans</a></dd>
-								<dd><a href="http://www4.fnac.com/livre-numerique/s165230/Polar-et-Thriller#bl=MMli">Polars</a></dd>
-							</dl>
-							
-							<dl>
-							    <dt><a href="http://musique.fnac.com/s122151/Partitions-de-Musique#bl=MMli">Partitions et méthodes</a></dt>
-							</dl>
-							
-							<dl>
-							    <dt><a href="http://livre.fnac.com/s13991/Livres-anglais-et-etrangers#bl=MMli">Livres anglais et étrangers</a></dt>
-							</dl>
-							<dl class="allProd" style="position:relative !important">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=2#bl=MMli" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://livre.fnac.com/s28626/Coups-de-coeur-Livre#bl=MMli">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://www.fnac.com/BD/Communaute-BD/cl2/w-4#bl=MMli">Communaut&eacute; BD</a></dd>
-							<dd><a href="http://www.fnac.com/Manga/Communaute-Manga/cl3/w-4#bl=MMli">Communaut&eacute; manga</a></dd>
-							<dd><a href="http://www.fnac.com/Kids/Communaute-Kids/cl4/w-4#bl=MMli">Communaut&eacute; kids</a></dd>
-							<dd><a href="http://www.fnac.com/Livre/Livre/cl143/w-4#bl=MMli">Actu livres et société</a></dd>							
-						</dl>
-						<dl>
-                            <dt><a href="http://abonnement-magazine.fnac.com/Magazine/default.asp" target="_blank">Abonnement Presse</a></dt>
-                        </dl>
-                        
-						<dl>
-							<dt><a href="http://livre.fnac.com/s163888/Papeterie/Selection-Rentree-des-classes#bl=MMli">Papeterie</a></dt>
-						</dl>
-						
-                            <p class="vignet"><a href="http://livre.fnac.com/s1891/Scolaire-et-soutien-scolaire" title="Rentrée Scolaire"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/rentree_68.jpg" alt="Rentrée Scolaire" class="visu"/>Rentrée Scolaire&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!--  /fin/#ong-Livres -->
 
-			<li id="ong-Musique">
-				<a  class="ongLink" href="http://www.fnac.com/musique.asp#bl=ongMu"><span class="inner">Musique, MP3 instruments</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/musique.asp#bl=MMmu">Musique</a></dt>
-								<dd><a href="http://musique.fnac.com/s573/Variete-francaise#bl=MMmu">Variété française</a></dd>
-								<dd><a href="http://musique.fnac.com/s558/Pop-Rock#bl=MMmu">Pop-Rock</a></dd>
-								<dd><a href="http://musique.fnac.com/s566/Musique-Classique#bl=MMmu">Musique Classique</a></dd>
-								<dd><a href="http://musique.fnac.com/s559/Jazz-Blues#bl=MMmu">Jazz, Blues</a></dd>
-								<dd><a href="http://musique.fnac.com/s571/Electro#bl=MMmu">Electro</a></dd>
-								<dd><a href="http://musique.fnac.com/s2486/Rap-RetB-Soul-Funk#bl=MMmu">Rap, R&B, Soul, Funk</a></dd>
-								<dd><a href="http://musique.fnac.com/s570/Hard-Metal#bl=MMmu">Hard, Metal</a></dd>
-								<dd><a href="http://musique.fnac.com/s577/Enfants#bl=MMmu">Enfants</a></dd>
-								<dd><a href="http://musique.fnac.com/s572/Musiques-du-monde#bl=MMmu">Musique du monde</a></dd>
-								<dd><a href="http://musique.fnac.com/l909/A-paraitre-musique#bl=MMmu">Nouveautés à paraître</a></dd>																
-							</dl>
-							
-							
-							<dl>
-							    <dt><a href="http://musique.fnac.com/s121859/Tous-les-produits-derives#bl=MMmu">Produits dérivés</a></dt>
-							    <dd><a href="http://musique.fnac.com/s121863/T-shirt-et-vetements#bl=MMmu">T-shirt et vêtements</a></dd>
-							    <dd><a href="http://musique.fnac.com/s122845/Tous-les-produits-derives/Goodies/Goodies-Musique#bl=MMmu">Goodies</a></dd>
-							</dl>
-							
-						</div>
-						<div class="mainColRight">
-						    <dl>
-								<dt><a href="http://www.fnac.com/telecharger-musique.asp#bl=MMmu">MP3</a></dt>
-								<dd><a href="http://telecharger-musique.fnac.com/s132495/mp3/Variete-Francaise#bl=MMmu">Variété française</a></dd>
-								<dd><a href="http://telecharger-musique.fnac.com/s81060/mp3/Pop-Rock#bl=MMmu">Pop-rock</a></dd>
-								<dd><a href="http://telecharger-musique.fnac.com/s81064/mp3/Musique-electronique#bl=MMmu">Musique électronique</a></dd>
-							</dl>
-                            
-							<dl>
-								<dt><a href="http://www.fnac.com/DJ-Home-Studio/shi145140/w-4#bl=MMmu">DJ Home Studio</a></dt>
-							</dl>							
-							<dl>
-								<dt><a href="http://musique.fnac.com/s122274/Instruments-de-musique#bl=MMmu">Instruments</a></dt>
-								<dd><a href="http://musique.fnac.com/s122275/Instruments-de-musique/Toutes-les-Guitares-et-Basses#bl=MMmu">Guitare</a></dd>
-								<dd><a href="http://musique.fnac.com/s122276/Instruments-de-musique/Tous-les-Claviers-et-Pianos#bl=MMmu">Piano, Claviers</a></dd>
-								<dd><a href="http://musique.fnac.com/l163973/Meilleures-ventes-Harmonica/Instruments-de-musique#bl=MMmu">Harmonica</a></dd>
-								<dd><a href="http://musique.fnac.com/s122281/Instruments-de-musique/Tous-les-Accessoires-et-cables#bl=MMmu">Accessoires et câbles</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://musique.fnac.com/s122151/Partitions-de-Musique#bl=MMmu">Partitions et méthodes</a></dt>
-							</dl>
-							
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=3#bl=MMmu" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://musique.fnac.com/l27947/Coups-de-coeur-musique#bl=MMmu">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://www.fnac.com/Jazz/Jazz/cl6/w-4#bl=MMmu">Communaut&eacute; Jazz</a></dd>
-							<dd><a href="http://www.fnac.com/Classique/Classique/cl5/w-4#bl=MMmu">Communaut&eacute; Classique</a></dd>
-							<dd><a href="http://www.fnac.com/Pop-Rock-inde-Electro/Communaute-Pop-Rock-inde-Electro/cl162/w-4#bl=MMmu">Communaut&eacute; Pop-Rock, Electro</a></dd>
-							<dd><a href="http://www.fnac.com/Rap-RetB-Soul-Funk/Rap-RetB-Soul-Funk/cl159/w-4#bl=MMmu">Communaut&eacute; Rap Soul Funk</a></dd>
-							<dd><a href="http://www.fnac.com/Musique/Musique/cl144/w-4#bl=MMmu">Actu Musique</a></dd>
-						</dl>
-						<dl>
-							<dt><a onclick="TrackExternalLink('MMmu','http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm')" href="http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm">Concerts </a></dt>
-						</dl>
-                        
-                            <p class="vignet"><a href="http://musique.fnac.com/s317083/Best-Of-4-CD-20#bl=MMvignMU" title="4 Best Of = 20&nbsp;&euro;"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/4cd-20euros-68x68v5.gif" alt="4 Best Of = 20&nbsp;&euro;" class="visu"/>4 Best Of = 20&nbsp;&euro;&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Musique -->
 
-			<li id="ong-DVD">
-				<a  class="ongLink" href="http://www.fnac.com/video.asp#bl=OngVI"><span class="inner">DVD Blu&#x2011;ray</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/video.asp#bl=MMvi">DVD</a></dt>
-								<dd><a href="http://video.fnac.com/s1732/Series-TV#bl=MMvi">Séries TV</a></dd>
-								<dd><a href="http://video.fnac.com/s2692/DVD-Action-Policier#bl=MMvi">Action-Policier</a></dd>
-								<dd><a href="http://video.fnac.com/s1728/DVD-Comedie#bl=MMvi">Comédie</a></dd>
-								<dd><a href="http://video.fnac.com/s6508/DVD-Grands-Classiques#bl=MMvi">Grands classiques</a></dd>
-								<dd><a href="http://video.fnac.com/s804/DVD-Enfants-Jeunesse#bl=MMvi">Enfants, Jeunesse</a></dd>
-								<dd><a href="http://video.fnac.com/l899/A-paraitre-DVD-et-Blu-Ray#bl=MMvi">Nouveautés à paraître</a></dd>								
-							</dl>
-
-							<dl>
-								<dt><a onclick="TrackExternalLink('MMvi','http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm#bl=MMvi')" href="http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm#bl=MMvi">Billetterie Cinéma</a></dt>
-							</dl>
-							<dl>
-							    <dt><a href="http://musique.fnac.com/s121859/Tous-les-produits-derives#bl=MMvi">Produits dérivés</a></dt>
-							    <dd><a href="http://musique.fnac.com/s122846/Tous-les-produits-derives/Goodies/Goodies-Cinema-et-Series-TV#bl=MMvi">Goodies</a></dd>
-							    <dd><a href="http://musique.fnac.com/s122664/Tous-les-produits-derives/Posters#bl=MMvi">Posters</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-                            <dl>
-								<dt><a href="http://video.fnac.com/s26302/Blu-Ray#bl=MMvi">Blu-ray</a></dt>
-								<dd><a href="http://video.fnac.com/s63967/Blu-Ray/Blu-ray-Action-Policier#bl=MMvi">Action Policier</a></dd>
-								<dd><a href="http://video.fnac.com/s63968/Blu-Ray/Blu-ray-Fantastique-Horreur#bl=MMvi">SF, Fantastique</a></dd>
-								<dd><a href="http://video.fnac.com/s93649/Blu-Ray/Blu-ray-Drame-emotion#bl=MMvi">Comédie dramatique</a></dd>
-								<dd><a href="http://video.fnac.com/l27994/Toutes-les-nouveautes-Blu-Ray/Blu-Ray#bl=MMvi">Actualité Blu-ray</a></dd>								
-								<dd><a href="http://video.fnac.com/l27995/A-paraitre-Blu-Ray/Blu-Ray#bl=MMvi">Nouveautés à paraitre</a></dd>
-							</dl>
-							
-												
-							<dl>
-								<dt>Et aussi</dt>
-								<dd><a href="http://video.fnac.com/s261743/Disney#bl=MMvi">Univers Disney</a></dd>
-							</dl>		
-												
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=4#bl=MMvi" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://video.fnac.com/l6530/Coups-de-coeur-DVD-et-Blu-Ray#bl=MMvi">Coups de c&oelig;ur</a></dd>
-							
-							<dd><a href="http://www.fnac.com/Cinema-et-video/Cinema-et-video/cl145/w-4#bl=MMvi">Actu Cinéma</a></dd>							
-						</dl>
-                        
-                        <p class="vignet"><a href="http://video.fnac.com/s239213/4-DVD-20#bl=MMvignVI" title="4 DVD = 20&nbsp;&euro;"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/4dvd-68x68.gif" alt="4 DVD = 20&nbsp;&euro;" class="visu"/>4 DVD =  <strong>20&nbsp;&euro;</strong>&nbsp;&raquo;</a></p>
-                        
-                     </div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-DVD -->
+<div id="MENU">
 
-			<li id="ong-JeuxVideo">
-				<a  class="ongLink" href="http://www.fnac.com/jeux-video.asp#bl=ongJE"><span class="inner">Jeux vidéo consoles</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/jeux-video.asp#bl=MMje">Jeux vidéo</a></dt>
-								<dd><a href="http://jeux-video.fnac.com/s70055/Reservez-des-maintenant#bl=MMje">Prochaines sorties</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s68914/PlayStation-3#bl=MMje">Jeux PS3</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s69027/Xbox-360/Jeux-Xbox-360#bl=MMje">Jeux Xbox 360</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s68922/Nintendo-Wii/Jeux-Nintendo-Wii#bl=MMje">Jeux WII</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s32527/Jeux-PC#bl=MMje">Jeux PC</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s219261/Nintendo-3DS-et-3DS-XL#bl=MMje">Jeux 3DS</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s69113/Nintendo-DS-DSi-et-DSi-XL/Jeux-Nintendo-DS#bl=MMje">Jeux DS</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s268005/PS-Vita#bl=MMje">Jeux PS Vita</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s90115/Tout-pour-le-Mac/Jeux-Mac#bl=MMje">Jeux Mac</a></dd>								
-								<dd><a href="http://jeux-video.fnac.com/s89554/Jeux-familiaux#bl=MMje">Jeux en famille</a></dd>
-								
-								<dd><a href="http://jeux-video.fnac.com/s94259/Tous-les-jeux-video-retro#bl=MMje">Jeux vidéo rétro</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s160738/Jeux-video-d-occasion#bl=MMje">Jeux d'occasion</a></dd>
-								
-								<dd><a href="http://jeux-video.fnac.com/s95892/Les-jeux-incontournables-du-moment#bl=MMje">Les incontournables</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://jeux-video.fnac.com/s70157/Toutes-les-consoles#bl=MMje">Consoles</a></dt>
-								<dd><a href="http://jeux-video.fnac.com/s70157/Toutes-les-consoles#bl=MMje">Consoles</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s86680/Tous-les-accessoires#bl=MMje">Accessoires consoles</a></dd>
-                                <dd><a href="http://jeux-video.fnac.com/s70171/Toutes-les-consoles/Consoles-PlayStation-3#bl=MMje">Consoles PS3</a></dd>
-                                <dd><a href="http://jeux-video.fnac.com/s70172/Toutes-les-consoles/Consoles-Xbox-360#bl=MMje">Consoles Xbox 360</a></dd>
-                                <dd><a href="http://jeux-video.fnac.com/s70170/Toutes-les-consoles/Console-Nintendo-Wii#bl=MMje">Consoles Wii</a></dd>
-                                <dd><a href="http://recherche.Logiciel-Jeux-video.fnac.com/n219200/Toutes-les-consoles/Consoles-Nintendo-DS-et-3DS/Nintendo-3DS#bl=MMje">Consoles 3DS</a></dd>
-                                <dd><a href="http://recherche.Logiciel-Jeux-video.fnac.com/n232465/Toutes-les-consoles/Playstation-Vita#bl=MMje">Consoles PS Vita</a></dd>
-							</dl>
-							<dl>
-								<dt><a  onclick="TrackExternalLink('MMje','http://fnac.gamesplanet.com/')" href="http://fnac.gamesplanet.com/" target ="_blank">Téléchargements</a></dt>
-								<dd><a  onclick="TrackExternalLink('MMje','http://fnac.gamesplanet.com/')" href="http://fnac.gamesplanet.com/" target ="_blank">Jeux à télécharger</a></dd>
-							</dl>
-							
-							<dl>
-								<dt><a href="http://musique.fnac.com/s121859/Tous-les-produits-derives#bl=MMje">Produits dérivés</a></dt>
-								<dd><a href="http://jeux-video.fnac.com/s139816/Tous-les-produits-derives-jeux-video/Tous-les-produits-derives#bl=MMje">Goodies</a></dd>
-								<dd><a href="http://musique.fnac.com/s190059/Tous-les-produits-derives/Objets-collectors/Figurines-Jeux-video#bl=MMje">Objets collector</a></dd>
-							</dl>		
-							
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=5#bl=MMje" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-                        <dl>
-							<dt><a href="http://www4.fnac.com/Gaming/Default.aspx#bl=MMje">Mon espace Fnac Gaming</a></dt>
-							<dd><a href="http://www.facebook.com/fnacgaming" target ="_blank">Facebook Fnac Gaming</a></dd>
-							<dd><a href="http://twitter.com/FnacJeuxVideo" target ="_blank">Twitter Fnac Gaming</a></dd>
-						</dl>
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a onclick="TrackExternalLink('MMje','http://www.playfrance.com/')" href="http://www.playfrance.com/" target ="_blank">Tests, news et trailers de jeux vidéo</a></dd>
-							<dd><a onclick="TrackExternalLink('MMje','http://astuce-soluce.playfrance.com/index.php/Accueil')" href="http://astuce-soluce.playfrance.com/index.php/Accueil" target ="_blank">Astuces et solutions</a></dd>
-							<dd><a href="http://jeux-video.fnac.com/s157289/Nos-coups-de-coeur-Jeux-Video#bl=MMje">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://jeux-video.fnac.com/s167484/Les-offres-Fnac-Gaming#bl=MMje">Offres Fnac Gaming</a></dd>
-							<dd><a href="http://www.fnac.com/Jeux-video/Gaming-et-Jeux-video/cl148/w-4#bl=MMje">Actu Jeux vidéo</a></dd>
-						</dl>
-                        
-                            <p class="vignet"><a href="http://jeux-video.fnac.com/s268005/PS-Vita#bl=MMvignJE" title="Découvrez la PS Vita"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/vita-68x68.jpg" alt="Découvrez la Sony PS Vita" class="visu"/>Découvrez la Sony <strong>PS Vita</strong>&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-JeuxVideo -->
-
-			<li id="ong-Informatique">
-				<a  class="ongLink" href="http://www.fnac.com/Informatique/shi48966/w-4#bl=ongMic"><span class="inner">Informatique logiciels</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Ordinateur-ecran/shi188929/w-4#bl=MMmic">Ordinateur, écran</a></dt>
-								<dd><a href="http://www.fnac.com/Ordinateur-portable/shi48967/w-4#bl=MMmic">Ordinateur portable</a></dd>
-								<dd><a href="http://www.fnac.com/Netbook-mini-PC/shi64436/w-4#bl=MMmic">NetBook, Mini PC</a></dd>
-								<dd><a href="http://www.fnac.com/Tablette-Tactile/shi159821/w-4#bl=MMmic">Tablette tactile</a></dd>
-								<dd><a href="http://www4.fnac.com/Guides/micro/intelUltrabook/Default.aspx#bl=MMmic">Ultrabooks</a></dd>
-								<dd><a href="http://www.fnac.com/Ordinateur-de-bureau/shi48968/w-4#bl=MMmic">Ordinateur de bureau</a></dd>
-								<dd><a href="http://www.fnac.com/MacBook-iMac-iPad/shi48969/w-4#bl=MMmic">MacBook, iMac, iPad</a></dd>
-								<dd><a href="http://www.fnac.com/Moniteur-Ecran/shi48970/w-4#bl=MMmic">Ecran, Moniteur</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/logiciel.asp#bl=MMmic">Logiciels</a></dt>
-								<dd><a href="http://logiciel.fnac.com/s32672/Antivirus-et-Securite#bl=MMmic">Antivirus, Sécurité</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s32673/Utilitaire-et-Bureautique#bl=MMmic">Utilitaire, Bureautique</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s32676/Tout-pour-le-Mac#bl=MMmic">Pour Mac</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s83738/Graphisme-et-photo#bl=MMmic">Graphisme, Photo</a></dd>
-								<dd><a href="http://telecharger-logiciel.fnac.com/logiciel.html" target ="_blank">Logiciels à télécharger</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s83801/Montage-Video#bl=MMmic">Montage vidéo</a></dd>
-							</dl>
-						
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Stockage-accessoires/shi191087/w-4#bl=MMmic">Stockage, Accessoires</a></dt>
-								<dd><a href="http://www.fnac.com/Disque-dur-cle-USB/shi48972/w-4#bl=MMmic">Disque dur, Clé USB</a></dd>
-								<dd><a href="http://www.fnac.com/Clavier-souris-tablette-graphique/shi116485/w-4#bl=MMmic">Clavier, Souris</a></dd>
-								<dd><a href="http://www.fnac.com/Webcam-enceintes-casque/shi181551/w-4#bl=MMmic">Webcam,Enceinte</a></dd>
-								<dd><a href="http://www.fnac.com/Tablette-Tactile/Accessoires-et-Housses-Tablettes/shi160030/w-4#bl=MMmic">Accessoires Tablettes</a></dd>
-								<dd><a href="http://www.fnac.com/Reseau-CPL-WiFi/shi48973/w-4#bl=MMmic">Réseau CPL, Wifi</a></dd>
-								<dd><a href="http://www.fnac.com/Sacoche/shi116487/w-4#bl=MMmic">Housse, Sacoche</a></dd>
-                                <dd><a href="http://www.fnac.com/Domotique-Maison-connectee/shi226370/w-4#bl=MMmic">Domotique, maison connectée</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Imprimante-scanner/shi48971/w-4#bl=MMmic">Impression</a></dt>
-								<dd><a href="http://www.fnac.com/Imprimante-scanner/shi48971/w-4#bl=MMmic">Imprimante, Scanner</a></dd>
-								<dd><a href="http://www.fnac.com/Cartouche-d-encre-toner/shi116486/w-4#bl=MMmic">Cartouche d'encre, Toner</a></dd>
-							</dl>
-							
-							<dl>
-								<dt><a href="http://www.fnac.com/Composants/shi181557/w-4#bl=MMmic">Composants</a></dt>
-							</dl>
-								
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMmic" class="allLink">critères de recherche</a></dd>
-						    </dl>														
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/Guides/Micro/bien-choisir-ordinateur-portable/Guide-ordinateur-portable.asp#bl=MMmic">Bien choisir son ordinateur portable</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMmic">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMmic">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMmic">Collection Fnac IT</a></dd>
-						</dl>
-                        
-		                    <p class="vignet"><a href="http://www.fnac.com/MacBook-Pro/MacBook-iMac-iPad/nsh71598/w-4#bl=MMvignMIC" title="Découvrez les MacBook Pro"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/macbook-68x68.jpg" alt="Découvrez les MacBook Pro" class="visu"/>Découvrez les <strong>MacBook Pro</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Informatique -->
-
-			<li id="ong-Photo">
-				<a  class="ongLink" href="http://www.fnac.com/Photo-camescope/shi56352/w-4#bl=ongPEC"><span class="inner">Photo caméscopes</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Photo-camescope/shi56352/w-4#bl=MMpec">Photo</a></dt>
-								<dd><a href="http://www.fnac.com/Appareil-photo-numerique-reflex/shi56355/w-4#bl=MMpec">Reflex</a></dd>
-								<dd><a href="http://www.fnac.com/Appareil-photo-numerique-compact-bridge/shi56373/w-4#bl=MMpec">Compact, Bridge</a></dd>
-								<dd><a href="http://www.fnac.com/Appareil-photo-Hybrides/shi248506/w-4#bl=MMpec">Hybride</a></dd>
-								<dd><a href="http://www.fnac.com/Objectif-photo/shi56390/w-4#bl=MMpec">Objectif</a></dd>
-								<dd><a href="http://www.fnac.com/Flash-photo/shi84448/w-4#bl=MMpec">Flash</a></dd>
-								<dd><a href="http://www.fnac.com/Cadre-Numerique/shi56386/w-4#bl=MMpec">Cadre photo numérique</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Camescope/shi56379/w-4#bl=MMpec">Camescope</a></dt>
-								<dd><a href="http://www.fnac.com/Camescope/Camescope-haute-definition/shi87482/w-4#bl=MMpec">Full HD</a></dd>
-								<dd><a href="http://www.fnac.com/Par-usage/Camescope-Etanches-Antichocs/sh246918/w-4#bl=MMpec">Sport</a></dd>
-								<dd><a href="http://www.fnac.com/Camescope/Les-PocketCam/sh129356/w-4#bl=MMpec">Pocket Cam</a></dd>
-								<dd><a href="http://www.fnac.com/Camescope/Accessoires-Camescopes/shi248684/w-4#bl=MMpec">Accessoires</a></dd>
-							</dl>							
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Accessoires-Photo-HG/Accessoires-Photo/shi192283/w-4#bl=MMpec">Accessoires photo</a></dt>
-								<dd><a href="http://www.fnac.com/Carte-memoire/shi195928/w-4#bl=MMpec">Carte mémoire</a></dd>
-								<dd><a href="http://www.fnac.com/Etui-protection-sac/shi56411/w-4#bl=MMpec">Etui, protection, sac</a></dd>
-								<dd><a href="http://www.fnac.com/Trepied/shi84459/w-4#bl=MMpec">Trépied</a></dd>
-								<dd><a href="http://www.fnac.com/Jumelles/shi56406/w-4#bl=MMpec">Jumelles</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s83738/Graphisme-et-photo#bl=MMpec">Logiciels Photo</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://tiragesphoto.fnac.com/" target="_blank">Tirage photo</a></dt>
-							</dl>
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMpec" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/Guides/photo/bien-choisir-photo/default.asp#bl=MMpec">Bien choisir son appareil photo</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMpec">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMpec">Les 8+ Fnac</a></dd>
-							
-							<dd><a href="http://www.fnac.com/Photo/Photo-expositions-galeries/cl147/w-4#bl=MMpec">Actu photo</a></dd>
-							<dd><a href="http://www.fnac.com/Photo/Communaute-Photo/cl152/w-4#bl=MMpec">Communaut&eacute; Photo</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMpec">Collection Fnac IT</a></dd>
-						</dl>
-						
-		                    <p class="vignet"><a href="http://www.fnac.com/les-packs-Fnac-photo-video/sh184731/w-4#bl=MMvignPEC" title="Tous les packs Fnac"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/packs-fnac-68x68.png" alt="Tous les packs Fnac" class="visu"/>Tous les<strong> packs Fnac</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Photo -->
-
-			<li id="ong-TV">
-				<a  class="ongLink" href="http://www.fnac.com/TV-Video-Home-cinema/shi56328/w-4#bl=ongTVH"><span class="inner">TV, Vidéo Home&nbsp;cinéma</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Televiseur/shi56452/w-4#bl=MMtvh">TV, &Eacute;cran plat</a></dt>
-								<dd><a href="http://www.fnac.com/TV-LCD/Par-technologie/nsh129037/w-4#bl=MMtvh">TV LCD</a></dd>
-								<dd><a href="http://www.fnac.com/TV-LED/Par-technologie/nsh129044/w-4#bl=MMtvh">TV LED</a></dd>
-								<dd><a href="http://www.fnac.com/TV-3D/Par-technologie/nsh159803/w-4#bl=MMtvh">TV 3D</a></dd>
-								<dd><a href="http://www.fnac.com/TV-Plasma/Par-technologie/nsh118113/w-4#bl=MMtvh">TV Plasma</a></dd>
-								<dd><a href="http://www.fnac.com/Moniteur-TNT/Par-technologie/nsh285681/w-4#bl=MMtvh">Moniteur avec tuner TNT</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Accessoires-TV-Video-HG/Accessoires/shi192219/w-4#bl=MMtvh">Accessoires</a></dt>
-								<dd><a href="http://www.fnac.com/Casque-TV-Hifi/shi117053/w-4#bl=MMtvh">Casque TV, Hifi</a></dd>
-								<dd><a href="http://www.fnac.com/Cable-Audio-Video/shi180725/w-4#bl=MMtvh">Câble audio video</a></dd>
-								<dd><a href="http://www.fnac.com/Adaptateur-antenne-TNT/shi138663/w-4#bl=MMtvh">Adaptateur, antenne TNT</a></dd>
-								<dd><a href="http://www.fnac.com/Meuble-support-TV/shi56622/w-4#bl=MMtvh">Meuble, support TV</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Home-cine-HG/Home-cinema-Video/shi192062/w-4#bl=MMtvh">Home cinema, Vidéo</a></dt>
-								<dd><a href="http://www.fnac.com/Home-Cinema/shi120178/w-4#bl=MMtvh">Home cinema</a></dd>
-								<dd><a href="http://www.fnac.com/Lecteur-DVD-Lecteur-Blu-ray/shi180744/w-4#bl=MMtvh">Lecteur DVD, Blu-ray</a></dd>
-								<dd><a href="http://www.fnac.com/Enregistreur-DVD-Enregistreur-Blu-ray/shi180745/w-4#bl=MMtvh">Lecteur Enregisteur DVD, Blu-Ray</a></dd>
-								<dd><a href="http://www.fnac.com/Lecteur-DVD-portable/shi138662/w-4#bl=MMtvh">Lecteur DVD portable</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Videoprojecteur/shi56623/w-4#bl=MMtvh">Vidéoprojecteur</a></dt>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-3D/Par-categorie/nsh226232/w-4#bl=MMtvh">Projecteur 3D</a></dd>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-Home-Cinema/Par-categorie/nsh63790/w-4#bl=MMtvh">Projecteur Home Cinéma</a></dd>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-Polyvalent/Par-categorie/nsh63788/w-4#bl=MMtvh">Projecteur polyvalent</a></dd>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-Pico/Par-categorie/nsh227748/w-4#bl=MMtvh">Mini projecteur</a></dd>
-							</dl>
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMtvh" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/guides/Tv/GuideTeleviseur/index.asp#bl=MMtvh">Bien choisir sa TV</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMtvh">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMtvh">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www.fnac.com/Decouvrez-notre-selection-Prestige-Hi-fi/shi177041/w-4#bl=MMtvh">Sélection Prestige Hifi</a></dd>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMtvh">Collection Fnac IT</a></dd>
-						</dl>
-                        
-		                    <p class="vignet"><a href="http://www.fnac.com/Decouvrez-nos-TV-grandes-tailles/Televiseur/nsh273881/w-4#bl=MMvignTVH" title="Découvrez nos TV grandes tailles !"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/tv-taille-68x68.jpg" alt="Découvrez nos TV grandes tailles !" class="visu"/>Découvrez nos <strong>TV grandes tailles !</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-TV -->
-
-			<li id="ong-Son">
-				<a  class="ongLink" href="http://www.fnac.com/Son-hifi-lecteur-MP3/shi176062/w-4#bl=ongSon"><span class="inner">Son, hifi lecteurs&nbsp;MP3</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Lecteurs-MP3/shi191538/w-4#bl=MMson">Lecteurs MP3</a></dt>
-								<dd><a href="http://www.fnac.com/iPod/shi176592/w-4#bl=MMson">iPod</a></dd>
-								<dd><a href="http://www.fnac.com/Dock-iPod-MP3/shi176595/w-4#bl=MMson">Dock iPod, MP3</a></dd>
-								<dd><a href="http://www.fnac.com/Casque-ecouteur/shi176594/w-4#bl=MMson">Casque, écouteurs</a></dd>
-								<dd><a href="http://www.fnac.com/Lecteur-MP3-MP4/shi176593/w-4#bl=MMson">Lecteur MP3, MP4</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-iPod/shi176600/w-4#bl=MMson">Accessoire iPod</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-MP3-MP4/shi176601/w-4#bl=MMson">Accessoire MP3, MP4</a></dd>
-								<dd><a href="http://www.fnac.com/Dictaphone-Radio-CD/shi176597/w-4#bl=MMson">Dictaphone, radio-cd</a></dd>
-								<dd><a href="http://www.fnac.com/Radio-Reveil-Baladeur/shi176598/w-4#bl=MMson">Radio-réveil, baladeur</a></dd>																
-							</dl>
-							
-							<dl>
-								<dt><a href="http://www.fnac.com/Sante-et-Bien-etre/shi181858/w-4#bl=MMson">Santé, bien-être</a></dt>
-								<dd><a href="http://www.fnac.com/Sante-et-Bien-etre/Luminotherapie/sh181872/w-4#bl=MMson">Luminothérapie</a></dd>
-								<dd><a href="http://www.fnac.com/Sante-et-Bien-etre/Massage-relaxation/sh181873/w-4#bl=MMson">Massage, relaxation</a></dd>
-								<dd><a href="http://www.fnac.com/Sante-et-Bien-etre/Ambiance/sh181874/w-4#bl=MMson">Ambiance</a></dd>
-								<dd><a href="http://www.fnac.com/Station-meteo/Sante-et-Bien-etre/lm181875/w-4#bl=MMson">Station météo</a></dd>
-							</dl>							
-							<dl>
-							    <dt><a href="http://www.fnac.com/Montre/shi220892/w-4#bl=MMson">Montres</a></dt>
-							</dl>
-														
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Hifi/shi191539/w-4#bl=MMson">Hifi</a></dt>
-								<dd><a href="http://www.fnac.com/Chaine-Hifi/shi176604/w-4#bl=MMson">Chaine Hifi</a></dd>
-								<dd><a href="http://www.fnac.com/Casque-TV-Hi-fi/shi176608/w-4#bl=MMson">Casque TV, Hifi</a></dd>
-								<dd><a href="http://www.fnac.com/Ampli/shi176606/w-4#bl=MMson">Ampli</a></dd>
-								<dd><a href="http://www.fnac.com/Enceintes/shi176605/w-4#bl=MMson">Enceintes</a></dd>
-								<dd><a href="http://www.fnac.com/Platine-Vinyle-CD/shi178398/w-4#bl=MMson">Platine Vinyle, CD</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-Hifi/shi176607/w-4#bl=MMson">Accessoire Hifi</a></dd>								
-							</dl>
-							
-							<dl>
-								<dt><a href="http://www.fnac.com/DJ-Home-Studio/shi176603/w-4#bl=MMson">DJ, Home studio</a></dt>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Espace-DJ/shi178508/w-4#bl=MMson">Espace DJ</a></dd>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Home-Studio/shi178509/w-4#bl=MMson">Home Studio</a></dd>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Materiel-de-soiree/shi178510/w-4#bl=MMson">Matériel de soirée</a></dd>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Accessoires-DJ/shi178511/w-4#bl=MMson">Accessoire DJ</a></dd>
-							</dl>
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMson" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/guides/high-tech/guide-lecteur-mp3/default.asp#bl=MMson">Bien choisir son lecteur MP3</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMson">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMson">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www.fnac.com/Espace-Prestige-Hifi/shi179495/w-4#bl=MMson">Sélection Prestige Hifi</a></dd>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMson">Collection Fnac IT</a></dd>
-						</dl>
-                        
-		                    <p class="vignet"><a href="http://www.fnac.com/Dock-Airplay-Sans-Fil/Par-categorie/nsh248989/w-4#bl=MMvignSON" title="Dock Airplay et sans fil"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/bowers-68x68.jpg" alt="Dock Airplay et sans fil" class="visu"/><strong>Dock Airplay et sans fil</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Son -->
+    <ul id="onglets" class="clearfix">
 
-			<li id="ong-GPS">
-				<a  class="ongLink" href="http://www.fnac.com/GPS-Telephones-eBook/shi56528/w-4#bl=ongTMG"><span class="inner">Téléphones, GPS, ebook</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/iPhone/shi56549/w-4#bl=MMtmg">iPhone, Accessoires</a></dt>
-								<dd><a href="http://www.fnac.com/iPhone-et-accessoires/iPhone-4/shi190276/w-4#bl=MMtmg">IPhone 4</a></dd>
-								<dd><a href="http://www.fnac.com/iPhone-et-accessoires/iPhone-3G-et-3Gs/shi190277/w-4#bl=MMtmg">Iphone 3G, 3Gs</a></dd>
-								<dd><a href="http://www.fnac.com/Telephone-portable-d-occasion/iPhone-d-occasion/sh176661/w-4#bl=MMtmg">Iphone d’occasion</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoires-iPhone/shi117605/w-4#bl=MMtmg">Accessoires iPhone</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Telephone-portable-Smartphone/shi59030/w-4#bl=MMtmg">Téléphone, smartphone</a></dt>
-								<dd><a href="http://www.fnac.com/Telephone-portable-Smartphone/shi59030/w-4#bl=MMtmg">Neuf</a></dd>
-								<dd><a href="http://www.fnac.com/Telephone-portable-d-occasion/shi176660/w-4#bl=MMtmg">Occasion</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-telephone-portable-Smartphone/shi59031/w-4#bl=MMtmg">Accessoires téléphone</a></dd>
-								<dd><a href="http://www.fnac.com/Telephone-fixe-DECT/shi59033/w-4#bl=MMtmg">Téléphone fixe</a></dd>
-							</dl>
-                            <dl>
-								<dt><a href="http://forfaitmobile.fnac.com/mobile/fnac/accueil.jspe" target ="_blank">Téléphone avec abonnement</a></dt>
-								<dd><a href="http://forfaitmobile.fnac.com/mobile/telephones?addFilter=&vue=00fnac&tgp=toutes-les-offres&marque=apple" target ="_blank">Iphone</a></dd>
-								<dd><a href="http://forfaitmobile.fnac.com/mobile/offres/toutes-les-offres-sfr?vue=00fnac" target ="_blank">Forfaits</a></dd>
-								<dd><a href="http://forfaitmobile.fnac.com/mobile/offres/toutes-les-offres-sfr?vue=00fnac&tab=FORFAITS_BLOQUES" target ="_blank">Forfaits bloqués</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/GPS/shi59029/w-4#bl=MMtmg">GPS</a></dt>
-                                <dd><a href="http://www.fnac.com/Assistant-d-aide-a-la-conduite/shi286117/w-4#bl=MMtmg">Assistant d'aide à la conduite</a></dd>
-                                <dd><a href="http://www.fnac.com/GPS/Accessoires-GPS/shi221274/w-4#bl=MMtmg">Accessoires GPS</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Livre-electronique/shi137559/w-4#bl=MMtmg">Livre numérique</a></dt>
-								<dd><a href="http://www.fnac.com/Livre-electronique/Kobo-by-Fnac/sh259290/w-4#bl=MMtmg">Kobo by Fnac</a></dd>
-								<dd><a href="http://www.fnac.com/Livre-electronique/Accessoires/sh259687/w-4#bl=MMtmg">Accessoires</a></dd>
-								<dd><a href="http://www.fnac.com/telecharger-ebook.asp?RNID=-73&NID=-73#bl=MMtmg">eBooks</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/GPS-Telephones-MM/Bureautique/shi190275/w-4#bl=MMtmg">Bureautique</a></dt>
-								<dd><a href="http://www.fnac.com/Calculatrice/shi104867/w-4#bl=MMtmg">Calculatrice</a></dd>
-								<dd><a href="http://www.fnac.com/Station-meteo/Station-meteo-traducteur-jeu-d-echecs/lm56576/w-4#bl=MMtmg">Station météo</a></dd>
-								<dd><a href="http://www.fnac.com/Station-meteo-traducteur-jeu-d-echecs/Traducteur-dictionnaire/sh56584/w-4#bl=MMtmg">Traducteur, Dictionnaire</a></dd>
-							</dl>
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMtmg" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/Guides/Telephonie/GuideFnacGPS/guide-gps.asp#bl=MMtmg">Bien choisir son GPS</a></dd>
-							<dd><a href="http://www4.fnac.com/Guides/Telephonie/guidecalculatrice2012/default.aspx#bl=MMtmg">Bien choisir sa calculatrice</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMtmg">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMtmg">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-                        
-                        <p class="vignet"><a href="http://www.fnac.com/Changez-de-mobile/shi274256/w-4#bl=MMvignTMG" title="Changez de mobile !"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/changez-mobile-68x68.jpg" alt="Changez de mobile !" class="visu"/>Changez de <strong>mobile</strong>&nbsp;!&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-GPS -->
+        
 
-            
-			<li id="ong-Gadgets"> 
-			<a  class="ongLink" href="http://www.fnac.com/Petit-electromenager/shi181432/w-4#bl=ongPEM">
-            <span class="bulleNew bulleNewRouge">New</span>
-            <span class="inner">Maison &amp;&nbsp;Cuisine</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>Petit électroménager</dt>
-								<dd><a href="http://www.fnac.com/Petit-dejeuner-Cafe/shi290358/w-4#bl=MMpem">Café & Petit-déjeuner</a></dd>
-								<dd><a href="http://www.fnac.com/Preparation-culinaire/shi290827/w-4#bl=MMpem">Préparation culinaire</a></dd>
-								<dd><a href="http://www.fnac.com/Cuisson/shi290975/w-4#bl=MMpem">Cuisson</a></dd>
-								<dd><a href="http://www.fnac.com/Aspiration-repassage-et-couture/shi291031/w-4#bl=MMpem">Aspiration, Repassage, Couture</a></dd>
-								<dd><a href="http://www.fnac.com/Confort-de-la-maison-et-Bien-etre/shi292904/w-4#bl=MMpem">Confort & Bien-être</a></dd>
-								<dd><a href="http://www.fnac.com/Beaute-et-sante/shi292905/w-4#bl=MMpem">Beauté & Santé</a></dd>
-							</dl>
-							<dl>
-								<dt>Gros électroménager</dt>
-								<dd><a href="http://www.fnac.com/Lavage-et-sechage/shi291116/w-4#bl=MMpem">Lavage & Séchage</a></dd>
-								<dd><a href="http://www.fnac.com/Lave-vaisselle/shi291117/w-4#bl=MMpem">Lave-vaisselle</a></dd>
-								<dd><a href="http://www.fnac.com/Refrigerateur-et-congelateur/shi291133/w-4#bl=MMpem">Réfrigerateur & Congélateur</a></dd>
-                                <dd><a href="http://www.fnac.com/Cave-a-vin/shi292261/w-4#bl=MMpem">Cave à vin</a></dd>
-                                <dd><a href="http://www.fnac.com/Cuisson-et-hotte/shi291150/w-4#bl=MMpem">Cuisson & Hotte</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Ustensiles de cuisine</dt>
-								<dd><a href="http://www.fnac.com/Ustensiles-de-cuisson/shi292358/w-4#bl=MMpem">Ustensiles de cuisson</a></dd>
-								<dd><a href="http://www.fnac.com/Ustensiles-de-preparation/shi292362/w-4#bl=MMpem">Ustensiles de préparation</a></dd>
-								<dd><a href="http://www.fnac.com/Coutellerie-et-decoupe/shi292363/w-4#bl=MMpem">Coutellerie & Découpe</a></dd>
-								<dd><a href="http://www.fnac.com/Conservation-et-rangement/shi292366/w-4#bl=MMpem">Conservation & Rangement</a></dd>
-							</dl>
-							<dl>
-								<dt>Arts de la table</dt>
-								<dd><a href="http://www.fnac.com/Assiettes-plats-verrines/shi293360/w-4#bl=MMpem">Assiettes, Plats & Verrines</a></dd>
-								<dd><a href="http://www.fnac.com/Couverts-accessoires-de-table/shi293361/w-4#bl=MMpem">Couverts & Accessoires de table</a></dd>
-								<dd><a href="http://www.fnac.com/Vaisselle-du-Petit-dejeuner/shi293362/w-4#bl=MMpem">Vaisselle du Petit-déjeuner</a></dd>
-								<dd><a href="http://www.fnac.com/Vin/shi293363/w-4#bl=MMpem">Vin, Apéritif & Cocktail</a></dd>
-                                <dd><a href="http://www.fnac.com/Linge-de-cuisine/shi293365/w-4#bl=MMpem">Linge de cuisine</a></dd>
-							</dl>
-
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Les marques</dt>
-							<dd><a href="http://www.fnac.com/Expresso-et-cafetieres/Nespresso/shi221846/w-4#bl=MMpem">Nespresso</a></dd>
-							<dd><a href="http://www.fnac.com/Krups/Par-marque/lm221855/w-4#bl=MMpem">Krups</a></dd>
-							<dd><a href="http://www.fnac.com/Magimix/Par-marque/lm221856/w-4#bl=MMpem">Magimix</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Bodum/shi238302/w-4#bl=MMpem">Bodum</a></dd>
-							<dd><a href="http://www.fnac.com/Dyson/Par-marque/lm222057/w-4#bl=MMpem">Dyson</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Cuisinart/shi238305/w-4#bl=MMpem">Cuisinart</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Electrolux/lm246323/w-4#bl=MMpem">Electrolux</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Lagrange/shi245937/w-4#bl=MMpem">Lagrange</a></dd>
-						</dl>
-                        
-                            <p class="vignet"><a href="http://www.fnac.com/Cuisine/Cuisine/cl233/w-4#bl=MMvignPEM" title="Découvrez la communauté cuisine"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/macarons-68x68.jpg" alt="Découvrez la communauté cuisine" class="visu" />Découvrez la <strong>communauté cuisine</strong>&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Gadgets (cuisine)-->
-            
-			
-			<li id="ong-TiragesPhoto">
-				<a  class="ongLink" href="http://tiragesphoto.fnac.com/" target ="_blank"><span class="inner">Tirages photo</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>Tirages photo</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/tirages-photo.html')" href="http://tiragesphoto.fnac.com/tirages-photo.html" target ="_blank">Développement photo</a></dd>
-							</dl>
-							<dl>
-								<dt>Livres photo</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-xxl.html')" href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-xxl.html" target ="_blank">Sur papier satiné (XXL)</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-grands.html')"href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-grands.html" target ="_blank">Sur papier satiné (Grands)</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-petits.html')" href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-petits.html" target ="_blank">Sur papier satiné (Petits)</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/sur-papier-photo.html')" href="http://tiragesphoto.fnac.com/sur-papier-photo.html" target ="_blank">Sur papier photo</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-brillant.html')" href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-brillant.html" target ="_blank">Sur papier brillant</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Posters et toiles</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-classique.html')" href="http://tiragesphoto.fnac.com/poster-classique.html" target ="_blank">Posters</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-xxl.html')" href="http://tiragesphoto.fnac.com/poster-xxl.html" target ="_blank">Posters XXL</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-sous-plexi.html')" href="http://tiragesphoto.fnac.com/poster-sous-plexi.html" target ="_blank">Posters sous plexi</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-sur-alu.html')" href="http://tiragesphoto.fnac.com/poster-sur-alu.html" target ="_blank">Posters sur alu</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/photo-sur-toile.html')" href="http://tiragesphoto.fnac.com/photo-sur-toile.html" target ="_blank">Photos sur toile</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/pele-mele.html')" href="http://tiragesphoto.fnac.com/pele-mele.html" target ="_blank">Pêle-mêle</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/pele-mele-sur-toile.html')" href="http://tiragesphoto.fnac.com/pele-mele-sur-toile.html" target ="_blank">Pêle-mêle sur toile</a></dd>
-							</dl>
-							<dl>
-								<dt>Autres produits</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/cadeaux-photo.html')" href="http://tiragesphoto.fnac.com/cadeaux-photo.html" target ="_blank">Cadeaux photo</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/cartes-de-vux.html')" href="http://tiragesphoto.fnac.com/cartes-de-vux.html" target ="_blank">Cartes de voeux</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/calendriers-photo.html')" href="http://tiragesphoto.fnac.com/calendriers-photo.html" target ="_blank">Calendriers photo</a></dd>
-							</dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseil Fnac</dt>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMtirages">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Photo/Photo-expositions-galeries/cl147/w-4#bl=MMpec">Actu photo</a></dd>
-						</dl>
-                        <p class="vignet"><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo.html')" href="http://tiragesphoto.fnac.com/livres-photo.html" target ="_blank" title="Livres photo à partir de 8,90€"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/photo-68x86.jpg" alt="Livres photo à partir de 8,90€" class="visu"/><strong>Livres photo</strong> à partir de 8,90&nbsp;€&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-TiragesPhoto -->
+        
+<li id="ong-Livres" class="">
+    <a href="http://www.fnac.com/livre.asp#bl=MMli" class="ongLink">Livres, Ebooks Kobo</a>
+    <div id="ong-Livres-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-			<li id="ong-Evenement">
-				<a  class="ongLink" href="http://www.fnac.com/coffret-cadeau#bl=ongKdo"><span class="inner">Coffrets cadeaux</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>Coffrets cadeaux par thèmes</dt>
-								<dd><a href="http://www4.fnac.com/n256383/Coffrets-cadeaux-Sejours#bl=MMcoffrets">Séjours</a></dd>
-								<dd><a href="http://www4.fnac.com/n256384/Coffrets-cadeaux-Bien-etre#bl=MMcoffrets">Bien-être</a></dd>
-								<dd><a href="http://www4.fnac.com/n256385/Coffrets-cadeaux-Sport-et-pilotage#bl=MMcoffrets">Sport et pilotage</a></dd>
-								<dd><a href="http://www4.fnac.com/n256386/Coffrets-cadeaux-Gastronomie#bl=MMcoffrets">Gastronomie</a></dd>
-								<dd><a href="http://www4.fnac.com/n256426/Coffrets-cadeaux-Oenologie#bl=MMcoffrets">&OElig;nologie</a></dd>
-								<dd><a href="http://www4.fnac.com/n256387/Coffrets-cadeaux-atypiques#bl=MMcoffrets">Atypiques</a></dd>
-								<dd><a href="http://www4.fnac.com/n256389/Coffrets-cadeaux-Luxe#bl=MMcoffrets">Luxe</a></dd>
-								<dd><a href="http://www4.fnac.com/n256390/Coffrets-cadeaux-Multi-thematiques#bl=MMcoffrets">Multi-thématiques</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Coffrets cadeaux par marques</dt>
-								<dd><a href="http://www4.fnac.com/n256393/Coffrets-cadeaux-Fnac#bl=MMcoffrets">Coffrets cadeaux Fnac</a></dd>
-								<dd><a href="http://www4.fnac.com/n256394/Smartbox#bl=MMcoffrets">Smartbox</a></dd>
-								<dd><a href="http://www4.fnac.com/n256395/Wonderbox#bl=MMcoffrets">Wonderbox</a></dd>
-								<dd><a href="http://www4.fnac.com/n256396/Dakotabox#bl=MMcoffrets">Dakota Box</a></dd>
-								<dd><a href="http://www4.fnac.com/n256398/Euphorie#bl=MMcoffrets">Euphorie</a></dd>
-								<dd><a href="http://www4.fnac.com/n257042/OHMYBOX#bl=MMcoffrets">Oh My Box&nbsp;!</a></dd>
-								<dd><a href="http://www4.fnac.com/n256404/Gault-et-Millau#bl=MMcoffrets">Gault & Millau</a></dd>
-								<dd><a href="http://www4.fnac.com/n256405/VIPbox#bl=MMcoffrets">VIP Box</a></dd>
-								<dd><a href="http://www4.fnac.com/n263107/Flying-Pass#bl=MMcoffrets">Flying Pass</a></dd>
-							</dl>
-							<dl class="allProd">
-						        <dd><a href="http://www.fnac.com/coffret-cadeau#bl=MMcoffrets" class="allLink">Tous les produits</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils</dt>
-							<dd><a href="http://www4.fnac.com/l256429/Coups-de-coeur-coffrets-cadeaux#bl=MMcoffrets">Coups de c&oelig;ur</a></dd>
-						</dl>
-						
-                        <p class="vignet"><a href="http://www4.fnac.com/l256428/Meilleures-ventes-coffrets-cadeaux#bl=MMvignCOFFRETS" target ="_blank" title="Meilleures ventes coffrets cadeaux"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/meilleures-ventes-68x68.gif" alt="Meilleures ventes coffrets cadeaux" class="visu"/>Meilleures ventes coffrets cadeaux&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-            </li><!-- /fin/#ong-Evenement -->
-            
-			<li id="ong-Spectacles">
-				<a  class="ongLink" href="http://www.fnacspectacles.com/"><span class="inner">Spectacles &amp;&nbsp;voyages</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>&Eacute;vènements</dt>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm')" href="http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm">Concerts</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Theatre-p460630208962351336.htm')" href="http://www.fnacspectacles.com/place-spectacle/Theatre-p460630208962351336.htm">Théâtre</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Humour-p460630208962352631.htm')" href="http://www.fnacspectacles.com/place-spectacle/Humour-p460630208962352631.htm">Humour</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Grands-Spectacles-p693575620074077568.htm')" href="http://www.fnacspectacles.com/place-spectacle/Grands-Spectacles-p693575620074077568.htm">Grands Spectacles</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Musees---Expositions-p304216639723798550.htm')" href="http://www.fnacspectacles.com/place-spectacle/Musees---Expositions-p304216639723798550.htm">Musées / Expositions</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Sports-p304216639723798544.htm')" href="http://www.fnacspectacles.com/place-spectacle/Sports-p304216639723798544.htm">Sports</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Festival-p304216639723798560.htm')" href="http://www.fnacspectacles.com/place-spectacle/Festival-p304216639723798560.htm">Festivals</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Classique---Opera-p460630208962351059.htm')" href="http://www.fnacspectacles.com/place-spectacle/Classique---Opera-p460630208962351059.htm">Classique / Opéra</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Danse-p304216639723798541.htm')" href="http://www.fnacspectacles.com/place-spectacle/Danse-p304216639723798541.htm">Danse</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Salons---Foires-p460630208962356678.htm')" href="http://www.fnacspectacles.com/place-spectacle/Salons---Foires-p460630208962356678.htm">Salons / Foires</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm')" href="http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm">Cinéma</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Enfants-p304216639723798547.htm')" href="http://www.fnacspectacles.com/place-spectacle/Enfants-p304216639723798547.htm">Enfants</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Loisirs</dt>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Parcs---Spectacles-en-plein-air-p460630208962356221.htm')" href="http://www.fnacspectacles.com/place-spectacle/Parcs---Spectacles-en-plein-air-p460630208962356221.htm">Parcs / Spectacles en plein air</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Monuments---Visites-p927473535004354819.htm')" href="http://www.fnacspectacles.com/place-spectacle/Monuments---Visites-p927473535004354819.htm">Monuments / Visites</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Cirques---Spectacles-equestres-p460630208962353111.htm')" href="http://www.fnacspectacles.com/place-spectacle/Cirques---Spectacles-equestres-p460630208962353111.htm">Cirques / Spectacles équestres</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Cabarets---Revues---Galas-p460630208962356755.htm')" href="http://www.fnacspectacles.com/place-spectacle/Cabarets---Revues---Galas-p460630208962356755.htm">Cabarets / Revues / Galas</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Restauration-p1425483334638662047.htm')" href="http://www.fnacspectacles.com/place-spectacle/Restauration-p1425483334638662047.htm">Restauration</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Activites-de-Loisirs-p927473878230549172.htm')" href="http://www.fnacspectacles.com/place-spectacle/Activites-de-Loisirs-p927473878230549172.htm">Activités de Loisirs</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Guides/Common/CoffretsCadeaux/default.asp#bl=MMspect">Coffrets cadeaux</a></dt>
-							</dl>
-						</div>
-					</div>
-					<div class="rightCol" style="min-height:23em !important;">
-						<dl>
-							<dt><a onclick="TrackExternalLink('MMspect','http://www.fnac.com/voyages.asp#bl=MMspect')" href="http://www.fnac.com/voyages.asp#bl=MMspect">Voyages</a></dt>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=we')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=we">Week-ends</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=se')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=se">Séjours</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=cr')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=cr">Croisières</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=ci')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=ci">Circuits</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnac.com/voyages.asp')" href="http://www.fnac.com/voyages.asp">Vols, hôtels, à la carte</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://location.fnac.com/default_fnac.aspx')" href="http://location.fnac.com/default_fnac.aspx">Vacances en France</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=wd')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=wd">Escapades en France</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnac.com/avis')" href="http://www.fnac.com/avis">Location de voitures</a></dd>
-						</dl>
-						
-                        <p class="vignet"><a onclick="TrackExternalLink('MMvignSPECT','http://www.fnacspectacles.com/editorial.do?page=TRACK_festival2012#bl=MMvignSPECT')" href="http://www.fnacspectacles.com/editorial.do?page=TRACK_festival2012#bl=MMvignSPECT" title="Les festivals de l'été" target="_blank"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/68x68 Festivals.png" alt="Les festival de l'été" class="visu"/><strong>Les festivals de l'été</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Spectacles -->
 
+        
             
-
-		</ul><!-- /fin/#onglets-->
-
-	</div>
-	<!-- *********************** /fin/#MENU**************************** -->
-
+<li id="ong-Jouets" class="">
+    <a href="http://www.fnac.com/enfants.asp#bl=MMenf" class="ongLink">jeux, jouets</a>
+    <div id="ong-Jouets-content" class="megaMenu clearfix">
         
-    
-
-</div><!-- /fin/#HEADER-->
+    </div>
+</li>
 
+        
 
+        
+<li id="ong-Musique" class="">
+    <a href="http://www.fnac.com/musique.asp#bl=MMmu" class="ongLink">Musique Jukebox</a>
+    <div id="ong-Musique-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
 
-<script language="javascript">
-    function messageHelperGetFermer() {
-        return 'Fermer';
-    }
-</script>
         
-        <div id="content">
-            
-            <div id="col_gauche">
-                
-
- 
-    <div id="navigation">
-    
-        <div id="affiner" class="navSearch">
-            
-           
+<li id="ong-DVD" class="">
+    <a href="http://www.fnac.com/video.asp#bl=MMvi" class="ongLink">DVD Blu-ray</a>
+    <div id="ong-DVD-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-<h2 title='Affinez votre recherche'>
-    <img src="http://www4-fr.fnac-static.com/img/fr-FR/search/blocks/choisissez-votre-rayon.png" alt='Choisissez votre rayon' />
-</h2>
-<div class="arr_down2"></div>
-<div class="content">
-   
 
-            <a href="http://recherche.fnac.com/Search/SearchResult.aspx?Search=9782742765010&sl=1.0" class="moutarde gras mrg_b_sm dispeblock">&laquo;&nbsp;Tous les livres</a>
         
-    <ul class="affine"> 
-    
-                        <li class="n1"><span class="gras noir lienInverse mrg_b_sm dispeblock">Autres<span class="fontnormal">&nbsp;(1) </span></span>
-                     
-                
-                    <ul class="n2">
-                
-               </ul></li>
-               
-    </ul> 
-</div>
+<li id="ong-JeuxVideo" class="">
+    <a href="http://www.fnac.com/jeux-video.asp#bl=MMje" class="ongLink">Jeux vidéo Consoles</a>
+    <div id="ong-JeuxVideo-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
 
-      </div>
-      
-      <div id="filtrer" class="navSearch mrg_t_lg">
         
+<li id="ong-Informatique" class="">
+    <a href="http://www.fnac.com/Informatique/shi48966/w-4#bl=MMmic" class="ongLink">Informatique Tablettes</a>
+    <div id="ong-Informatique-content" class="megaMenu clearfix">
         
+    </div>
+</li>
 
-		   <h2 title='Filtrez votre recherche'><img alt='Filtrez votre recherche' src="http://www4-fr.fnac-static.com/img/fr-FR/search/blocks/FiltrezVotreRecherche.png" /></h2>
-		   <div class="arr_down"></div>
 
-		    
+        
+<li id="ong-Photo" class="">
+    <a href="http://www.fnac.com/Photo-camescope/shi56352/w-4#bl=MMpho" class="ongLink">Photo Caméscopes</a>
+    <div id="ong-Photo-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
 
-<script language="javascript" type="text/javascript">
-    function switchToFullDisplay(filterId) {
-        var toHide = 'filter_' + filterId;
-        var toShow = 'ergonomicFilter_' + filterId;
+        
+<li id="ong-TV" class="">
+    <a href="http://www.fnac.com/TV-Video-Home-cinema/shi56328/w-4#bl=MMtvh" class="ongLink">TV, Vidéo Home cinéma</a>
+    <div id="ong-TV-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-        document.getElementById(toHide).style.visibility = 'hidden';
-        document.getElementById(toHide).style.display = 'none';
-        document.getElementById(toShow).style.visibility = 'visible';
-        document.getElementById(toShow).style.display = 'block';
-    }
-</script>                
-		            
 
+        
+<li id="ong-Son" class="">
+    <a href="http://www.fnac.com/Son-hifi-lecteur-MP3/shi176062/w-4#bl=MMson" class="ongLink">Casques, Son Docks</a>
+    <div id="ong-Son-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-<script language="javascript" type="text/javascript">
-    function switchToFullDisplay(filterId) {
-        var toHide = 'filter_' + filterId;
-        var toShow = 'ergonomicFilter_' + filterId;
 
-        document.getElementById(toHide).style.visibility = 'hidden';
-        document.getElementById(toHide).style.display = 'none';
-        document.getElementById(toShow).style.visibility = 'visible';
-        document.getElementById(toShow).style.display = 'block';
-    }
-</script>                
-		            
-                
+        
+<li id="ong-GPS" class="">
+    <a href="http://www.fnac.com/GPS-Telephones-eBook/shi56528/w-4#bl=MMtmg" class="ongLink">Smartphones Objets connectés</a>
+    <div id="ong-GPS-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
 
-<script language="javascript" type="text/javascript">
-    function switchToFullDisplay(filterId) {
-        var toHide = 'filter_' + filterId;
-        var toShow = 'ergonomicFilter_' + filterId;
+        
+<li id="ong-Gadgets" class="">
+    <a href="http://www.fnac.com/Petit-electromenager/shi181432/w-4#bl=MMpem" class="ongLink">Maison Cuisine</a>
+    <div id="ong-Gadgets-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-        document.getElementById(toHide).style.visibility = 'hidden';
-        document.getElementById(toHide).style.display = 'none';
-        document.getElementById(toShow).style.visibility = 'visible';
-        document.getElementById(toShow).style.display = 'block';
-    }
-</script>                
-		            
-                
-<div id='filter_132' class="content">    
-<h3>Choix de la fnac : </h3>
 
-<dl class="filtrez">
+        
+<li id="ong-TiragesPhoto" class="">
+    <a href="http://tiragesphoto.fnac.com/?cref=om_coop_megamenu_tirages_18455_x" class="ongLink" target="_blank">Tirages photo</a>
+    <div id="ong-TiragesPhoto-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-<dt class="moutarde">&raquo; <a class="gras noir" href="http://recherche.fnac.com/Search/SearchResult.aspx?Search=9782742765010&SCat=2!1&SFilt=3!132&sl=1.0">Coup de Coeur</a> <span class="noir">(1)</span></dt>
 
-</dl>
-</div>
+        
+<li id="ong-Evenement" class="">
+    <a href="http://www.fnac.com/coffret-cadeau#bl=MMcoffrets" class="ongLink">Coffrets cadeaux</a>
+    <div id="ong-Evenement-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
 
+        
+<li id="ong-Voyages" class="">
+    <a href="http://www.fnac.com/voyages.asp#bl=MMvoy" class="ongLink">Voyages</a>
+    <div id="ong-Voyages-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-<script language="javascript" type="text/javascript">
-    function switchToFullDisplay(filterId) {
-        var toHide = 'filter_' + filterId;
-        var toShow = 'ergonomicFilter_' + filterId;
 
-        document.getElementById(toHide).style.visibility = 'hidden';
-        document.getElementById(toHide).style.display = 'none';
-        document.getElementById(toShow).style.visibility = 'visible';
-        document.getElementById(toShow).style.display = 'block';
-    }
-</script>                
-		            
-		            
-<div id='filter_28' class="content">    
-<h3>Etat : </h3>
+        
+<li id="ong-Spectacles" class="">
+    <a href="http://www.fnacspectacles.com/?utm_campaign=onglet&utm_medium=text&utm_source=fnac.com&utm_term=billetterie#bl=MMspect" class="ongLink last">Billetterie</a>
+    <div id="ong-Spectacles-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-<dl class="filtrez">
 
-<dt class="moutarde">&raquo; <a class="gras noir" href="http://recherche.fnac.com/Search/SearchResult.aspx?Search=9782742765010&SCat=2!1&SFilt=0!28&sl=1.0">neufs</a> <span class="noir">(1)</span></dt>
+    </ul>
+    
+    
+</div>
 
-<dt class="moutarde">&raquo; <a class="gras noir" href="http://recherche.fnac.com/Search/SearchResult.aspx?Search=9782742765010&SCat=2!1&SFilt=1!28&sl=1.0">occasions</a> <span class="noir">(1)</span></dt>
+<!-- *********************** /fin/#MENU**************************** -->
 
-</dl>
-</div>
+<script type="text/javascript">
 
+    $(function () {
 
+        $.ajax({
+            url: 'http://www4-fr.fnac-static.com/static/mm/NM3vJoMho5rMYqNk4MBwAiK1BMA1/MegaMenu.js',
+            dataType: 'jsonp',
+            cache: true,
+            crossDomain: true,
+            jsonp: false,
+            jsonpCallback: 'jsoncallback',
+            success: function(data) {
+
+                for (var i = 0; i < data.length; i++) {
+                    $('#' + data[i].Id).html(data[i].Content);
+                }
 
-<script language="javascript" type="text/javascript">
-    function switchToFullDisplay(filterId) {
-        var toHide = 'filter_' + filterId;
-        var toShow = 'ergonomicFilter_' + filterId;
+                jQuery(window).load(function ($) {
 
-        document.getElementById(toHide).style.visibility = 'hidden';
-        document.getElementById(toHide).style.display = 'none';
-        document.getElementById(toShow).style.visibility = 'visible';
-        document.getElementById(toShow).style.display = 'block';
-    }
-</script>                
-		             
-      </div>
-      
-          <div id="search_menu_sky_ad" class="navSearch mrg_v txt_c">
-               
+                    //[lignes des blocks à aligner
+                    var listGroups = [".megaMenu > .mmEqual ", ".mmMain > .mm1-3"];
+                    var len = listGroups.length, i;
+                    for (i = 0; i < len; i++) {
+                        AppCore.modules.utilities.equalBlocHeight(listGroups[i]);
+                    }
 
+                });
+            }
+        });
 
+    });
 
+</script>
 
-<iframe width="120" height="600" hspace="0" vspace="0" frameborder="0"  bordercolor="#000000" topmargin="0" marginwidth="0" marginheight="0" border="0" letmargin="0" scrolling="no" src="http://mfr.247realmedia.com/2/www.fnac.com/searchresult@Top,Right!Right?recherche=9782742765010&scat=livres"></iframe>
 
 
+    
 
- 
-          </div>
-      
-     </div>
+    
+</div><!-- /fin/#HEADER-->
+<div id="floatBasketcontent" class="hide add_basketErgoPipeAjax"></div>
+<div id="floatBasketcontentPush" class="hide add_basketErgoPipeAjax"></div>
 
+<div class="popinCGVOCB hide" id="PopinCGVOCB"></div>
 
-                
-                
-            </div>
-            <div id="col_centre">
-               
-                <div class="clearb"></div>
 
-                
-                
+<script type="text/javascript">
 
+    openPopinSetExpiry = function () {
+        $("#MonCompteLink").mouseenter();
+        var d1 = new Date();
+        var d2 = new Date(d1);
+        d2.setHours(d1.getHours() + 1);
+        localStorage.setItem("sessionPopin", d2);
+    };
+
+    popinCheck = function () {
+        if (localStorage.getItem("sessionPopin") == null) {
+            openPopinSetExpiry();
+        }
+        else {
+            if ((Date.parse(localStorage.sessionPopin) - new Date()) <= 0) { openPopinSetExpiry(); }
+        }
+    };
+
+	function asyncLoadLastOrder() {
+		$.ajax({
+			url: "http://recherche.fnac.com/LastUndeliveredOrder.aspx?w-4",
+			data: { },
+            type:  'GET',
+			success: function(response) {
+				$("#popinLastOrderInfosBox").html(response);
+			}
+		});
+	}
 
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.history.js"></script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/jquery.intercept.js"></script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/UserOpinion.js"></script>
+	$(function () {
+		$("#MonCompteLink").popinManager({
+			targetContent: "#popinLastOrderInfosBox",
+			modeView: "layer",
+			pageLoad: true,
+			eventStart: "mouseenter",
+			eventStop:"mouseleave",
+			
+			customPosition: true,
+            relativePosition: { left: -53, top: 24 },
+			ajaxLoaderLink: "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif",
+			timer:200
+		});
+	    var isConnected = $("#MonCompteLink").hasClass("isIdentified");
+	    if (!isConnected) {
+
+	        $("#popinLastOrderInfosBox").addClass("not-connected");
+	        setTimeout(function () {
+	            $("#popinLastOrderInfosBox").removeClass("not-connected");
+	        }, 1000);
+
+	        popinCheck();
+	        
+	    }
+	    else {
+	        $(".popinLastOrderInfosBoxNotConnected").remove();
+	    }
+	});
 
+    $(function () {
+        $("#popinLastOrderInfosBox").on("mouseenter", function () {
+            $("#monCompte").addClass("hover");
+        });
+        $("#popinLastOrderInfosBox").on("mouseleave", function () {
+            $("#monCompte").removeClass("hover");
+        });
+    });
 
+    $(function () {
+        $(".lineNew a").on("mouseenter", function () {
+            $(".grey-infos").addClass("hover");
+        });
+        $(".lineNew a").on("mouseleave", function () {
+            $(".grey-infos").removeClass("hover");
+        });
+    });
 
+</script>
 
-<div id="LargeListControl">
-    <div class="floatr">
-		
+<div id="popinLastOrderInfosBox" class="hide">
+    <div class="popinLastOrderInfosBoxNotConnected">
+        <p class="popCptTitle1"><strong>Bienvenue</strong>Comment ça va aujourd'hui ?</p>
         
+        
+        <p class="popCptLine"><span id="OpenYourAccount1" class="fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBEC6BA42424FC349CB lkBtn">Se connecter</span></p>
+        
+        
+        <p class="popCptLine lineNew">
+            Nouveau client&nbsp;?
+            <span id="OpenYourAccount2" class="fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBEC6BA42424FC349CB orange">Créer un compte&nbsp;&rsaquo;</span>
+        </p>
+        <div class="grey-infos">
+            <p>
+                <img src="http://www4-fr.fnac-static.com/img/Template/Header/u58.png"/>
+                Retrouvez votre panier et vos listes à tout moment sur tous vos écrans.
+            </p>
+            <p>
+                <img src="http://www4-fr.fnac-static.com/img/Template/Header/u60.png"/>
+                Une expérience personnalisée avec des conseils rien que pour vous.
+            </p>
+        </div>
     </div>
+</div>
 
 
-            
-    <div class="navSearch resultats moutarde">
-
-            
-                <h1 class="headSearchLabel moutarde" > 
-            <strong>1 résultat </strong>pour 9782742765010
-            </h1>
-            
-            <div class="content" style="">
-                
-                
-    <div class="combotrimoteur floatr">
-        
-            <strong>Trier les résultats par</strong>
-        
-        <form id="SortedForm" method="post" accept-charset="UTF-8"> 
-            <select  id="selectSorted" name="selectSorted" onchange="submit();">
-             
-                <option  value="0" >Pertinence</option>
 
-             
-                <option  value="1" >Titre : A -> Z</option>
 
-             
-                <option  value="100" >Titre : Z -> A</option>
 
-             
-                <option  value="600" >Meilleures ventes</option>
+<div id='fnac_Bottom2' class="BSO_base"></div>
 
-             
-                <option  value="2" >Date de parution</option>
 
-             
-                <option  value="5" >prix : les moins chers</option>
 
-             
-                <option  value="500" >prix : les plus chers</option>
+ 
 
-             
-                <option  value="700" >Les mieux notés</option>
 
-            
-            </select>
-        </form>
-    </div>
 
-                
-                            <div class="floatr" style="border-right:1px solid #666;padding-top:2px;padding-right:5px;">
-                                <span class="noir fontsmaller gras lienInverse">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=2" class="noir">crit&egrave;res de recherche</a></span>
-                            </div>
-                        
-                        
-                <div class="clearing"></div>
-            </div>
-            
-    </div>
-        <div class="blk_content clearfix" >
-            <div class="prd-result" id="Div1">
 
-            
-                        <div class="oneprd last">
-                        
-    <span  id="A1891354"></span>
 
 
-    <div class="img">
-        <a href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">
-            <img src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes90_100/0/1/0/9782742765010.gif" alt="Millénium - Millénium, T2" class="mrg_r" />
-        </a>
-    </div>
 
 
-    <div class="desc">
-        <div class="h1">
-            <span class="lienInverse title">
-                <a href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" class="fontbigger">La fille qui rêvait d'un bidon d'essence et d'une allumette</a>
-             </span>
-            
-                <span class="lienInverse titlesubtitle">
-                    - <a  class="gris6" href="http://www4.fnac.com/Millenium/si7752">Millénium</a>
-                       ,&nbsp;T2
-	                    &nbsp;<a  class="gris6"href="http://www4.fnac.com/Millenium/si7752"><img src="http://www4-fr.fnac-static.com/img/pictos/picto-fiche-serie_33x15.png" alt='Voir tous les volumes de la série' title='Voir tous les volumes de la série' style="vertical-align:-1px"/></a>
-	                    
-                </span>
-            
-	    </div>
-	    
-	    <div class="lienInverse details">
-            
-                 <span class="participants dispeblock"><A title="Voir tout son univers" class="fi_link" HREF="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</A>&nbsp;<A title="Voir tout son univers" HREF="http://www4.fnac.com/Stieg-Larsson/ia103133"><img src="http://www4-fr.fnac-static.com/img/Ficheintervenant/deco/picto_fi_link.png" alt="Voir tout son univers" class="fi_link_img" /></A>, <A HREF="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</A> (Traduction), <A HREF="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</A> (Traduction)</span>
-            
-        </div>
-        
-        
-                    <div class="resume mrg_t_sm gris6">
-                
-                    <strong class="moutarde">Avis de la Fnac&nbsp;: </strong>
-               Tandis que Lisbeth Salander coule des journées supposées tranquilles aux Caraïbes, Mikael Blomkvist, réhabilité, victorieux, est prêt à lancer un numéro spécial de Millenium sur un thème brûlant pour ... 
-                      
-                       <span class="links noir">&raquo;&nbsp;<a href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" class="noir">Lire la suite...</a></span>
-                      
-                      
-                      </div>
-                
-        
- 	    <ul class="subtitledesc gris6">
+<script language="javascript">
+    function messageHelperGetFermer() {
+        return 'Fermer';
+    }
+</script>
 
-	        <li>
-	        
-                    <strong>Roman</strong> |
-                broché
+            <div id="content" class="resultList">
                 
-            | Actes sud
-
-            
-                | octobre 2006
-            
-            </li>
-         </ul>
+<!-- breadcrumbs -->
+<div id="cheminfer">
+    <ul>
         
-<div class="mrg_v_sm">
-    <ul class="lienInverse usersOpinion img_txtb mrg_no">
-    
-        <li><img src="http://www4-fr.fnac-static.com/img/decos/distinctions/small/coupcoeur.gif" alt="Coup de cœur" />  |</li>
-     
-            <li>Note des internautes&nbsp;:&nbsp; 
-                
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
-|
-            </li>
-            
+          <li class="first" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
+            <a href="http://www.fnac.com/" itemprop="url">
+                <span itemprop="title">Accueil</span>    
+            </a>
+        </li>
+         
         
-            <li class="lienInverse"><a href="http://www4.fnac.com/avis-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette/1p1891354" class="grisfonceplus">Lire les avis</a> (72)</li>
      
+            <li><span>&gt;</span></li>
         
+                            <li  itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
+                                <a href="http://recherche.fnac.com/SearchResult/ResultList.aspx?Search=9782742765010" itemprop="url" data-category>
+                                    <span itemprop="title">Tous les produits</span>   
+                                </a>
+                            </li> 
+                            <li><span>&gt;</span></li>
+                            
+                                    <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a itemprop="url" href="http://recherche.fnac.com/SearchResult/ResultList.aspx?SCat=2!1&Search=9782742765010&sl=1.2003553" data-category="2!1">
+                                         <span itemprop="title"> Livre</span>
+                                        </a>
+                                    </li>
+                                
+                  <li><span>&gt;</span></li>
+             
+                               <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><span itemprop="title">Roman policier et Thriller</span></li>
+                            
+                  <li><span>&gt;</span></li>
+                   
+        <li class="lastItem">9782742765010</li>
     </ul>
-       
 </div>
 
-        <div class="tt mrg_t_sm">
-           
-            
-<div  id="userNotes">
-    
-<p class="mrg_no pdg_v">Pour donner votre avis, veuillez vous <a href="https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Standard&PageRedir=http%3a%2f%2frecherche.fnac.com%2fr%2f9782742765010%3fSCat%3d2!1">identifier</a>.</p>
+        
+                <div id="col_gauche">
+                    
+
+
 
+ 
+<div class="nav">
     
-</div>
+        <div class="affiner navSearch">
+            
 
+<div class="blockTitle">
+    CHOISIR UN RAYON
+</div>
+<div class="content">
+    
+        <div class="arboParent">
+        
+            <a href="http://recherche.fnac.com/SearchResult/ResultList.aspx?Search=9782742765010&sl=1.2003553" data-category="" class="moutarde gras flecheRetour">Tous les livres</a>
+        
         </div>
-
-    </div>
     
+    <ul class="affine">
     
+                        <li class="n1"><span class="gras noir lienInverse dispeblock">Roman policier et Thriller<span class="fontnormal">&nbsp; (1) </span></span>
+                        
+                            <ul class="n2">
+                        
+                       </ul></li>
+                       
+    </ul> 
+</div>
 
-<div class="price bloc-decoupe bloc-decoupe-degrade" id="dc3f6397-4916-4b8f-8ea9-b7e35317ef58">
+        </div>
+   
+</div>
 
-    <dl >
-    
 
-<dd class="prix">
-    <div class="pdg_t_sm pdg_b_sm">
     
-        <img src="http://www4-fr.fnac-static.com/img/pictos/price/small/picto_5pourcent.gif" alt='picto de réduction' class="picto" style="padding-left:0;margin-left:0;"/>
+<div class="filters">
+    <div class="blockTitle">
+        FILTRER
         
-	    <span class="smallPrice prix noir txt_m" style="padding-left:0;margin-left:0;">
-            22,23&nbsp;&euro;
-                  
-            <span class="fontnormal"></span>
-        </span>
-        <span class="oldPrice gris6">
-            23,40&nbsp;&euro;
-        </span>
     </div>
-</dd>
 
- <dd class="infoorder pdg_t_sm">
-    Livraison gratuite
-</dd>
+    <div class="arr_down"></div>
+        
+            <div class="priceFilter">
+                <span class="label">Prix</span>
+                <div class="content price">
+                    
+                    <div class="priceSlider">
+                        <div class="sliderTotal">
+                            1
+                            résultat
+                            
+                        </div>
+                        <span class="sliderGuide">
+                            <span class="sliderSelected">
+                                <!-- yajesate -->
+                            </span>
+                            <a class="sliderMinSelector">
+                                <span class="sliderMinDisplay">
+                                    2&nbsp;€
+                                </span>
+                            </a>
+                            <a class="sliderMaxSelector">
+                                <span class="sliderMaxDisplay">
+                                    3&nbsp;€
+                                </span>
+                            </a>
+                        </span>
+                    </div>
+                </div>
+            </div>
+        
+                        <hr class="hache" />
+    <div id="filter_212" class="content dispo">
+        <span class="label">Disponibilité</span>
+        <div>
+            <dl class="dispo">
+            
+                    <!-- On affiche la valeur de disponibilité en ligne -->
+                  
+                    <dd>
+                        <a class="noir"  data-filter="1!212">
+                            En stock en ligne
+                            <span class="check"></span>
+                        </a>
+                         <span class="noir">&nbsp;(1)</span>
+                    </dd>
+           
+                
+            
+            
+        </dl>
+        </div>
+    </div>
 
- <dd class="infoorder">
-    <p class="moutarde gras mrg_h">
-        En Stock
-    </p>
-</dd>
 
-<dd class="infoorder pdg_b_sm">
+                    
+                        
+                        
+                        <hr class="hache" />
+    <div class="specificFilter">
+        <span class="label">Choix de la fnac</span>
+       
+            
+
+            <div id='filter_132' class="content choix_de_la_fnac">    
+            
+           
+            
+            <div id='slt_filter_132'>
+                <ul>
+                    
+                     
+                    <li data-noaccent="Coup de Coeur" class="">
+                         <span><!-- --></span>Coup de Coeur
+                          &nbsp;<i>(1)</i>
+                    </li>
+                   
+                </ul>
+            </div>
+        </div>
+    </div>
+
+                        
+                    
+                    <hr class="hache" />
+    <div class="specificFilter">
+        <span class="label">Etat</span>
+       
+            
+
+            <div id='filter_28' class="content etat">    
+            
+           
+            
+            <div id='slt_filter_28'>
+                <ul>
+                    
+                         
+                                    <li data-noaccent="neufs" class="">
+                                        <a  data-filter="3!28">
+                                        <span><!-- --></span>Neufs
+                                        </a>&nbsp;<i>(1)</i>
+                           
+                                </li>
+                            
+                        
+                         
+                                    <li data-noaccent="occasions" class="">
+                                        <a  data-filter="1!28">
+                                        <span><!-- --></span>Occasions
+                                        </a>&nbsp;<i>(1)</i>
+                           
+                                </li>
+                            
+                        
+                </ul>
+            </div>
+        </div>
+    </div>
+
+                        
+    </div>
+
     
-        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&sctype=standard&prid=1891354&from=1" rel="nofollow" FnacIdOffre="00000000-0000-0000-0000-000000000000" FnacIdProduct="1891354" class="FnacBtnAddBasket bout-ajout" ><span class="inner">Ajouter au panier</span></a>
+  
+<div id="search_menu_sky_ad" class="navSearch skyAd">
+  
+
+
+
+    <div class="ad_header">
+        Publicité&nbsp;
+        <span class="open_sky_infos img infos i_help"></span>
+        <div id="ad_header_sky_popin" class="ad_header_sky_popin hide popinTooltip"><p>Sur certaines pages du site www.fnac.com, vous pouvez voir des bannières publicitaires. Nous faisons notre maximum afin que les bannières qui sont affichées soient le plus pertinentes possibles par rapport à vos centres d’intérêts. Nous attachons également une importance particulière à la qualité des publicités qui sont diffusées sur notre site.</p><p>Lorsque vous cliquez sur une bannière, nous percevons un revenu publicitaire. Les revenus supplémentaires obtenus de cette manière nous permettent de vous proposer des prix toujours plus bas sur les produits vendus par Fnac.com. Les achats effectués sur les sites externes vers lesquels pointent ces bannières publicitaires ne sont ni traités ni livrés par Fnac.com.</p></div>
+    </div>
+    <iframe width="120" height="600" hspace="0" vspace="0" frameborder="0"  bordercolor="#000000" topmargin="0" marginwidth="0" marginheight="0" border="0" letmargin="0" scrolling="no" src="http://mfr.247realmedia.com/2/www.fnac.com/searchresult@Top,Right!Right?recherche=9782742765010&scat=livres"></iframe>
+ 
+</div>
     
 
+
+                </div>
+                <div id="col_centre">
+                    <!-- Tête de liste -->
+                    
+
+
+
+    <ul class="pager top-toolbar clearfix">
+       
+            <li class="mrg_r pageView"><span data-refresh-nbpage="">Page 1 / 1
+</span></li>
+            
+            <li class="prevLevel1 hide"><a href="http://recherche.fnac.com/SearchResult/ResultList.aspx?ItemPerPage=20&PageIndex=0&Search=9782742765010&sl=1.2003553" class="prevnext actionPrev" title="Page précédente"><span class="img i_pagerBef1"><!-- --></span></a></li>
+        
+        <li class="nextLevel1 hide mrg_r_no"><a href="http://recherche.fnac.com/SearchResult/ResultList.aspx?ItemPerPage=20&Search=9782742765010&sl=1.2003553"  class="prevnext actionNext" title="Page suivante"><span class="img i_pagerAft1"><!-- --></span></a></li>
+    </ul>
     
 
-</dd>
 
- <div class="labelMP">
-            <div class="MarketPlaceOffers">
-<div class="sep_market pdg_b_no"></div>
- <ul class="pdg_t_sm">
-                  <li class="pdg_l">
-                    <span class="pdg_t_sm police11">
-                        <span class="raquo bleu_MP">&raquo; </span>
-                        <a href="http://livre.fnac.com/Millenium-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson-neuf-occasion?PRID=1891354&REF=FnacDirect" class="bleu_MP">
-                        <span class="gras police12">43 neufs et d'occasion</span><br />
-                        à partir de <span class="gras rouge police12">4,98&nbsp;&euro;</span>
-                        </a> 
-					</span> - <b class="moutarde gras police11">En Stock</b>
-                  </li>
-                </ul>
 
-	</div>
+<h1 class="etc">
+    9782742765010
+    <span>
+        
+                    (1)
+                
+    </span>
+</h1>
+
+
+<div class="dym">
+    <p class="mrg_v grismean">
+         
+    </p>
+    <p class="mrg_v grismean">
+          
+    </p>
+    <p class="mrg_v grismean">
+          
+    </p>
 </div>
 
- 
-    <div class="sep_market pdg_b_no"></div>
-    <div class="bleu pdg_v_sm lienNosouligne">
-        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&sctype=standard&prid=4015696" rel="nofollow" class="telecharger pdg_v_sm" title="Télécharger">Télécharger</a> 9,99&nbsp;&euro;
-    </div>
- 
-    </dl>
- </div>
- 
+
+                    
+
+
+<div class="top-toolbar clearfix">
+    <span class="resultPosition left section">
+        
+
+<span class="openLayerResult">
+Résultats <strong>1 à 1</strong> sur 1 
+    
+</span>
+
+
+    </span>
+
+    <span class="articlePerPage middle section">
+        
+        
+            &nbsp; 
     
-    <div class="clearing"></div>
+    </span>
+
+    <span class="switchListMosaic">
+        
+        <a class="listButton middle section active"  title="Liste">
+            <span class="img i_list"></span>
+        </a>
+        <a class="mosaicButton middle section"  title="Mosaique" >
+            <span class="img i_mosaic"></span>
+        </a>
+
+    </span>
+
+    <span class="articleSorting right section">
+        
+    <span class="combotrimoteur ">
+       
+        <form id="SortedForm" method="post" accept-charset="UTF-8"> 
+                
+            
+            <div>
+                <select class="selectSorted topList" name="selectSorted-topList">
+                 
+                    <option  value="0" >Trier par pertinence</option>
+
+                 
+                    <option  value="5" >Prix les moins chers</option>
+
+                 
+                    <option  value="500" >Prix les plus chers</option>
+
+                 
+                    <option  value="600" >Meilleures ventes</option>
+
+                 
+                    <option  value="700" >Note des internautes</option>
+
+                 
+                    <option  value="200" >Nouveauté</option>
+
+                 
+                    <option  value="1" >Titre : A -> Z</option>
+
+                
+                </select>
+            </div>
+
+
+
+        </form>
+        <script type="text/javascript">
+            $('.topList').comboToList({
+                onChange: function (val) { window.Gem.gems.SearchResult.methods.send("tools/updatesortingorder", val); },
+                hiddenInputName: 'selectSorted-topList',
+                arrowClass: "img arrow-bottom"
+            });
+        </script>
+    </span>
+
+    </span>
+
+</div>
+
+
+
+<div id="block-fa-addto-wishlist-wrapperPopin" class="popin-content addto hide" >
+    <div class="bar">
+        <div>
+            <strong>Ajouter à mes listes</strong><i class="img close"></i>
+        </div>
+    </div>
 
+    
+    <div >
+        <span class="not_connected">Vous ne pouvez pas ajouter ce produit à vos listes car vous n'êtes pas connecté"</span>
+    </div>
+    
+</div>
                     
-                        
-                        
-                    </div>
+<div class="filters recall hide">
+    <div class="titre inlineBlock">
+    Filtres actifs
+    </div>
+    
+
+    <div class="panel inlineBlock">
+        <span class="filters">
+            
+        </span>
+
+        <span class="reinit  hide">
+            <a data-filter="">
+                Réinitialiser            &nbsp;&nbsp;<span class="img i_remove"></span>
+            </a>
+        </span>
+    </div>
+</div>
+
+
                     
+
                     
+
+                    <div id="dontTouchThisDiv">
+                        
+	<ul class="articleList">
+        
+
+			        <li class="clearfix">
+				        
+
+<div class="visual" style="background: transparent url('http://static.fnac-static.com/multimedia/Images/FR/NR/1a/dc/1c/1891354/1539-6.jpg') no-repeat center center;">
+    <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson"><span>La fille qui rêvait d'un bidon d'essence et d'une allumette</span></a>
+</div>
+
+<div class="smallVisual hide">
+    <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" class="visual-mini">
+        <img src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes90_100/0/1/0/9782742765010.gif" alt="La fille qui rêvait d'un bidon d'essence et d'une allumette" />
+    </a>
+</div>
+
+
+<div class="miniArticleContent">
+    
+    <div class="floatr addToSelection"></div>
+    
+                <div class="floatr block-Search-wishlist">
+                    <a class="addItemFromSearch"
+                        data-prid="1891354" data-offerId="00000000-0000-0000-0000-000000000000" 
+                        data-price="23,4"  data-ref="1">
+                        <span class="img heart"><!-- --></span></a> 
+                </div>
+
+    
+
+    
+    
+
+
+
+<div class="descProduct">
+     
+     
+
+     
+
+<p class="h2">
+    
+    
+            <a href="http://www4.fnac.com/Millenium/si7752" title="Voir tous les volumes de la série">Millénium</a>
+        ,&nbsp;Tome 2
+
+    <strong class="titre">
+        <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">La fille qui rêvait d'un bidon d'essence et d'une allumette</a>
+        
+    </strong>
+
+    
+</p>
+
+
+
+<p class="lienInverse mrg_no">
+    						
+            <span><a id="FnacLink1" href="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</a> (Auteur), <a id="FnacLink2" href="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</a> (Traduction), <a id="FnacLink3" href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</a> (Traduction)</span>
+	    
+    <span class="mrg_l_sm">
+    
+    <em class="expressplus">express+</em>
+
+    
+    </span>
+</p>
+            
+</div>
+        
+    
+
+<div class="clearfix">
+    <div class="bloc1-3 pricer bigPricerFA">
+        
+        
+
+<div class="bigPricerFA clearfix">
+    
+
+<p class="stimuliOPC">
+
+</p>
+    
+    
+
+
+    <div class="floatl">
+        
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+        
+
+                <!-- gestion la remise dégressive-->
+                
+                    <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" title=""><strong class="userPrice">23<i>&euro;40</i></strong></a> <!-- parfois des prix "affaire de Fnac" s'affiche -->
                 
+
+        </div>
+
+
+
+
+    
+            <div class="pushBook">
                 
-              <script type="text/javascript">
                 
-             </script>                
+<a href="#" class="openPopinInfoBook" data-prid="1891354">
+    <span class="grisFonce pdg_t_sm pdg_b_sm">
+        ou <strong class="rouge fontS_14">22,23&nbsp;&euro; (-5%)</strong> en choisissant le retrait en magasin <span class="img i_help"></span>
+    </span>
+</a>
+
             </div>
-        </div>
         
-	        <div class="navSearch resultats">
+            <span class="buyButton">
+            <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1891354&sctype=standard" rel="nofollow" data-prid="1891354" fnacidproduct="1891354" data-position="1" class="btn b_sqr_y addToBasket FnacBtnAddBasket">
+                <span class="img i_cart"></span>
+                <i class="hide">ajouter</i>
+            </a>
+            </span>
+        
+            
+    
+</div>
+
+
+        
+         
+    <dl class="OffersSumary lienInverse clearfix">
+            
+            
+                <dd>
+                    <a href="http://livre.fnac.com/Millenium-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson-neuf-occasion?PRID=1891354&REF=FnacDirect#neuf" class="bleu_MP gras" title="neuf">14&nbsp;neufs</a>
+                    <span class="bleu_MP gras"> 
+                        dès 
+                    </span>
+                    <span class="smallPricerFA">
+                         <strong class='userPrice'>
+        9,99&euro;
+    </strong>
+
+                    </span>     
+                </dd>
+            
+			    <dd>    
+                    <a href="http://livre.fnac.com/Millenium-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson-neuf-occasion?PRID=1891354&REF=FnacDirect#occasion" class="bleu_MP gras" title="Occasion">87&nbsp;occasions</a>
+				    <span class="bleu_MP gras"> 
+                        dès 
+                    </span>
+                    <span class="smallPricerFA">
+                        <strong class='userPrice'>
+        0,90&euro;
+    </strong>
+
+                    </span>
+			    </dd>
+	        
+    </dl>      
+
+        
+
+
+    </div>
+
+    <div class="bloc1-3 shipping">
+        <p>
+        
+            <strong class="avail">
+                <span class="availicon avail_16 img i_check"></span><span class="vert delay">En Stock</span>
+                </strong>
+        
+        
+        </p>
+        <p>
+        Livraison 
+        <span>à partir de 0.01&euro;</span>
+        
+    
+        
+        </p>
+        
+        
+                <hr class="hache"/>
+            
+	            <p class="lienInverse">
+		            Stock en magasin <a href="#" class="FA openPopinShop">Choisir</a>
+                </p>
+            
+        &nbsp;
+    </div>
+
+    <div class="bloc1-3 moreInfos">
+        
+    <div class="ccoeur lienInverse">
+        <span class="mrg_r">
+        <img src="http://www4-fr.fnac-static.com/img/decos/distinctions/small/coupcoeur.gif" alt="" />
+        Coups de c&oelig;ur  des Libraires
+        
+        
+            <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#CoupCoeur">(3)</a>
+        
+        </span>
+    </div>
+
+        
+    <div class="userOpinion" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> 
+        <span class="label">
+            Note internautes
+        </span>
+        <span class="data">
+            <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#avisinternautes">
+                    
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+
+                    
+                    </a>
+            <span>(</span><span class="lienInverse"><a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#avisinternautes">74&nbsp;Avis</a></span><span>)</span>
+                        </span>
+    </div>
+
+        <div class='editorialInfo'><strong>Roman</strong>
+    | broché
+    | Actes sud
+| octobre 2006
+</div>
+        
+    <div class="summary lienInverse">
+        <span>Lisbeth et Mickael sont de retour dans un roman aussi trépidant que le premier. Nos deux anti-héros sont à nouveau plongés dans une aventure passionnante. Un livre époustoufflant, plein d'humour et d'effroi. Vivement le tome 3. Anais, libraire à la...</span>
+        
+            <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#ficheResume" class="FA">Lire la suite</a>
+        
+    </div>
+
+    </div>
+    
+</div>
+                <hr />
+                
+            <div class="clearfix">
+                <div class="bloc1-3 pricer bigPricerFA ">
+                    
+
+<div class="bigPricerFA clearfix">
+    
+
+
+    <p class="stimuliOPC">
+    
+    </p>
+
+
+
+
+
+
+
+
+
+    <div class="floatl">
+        <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson?NUMERICAL=Y#FORMAT=ePub" title="">
+          
+            <strong class="userPrice userPriceNumerical">
+          9<i>&euro;99</i>
+            </strong>
+        </a>
+        
+        
+    </div>
+
+    
+        <span class="downloadButton">
+            <a class="btn b_std_dl FnacBtnAddBasket" FnacIdProduct="4015696" FnacReferentialId="1" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=4015696&sctype=standard" rel="nofollow" id="numart_buttondl" >
+                <span class="img i_dl"></span>
+                <i>Télécharger</i>
+            </a>
+        </span>
+    
+            
+    
+</div>
+
+
+                </div>
+
+                <div class="bloc1-3 shipping">
+                    
+        <span class="availicon avail_08 img i_check"></span><span class="vert">Téléchargement immédiat</span>
+    
+    
+                </div>
+
+                <div class="bloc1-3 moreInfos">
+                    <div class='editorialInfo'><strong>Roman</strong>
+    | ePub
+    | Éditions actes sud
+| novembre 2011
+</div>
+                </div>
+            </div>
+
+
+        
+            
+
+</div>
+            
+			        </li>
+			        
+    </ul>
+
+
+
+<script type="text/javascript">
+    
+    
+     
+     var tc_vars = [];
+     // Structure et arborescence
+     tc_vars["template_type"] = "moteur";
+     tc_vars["template_name"] = "31_moteur_recherche_stantard";
+     tc_vars["arbo_niv1"] = "Livre";
+     tc_vars["arbo_niv2"] = "";
+     tc_vars["arbo_niv3"] = "";
+     tc_vars["arbo_niv4"] = "";
+     tc_vars["arbo_niv5"] = "";
+     tc_vars["arbo_niv6"] = "";
+     tc_vars["page_name"] = "Resultat Recherche Roman policier et Thriller";
+
+     tc_vars["env_language"] = "fr-FR";
+     tc_vars["env_country"] = "FR";
+     
+     // Adhérent
+     tc_vars["user_id"] =  "";
+     tc_vars["user_segment"] = "Non-Adherent";
+     tc_vars["user_age"] = "";
+     tc_vars["user_gender"] = "";
+     tc_vars["user_subscription_date"] = "";
+     tc_vars["user_subscription_newsletter"] = "";
+     tc_vars["express_plus"] = "";
+     tc_vars["eligibility_ express_plus_trial"] = "";
+     tc_vars["user_segment_type"] = "";
+
+     tc_vars["search_kw"] = "9782742765010";
+     tc_vars["search_nb_results"] = "1-10";
+     tc_vars["search_current_page"] = "1";
+     tc_vars["search_category"] = "Roman policier et Thriller";
+     tc_vars["search_refine_category"] = "Roman policier et Thriller";
+     tc_vars["search_refine_comb"] = "roman policier et thriller";
+     tc_vars["search_type"] = "standard";
+
+     // Produit
+     tc_vars["product_name"] = "";
+     tc_vars["product_id"] = "";
+     tc_vars["product_ref"] = "";
+     tc_vars["product_ref_id"] = "";
+     tc_vars["product_stock"] = "";
+     tc_vars["product_category"] = "";
+     tc_vars["product_vendor"] = "";
+     tc_vars["product_unitprice_ati"] = "";
+     tc_vars["product_discount_ati"] = "";
+     tc_vars["product_unitprice_tf"] = "";
+     tc_vars["product_discount_tf"] = "";
+     tc_vars["product_currency"] = "";
+     tc_vars["product_trademark"] = "";
+     tc_vars["product_url_page"] = "";
+     tc_vars["product_picture_url"] = "";
+     tc_vars["product_isbundle"] = "";
+     tc_vars["product_breadcrumb_id"] = "";
+     tc_vars["product_rating"] = "";
+     
+     //OrderPipe
+     tc_vars["cart_id"] = "";
+     tc_vars["order_id"] = "";
+     tc_vars["orderUserRefs"] = "";
+     tc_vars["order_amount"] = "";
+     tc_vars["order_amount_ati"] = "";
+     tc_vars["order_amount_wt"] = "";
+     tc_vars["order_amount_ati_with_sf"] = "";
+     tc_vars["order_amount_tf_with_sf"] = "";
+     tc_vars["order_currency"] = "";
+     tc_vars["order_pay_method"] = "";
+     tc_vars["order_new_client"] = "";
+     tc_vars["order_nb_products"] = "0";
+     tc_vars["order_promo_code"] = "";
+     tc_vars["order_state"] = "";
+     tc_vars["order_shipping_method"] = "";
+     tc_vars["order_ship_ati"] = "";
+     tc_vars["order_ship_tf"] = "";
+     tc_vars["order_tax"] = "";
+     tc_vars["order_zip"] = "";
+     
+     // Products
+     tc_vars["order_products"] = [];
+       
+         
+
+	 //Nav
+     tc_vars["nav_typvt"] = "0";
+     tc_vars["nav_support"] = "0";
+     tc_vars["product_unitpricemp"] = "";
+     tc_vars["product_unitprice"] = "";
+     tc_vars["product_unitprice_discount"] = "";
+     tc_vars["product_offrebuybox"] = "0";
+     tc_vars["product_pricemode"] = "0";
+     tc_vars["product_availabilitype"] = "0";
+     tc_vars["product_productflagchoosebox"] = "0";
+     tc_vars["product_availability"] = "";
+     tc_vars["nav_ip"] = "";
+     tc_vars["nav_origine"] = "";
+     tc_vars["nav_objectid"] = "";
+     tc_vars["nav_pathid"] = "";
+     tc_vars["user_auth"] = "0";
+
+     // Search
+     tc_vars["list_products"] = [];
+     tc_vars["list_products"][0]=new Array('1-1891354');
+
+ </script>
+
+
+ 
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/tc/e--m-HLsIwWC8w1r-OVEDWikP1s1/load_exec.1.D.js"></script>
+
+
+
+
+<noscript>
+    
+   <iframe src="http://redirect28.tagcommander.com/utils/noscript.php?id=1&mode=iframe&template_type=moteur&page_name=Resultat+Recherche+Roman+policier+et+Thriller" width="1" height="1"></iframe>
+</noscript>
+
+<!-- TAGCOMMANDER END //-->
+
+
+
+
+<div id="PopinInfoBook" class="hide genericPopin">
+    <a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+    <div class="PopinInfoBookTitle"><h2 class="upper">B&#233;n&#233;ficiez de <em class="rouge"><span>-5%</span> sur tous vos livres</em></h2><p class="PopinInfoBookIntro">En choisissant le retrait en magasin</p></div>
+    <div class="clearfix puce_no">
+        <div class="PopinInfoBookCol PopinInfoBookCol1"><p class="PopinInfoBookColTitle">Valider votre panier</p><p class="fontS_12">Ajoutez les livres &#224; votre panier, puis validez-le pour passer &#224; l&#39;&#233;tape suivante.</p></div>
+        <div class="PopinInfoBookCol PopinInfoBookCol2"><p class="PopinInfoBookColTitle">Choisissez le retrait en magasin</p><p class="fontS_12">Lors de l&#39;&#233;tape du choix du mode de livraison, choisissez le retrait en magasin. C&#39;est rapide et c&#39;est gratuit.</p></div>
+        <div class="PopinInfoBookCol PopinInfoBookCol3"><p class="PopinInfoBookColTitle">C&#39;est fait !</p><p class="fontS_12">Et hop, les prix se mettent &#224; jour automatiquement : vous b&#233;n&#233;ficiez d&#39;une remise imm&#233;diate de 5% sur le prix &#233;diteur* de tous les livres de votre panier.</p></div>
+    </div>
+    <p class="PopinBookMentions">(*) Conform&#233;ment &#224; la nouvelle loi encadrant les conditions de la vente &#224; distance des livres, qui vient compl&#233;ter la loi du 10 ao&#251;t 1981 sur le prix unique du livre, l&#39;application d&#39;une remise de 5% sur le prix des livres n&#39;est d&#233;sormais possible que dans le cadre d&#39;un retrait dans un point de vente commercialisant des livres. B&#233;n&#233;ficiez ainsi de la remise de 5% sur le prix &#233;diteur et de la livraison gratuite en choisissant de faire livrer votre commande dans le magasin Fnac de votre choix</p>
+</div>
+
+
+
+
+
+<script type="text/javascript">
+
+    function trackOmnitureFivePercent(obj) {
+        var mode = "search";
+        var t = $(obj.$el[0]);
+        var articlePrid = t.data("prid");
+        
+        var prid = (articlePrid) ? articlePrid : "";
+        var s = s_gi('fnaccomprod');
+        s.linkTrackVars = 'events,products,eVar25';
+        s.linkTrackEvents = 'event4';
+        s.events = 'event4';
+        s.products = (prid) ? ";" + prid : "";
+
+        switch (mode) {
+            case "fa":
+                s.eVar25 = "FA: message livres"
+                s.tl(this, 'o', ' FA message livres');
+                break;
+            case "arbo":
+                s.eVar25 = "Arbo: message livres"
+                s.tl(this,'o',' Arbo message livres');
+                break;
+            case "search":
+                s.eVar25 = "Rech: message livres"
+                s.tl(this,'o',' Rech message livres');
+                break;
+            case "basket":
+                s.eVar25 = "Panier: message livres"
+                s.tl(this,'o',' Panier message livres');
+                break;
+        }
+
+    }
+
+    $(function () {
+        $(".openPopinInfoBook").popinManager({
+            targetContent : "#PopinInfoBook",
+            ajaxLoaderLink : "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif",
+            callbackMethodAfterCreate : "trackOmnitureFivePercent(this)"
+        });
+    });
+
+</script>
+
+                        
+                    </div>
+
+                    <div id="openPopinMultibuyAlert" class="hide"></div>
+                    <div id="PopinMultibuyAlert" class="hide popinTooltip">Multibuy Alert</div>
+                    <div id="PopinLogToAddToSelection" class="hide popinTooltip">Pour ajouter cet article à votre sélection, connectez-vous à votre compte fnac.com</div>
+                    <div id="PopinAddToSelection" class="hide popinTooltip narrow">Ajouter à ma sélection</div>
+                    <div id="ShopChoice">
+
+<div id="PopinShop" class="hide genericPopin clearfix">
+	<div class="tit">
+        <img class="txt_m" src="http://www4-fr.fnac-static.com/img/decos/pict_Loupe.png" alt="Alternate Text" />&nbsp;Choisir un magasin
+        <a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+	</div>
+    <div class="input">
+        <input />
+    </div>
+    <div class="content">
+        <ul id="slt_store_fav">
+            
+                <li data-value="327" data-noaccent="Aeroport Marseille-Provence">Aéroport Marseille-Provence</li>
+            
+                <li data-value="311" data-noaccent="Aeroport Orly Ouest">Aéroport Orly Ouest</li>
+            
+                <li data-value="334" data-noaccent="Aeroport Toulouse Blagnac">Aéroport Toulouse Blagnac</li>
+            
+                <li data-value="276" data-noaccent="Aix-en-Provence">Aix-en-Provence</li>
+            
+                <li data-value="351" data-noaccent="Ajaccio">Ajaccio</li>
+            
+                <li data-value="213" data-noaccent="Amiens">Amiens</li>
+            
+                <li data-value="11" data-noaccent="Angers">Angers</li>
+            
+                <li data-value="25" data-noaccent="Annecy">Annecy</li>
+            
+                <li data-value="318" data-noaccent="Annemasse">Annemasse</li>
+            
+                <li data-value="358" data-noaccent="Aubenas">Aubenas</li>
+            
+                <li data-value="2" data-noaccent="Avignon">Avignon</li>
+            
+                <li data-value="308" data-noaccent="Avignon - Le Pontet">Avignon - Le Pontet</li>
+            
+                <li data-value="275" data-noaccent="Bayonne">Bayonne</li>
+            
+                <li data-value="350" data-noaccent="Beauvais">Beauvais</li>
+            
+                <li data-value="38" data-noaccent="Belfort">Belfort</li>
+            
+                <li data-value="352" data-noaccent="Belleville-sur-Saone">Belleville-sur-Saône</li>
+            
+                <li data-value="30" data-noaccent="Bordeaux">Bordeaux</li>
+            
+                <li data-value="272" data-noaccent="Bordeaux-Lac">Bordeaux-Lac</li>
+            
+                <li data-value="45" data-noaccent="Boulogne">Boulogne</li>
+            
+                <li data-value="347" data-noaccent="Boulogne-sur-Mer">Boulogne-sur-Mer</li>
+            
+                <li data-value="169" data-noaccent="Bourges">Bourges</li>
+            
+                <li data-value="214" data-noaccent="Brest">Brest</li>
+            
+                <li data-value="5" data-noaccent="Caen">Caen</li>
+            
+                <li data-value="173" data-noaccent="Cannes">Cannes</li>
+            
+                <li data-value="16" data-noaccent="Cergy">Cergy</li>
+            
+                <li data-value="319" data-noaccent="Chambery">Chambéry</li>
+            
+                <li data-value="322" data-noaccent="Chambourcy">Chambourcy</li>
+            
+                <li data-value="250" data-noaccent="Chartres">Chartres</li>
+            
+                <li data-value="50" data-noaccent="Clermont-Ferrand">Clermont-Ferrand</li>
+            
+                <li data-value="166" data-noaccent="Colmar">Colmar</li>
+            
+                <li data-value="346" data-noaccent="Compiegne">Compiègne</li>
+            
+                <li data-value="353" data-noaccent="Crest">Crest</li>
+            
+                <li data-value="13" data-noaccent="Creteil">Créteil</li>
+            
+                <li data-value="303" data-noaccent="Croix-Blanche">Croix-Blanche</li>
+            
+                <li data-value="22" data-noaccent="Dijon">Dijon</li>
+            
+                <li data-value="251" data-noaccent="Evry">Evry</li>
+            
+                <li data-value="284" data-noaccent="Gennevilliers">Gennevilliers</li>
+            
+                <li data-value="255" data-noaccent="Grenoble - Grand Place">Grenoble - Grand Place</li>
+            
+                <li data-value="33" data-noaccent="Grenoble - Victor Hugo">Grenoble - Victor Hugo</li>
+            
+                <li data-value="282" data-noaccent="Herblay">Herblay</li>
+            
+                <li data-value="171" data-noaccent="La Defense-CNIT">La Défense-CNIT</li>
+            
+                <li data-value="324" data-noaccent="La Roche-sur-Yon">La Roche-sur-Yon</li>
+            
+                <li data-value="212" data-noaccent="Labege">Labège</li>
+            
+                <li data-value="23" data-noaccent="Le Havre">Le Havre</li>
+            
+                <li data-value="26" data-noaccent="Le Mans">Le Mans</li>
+            
+                <li data-value="345" data-noaccent="Le Puy-en-Velay">Le Puy-en-Velay</li>
+            
+                <li data-value="46" data-noaccent="Lille">Lille</li>
+            
+                <li data-value="268" data-noaccent="Limoges">Limoges</li>
+            
+                <li data-value="260" data-noaccent="Lorient">Lorient</li>
+            
+                <li data-value="315" data-noaccent="Lyon - Gare Part-Dieu">Lyon - Gare Part-Dieu</li>
+            
+                <li data-value="6" data-noaccent="Lyon Bellecour">Lyon Bellecour</li>
+            
+                <li data-value="51" data-noaccent="Lyon Part-Dieu">Lyon Part-Dieu</li>
+            
+                <li data-value="43" data-noaccent="Marseille">Marseille</li>
+            
+                <li data-value="313" data-noaccent="Marseille - Gare St-Charles">Marseille - Gare St-Charles</li>
+            
+                <li data-value="271" data-noaccent="Marseille - La Valentine">Marseille - La Valentine</li>
+            
+                <li data-value="326" data-noaccent="Melun">Melun</li>
+            
+                <li data-value="167" data-noaccent="Metz">Metz</li>
+            
+                <li data-value="168" data-noaccent="Monaco">Monaco</li>
+            
+                <li data-value="44" data-noaccent="Montpellier">Montpellier</li>
+            
+                <li data-value="12" data-noaccent="Mulhouse">Mulhouse</li>
+            
+                <li data-value="151" data-noaccent="Nancy">Nancy</li>
+            
+                <li data-value="7" data-noaccent="Nantes">Nantes</li>
+            
+                <li data-value="165" data-noaccent="Nice">Nice</li>
+            
+                <li data-value="27" data-noaccent="Nimes">Nîmes</li>
+            
+                <li data-value="172" data-noaccent="Noisy-le-Grand">Noisy-le-Grand</li>
+            
+                <li data-value="19" data-noaccent="Orleans">Orléans</li>
+            
+                <li data-value="29" data-noaccent="Parinor">Parinor</li>
+            
+                <li data-value="336" data-noaccent="Paris - Beaugrenelle">Paris - Beaugrenelle</li>
+            
+                <li data-value="321" data-noaccent="Paris - Bercy Village">Paris - Bercy Village</li>
+            
+                <li data-value="41" data-noaccent="Paris - Champs-Elysees">Paris - Champs-Elysées</li>
+            
+                <li data-value="17" data-noaccent="Paris - Forum des Halles">Paris - Forum des Halles</li>
+            
+                <li data-value="316" data-noaccent="Paris - Gare de l'Est">Paris - Gare de l'Est</li>
+            
+                <li data-value="314" data-noaccent="Paris - Gare de Lyon">Paris - Gare de Lyon</li>
+            
+                <li data-value="312" data-noaccent="Paris - Gare Montparnasse">Paris - Gare Montparnasse</li>
+            
+                <li data-value="14" data-noaccent="Paris - Italie 2">Paris - Italie 2</li>
+            
+                <li data-value="4" data-noaccent="Paris - Montparnasse">Paris - Montparnasse</li>
+            
+                <li data-value="21" data-noaccent="Paris - Saint-Lazare">Paris - Saint-Lazare</li>
+            
+                <li data-value="42" data-noaccent="Paris - Ternes">Paris - Ternes</li>
+            
+                <li data-value="20" data-noaccent="Parly 2">Parly 2</li>
+            
+                <li data-value="49" data-noaccent="Pau">Pau</li>
+            
+                <li data-value="259" data-noaccent="Perpignan">Perpignan</li>
+            
+                <li data-value="170" data-noaccent="Poitiers">Poitiers</li>
+            
+                <li data-value="330" data-noaccent="Pontault-Combault">Pontault-Combault</li>
+            
+                <li data-value="320" data-noaccent="Quimper">Quimper</li>
+            
+                <li data-value="37" data-noaccent="Reims">Reims</li>
+            
+                <li data-value="309" data-noaccent="Reims Thillois">Reims Thillois</li>
+            
+                <li data-value="1" data-noaccent="Rennes">Rennes</li>
+            
+                <li data-value="36" data-noaccent="Rosny 2">Rosny 2</li>
+            
+                <li data-value="24" data-noaccent="Rouen">Rouen</li>
+            
+                <li data-value="34" data-noaccent="Saint-Etienne">Saint-Etienne</li>
+            
+                <li data-value="281" data-noaccent="Saint-Maximin">Saint-Maximin</li>
+            
+                <li data-value="337" data-noaccent="Station BP Ambrussum">Station BP Ambrussum</li>
+            
+                <li data-value="342" data-noaccent="Station BP Dommartin-les-Toul">Station BP Dommartin-lès-Toul</li>
+            
+                <li data-value="335" data-noaccent="Station BP La Chaponne">Station BP La Chaponne</li>
+            
+                <li data-value="341" data-noaccent="Station BP Morieres">Station BP Morières</li>
+            
+                <li data-value="344" data-noaccent="Station BP Saint Priest">Station BP Saint Priest</li>
+            
+                <li data-value="340" data-noaccent="Station BP Tours Monnaie">Station BP Tours Monnaie</li>
+            
+                <li data-value="339" data-noaccent="Station BP Venoy">Station BP Venoy</li>
+            
+                <li data-value="349" data-noaccent="Station BP Vironvay">Station BP Vironvay</li>
+            
+                <li data-value="8" data-noaccent="Strasbourg">Strasbourg</li>
+            
+                <li data-value="280" data-noaccent="Thiais">Thiais</li>
+            
+                <li data-value="40" data-noaccent="Toulon">Toulon</li>
+            
+                <li data-value="35" data-noaccent="Toulouse - Jeanne-d'Arc">Toulouse - Jeanne-d'Arc</li>
+            
+                <li data-value="31" data-noaccent="Toulouse - Wilson">Toulouse - Wilson</li>
+            
+                <li data-value="28" data-noaccent="Tours">Tours</li>
+            
+                <li data-value="155" data-noaccent="Troyes">Troyes</li>
+            
+                <li data-value="18" data-noaccent="Val d'Europe">Val d'Europe</li>
+            
+                <li data-value="3" data-noaccent="Valence">Valence</li>
+            
+                <li data-value="270" data-noaccent="Valenciennes">Valenciennes</li>
+            
+                <li data-value="304" data-noaccent="Vannes">Vannes</li>
+            
+                <li data-value="32" data-noaccent="Velizy">Vélizy</li>
+            
+                <li data-value="338" data-noaccent="Vichy">Vichy</li>
+            
+                <li data-value="283" data-noaccent="Villebon">Villebon</li>
+            
+        </ul>
+    </div>
+    <div class="buttons">
+        <input class="hide close" type="button" value="Valider" />
+    </div>
+
+</div>
+</div>
+
+                    
+    <script src="http://www.google.com/adsense/search/ads.js" type="text/javascript"></script> 
+    <script type="text/javascript" charset="utf-8">
+
+        //google_adtest = 'off';
+        var pageOptions = {
+            'pubId': 'pub-2531201876452453',
+            'query': '9782742765010', //
+            'hl': 'fr',
+            'adtest': 'off',
+            'linkTarget': '_blank'
+        };
+
+        var adblock1 = {
+            'container': 'adcontainer1',
+            'number': '1',
+            'fontSizeTitle': '13px',
+            'fontSizeDescription': '12px',
+            'colorTitleLink': '000000',
+            'colorText': '666666',
+            'colorDomainLink': 'DE9C00'
+        };
+        var adblock2 = {
+            'container': 'adcontainer2',
+            'number': '1',
+            'fontSizeTitle': '13px',
+            'fontSizeDescription': '12px',
+            'colorTitleLink': '000000',
+            'colorText': '666666',
+            'colorDomainLink': 'DE9C00'
+        };
+        new google.ads.search.Ads(pageOptions, adblock1, adblock2);
+
+    </script>
+
+    <div id="search_menu_google_ad" class="txt_c">
+        <div class="googleAd unverified">
+            <div class="ad_header">Publicité&nbsp;<span class="open_google_infos img infos i_help"></span>
+                <div id="ad_header_google_popin" class="ad_header_google_popin hide popinTooltip"><p>Les liens sponsorisés sont des annonces publicitaires proposées par des tiers sur le site www.fnac.com. Ces liens sponsorisés sont sélectionnés en fonction des recherches ou consultations de pages effectuées récemment sur notre site. Par exemple, si vous recherchez « Mylène Farmer » ou consultez des pages concernant Mylène Farmer, vous verrez probablement des liens sponsorisés concernant des pages d'information au sujet de cet artiste.</p><p>Lorsque vous cliquez sur un lien sponsorisé, nous percevons un revenu publicitaire. Les revenus supplémentaires obtenus grâce aux liens sponsorisés nous permettent de vous proposer des prix toujours plus bas sur les produits vendus par Fnac.com.</p><p>Les liens sponsorisés sont toujours clairement identifiés en tant que tels. Les achats effectués sur les sites externes vers lesquels pointent nos liens sponsorisés ne sont ni traités ni livrés par Fnac.com.</p></div>
+            </div>
+
+            <div class="clearfix" >
+                <div id="adcontainer1" class="left" ></div>
+                <div id="adcontainer2" class="right"></div>
+            </div>
+        </div>
+    </div>
+
+                    <!-- Pied de liste -->
+                    
+
+
+<div class="top-toolbar bottom clearfix">
+    <span class="resultPosition left section">
+        
+
+<span class="openLayerResult">
+Résultats <strong>1 à 1</strong> sur 1 
+    
+</span>
+
+
+    </span>
+
+    <span class="articlePerPage middle section">
+        
+        
+            &nbsp; 
+    
+    </span>
+
+    <span class="switchListMosaic">
+        
+        <a class="listButton middle section active"  title="Liste">
+            <span class="img i_list"></span>
+        </a>
+        <a class="mosaicButton middle section"  title="Mosaique" >
+            <span class="img i_mosaic"></span>
+        </a>
+
+    </span>
+
+    <span class="articleSorting right section">
+        
+    <span class="combotrimoteur ">
+       
+        <form id="SortedForm" method="post" accept-charset="UTF-8"> 
+                
+            
+            <div>
+                <select class="selectSorted bottomList" name="selectSorted-bottomList">
+                 
+                    <option  value="0" >Trier par pertinence</option>
+
+                 
+                    <option  value="5" >Prix les moins chers</option>
+
+                 
+                    <option  value="500" >Prix les plus chers</option>
+
+                 
+                    <option  value="600" >Meilleures ventes</option>
+
+                 
+                    <option  value="700" >Note des internautes</option>
+
+                 
+                    <option  value="200" >Nouveauté</option>
+
+                 
+                    <option  value="1" >Titre : A -> Z</option>
+
+                
+                </select>
+            </div>
+
+
+
+        </form>
+        <script type="text/javascript">
+            $('.bottomList').comboToList({
+                onChange: function (val) { window.Gem.gems.SearchResult.methods.send("tools/updatesortingorder", val); },
+                hiddenInputName: 'selectSorted-bottomList',
+                arrowClass: "img arrow-bottom"
+            });
+        </script>
+    </span>
+
+    </span>
+</div>
+                    <div class="pager-bottom mrg_b_lg">
+                        
+    <ul class="pager bottom-toolbar clearfix">
+       
+            
+            <li class="prevLevel1 hide"><a href="http://recherche.fnac.com/SearchResult/ResultList.aspx?ItemPerPage=20&PageIndex=0&Search=9782742765010&sl=1.2003553" class="prevnext actionPrev" title="Page précédente"><span class="img i_pagerBef1"><!-- --></span></a></li> 
+            
+            
+        <li class="nextLevel1 hide mrg_r_no"><a href="http://recherche.fnac.com/SearchResult/ResultList.aspx?ItemPerPage=20&Search=9782742765010&sl=1.2003553"  class="prevnext actionNext" title="Page suivante"><span class="img i_pagerAft1"><!-- --></span></a></li>
+    </ul>
+    
+
+
+                    </div>
+                    
+
+
+<div class="last-seen-item_container">
 
-	            <div class="foot">
-	                <div class="content">
-	                
-	                    
-	                </div>
-	            </div>
-	        </div>
-	        
-	        
-	        
-	        
-       
 </div>
+                    
+    <div id="search_menu_megabanner_ad" class="txt_c">
+        <div class="megabannerAd">
+            <div class="ad_header">
+                Publicité&nbsp;<span class="open_megabanner_infos img infos i_help"><!-- --></span>
+                <div id="ad_header_megabanner_popin" class="ad_header_megabanner_popin hide popinTooltip"><p>Sur certaines pages du site www.fnac.com, vous pouvez voir des bannières publicitaires. Nous faisons notre maximum afin que les bannières qui sont affichées soient le plus pertinentes possibles par rapport à vos centres d’intérêts. Nous attachons également une importance particulière à la qualité des publicités qui sont diffusées sur notre site.</p><p>Lorsque vous cliquez sur une bannière, nous percevons un revenu publicitaire. Les revenus supplémentaires obtenus de cette manière nous permettent de vous proposer des prix toujours plus bas sur les produits vendus par Fnac.com. Les achats effectués sur les sites externes vers lesquels pointent ces bannières publicitaires ne sont ni traités ni livrés par Fnac.com.</p></div>
+            </div>
 
-        <div class="mrg_t clearb">
+    
             <iframe width="728" height="90" hspace="0" vspace="0" frameborder="0" bordercolor="#000000" topmargin="0" marginwidth="0" marginheight="0" border="0" letmargin="0" scrolling="no" src="http://mfr.247realmedia.com/2/www.fnac.com/searchresult@Top,Right!Top?recherche=9782742765010&scat=livres" class="dispeblock center"></iframe>
+        
         </div>
+    </div>
 
-    
-
+                </div>
                 
-                 
+
+<a href="#" class="goUp"><!-- --></a>
+                <div id="ajaxLayer" class="hide"><!-- --></div>
+                <div id="ajaxLoader" class="hide"></div>
             </div>
-           
-        </div>
-         
+            
+
+
+<div class="dataListOmniture">
+    
 <script type="text/javascript">
-    AppCore.ready(function()
-    {
-        AppCore.start("waitingMgr", {
-            contentContainer: $("#waitingMsg"),
-            layerContainer: $("#shadowLayer")
-        });
-    });
-</script>
-<div id="shadowLayer"></div>
-<div id="waitingMsg">
-    <img src="http://www4-fr.fnac-static.com/img/pictos/chrono_anim.gif" alt="Veuillez patienter..." />
-    <p>Veuillez patienter...</p>
-</div>
+    /*
+        action : l'action js à déclencher
+        value: la valeur de l'élément à tracker
+        positon: position de l'article dans la liste optionnel utilisé que pour l'ajout à la selection
+    */
+   
+    // TrackAction inclue dans searchResult.js
+
+    function trackActionfilter(lastFilterUsed) {
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products,prop10,eVar10,prop11,eVar11,prop12,eVar35,prop13,eVar13,prop14,prop15,prop16';
+        s.linkTrackEvents = 'event16';
+        s.events = 'event16';
+        s.prop11 = "SUCCESSFULL Refined Search";
+        s.prop12 = "1-10";
+        s.prop13 = "Livre";
+        s.prop14 = " ";
+        s.prop15 = "" + "";
+        s.prop16 = "" + lastFilterUsed;
+        s.tl(this, 'o', 'Filtre de recherche');
+    }
 
+    function trackActionfilterPrice() {
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products,prop10,eVar10,prop11,eVar11,prop12,eVar35,prop13,eVar13,prop14,prop15,prop16';
+        s.linkTrackEvents = 'event16';
+        s.events = 'event16';
+        s.prop11 = "SUCCESSFULL Refined Search";
+        s.prop12 = "1-10";
+        s.prop13 = "Livre";
+        s.prop14 = " ";
+       s.prop15 = "" + "";
+       s.prop16 = "prix";
+       s.tl(this, 'o', 'Filtre de recherche');
+    }
 
+    function trackActionUpdateCategory() {
+       
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products,prop10,eVar10,prop11,eVar11,prop12,eVar35,prop13,eVar13,prop14';
+        s.linkTrackEvents = 'event16';
+        s.events = 'event16';
+        s.prop11 = "SUCCESSFULL Refined Search";
+        s.prop12 = ""+"1-10";
+        s.prop13 = "" + "Livre";
+        s.prop14 = " ";
         
+            s.tl(this, 'o', 'Changement categorie de recheche');
+        
+    }
 
- <div class="bloc-bulle bloc-bulle-degrade popinFormatsEbook" id="explicationFormatsEbook">
-            <div class="inner">
-                <p class="pdg_b_sm bleu gras fontbigger">Format ePub, PDF, AVE ou DAE ?</p>
-                <p class="pdg_b_sm bleu">Pour télécharger vos livres numériques (couramment appelés eBook) plusieurs formats peuvent exister :</p>
-                <p class="pdg_b_sm gris333"><span class="gras">Le format ePub</span> a été conçu pour optimiser la lecture sur les readers de livres numériques. Les formats ePub sont aussi consultables sur votre ordinateur grâce au logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</p>
-                <p class="pdg_b_sm gris333"><span class="gras">Les fichiers au format PDF</span> peuvent être lus sur les readers de livres numériques cependant nous vous conseillons une consultation sur votre ordinateur à l’aide du logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</p>
-                <p class="pdg_b_sm gris333"><strong>Les formats AVE et DAE</strong> ont été conçus pour la lecture de BD numériques.</p>
-		<p class="pdg_b_sm gris333"><strong>Les BD au format AVE</strong> sont lisibles sur fnac.com ainsi que dans les applications Fnacbook sur iPad, iPhone et Androïd.</p>
-		<p class="pdg_b_sm gris333"><strong>Les BD au format DAE</strong> sont lisibles uniquement sur fnac.com pour le moment; elles seront bientôt disponibles à la lecture dans l’application Fnacbook sur iPad.</p>
-		<p class="pdg_b_sm gris333">La lecture des BD numériques sur fnac.com se fait en streaming.</p>
-		        <a href="#" id="closeExplicationFormatsEbook" class="bt-close">Fermer</a>
-	        </div>
-        </div>
-        <script type="text/javascript">
-        $(function() {
-            if($("div#LargeListControl div.oneprd div.price div.choix_format_ebook a.explicationFormatsEbook").length > 0)
-            {
-                var largeurExplication = $("div#explicationFormatsEbook").width();
-	            $("a.explicationFormatsEbook", $("div#LargeListControl"))
-		            .click(function(e) {
-			            $("div#explicationFormatsEbook")
-			            .css({
-			               top: e.pageY+"px",
-			               left: (e.pageX - parseInt(largeurExplication)) +"px",
-			               display: 'block'
-			             })
-			            .show();
-			            return false;
-		            })
-	            $("#closeExplicationFormatsEbook")
-		            .click(function() {
-			            $("#explicationFormatsEbook").css('display','none');
-			            return false;
-		        });
-		    }
-         });
-        </script>
-    </div>
 
-    
+    function trackActionUpdateNbPerPage(nb) {
+  
+        var s = s_gi(s_account);
 
-<div class="spacer">&nbsp;</div>
+        s.linkTrackVars = 'prop18';
+        s.prop18 = ""+nb;
+        s.tl(this, 'o', 'Changement des articles par page');
+
+    }
 
-<div class="wrapFooter">
 
+    function trackActionUpdateCurrentPage(page) {
+  
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'prop17';
+        s.prop17 = ""+page;
+        s.tl(this, 'o', 'Changement de page');
+ 
+    }
+    function trackActionUpdateViewmode(displayMode) {
 
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'prop7,eVar34,prop18';
+        s.prop7 = displayMode;
+        s.prop18 = "" + "20";
+        s.tl(this, 'o', 'Changement de template');
 
-       
-            
-    <ul class="plusFnac clearfix">
-        <li class="pf pf1"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8200" target="aide">Satisfait ou<br />remboursé</a></li>
-        <li class="pf pf2"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8200" target="aide">&Eacute;change<br />en magasin</a></li>
-        <li class="pf pf3"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8027" target="aide">Paiement à<br />l'expédition</a></li>
-        <li class="pf pf4"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8004" target="aide">Livraison gratuite<br />sur les livres</a></li>
-        <li class="pf pf5"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8199" target="aide">Paiement<br />sécurisé</a></li>
-    </ul>
+    }
+    function trackActionAddProductComparer(idProduct) {
 
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products';
+        s.linkTrackEvents = 'event6'
+        s.events = 'event6'
+        s.products = ";"+idProduct;
+        s.tl(this, 'o', 'Ajout au comparateur');
 
-<iframe allowtransparency="true" id="iFrameFooter" src="http://www4.fnac.com/Navigation/engagements-pratique-entreprise.aspx" width="993" height="315" frameborder="0" scrolling="no" name="footer" marginheight="0" marginwidth="0"></iframe>
+    }
+    function trackActionAddProductMultibuy(idProduct) {
 
-<div id="subfooter">
- <ul class="mrg_t">
-      <li class="first">Nos partenaires jeux vidéo :</li>
-      <li class="first"><a href="http://www.playfrance.com/#bl=Footer" target="_blank" class="min">Jeux PlayStation</a></li>
-      <li><a href="http://www.xboxfrance.com/#bl=Footer" target="_blank" class="min">Jeux Xbox 360</a></li>
-      <li><a href="http://www.wiidsfrance.com/#bl=Footer" target="_blank" class="min">Jeux Wii et DS</a></li>
-      <li><a href="http://www.pcactu.com/#bl=Footer" target="_blank" class="min">Jeux PC</a></li>
-      <li><a href="http://astuce-soluce.playfrance.com/index.php/Accueil#bl=Footer" target="_blank" class="min">Astuces et codes jeux vidéo</a></li>
-    </ul>
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products';
+        s.linkTrackEvents = 'event30'
+        s.events = 'event30'
+        s.products = ";"+idProduct;
+        s.tl(this, 'o', 'Ajout jauge multibuy');
 
-    <ul class="mrg_t">
-      <li class="first">Evénements à venir sur fnac.com :</li>
-      
-      <li class="first"><a href="http://www.fnac.com/noel/w-4" class="min">Noël</a></li>
-      <li><a href="http://www.fnac.com/soldes/w-4" class="min">Soldes</a></li>
-      <li><a href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx" class="min">Kobo</a></li>
-    </ul>
+    }
+    function trackActionAddToBuyBox(idProduct, position) {
+
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products,eVar6,eVar17,eVar19';
+        s.linkTrackEvents = 'scAdd';
+        s.events = 'scAdd';
+        s.eVar6 = s.prop40.toUpperCase() + ': BuyBox: Ajout Panier';
+        s.eVar17 = "Achat Standard";
+        s.eVar19 = ""+position;
+        s.products = ";"+idProduct;
+        s.tl(this, 'o', 'Ajout Panier');
+        s.linkTrackVars = '';
+        s.linkTrackEvents = '';
+        s.events = '';
+        s.eVar6 = '';
+        s.eVar17 = "";
+        s.eVar19 = "" ;
+        s.products = "";
 
-    <ul class="mrg_t">
-      <li class="first">&copy;&nbsp;Fnac 2012</li>
-    </ul>
-</div>
+    }
+    function trackActionAddtoSelectionInJaugeMultiBuy(idProduct) {
+
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,products,eVar6,eVar17,eVar19';
+        s.linkTrackEvents = 'scAdd';
+        s.events = 'scAdd';
+        s.eVar6 = s.prop40.toUpperCase() + ': Jauge MultiBuy: Ajout Panier';
+        s.eVar17 = "Achat Standard";
+        s.eVar19 = 'Non applicable';
+        s.products = ";"+idProduct;
+        s.tl(this, 'o', 'Ajout Panier');
 
-        
-    
+    }
 
+    function trackActionSortingOrder(sort) {
 
-</div>
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'prop55';
+        s.prop55 = "" + sort;
+        s.tl(this, 'o', 'Changement du critère de tri');
 
+    }
+    // -->
+</script>
 
+</div>
 
 
-<!-- START IADVIZE LIVECHAT -->
 <script type="text/javascript">
-    var iproto = (("https:" == document.location.protocol) ? "https://" : "http://");
-    var url = 'fnac.livechat.iadvize.com';
-    var sid = '3';
-    document.write(unescape("%3Cscript src='" + iproto +url+"/chat_init.js?sid="+sid+"' type='text/javascript'%3E%3C/script%3E"));
+    var DataAutoCompleteCallback = function () {
+        if (location.hash.length > 0) {
+            var hashVarObj = {};
+            var cptsa = 0;
+            var hashArr = location.hash.replace("#", "").split("&");
+            for (var i = 0; i < hashArr.length; i++) {
+                var t = hashArr[i].split("=");
+
+                if (t.length == 2) {
+                    var temp = "" + t[0];
+                    if (temp == "st" || temp == "ct" || temp == "t") {
+                        hashVarObj[temp] = decodeURIComponent(t[1]);
+                        cptsa = cptsa + 1;
+                    }
+                }
+            }
+            if (hashVarObj != null && cptsa == 3) {
+                s.prop10 = hashVarObj.st;  
+                s.prop13 = hashVarObj.cat; 
+                s.eVar2 = "search";
+                s.eVar10 = hashVarObj.st; 
+                s.eVar13 = "D=c13"; 
+                s.eVar42 = "D=v2";
+                if (hashVarObj.t == 'c') {
+                    s.eVar71 = "autocompletion:categorie";
+                }
+                else {
+                    s.linkTrackVars = 'eVar2';
+                    s.eVar71 = "autocompletion:produit";
+                    s.events = "prodView,event2";
+                }
+                
+            }
+        }
+    }
 </script>
-<!-- END IADVIZE LIVECHAT -->
 
-    
+
 
 <script type="text/javascript">
+    
+    var s_account = 'fnaccomprod';
+    var s_trackingServer = 'metrics.fnac.com';
+    var s_trackingServerSecure = 'smetrics.fnac.com';
+    
     function pageOriginClick(from, fr)
     {
         var iPageOriginClickToBasketType = 0;
@@ -2318,6 +2449,13 @@ WebForm_InitCallback();//]]>
                 case "119":
                     Omniture_pageOriginClikToBasket = "Page Label: Mini-FA";
                     break;
+                case "122":
+                    Omniture_pageOriginClikToBasket = "Fiche Serie";
+                    break;
+                case "123":
+                    Omniture_pageOriginClikToBasket = "Panier Flottant : Recommandations";
+                    break;
+                    
             }
         }
         else
@@ -2354,14 +2492,76 @@ WebForm_InitCallback();//]]>
 
 	function trackBasket(articlePrid, From)
     {
-            var s=s_gi('fnaccomprod');
-            s.linkTrackVars='events,products,eVar6';
-            s.linkTrackEvents='scAdd'
-            s.events = 'scAdd'
-            s.eVar6 = pageOriginClick(From);
-            s.products = ';' + articlePrid
-            s.tl(this, 'o', 'Ajout Panier');
-    }
+	    var s=s_gi(s_account);
+	    var originClick = TrackBasketOverridedOriginClick(From);
+	    if(originClick.length == 0 && s.prop40.length > 0)
+	        originClick = s.prop40.toUpperCase() ;
+	    s.linkTrackVars='events,products,eVar2,eVar6,eVar17,eVar19';
+        s.linkTrackEvents='scAdd';
+        s.events = 'scAdd';
+        if(originClick.match(/Panier Flottant/))
+        {
+            s.eVar2="upsell";
+        }
+        if(!originClick.match(/BuyBox/) && !originClick.match(/Panier Flottant/))
+            originClick = originClick + ": BuyBox";
+        s.eVar6 = originClick + ": Ajout Panier";
+        s.eVar17="Achat Standard";
+        s.eVar19="Non applicable";
+        s.products = ';' + articlePrid;
+        s.tl(this, 'o', 'Ajout Panier');
+	}
+
+	function trackBasket(articlePrid, From, position)
+	{
+	    var s=s_gi(s_account);
+	    var originClick = TrackBasketOverridedOriginClick(From);
+	    if(originClick.length == 0 && s.prop40.length > 0)
+	        originClick = s.prop40.toUpperCase();
+	    s.linkTrackVars='events,products,eVar2,eVar6,eVar17,eVar19';
+	    s.linkTrackEvents='scAdd';
+	    s.events = 'scAdd';
+	    if(originClick.match(/Panier Flottant/))
+	    {
+	        s.eVar2="upsell";
+	    }
+	    if(!originClick.match(/BuyBox/) && !originClick.match(/Panier Flottant/))
+	        originClick = originClick + ": BuyBox";
+	    s.eVar6 = originClick + ": Ajout Panier";
+	    s.eVar17="Achat Standard";
+	    if(position === undefined || position == null || position.length <= 0)
+	        s.eVar19="Non applicable"; 
+	    else
+	        s.eVar19=position;    
+	    s.products = ';' + articlePrid;
+	    s.tl(this, 'o', 'Ajout Panier');
+	}
+
+	function TrackBasketOverridedOriginClick(From)
+	{
+	    var originClick = pageOriginClick(From);
+	    if(originClick=="Moteur")
+	        originClick = "";
+	    if(originClick=="FI:Mini-FA")
+	        originClick = "Fiche Itervenant:";
+	    return originClick;
+	}
+
+	function getParamFromQueryString(p)
+	{
+	    var urlTmp=window.location.href;
+	    var normalizedUrl = "";
+	    if(urlTmp.indexOf('#',0)>0){
+	        normalizedUrl=urlTmp.substring(0,urlTmp.indexOf('#',0))+"&"+urlTmp.substring(urlTmp.indexOf('#',0)+1,urlTmp.length);
+	        if(normalizedUrl.indexOf('?',0)==-1) {
+	            normalizedUrl=s.pageURL.substring(0,s.pageURL.indexOf('&',0))+"?"+s.pageURL.substring(s.pageURL.indexOf('&',0)+1,s.pageURL.length);
+	        }
+	    }else normalizedUrl=urlTmp;
+
+	    var re = new RegExp(".*[?&]" + p + "=([^&]+)(&|$)");
+	    var match = urlTmp.match(re);
+	    return(match ? match[1] : "");
+	}
 
 </script>
 
@@ -2372,21 +2572,17 @@ WebForm_InitCallback();//]]>
 Copyright 1997-2006 Omniture, Inc. More info available at
 http://www.omniture.com -->
 
-<script type="text/javascript" >
-    var s_account = 'fnaccomprod';
-    var s_trackingServer = 'metrics.fnac.com';
-    var s_trackingServerSecure = 'smetrics.fnac.com';
-</script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/s_code.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/js/HSLMFhFFu9sA9-EXMJqzcCcmvvg1/js/s_code.js"></script>
 <script type="text/javascript"><!--
 
 /* You may give each page an identifying name, server, and channel on
 the next lines. */
 s.charSet="UTF-8";
-s.pageName="Resultat Recherche Autres"
-s.server="FCSWEBFARM11"
+s.pageName="Resultat Recherche Roman policier et Thriller"
+s.server="FCS1WPFWEBFR3"
 s.channel="Produits"
 s.pageType=""
+s.prop56="Non Abonne Express"
 s.prop1="Recherche interne"
 s.prop40="Recherche interne"
 s.prop13="Livre"
@@ -2394,8 +2590,14 @@ s.prop14=" "
 s.prop10="9782742765010"
 s.prop11="SUCCESSFULL quicksearch"
 s.prop12="1-10"
-s.prop15="Livre:Autres"
-s.prop16=""
+s.prop15=""
+s.eVar71="classique"
+s.prop7="list"
+s.prop17="1"
+s.prop18="20"
+s.prop51="Web Desktop"
+s.prop20="Non-Adherent"
+s.prop21=""
 
 s.prop20=""
 s.prop21=""
@@ -2418,16 +2620,28 @@ s.eVar37=""
 s.eVar12=""
 s.eVar15=""
 s.eVar17=""
+s.eVar19=""
 s.prop8=""
 
+s.eVar54=""
+s.eVar56="Non Abonne Express"
+s.eVar57=""
+
+
+
 
 /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
     
+
+    if (DataAutoCompleteCallback)
+    {
+        DataAutoCompleteCallback(s);
+    }
+    
     
     var s_code=s.t();
     if(s_code)document.write(s_code)
 
-
 //--></script>
 <script language="JavaScript"><!--
 if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
@@ -2436,73 +2650,275 @@ if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+
 </div>
 
 
+           
+            
+
+<div class="spacer">&nbsp;</div>
+
+<div class="wrapFooter iPadHide">
+
+
     
 
+
+
+       
+            
+<div class="Footer mrg_t_xlg">
+
+    <div class="Footer-Sgf">
+        <h2 class="FooterSgf-Title">Services et garanties Fnac</h2>
+        <ul class="FooterSfg-List clearfix">
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-1 Footer-ico" href="http://www4.fnac.com/Help/Faq.aspx?idHelp=13303&idQRfaq=2" target="aide" title="Satisfait ou remboursé">Satisfait <br />ou remboursé</a></li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-2 Footer-ico" href="http://www4.fnac.com/Help/retrait-et-livraison.aspx#bl=FooterRetraitMag" title="Retrait gratuit en magasin">Retrait gratuit <br />en magasin</a></li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-3 Footer-ico" href="http://www.fnac.com/Magazine/home_adherents.asp#bl=FooterCarteAdh" title="La carte Fnac - Adhérez et économisez">La carte Fnac <br />Adhérez et économisez</a>
+            </li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-4 Footer-ico" href="http://www4.fnac.com/Service/default.aspx#bl=FooterSavFnac" title="SAV Fnac 7J/7">SAV Fnac <br />7J/7</a></li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-5 Footer-ico" href="http://www.fnac.com/les-espaces-passions-de-la-Fnac/w-4#bl=FooterConseilsExperts" title="Conseils et Tests des experts">Conseils et Tests <br />des experts</a></li>
+        </ul>
+    </div>
+
+    <div class="Footer-Middle clearfix">
+        <div class="FooterMiddle-col FooterMiddle-Left">
+            
+            <p class="FooterMiddle-Left-1">
+                <span id="FooterNewsLetters" title="Bons Plans Fnac" class="fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBEC6B4494A421FB943CCC24843CBCB43C1194AC2C0C51241482EB44F4FCB43C1B943CCC24843CBCB43C1C2 Footer-ico"><strong>Bons plans Fnac</strong> <br />Ne manquez plus les dernières offres !</span>
+            </p>
+            
+            <p class="FooterMiddle-Left-2">
+                <span id="FooterFnacMobile" title="Appli Mobile &amp; Tablette" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBCC3464B43C21F3B434843C0454F4946431F4AC0C04846C21E4E4F414648431F4B43444AC348CB194AC2C0C51241482EB44F4FCB43C1BAC0C04846C2BE4F41464843 Footer-ico"><strong>Appli Mobile & Tablette</strong> <br />La Fnac, n'importe où, n'importe quand</span>
+            </p>
+        </div>
+        
+        <p class="FooterMiddle-col FooterMiddle-Center">
+            <span id="FooterLogo" title="Fnac.com" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1F1241482EB44F4FCB43C1B84F4C4FB4494A42 Footer-ico graf FooterMiddle-logo">Fnac.com</span>
+        </p>
+        <div class="FooterMiddle-col FooterMiddle-Right">
+            <ul class="FooterMiddle-Social-List clearfix">
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterFbFnac" target="_blank" title="Facebook" class="fnac 45CBCBC02D1F1FCCCCCC19444A4243414F4F4719424F4E1F44494A42 FooterMiddle-Social-link FooterMiddle-Facebook Footer-ico graf">Facebook</span></li>
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterTwFnac" target="_blank" title="Twitter" class="fnac 45CBCBC02D1F1FCBCC46CBCB43C119424F4E1F44494A42 FooterMiddle-Social-link FooterMiddle-Twitter Footer-ico graf">Twitter</span></li>
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterInstagram" target="_blank" title="Instagram" class="fnac 45CBCBC02D1F1F4649C2CB4A4CC14A4E19424F4E1F44494A423F4F44444642464348 FooterMiddle-Social-link FooterMiddle-Instagram Footer-ico graf">Instagram</span></li>
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterGooglePlus" target="_blank" title="Google +" class="fnac 45CBCBC02D1F1FC048C3C2194C4F4F4C484319424F4E1F17B4B9BAB2 FooterMiddle-Social-link FooterMiddle-GooglePlus Footer-ico graf">Google +</span></li>
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterYoutube" target="_blank" title="Youtube" class="fnac 45CBCBC02D1F1FC64FC3CBC3414319424F4E1FC3C243C11F44494A42 FooterMiddle-Social-link FooterMiddle-Youtube Footer-ico graf">Youtube</span></li>
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterPinterest" target="_blank" title="Pintereset" class="fnac 45CBCBC02D1F1FCCCCCC19C04649CB43C143C2CB19424F4E1F44494A424F44444642464348 FooterMiddle-Social-link FooterMiddle-Pinterest Footer-ico graf">Pinterest</span></li>
+                
+                <li class="FooterMiddle-Social-Item"><span id="FooterLinkedin" target="_blank" title="Fnac Pro sur LinkedIn" class="fnac 45CBCBC02D1F1F48464947434B464919424F4E1F424F4EC04A49C61F44494A421EC0C14F FooterMiddle-Social-link FooterMiddle-Linkedin Footer-ico graf">Fnac Pro sur LinkedIn</span></li>
+            </ul>
+            <div class="FooterMiddle-Mag">
+                <form class="Footer-FormMag clearfix" action="http://www4.fnac.com/Community/SearchStore.aspx">
+                    
+                    <label for="city">
+                        <span id="FooterMagHome" title="Trouver un magasin" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484F424A4846C243C11E4E4A4C4AC246491E44494A421241482EB44F4FCB43C1B54F4E43BE4A4C ">Trouver un magasin</span>
+                    </label>
+                    <input type="text" value="Ville / code postal ..." name="city" id="city" class="Footer-FormMag-input" />
+                    <input type="submit" value="OK" />
+                </form>
+            </div>
+        </div>
+    </div>
+
+    <div class="Footer-Bottom">
+        <div class="FooterBottomLinks clearfix">
+            <dl class="FooterBottomLinks-Col">
+                <dt>Le groupe Fnac</dt>
+                <dd><a href="http://groupe-fnac.com/" rel="nofollow" target="_blank" title="Le groupe Fnac">Le groupe Fnac</a></dd>
+                <dd><a href="http://groupe-fnac.com/index.php/category/carrieres" rel="nofollow" target="_blank" title="Recrutement">Recrutement</a></dd>
+                
+                <dd><span id="FooterDevDurable" target="_blank" title="Développement durable" class="fnac 45CBCBC02D1F1F4CC14FC3C0431E44494A4219424F4E1F46494B43C519C045C01F494FCBC14343494C4A4C434E4349CB ">Développement durable</span></dd>
+                
+                <dd><span id="FooterLaboFnacEssais" title="Le Labo Fnac Essais" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484A414FB4494A421F43C2C24A46C21FCB4FC3C24B4FC2C24643C1C2194AC2C0C51241482EB44F4FCB43C1B84A414FB4494A42B3C2C24A46C2 ">Le Labo Fnac Essais</span></dd>
+                
+                
+            </dl>
+            <dl class="FooterBottomLinks-Col">
+                <dt>Aide, SAV, services</dt>
+                
+	            <dd><span id="FooterSuiviCommande" target="_blank" title="Aide et suivi de commande" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01FB44ACA194AC2C0C51241482EB44F4FCB43C132C346C446B24F4E4E4A494B43 ">Aide et suivi de commande</span></dd>
+                
+                <dd><span id="FooterReprise" title="Argus Reprise" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBCC3464B43C21F424F4E4E4F491FC143C0C146C2431F4B43444AC348CB194AC2C0C51241482EB44F4FCB43C1BAC14CC3C23143C0C146C243 ">Argus Reprise</span></dd>
+                
+                <dd><a href="http://www4.fnac.com/Guides/common/cheques-cartes-cadeaux/Default.aspx#bl=FooterChequeCadeau" rel="nofollow" title="Chèque cadeau Fnac">Chèque cadeau Fnac</a></dd>
+                
+                <dd><span id="FooterAffiliation" title="Affiliation" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4A44444648464ACB43C21F4A4242C3434648194AC2C0C51241482EB44F4FCB43C1BA44444648464ACB464F49 ">Affiliation</span></dd>
+                
+                <dd><span id="FooterPublicite" title="Publicité" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBA4BC443C1CB46C243C11F31434C46C2CBC14ACB464F49194AC2C0C51241482EB44F4FCB43C130C34148464246CB43 ">Publicité</span></dd>
+            </dl>
+            <dl class="FooterBottomLinks-Col">
+                <dt>&Agrave; propos</dt>
+                
+		        <dd><span id="FooterCGVFnac" title="Conditions générales de vente Fnac.com" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01F44494A42424F4E1E424CC4194AC2C0C51241482EB44F4FCB43C1B2BC34 ">Conditions générales de vente</span></dd>
+                
+                <dd><span id="FooterDonnesPerso" title="Données personnelles" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBFC14B43C13046C0431F4B4ACB4A30C14FCB4342CB194AC2C0C51241482EB44F4FCB43C1BB4ACB4A30C14FCB4342CB ">Données personnelles</span></dd>
+                
+                <dd><span id="FooterMLeg" title="Mentions légales" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4349CBC143C0C146C2431F4E4349CB464F49C23F48434C4A4843C2194AC2C0C51241482EB44F4FCB43C1BE4349CB464F49C2B8434C4A4843C2 ">Mentions légales</span></dd>
+                
+                <dd><span id="FooterSignalAbus" target="_blank" title="Signalez un abus" class="fnac 45CBCBC02D1F1F4EC348CB464E434B464A1944494A4219424F4E1F4EC348CB464E434B464A1F44494A424B46C14342CB1FC04B441F32464C494A4843CD1EC3491E4A41C3C219C04B44 ">Signalez un abus</span></dd>
+                
+                <dd><span id="FooterCookies" title="Cookies" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01F44494A42424F4E1E424F4F474643C2194AC2C0C51241482EB44F4FCB43C1B24F4F474643C2 ">Cookies</span></dd>
+                
+                <dd><span id="FooterWinners" title="Résultats des concours" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F49CB43C2CB1FB846C2CB194AC2C0C51241482EB44F4FCB43C13143C2C348CB4ACBC2B24F49424FC3C1C2 ">Résultats des concours</span></dd>
+            </dl>
+            <dl class="FooterBottomLinks-Col">
+                <dt>&Agrave; la Fnac</dt>
+                
+                <dd><span id="FooterFnacPro" title="Fnac Pro" class="fnac 45CBCBC02D1F1FCCCCCC1944494A42C0C14F19424F4E1F1241482EB44F4FCB43C1B4494A4230C14F ">Fnac Pro</span></dd>
+                
+                <dd><a href="http://www4.fnac.com/Guides/marketplace/vente-et-revente/default.aspx#bl=FooterMarketPlace" title="Fnac Marketplace">Fnac Marketplace</a></dd>
+                
+                <dd><span id="FooterJukebox" target="_blank" title="Fnac Jukebox" class="fnac 45CBCBC02D1F1FCCCCCC1944494A424DC34743414FC519424F4E1F1241482EB44F4FCB43C1B4494A42BDC34743414FC5 ">Fnac Jukebox</span></dd>
+                
+                <dd><a href="http://www.fnac.com/Les-tests-du-LaboFnac/Labo-Fnac/cl220/w-4#bl=FooterLaboFnac" title="Labo Fnac">Labo Fnac</a></dd>
+            </dl>
+        </div>
+        <div class="FooterBottomLast clearfix">
+            <div class="FooterBottomLast-Left">
+                <div class="FooterBottomLast-Land">
+                    <span class="Footer-ico Footer-France graf">Vous êtes sur Fnac.com France</span>
+                    <span id="worldTrigger" class="">France - Changer de Pays</span>
+                    <div id="popinWorld" class="hide">
+                        <ul class="FooterBotom-world">
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.com/#bl=FooterWorldFrance" title="Fnac France" class="FooterBotom-world-link FooterBotom-world-France Footer-ico">Fnac France</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.pt/#bl=FooterWorldPortugal" title="Fnac Portugal" class="FooterBotom-world-link FooterBottom-world-Portugal Footer-ico">Fnac Portugal</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.es/#bl=FooterWorldEspagne" title="Fnac Espagne" class="FooterBotom-world-link FooterBottom-world-Espagne Footer-ico">Fnac Espagne</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href=http://www.fnac.com.br/#bl=FooterWorldBresil title="Fnac Brésil" class="FooterBotom-world-link FooterBottom-world-Bresil Footer-ico">Fnac Brésil</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fr.fnac.be/#bl=FooterWorldBelgiqueFR" title="Fnac Belgique (Français)" class="FooterBotom-world-link FooterBottom-world-Belgique Footer-ico">Fnac Belgique (Français)</a></li>
+                             
+                            <li class="FooterBotom-world-item"><a href=http://www.nl.fnac.be/#bl=FooterWorldBelgiqueNL title="Fnac Belgique (Néerlandais)" class="FooterBotom-world-link FooterBottom-world-Belgique Footer-ico">Fnac Belgique (Néerlandais)</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.ch/#bl=FooterWorldSuisse" title="Fnac Suisse" class="FooterBotom-world-link FooterBottom-world-Suisse Footer-ico">Fnac Suisse</a></li>
+                            
+                            <li class="FooterBotom-world-item mrg_b_no"><a href="http://www.fnacmaroc.ma/#bl=FooterWorldMaroc" title="Fnac Maroc" class="FooterBotom-world-link FooterBottom-world-Maroc Footer-ico">Fnac Maroc</a></li>
+                        </ul>
+                        <i class="FooterBottomPopinArrow">&nbsp;</i>
+                    </div>
+                    <!-- # script layer popin World -->
+                    <script type="text/javascript">
+                        $(function () {
+                            $("#worldTrigger").popinManager({
+                                targetContent: "#popinWorld",
+                                modeView: "layer",
+                                eventStart: "click",
+                                eventStop: "mouseleave",
+                                customPosition: true,
+                                relativePosition: { left: -25, bottom: -310 }
+                            });
+                        });
+                    </script>
+                </div>
+                <p class="FooterBottomLast-Payment">
+                    <span class="FooterBottomLast-Payment-Ico Footer-ico graf">Payez avec les cartes de paiement Visa, MasterCard, Mastro, Carte Bleue, American Express, eCarte Bleue, Paypal ...</span>
+                    <a class="FooterBottomLast-Payment-Link" href="http://www4.fnac.com/Help/Faq.aspx?idHelp=8022&idQRfaq=2" target="aide" rel="nofollow"  title="plus d'infos sur les moyens de paiement">Plus d'info</a>
+                </p>
+                <ul class="FooterBottomLast-Site puce_no">
+                    <li class="FooterBottomLast-Site-Item">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www4.fnac.com/Navigation/plan.aspx#bl=FooterPlanSite" title="Plan du site">Plan du site</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item">&copy;&nbsp;Fnac 2015</li>
+                    <li class="FooterBottomLast-Site-Item hasHyphenBefore hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://www.playfrance.com/?utm_source=fnac&utm_medium=fichearticle&utm_campaign=pasdecampagne" target="_blank" title="Jeux PlayStation">Jeux PlayStation</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://www.xboxfrance.com/?utm_source=fnac&utm_medium=fichearticle&utm_campaign=pasdecampagne" target="_blank" title="Jeux Xbox 360">Jeux Xbox 360</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://www.wiidsfrance.com/?utm_source=fnac&utm_medium=fichearticle&utm_campaign=pasdecampagne" title="Jeux Wii et DS">Jeux Wii et DS</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://astuce-soluce.playfrance.com/index.php/Accueil" target="_blank" title="Astuces et codes jeux vidéo">Astuces et codes jeux vidéo</a>
+                    </li>
+                </ul>
+                <dl class="FooterBottomLast-Site">
+                    <dt class="FooterBottomLast-Site-Item">Evènements à venir sur Fnac.com : </dt>
+                    <dd class="FooterBottomLast-Site-Item hasCommaAfter">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www.fnac.com/noel/w-4#bl=FooterNoel" title="Noël">Noël</a>
+                    </dd>
+                    <dd class="FooterBottomLast-Site-Item hasCommaAfter">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www.fnac.com/soldes/w-4#bl=FooterSoldes" title="Soldes">Soldes</a>
+                    </dd>
+                    <dd class="FooterBottomLast-Site-Item">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx#bl=FooterKobo" title="Kobo">Kobo</a>
+                    </dd>
+                </dl>
+            </div>
+            <div class="FooterBottomLast-Right">
+                <ul class="FooterBottomLast-Awards clearfix">
+                    <li class="FooterBottomLast-Awards-Item FooterBottom-Award-1 Footer-ico graf">FEVAD FAVOR'I 2014 : meilleur site e-commerce - Prix des internautes</li>
+                    <li class="FooterBottomLast-Awards-Item FooterBottom-Award-2 Footer-ico graf">FEVAD FAVOR'I 2014 : meilleur site e-commerce - Prix du jury</li>
+                </ul>
+            </div>
+        </div>
+    </div>
+
+</div>
 <script type="text/javascript">
+    $(function () {
+        var $inputMag = $("#city");
+        var inputOriginalValue = $inputMag.val();
+        if (!$inputMag.data("originalValue")) {
+            $inputMag.data("originalValue", inputOriginalValue);
+        }
+        $inputMag
+            .focus(function () {
+                $inputMag.val("");
+            })
+            .focusout(function () {
+                $inputMag.val($inputMag.data("originalValue"));
+            });
+    });
+</script>
+
+        
     
+
     
-     
-     var tc_vars = [];
-     // Structure et arborescence
-     tc_vars["template_type"] = "moteur";
-     tc_vars["template_name"] = "31_moteur_recherche_stantard";
-     tc_vars["arbo_niv1"] = "livre";
-     tc_vars["arbo_niv2"] = "";
-     tc_vars["arbo_niv3"] = "";
-     tc_vars["arbo_niv4"] = "";
-     tc_vars["arbo_niv5"] = "";
-     tc_vars["arbo_niv6"] = "";
-     tc_vars["page_name"] = "resultat recherche autres";
+    <script type="text/javascript">
+        $(document).ready(function () {
+            $("a.popRetourMag").popinManager({ targetContent: "#PopinRetourMag" });
+        });
+    </script>
+    
+</div>
 
-            // Adhérent
-     tc_vars["user_id"] =  "";
-     tc_vars["user_segment"] = "Non-Adherent";
 
-     tc_vars["search_kw"] = "9782742765010";
-     tc_vars["search_nb_results"] = "1-10";
-     tc_vars["search_current_page"] = "";
-     tc_vars["search_category"] = "autres";
-     tc_vars["search_refine_category"] = "autres";
-     tc_vars["search_refine_comb"] = "autres";
-     tc_vars["search_type"] = "standard";
+<div id='fnac_Bottom'></div>
+<div id='fnac_Bottom1'></div>
 
-     // Produit
-     tc_vars["product_name"] = "";
-     tc_vars["product_id"] = "";
-     tc_vars["product_ref"] = "";
-     tc_vars["product_ref_id"] = "";
-     tc_vars["product_stock"] = "";
-     tc_vars["product_category"] = "";
-     tc_vars["product_vendor"] = "";
 
-     tc_vars["order_id"] = "";
-     tc_vars["orderUserRefs"] = "";
-     tc_vars["cart_id"] = "";
-     tc_vars["order_amount"] = "";
-     tc_vars["order_pay_method"] = "";
-     tc_vars["order_amount_ati"] = "";
-     tc_vars["order_amount_wt"] = "";
-     tc_vars["order_new_client"] = "";
-     tc_vars["order_promo_code"] = "";
-     tc_vars["order_nb_products"] = "0";
-     tc_vars["order_zip"] = "";
-     tc_vars["order_state"] = "";
-     
-     // Products
-     tc_vars["order_products"] = [];
-          
 
- </script>
+<!-- START IADVIZE LIVECHAT -->
 
-<!-- TAGCOMMANDER START //-->
 
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/tc_Fnaccom_1_load.js"></script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/tc_Fnaccom_1_exec.js"></script>
-<noscript>
+<script src="http://fnac.livechat.iadvize.com/chat_init.js?sid=3" type="text/javascript"></script>
+
+<!-- END IADVIZE LIVECHAT -->
+
+        </div>
     
-   <iframe src="http://redirect28.tagcommander.com/utils/noscript.php?id=1&mode=iframe&template_type=moteur&page_name=Resultat+Recherche+Autres" width="1" height="1"></iframe>
-</noscript>
 
-<!-- TAGCOMMANDER END //-->
-</body>
+
+
+<div id="dvPopinRedirect"></div>
+
+
+        
+    </body>
 </html>
diff --git a/tests/fixtures/fnac_millenium_suite.html b/tests/fixtures/fnac_millenium_suite.html
index d903ba1ceede443eb26840353ab5928863886a0b..6a459dd96892be2fd21de9403d71725cd306fb28 100644
--- a/tests/fixtures/fnac_millenium_suite.html
+++ b/tests/fixtures/fnac_millenium_suite.html
@@ -3,29 +3,70 @@
 
 
 
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:likemastr="http://likemastr.com/api/ns#">
-<head id="HtmlHead1_Head1"><script src="http://www4-fr.fnac-static.com/js/HEADER.jsg" type="text/javascript"></script><title>
-	Millénium - T2 - broché - Fnac.com - La fille qui rêvait d'un bidon d'essence et d'une allumette - Stieg Larsson - Livre ou ebook
-</title><meta id="HtmlHead1_desc" name="description" content="Fnac.com : Livraison gratuite et - 5% sur tous les livres. Achetez neuf ou d&#39;occasion : Millénium, T2, La fille qui rêvait d&#39;un bidon d&#39;essence et d&#39;une allumette, Stieg Larsson, Actes sud ou téléchargez la version eBook." /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=7" /><meta property="og:title" /><meta property="og:description" content="Fnac.com : Livraison gratuite et - 5% sur tous les livres. Achetez neuf ou d&#39;occasion : Millénium, T2, La fille qui rêvait d&#39;un bidon d&#39;essence et d&#39;une allumette, Stieg Larsson, Actes sud ou téléchargez la version eBook." /><meta property="og:image" content="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif" /><meta property="og:type" content="book" /><meta property="og:url" content="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" /><meta property="og:site_name" content="Fnac.com" /><meta property="og:isbn" content="2742765018" /><meta property="fb:admins" content="100000229423174" /><meta property="fb:page_id" content="167579097467" /><meta property="fb:app_id" content="293710547310964" /><meta property="likemastr:categories" content="NM-Livre,NM-Coups de coeur Livre,NM-Coups de coeur Polar,NM-eBooks au cinéma,NM-Livres d&#39;occasion,NM-Romans Policiers, Thrillers d&#39;occasion,NM-Meilleures Ventes Polar,NM-Polar et Thriller,NM-Coups de coeur Policier,NM-Meilleures ventes Policier,NM-Millénium,NM-Polar entre 5 et 10 €,NM-Roman et Nouvelles,NM-Roman étranger,NM-Roman Scandinave,NM-Polars polaires,NM-Roman Policier et Thriller,NM-Les autres éditeurs de Polars...,NM-Actes Sud,NM-Meilleures ventes Polar,NM-Toute la saga Millénium,S-broché,E-Actes sud,I-Stieg Larsson,TA-Livre" /><link rel="image_src" href="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif" /><link rel="canonical" href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" /><link rel="shortcut icon" href="/favicon.ico" />
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/fnacStruct.css?20120622" />
-      
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/fnacStyles.css?20110607" />
-      
-        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/ficheArticle.css?20110607" />
-        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/communautaire-lite.css" />
+<head id="HtmlHead1_Head1">
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/blkJNHs2TNsokT_qQZfWZp3207A1/HEADER.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/UGN6_qd8NdQ8lAg1v9qgfX2kqBg1/FA2.js"></script>
+<title>
+	Millénium - Tome 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette - Stieg Larsson - broché - Livre ou ebook - Fnac.com
+</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta property="og:title" /><meta property="og:description" content="Fnac.com : Millénium, Tome 2, La fille qui rêvait d&#39;un bidon d&#39;essence et d&#39;une allumette, Stieg Larsson, Actes sud. Livraison gratuite et - 5% sur tous les livres. Achetez neuf ou d&#39;occasion ou téléchargez la version eBook." /><meta property="og:image" content="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif" /><meta property="og:type" content="book" /><meta property="og:url" content="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" /><meta property="og:site_name" content="Fnac.com" /><meta property="og:isbn" content="2742765018" /><meta property="fb:admins" content="100000229423174" /><meta property="fb:page_id" content="167579097467" /><meta property="fb:app_id" content="293710547310964" /><meta property="likemastr:categories" content="NM-Livre,NM-Coups de coeur Livre,NM-Coups de coeur Polar,NM-Polar et Thriller,NM-Coups de coeur Policier,NM-Millénium en eBook,NM-Roman et Nouvelles,NM-Roman étranger,NM-Roman Scandinave,NM-Polars polaires,NM-Roman Policier et Thriller,NM-La saga Millénium,NM-Les autres éditeurs de Polars...,NM-Actes Sud,NM-Meilleures ventes Polar,S-broché,E-Actes sud,I-Stieg Larsson,TA-Livre" /><link rel="image_src" href="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif" /><link rel="canonical" href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" /><link rel="shortcut icon" href="/favicon.ico" /><link href="https://plus.google.com/108105935173065357348" rel="publisher" />
+    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/static/css/iZQofTDMpl-ojnCN7TU-W-p_Gz41/css/fnacStruct.css" />
+
     
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/evenements/moisGaming2012.css?20121309" />
     
-    <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/css/Adherents/weAdh_20092012.css?20121909" />
     
 
-      
-    <!--[if IE 5]>
-    <style type="text/css">
-	    @import url("http://www4-fr.fnac-static.com/js/jsl.js ");
-    </style>
-    <![endif]-->
+<i class="contentOnTop" data-is-TryCard="false" data-is-AboIlli="true" data-image-path="http://www4-fr.fnac-static.com/img/" data-link-express="http://www4.fnac.com/service-livraison-express-plus#bl=surHeader" data-link-cnil="http://www4.fnac.com/Help/fnaccom-cookies.aspx#bl=CNILinfoCookies"></i>
+
+
+        
+        <script>window['adrum-start-time'] = new Date().getTime();</script>
+        <script src="http://www4-fr.fnac-static.com/static/js/e6foZ-KQE1xHasLhlCCmP9O1Ca41/js/adrum.js"></script>
+
+    
+        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/static/css/RnRGJZZmlv8O9INp_Q9OQ_zMbaY1/css/ficheArticle2.css" />
+        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/static/css/cHftbK5MNCFpvF-QkNDhhXjoU9o1/css/communautaire-lite2.css" />
+        
+        <link rel="stylesheet" type="text/css" href="http://www4-fr.fnac-static.com/static/css/GWApqSjLNTQ7Q4dKZaVutMbUnCg1/css/popinMultiArticleOPFA.css" />
+    
+                <script type="text/javascript">
+                    var oas_tag = {};
+                    oas_tag.anchorElementPrefix = 'fnac';
+                    oas_tag.enableRTB = true;
+                    oas_tag.allowSizeOverride = true;
+                    oas_tag.query = 'url=' + encodeURIComponent(location.href);
+                    oas_tag.url = 'd.fnac.com'; //Define OAS URL
+                    oas_tag.sizes = function () {
+                        oas_tag.definePos('Bottom', [1, 1]);
+                        oas_tag.definePos('Bottom2', [996, 42]);
+                    };
+                    oas_tag.site_page = 'www.fnac.com/livres-ebooks-rg';
+                    (function () {
+                        oas_tag.version = '1'; var oas = document.createElement('script'),
+                        protocol = 'https:' == document.location.protocol ? 'https://' : 'http://',
+                        node = document.getElementsByTagName('script')[0];
+                        oas.type = 'text/javascript'; oas.async = true;
+                        oas.src = 'http://www4-fr.fnac-static.com/js/gestion_bandeaux/1.js';
+                        node.parentNode.insertBefore(oas, node);
+                    })();
+                </script>
+            
+
+
+<div id="PopinRetourMag" class="hide genericPopin clearfix bg_blanc pdg_lg" style="width:650px !important;">
+
+<a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+    
+    <img src="http://www4-fr.fnac-static.com/img/fr-FR/popin/popinRetourMag.png" class="dispeblock"/>
+    
+    <p class="fontS_11 noir pdg">* Hors Marketplace</p>
+</div>
+
+
 
 <script type="text/javascript">
     
@@ -36,251 +77,135 @@
     
 </script>
 
-    <script type="text/javascript">
-        function popAddBasketOrSelection(obj, url, e, origin, inputCommentName)
-        {
-            var scomment;
-            origin = parseInt(origin);
-            if(origin == 3)
-            {
-                url += "&comment=" + $(inputCommentName).val();
-                $("#add_selection > a").hide();
-            }
-            $.get(url);
-            var origins = {
-                1: { texte: "Cet article a bien été ajouté à votre panier<br />",
-                    classMrg: "mrg_b"
-                },
-                2: { texte: "Cet article a bien été ajouté à votre sélection<br />",
-                    classMrg: "mrg_b"
-                },
-                3: { texte: "Le commentaire a bien été validé<br />",
-                    classMrg: "mrg_v"
-                },
-                666: { texte: "Cet article a bien été ajouté à votre liste de Noël<br />",
-                    classMrg: "mrg_b"
-                }
-            };
-            if(origins[origin])
-            {
-                var content = origins[origin];
-                var pos = AppCore.modules.utilities.findPos(obj);
-                $("#add_selection").css({
-                    display: "block",
-                    position: "absolute",
-                    zIndex: "300",
-                    left: (pos[0] - 60) + "px",
-                    top: (pos[1] - 140) + "px"
-                }).children("p")
-                .removeClass("mrg_v")
-                .addClass(content.classMrg)
-                .html(content.texte);
-                $("#add_selection a[title=fermer]").unbind("click").click(function()
-                {
-                    $("#add_selection").hide();
-                    return false;
-                });
-                if(typeof (IS_IE) != "undefined")
-                {
-                    ifrlayer.make(document.getElementById('add_selection'));
-                }
-            }
-        }
-    </script>
-    
 
 <script type="text/javascript">
-    //Loading FB like button
-    window.fbAsyncInit = function() {
+    //
+    window.fbAsyncInit = function () {
         FB.init({
-            status: true, // check login status
-            cookie: true, // enable cookies to allow the server to access the session
-            xfbml: true,  // parse XFBML
-            channelUrl: "http://www4.fnac.com//channel_facebook.html" // custom channel
+            status: true, //
+            cookie: true, //
+            xfbml: true,  //
+            channelUrl: "http://www4.fnac.com//channel_facebook.html" //
         });
-        //Loading likeMastr.
-        //Adding auto_discover.
-        var js, id = 'facebook-jssdk-likeMastr';
-        js = document.createElement('script'); js.id = id; js.async = true;
-        js.src = "//likemastr.com/api/52632f92949811bca3a2e36f3fd6d4511ffcdee5a9439565/likes/auto_discover.js";
-        document.getElementsByTagName('head')[0].appendChild(js);
+        //
     };
 
     $(document).ready(function () {
         
-             $.getScript("http://connect.facebook.net/fr_FR/all.js");
+            $.ajax({ url: "http://connect.facebook.net/fr_FR/all.js", dataType: "script", cache: true });
         
     });
-    // Load the SDK Asynchronously
-    //    (function(d) {
-    //        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
-    //        js = d.createElement('script'); js.id = id; js.async = true;
-    //        js.src = "//connect.facebook.net/fr_FR/all.js";
-    //        d.getElementsByTagName('head')[0].appendChild(js);
-    //    } (document));
-    
-    
-</script></head>
-
-
-<div id="add_selection" class="add_selection" style="display:none;">
-    <div class="block block_gris">
-        <div class="blk_inside pdg txt_c">
-            <b class="tl"></b>
-            <b class="tr"></b>
-            <b class="bl"></b>
-            <b class="br"></b>
-            <span class="floatr">
-                <a href="" title="fermer" class="gris">
-                    <img src="http://www4-fr.fnac-static.com/img/boutons/close.gif" alt="fermer" />
-                </a>
-            </span>
-            <div class="clearing"></div>
-            <p class="pdg_no mrg_no gras noir fontplus"></p>
-            <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel='nofollow'>
-                <img src="http://www4-fr.fnac-static.com/img//boutons/voir_panier.png" alt="Voir mon panier"/>
-            </a>
-        </div>
-    </div>
-</div>
-<body id="FA" class="footerOutsidePage " >
-    <div id="page_1col">
-        <form method="post" action="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" id="ASPNetForm">
-<div class="aspNetHidden">
-<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
-<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
-<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTI1MTMwNjcyOQ9kFggCAw9kFgJmD2QWGAICDxYCHgdjb250ZW50BeEBRm5hYy5jb20gOiBMaXZyYWlzb24gZ3JhdHVpdGUgZXQgLSA1JSBzdXIgdG91cyBsZXMgbGl2cmVzLiBBY2hldGV6IG5ldWYgb3UgZCdvY2Nhc2lvbiA6IE1pbGzDqW5pdW0sIFQyLCBMYSBmaWxsZSBxdWkgcsOqdmFpdCBkJ3VuIGJpZG9uIGQnZXNzZW5jZSBldCBkJ3VuZSBhbGx1bWV0dGUsIFN0aWVnIExhcnNzb24sIEFjdGVzIHN1ZCBvdSB0w6lsw6ljaGFyZ2V6IGxhIHZlcnNpb24gZUJvb2suZAIFDxYCHwBkZAIGDxYCHwAF4QFGbmFjLmNvbSA6IExpdnJhaXNvbiBncmF0dWl0ZSBldCAtIDUlIHN1ciB0b3VzIGxlcyBsaXZyZXMuIEFjaGV0ZXogbmV1ZiBvdSBkJ29jY2FzaW9uIDogTWlsbMOpbml1bSwgVDIsIExhIGZpbGxlIHF1aSByw6p2YWl0IGQndW4gYmlkb24gZCdlc3NlbmNlIGV0IGQndW5lIGFsbHVtZXR0ZSwgU3RpZWcgTGFyc3NvbiwgQWN0ZXMgc3VkIG91IHTDqWzDqWNoYXJnZXogbGEgdmVyc2lvbiBlQm9vay5kAgcPFgIfAAVnaHR0cDovL211bHRpbWVkaWEuZm5hYy5jb20vbXVsdGltZWRpYS9GUi9pbWFnZXNfcHJvZHVpdHMvRlIvRm5hYy5jb20vR3JhbmRlczExMC8wLzEvMC85NzgyNzQyNzY1MDEwLmdpZmQCCA8WAh8ABQRib29rZAIJDxYCHwAFdWh0dHA6Ly9saXZyZS5mbmFjLmNvbS9hMTg5MTM1NC9NaWxsZW5pdW0tVDItTGEtZmlsbGUtcXVpLXJldmFpdC1kLXVuLWJpZG9uLWQtZXNzZW5jZS1ldC1kLXVuZS1hbGx1bWV0dGUtU3RpZWctTGFyc3NvbmQCCw8VAjA8bWV0YSBwcm9wZXJ0eT0ib2c6aXNibiIgY29udGVudD0iMjc0Mjc2NTAxOCIgLz4AZAIPDxYCHwAFpAROTS1MaXZyZSxOTS1Db3VwcyBkZSBjb2V1ciBMaXZyZSxOTS1Db3VwcyBkZSBjb2V1ciBQb2xhcixOTS1lQm9va3MgYXUgY2luw6ltYSxOTS1MaXZyZXMgZCdvY2Nhc2lvbixOTS1Sb21hbnMgUG9saWNpZXJzLCBUaHJpbGxlcnMgZCdvY2Nhc2lvbixOTS1NZWlsbGV1cmVzIFZlbnRlcyBQb2xhcixOTS1Qb2xhciBldCBUaHJpbGxlcixOTS1Db3VwcyBkZSBjb2V1ciBQb2xpY2llcixOTS1NZWlsbGV1cmVzIHZlbnRlcyBQb2xpY2llcixOTS1NaWxsw6luaXVtLE5NLVBvbGFyIGVudHJlIDUgZXQgMTAg4oKsLE5NLVJvbWFuIGV0IE5vdXZlbGxlcyxOTS1Sb21hbiDDqXRyYW5nZXIsTk0tUm9tYW4gU2NhbmRpbmF2ZSxOTS1Qb2xhcnMgcG9sYWlyZXMsTk0tUm9tYW4gUG9saWNpZXIgZXQgVGhyaWxsZXIsTk0tTGVzIGF1dHJlcyDDqWRpdGV1cnMgZGUgUG9sYXJzLi4uLE5NLUFjdGVzIFN1ZCxOTS1NZWlsbGV1cmVzIHZlbnRlcyBQb2xhcixOTS1Ub3V0ZSBsYSBzYWdhIE1pbGzDqW5pdW0sUy1icm9jaMOpLEUtQWN0ZXMgc3VkLEktU3RpZWcgTGFyc3NvbixUQS1MaXZyZWQCEA8WAh4EaHJlZgVnaHR0cDovL211bHRpbWVkaWEuZm5hYy5jb20vbXVsdGltZWRpYS9GUi9pbWFnZXNfcHJvZHVpdHMvRlIvRm5hYy5jb20vR3JhbmRlczExMC8wLzEvMC85NzgyNzQyNzY1MDEwLmdpZmQCEQ8WAh8BBXVodHRwOi8vbGl2cmUuZm5hYy5jb20vYTE4OTEzNTQvTWlsbGVuaXVtLVQyLUxhLWZpbGxlLXF1aS1yZXZhaXQtZC11bi1iaWRvbi1kLWVzc2VuY2UtZXQtZC11bmUtYWxsdW1ldHRlLVN0aWVnLUxhcnNzb25kAhMPZBYCZg8VAy9odHRwOi8vd3d3NC1mci5mbmFjLXN0YXRpYy5jb20vY3NzL3VpLnRoZW1lLmNzcy5odHRwOi8vd3d3NC1mci5mbmFjLXN0YXRpYy5jb20vY3NzL3VpLmNvcmUuY3NzMGh0dHA6Ly93d3c0LWZyLmZuYWMtc3RhdGljLmNvbS9jc3MvdWkuc2xpZGVyLmNzc2QCFg9kFgJmDxUBFWh0dHA6Ly93d3c0LmZuYWMuY29tL2QCCw9kFgICAw9kFgICAQ9kFgICAg8WAh4LXyFJdGVtQ291bnQC/////w9kAiQPZBYCZg9kFgRmDxUBAGQCAQ8VAQBkAicPFgIeBFRleHQF7QI8c2NyaXB0IHNyYz0iaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL2pzL0FVRElPUExBWUVSLmpzZyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL2pzL0JBU0tFVC5qc2ciIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Imh0dHA6Ly93d3c0LWZyLmZuYWMtc3RhdGljLmNvbS9qcy9GT09URVIuanNnIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwOi8vd3d3NC1mci5mbmFjLXN0YXRpYy5jb20vanMvRkEuanNnIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PmQYBgUwSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckxpbmtDb250ZW50U3dpdGNoZXIxDw9kZmQFIkFydGljbGVIZWFkZXJQRSRoZWFkUGljdHVyZTEkY3RsMDAPD2RmZAUVQXJ0aWNsZUhlYWRlclBFJGN0bDAwDw9kZmQFQEZvb3RlcjEkRm9vdGVyU3RlYW1Sb2xsUGxhY2VIb2xkZXIxJGN0bDAwJEZvb3RlckNvbnRlbnRTd2l0Y2hlcjEPD2RmZAUsSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckNvbnRlbnRTd2l0Y2hlcjEPD2RmZAUtSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckJhc2tldCRNdWx0aU1vZGUxDw9kZmTVpEaslsaad0hFJ/XRXxDc2RqY9w==" />
-</div>
+    //
+</script><meta name="description" content="Millénium, Tome 2, La fille qui rêvait d&#39;un bidon d&#39;essence et d&#39;une allumette, Stieg Larsson, Actes sud&quot;. Livraison gratuite et - 5% sur tous les livres en magasin. Achetez neuf ou d&#39;occasionou téléchargez la version eBook." /></head>
 
-<script type="text/javascript">
-//<![CDATA[
-var theForm = document.forms['ASPNetForm'];
-if (!theForm) {
-    theForm = document.ASPNetForm;
-}
-function __doPostBack(eventTarget, eventArgument) {
-    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
-        theForm.__EVENTTARGET.value = eventTarget;
-        theForm.__EVENTARGUMENT.value = eventArgument;
-        theForm.submit();
-    }
-}
-//]]>
-</script>
 
 
-<script src="http://www4.fnac.com//WebResource.axd?d=c3_21RDoYy8MFqNbP0ohoKYWm8b3LIVZMPr_A_qKEhCGmz2roAqL67q2bZ0BS1VSXCPVxVnMT1s6sWcWtfPiqbOOgCs1&amp;t=634816490201440219" type="text/javascript"></script>
 
 
-<script type="text/javascript">
-//<![CDATA[
 
-WebForm_InitCallback();//]]>
-</script>
+<body class="FA footerOutsidePage ">
+    <div id="page_1col">
+        <form method="post" action="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson?NUMERICAL=Y" id="ASPNetForm">
+<div class="aspNetHidden">
+<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY3NzQ4NjM1NQ9kFhICBRBkZBYCZg9kFhYCAw8WAh4HY29udGVudGRkAgQPFgIfAAXkAUZuYWMuY29tIDogTWlsbMOpbml1bSwgVG9tZSAyLCBMYSBmaWxsZSBxdWkgcsOqdmFpdCBkJ3VuIGJpZG9uIGQnZXNzZW5jZSBldCBkJ3VuZSBhbGx1bWV0dGUsIFN0aWVnIExhcnNzb24sIEFjdGVzIHN1ZC4gTGl2cmFpc29uIGdyYXR1aXRlIGV0IC0gNSUgc3VyIHRvdXMgbGVzIGxpdnJlcy4gQWNoZXRleiBuZXVmIG91IGQnb2NjYXNpb24gb3UgdMOpbMOpY2hhcmdleiBsYSB2ZXJzaW9uIGVCb29rLmQCBQ8WAh8ABWpodHRwOi8vc3RhdGljLmZuYWMtc3RhdGljLmNvbS9tdWx0aW1lZGlhL0ZSL2ltYWdlc19wcm9kdWl0cy9GUi9GbmFjLmNvbS9HcmFuZGVzMTEwLzAvMS8wLzk3ODI3NDI3NjUwMTAuZ2lmZAIGDxYCHwAFBGJvb2tkAgcPFgIfAAV5aHR0cDovL2xpdnJlLmZuYWMuY29tL2ExODkxMzU0L01pbGxlbml1bS1Ub21lLTItTGEtZmlsbGUtcXVpLXJldmFpdC1kLXVuLWJpZG9uLWQtZXNzZW5jZS1ldC1kLXVuZS1hbGx1bWV0dGUtU3RpZWctTGFyc3NvbmQCCQ8VAjA8bWV0YSBwcm9wZXJ0eT0ib2c6aXNibiIgY29udGVudD0iMjc0Mjc2NTAxOCIgLz4AZAINDxYCHwAF/wJOTS1MaXZyZSxOTS1Db3VwcyBkZSBjb2V1ciBMaXZyZSxOTS1Db3VwcyBkZSBjb2V1ciBQb2xhcixOTS1Qb2xhciBldCBUaHJpbGxlcixOTS1Db3VwcyBkZSBjb2V1ciBQb2xpY2llcixOTS1NaWxsw6luaXVtIGVuIGVCb29rLE5NLVJvbWFuIGV0IE5vdXZlbGxlcyxOTS1Sb21hbiDDqXRyYW5nZXIsTk0tUm9tYW4gU2NhbmRpbmF2ZSxOTS1Qb2xhcnMgcG9sYWlyZXMsTk0tUm9tYW4gUG9saWNpZXIgZXQgVGhyaWxsZXIsTk0tTGEgc2FnYSBNaWxsw6luaXVtLE5NLUxlcyBhdXRyZXMgw6lkaXRldXJzIGRlIFBvbGFycy4uLixOTS1BY3RlcyBTdWQsTk0tTWVpbGxldXJlcyB2ZW50ZXMgUG9sYXIsUy1icm9jaMOpLEUtQWN0ZXMgc3VkLEktU3RpZWcgTGFyc3NvbixUQS1MaXZyZWQCDg8WAh4EaHJlZgVqaHR0cDovL3N0YXRpYy5mbmFjLXN0YXRpYy5jb20vbXVsdGltZWRpYS9GUi9pbWFnZXNfcHJvZHVpdHMvRlIvRm5hYy5jb20vR3JhbmRlczExMC8wLzEvMC85NzgyNzQyNzY1MDEwLmdpZmQCDw8WAh8BBXlodHRwOi8vbGl2cmUuZm5hYy5jb20vYTE4OTEzNTQvTWlsbGVuaXVtLVRvbWUtMi1MYS1maWxsZS1xdWktcmV2YWl0LWQtdW4tYmlkb24tZC1lc3NlbmNlLWV0LWQtdW5lLWFsbHVtZXR0ZS1TdGllZy1MYXJzc29uZAISEGRkFgICAw8VA1dodHRwOi8vd3d3NC1mci5mbmFjLXN0YXRpYy5jb20vc3RhdGljL2Nzcy9SZV9Ia29XNEpwUHZBZWtScl80bjdRTkNkNDQxL2Nzcy91aS50aGVtZS5jc3NWaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL3N0YXRpYy9jc3MvbmJ6QVV0WlowWUZubFM1dzZnRjZLWHB2SEJNMS9jc3MvdWkuY29yZS5jc3NYaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL3N0YXRpYy9jc3MvWU5EeEdFd1Rkd0RYUDhOTlFzei1NOUtpeWVVMS9jc3MvdWkuc2xpZGVyLmNzc2QCFBBkZBYCZg8VARVodHRwOi8vd3d3NC5mbmFjLmNvbS9kAgoQZGQWAgIKEGRkFgJmEGRkFgRmDxUBAGQCAQ8VAQBkAgsQZGQWAgIPEGRkFgICAhBkZBYCAgQPFgIeC18hSXRlbUNvdW50Av////8PZAINEGRkFgICCxBkZBYCAgIQZGQWAgIEDxYCHwIC/////w9kAg4QZGQWAgIKEGRkFgJmEGRkFgRmDxUBAGQCAQ8VAQBkAg8QZGQWAgIPEGRkFgICAhBkZBYCAgQPFgIfAgL/////D2QCEBBkZBYCAgoQZGQWAmYQZGQWBGYPFQEAZAIBDxUBAGQCFBBkZBYCAgoQZGQWAmYQZGQWBGYPFQEAZAIBDxUBAGQCHQ8WAh4EVGV4dAWLAw0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL3N0YXRpYy9qc2cvQ25sb282M1BlUnRFaWNuUkZxa0pYQ1dNZlNrMS9GT09URVIyLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3c0LWZyLmZuYWMtc3RhdGljLmNvbS9zdGF0aWMvanNnL2pQYk12WmN2TGxsRjhZMUhDTGVBS3I4WjFnbzEvQVVESU9QTEFZRVIuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3d3dzQtZnIuZm5hYy1zdGF0aWMuY29tL3N0YXRpYy9qc2cvWGxJQ1ZvRnJkUHdPN2lKVWI3NE4yTzhLUExVMS9CQVNLRVQuanMiPjwvc2NyaXB0Pg0KZBgYBTNIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRpcmFnZXMkY3RsMDAPD2QCAWQFPEFydGljbGVIZWFkZXJQRUZPRm5hYyRBcnRpY2xlRGVzY3JpcHRpb24kQXJ0aWNsZVN3aXRjaGVyTmV3MQ8PZGZkBTBIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTGlua0NvbnRlbnRTd2l0Y2hlcjEPD2RmZAU2SGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUYWJNdXNpcXVlJGN0bDAwDw9kAgFkBUBGb290ZXIxJEZvb3RlclN0ZWFtUm9sbFBsYWNlSG9sZGVyMSRjdGwwMCRGb290ZXJDb250ZW50U3dpdGNoZXIxDw9kZmQFNkhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51U3BlY3RhY2xlcyRjdGwwMA8PZAIBZAUzSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVWb3lhZ2VzJGN0bDAwDw9kAgFkBThBcnRpY2xlSGVhZGVyUEVGTyRBcnRpY2xlRGVzY3JpcHRpb24kQXJ0aWNsZVN3aXRjaGVyTmV3MQ8PZGZkBTVIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYkVuZmFudCRjdGwwMA8PZAIBZAU0SGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVDb2ZmcmV0cyRjdGwwMA8PZAIBZAU0SGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUYWJWaWRlbyRjdGwwMA8PZAIBZAUtSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlckJhc2tldCRNdWx0aU1vZGUxDw9kZmQFNEhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiTGl2cmUkY3RsMDAPD2QCAWQFMkhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiU29uJGN0bDAwDw9kAgFkBTVIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYk1haXNvbiRjdGwwMA8PZAIBZAU6UEVBcnRpY2xlUkNGTyRPdGhlckNsaWVudFNhbGVzMSRDb29raWVTdXBwb3J0Vmlld1N3aXRjaGVyMQ8PZGZkBThIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYkpldXhWaWRlbyRjdGwwMA8PZAIBZAU4UEVBcnRpY2xlUkMkT3RoZXJDbGllbnRTYWxlczEkQ29va2llU3VwcG9ydFZpZXdTd2l0Y2hlcjEPD2RmZAU1SGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUYWJUZWxHUFMkY3RsMDAPD2QCAWQFNkFydGljbGVIZWFkZXJQRSRBcnRpY2xlRGVzY3JpcHRpb24kQXJ0aWNsZVN3aXRjaGVyTmV3MQ8PZGZkBTtIZWFkZXIxJEhlYWRlcjEkY3RsMDAkSGVhZGVyTWVudTEkbWVudVRhYkluZm9ybWF0aXF1ZSRjdGwwMA8PZAIBZAUxSGVhZGVyMSRIZWFkZXIxJGN0bDAwJEhlYWRlck1lbnUxJG1lbnVUYWJUViRjdGwwMA8PZAIBZAU5UEVBcnRpY2xlUkMxJE90aGVyQ2xpZW50U2FsZXMxJENvb2tpZVN1cHBvcnRWaWV3U3dpdGNoZXIxDw9kZmQFNEhlYWRlcjEkSGVhZGVyMSRjdGwwMCRIZWFkZXJNZW51MSRtZW51VGFiUGhvdG8kY3RsMDAPD2QCAWRliFyQ3vpCzEZbPxgSfuLv0Fnq6g==" />
+</div>
 </form>
+        <input type="hidden" id="asyncLoadHighLightPostParam" />
+        <input type="hidden" id="asyncLoadRichContentPostParam" />
         
-
 <script type="text/javascript">
-    function Get_BasketLimitAddedArticles()
-    {
-        return 999 ;
-    }
-    function GetWWWDOtNetBaseUrl()
-    {
-        return 'http://www4.fnac.com/' ;
-    }
-    function GetWWWDOtNetPathRoot()
-    {
-        var pathRoot = '';
-        return (pathRoot == "" ? pathRoot : "/"+pathRoot);
-    }
-    function GetImagesPathWithCulture()
-    {
-        return 'http://www4-fr.fnac-static.com/img/fr-FR/' ;
-    }
+function Get_BasketLimitAddedArticles() { return 999; }
+function GetWWWDOtNetBaseUrl() { return 'http://www4.fnac.com/'; }
+function GetWWWDOtNetPathRoot() { return ''; }
+function GetImagesPathWithCulture() { return 'http://www4-fr.fnac-static.com/img/fr-FR/'; }
 </script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/advancedAjax.js"></script>
-
-
-
-<script type="text/javascript">
-    $(function () {
 
-        //on boucle sur tous les éléments de type "bouton ajouter au panier"
-        $('.FnacBtnAddBasket').live("click", function (o) {
-            o.stopPropagation();
-            //on récupère les attributs
-            var IdProd = $(this).attr("FnacIdProduct");
-            var IdOffre = $(this).attr("FnacIdOffre");
-            var PageOriginClick = $(this).attr("PageOriginClickToBasketType");
-            var Qt = $(this).attr("FnacQuantity");
-            var AdditionalEvent = $(this).attr("FnacAdditionalEvent");
-            var requete = '{|Id|:|this|^|ErgoIdentifier|:{|Quantity|:{3}^|Offer|:|{1}|^|UiUpdateMethod|:0^|UpdateMethodPlace|:0^|Prid|:{0}^|PossibleTarget|:1^|Origine|:0^|PopinId|:null^|PanelId|:null^|Type|:0^|ItemArticleType|:0^|Reference|:null^|ConfigName|:|default|^|OfferId|:0^|BundleItemIdentifiers|:null}}';
-
-            //valeurs par défaut
-            if (!IdOffre)
-                IdOffre = "00000000-0000-0000-0000-000000000000";
-
-            if (!Qt)
-                Qt = 1;
-
-            //on mets les bonnes valeurs dans la chaîne
-            requete = requete.replace('{0}', IdProd).replace('{1}', IdOffre).replace('{3}', Qt);
-            trackBasket(IdProd, PageOriginClick);
-            if (!AdditionalEvent) {
-                ManageBasketAjax(requete, this.href);
-                return false;
-            }
-            else {
-                ManageBasketAjax(requete, this.href);
-                eval(AdditionalEvent);
-                return false;
-            }
-        });
-        
+<input type="hidden" id="pathRoot" value="" />
 
-    });
 
-</script>
 
 
-<div id="HEADER">
+<div id="HEADER" class="posrel iPadHide">
 	<!-- *********************** #TOP **************************** -->
-    <div id="TOP">
-	
+	<div id="TOP" class="clearfix">
+
 		<p id="topLEFT">
-    
-            
+
             <a id="logoFnac" href="http://www.fnac.com/">fnac.com</a>
-         
             
 		</p><!-- /fin/#topLEFT-->
 
-		<div id="topRIGHT">
-
-			     
+        <div id="topChaines" class="clearfix">
+            <ul id="CHAINES" class="clearfix">
+                
                     
 
 
-<ul id="CHAINES">
-	<li id="ch-FnacPro" class="first"><span id="MHFnacpro" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A42C0C14F19424F4E1F1241482E4245B4494A4230C14F lkCh gras">Fnacpro</span>|</li>
-	<li id="ch-Argus"><span id="MHArgusUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4CC3464B43C21F424F4E4E4F491FC143C0C146C2431F4B43444AC348CB194AC2C0C51241482E4245BAC14CC3C2 lkCh gras">Argus reprise</span>|</li>
-	<li id="ch-Myfnac"><span id="MHMyFnacUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBEC6B4494A421FBB43444AC348CB194AC2C0C51241482E4245BEC6B4494A42 lkCh gras">My Fnac</span>|</li>
-	<li id="ch-Actu"><span id="MHActuFnac" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FB843C21EB3C44349434E4349CBC21EB4494A421FB3C44349434E4349CBC21F4248222A1FCC1E2B1241482E4245BA42CBC3 lkCh gras">Événements</span>|</li>
-	<li id="ch-Passion"><span id="MHEspacePassionUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1F4843C21E43C2C04A4243C21EC04AC2C2464F49C21E4B431E484A1EB4494A421FCC1E2B1241482E4245304AC2C2 lkCh gras">Communautés</span>|</li>
-	<li id="ch-Telech"><span id="MHTelechargementUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FCB43484342454AC14C43C1194AC2C01241482E42453B4348434245 lkCh gras">Téléchargements</span>|</li>
-    <li id="ch-Service"><span id="MHServiceUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F3243C1C44642431F4B43444AC348CB194AC2C0C51241482E42453243C1C4464243 lkCh gras">SAV &amp; SERVICES</span>|</li>
-	<li id="ch-Magasins"><span id="MHMagasinFnacUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484F424A4846C243C11E4E4A4C4AC246491E44494A421241482E4245BE4A4C lkCh gras">Magasins</span>|</li>
-	<li id="ch-Adherents"><span id="MHAdherentFnacUrl" class="f_fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FBE4A4C4ACD4649431F454F4E433F4A4B4543C14349CBC2194AC2C01241482E4245BA4B45 lkCh gras">Adhérents</span></li>
-</ul><!-- /fin/#CHAINES-->
+
+	<li id="ch-Adherents"><span id="MHAdherentFnacUrl" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FBE4A4C4ACD4649431F454F4E433F4A4B4543C14349CBC2194AC2C01241482E4245BA4B45 lkCh "><i class="icoCH icoAdh"><!-- --></i>Adhérents</span></li>
+	<li id="ch-Magasins"><span id="MHMagasinFnacUrl" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484F424A4846C243C11E4E4A4C4AC246491E44494A421241482E4245BE4A4C lkCh "><i class="icoCH icoMag"><!-- --></i>Magasins</span></li>
+    <li id="ch-Vendre"><a href="http://www4.fnac.com/Guides/marketplace/vente-et-revente/default.aspx#bl=chVen" class="lkCh">Revendre</a></li>
+    <li id="ch-FnacPro"><span id="MHFnacpro" class="fnac 45CBCBC02D1F1FCCCCCC1944494A42C0C14F19424F4E1F2F4A2E2A14BFC1464C46492EB4B9BAB23031BF3FB5B3BABBB331 lkCh ">Fnacpro</span></li>
+    <li id="ch-Actu"><span id="MHActuFnac" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FB843C21EB3C44349434E4349CBC21EB4494A421FB3C44349434E4349CBC21F4248222A1FCC1E2B1241482E4245BA42CBC3 lkCh ">Événements</span></li>
+	<li id="ch-Passion"><span id="MHEspacePassionUrl" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1F4843C21E43C2C04A4243C21EC04AC2C2464F49C21E4B431E484A1EB4494A421FCC1E2B1241482E4245304AC2C2 lkCh ">Nos conseils</span></li>
+    <li id="ch-Service"><span id="MHServiceUrl" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F3243C1C44642431F4B43444AC348CB194AC2C0C51241482E42453243C1C4464243 lkCh">SAV</span></li>
+    <li id="ch-Aide"><span id="MHAideUrl" target="_blank" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01FB44ACA194AC2C0C51241482E4245BA464B lkCh">Aide</span></li>
+
+
+
+
+
+
+
+
 
                 
-			<div id="SEARCH">
-				
 
+                <li class="pushCA">
+    <span class="pushCAtrigger">&Eacute;conomisez toute l'année<i class="icoFLE"><!-- --></i><i class="decoCA"><!-- --></i></span>
+
+
+<div id="pushCAcontent" class=" hide">
+    
+        <span class="pushCAimg">La carte fnac: -5% sur les livres et le high-tech + -40% de remises lors de ventes privées + Livraison gratuite sur les livres + des spectacles à prix reduit</span>
+    <a href="http://www4.fnac.com/Adherents/choisir_carte.aspx#bl=pushTop1" class="pushCAlk">Prendre la carte</a>
+    
+</div>
+    
 <script type="text/javascript">
-    function redirectToAdvancedSearch() { 
-        var url = "http://www4.fnac.com/Search/advancedSearch.aspx";
+    $(function () {
+        var wTrig, wLay, posXLay;
+        wTrig = $(".pushCAtrigger").parent().width();
+        wLay = $("#pushCAcontent").width();
+        posXLay = wTrig - wLay + 11;
+        $(".pushCAtrigger").popinManager({
+            targetContent: "#pushCAcontent",
+            modeView: "layer",
+            eventStart: "click",
+            eventStop: "mouseleave",
+            timer: "250",
+            customPosition: true,
+            relativePosition: { right: posXLay, top: 10 }
+        });
+        $("#pushCAcontent").on("click touchstart", function () {
+            $("#ContainerPopin_pushCAtrigger").css("display", "none");
+        });
+    });
+</script>
+
+</li>
+
+            </ul><!-- /fin/#CHAINES-->        
+        </div>
+
+
+		<div id="topRIGHT" class="clearfix">
+
+			<div id="SEARCH">
+				
+    <script type="text/javascript">
+        function redirectToAdvancedSearch() { 
+            var url = "http://www4.fnac.com/Search/advancedSearch.aspx";
         //get selected item
 
         var selectedCategory = $("#category");
@@ -300,250 +225,112 @@ WebForm_InitCallback();//]]>
         //redirect to url
         window.location = url
     }
-</script>
+    </script>
+
 <input type="hidden" id="advancedSearchUrl" value="http://www4.fnac.com/Search/advancedSearch.aspx" />
 
+
     <script type="text/javascript">
-    AppCore.ready(function(){
-        AppCore.modules.ready('searchAutocomplete', function(){
-            AppCore.modules.searchAutocomplete.urlAutocomplete = "http://autocompletion.fnac.com/search-autocomplete/autocomplete?method=GetCommonSuggest&isNewVersion=1";
-            AppCore.start("searchAutocomplete");
-        });
+        AppCore.ready(function(){
+            AppCore.modules.ready('searchAutocomplete', function () {
+            
 
-    });
-    </script>
+                if (AppCore.defaults != null && AppCore.defaults.searchAutocomplete != null)
+                    AppCore.modules.searchAutocomplete.defaultAB = AppCore.defaults.searchAutocomplete.defaultAB;
 
-    <form class="block_search" accept-charset="UTF-8" action="http://recherche.fnac.com/Search/SearchResult.aspx" method="GET" name="QuickSearchForm" id="QuickSearchForm">
-	    <fieldset>
-	        <span id="contain" class="boxSelect">
-		        <select name="SCat" id="category" class="realSelect">
-                    <option value='0!1'>Tous&nbsp;produits</option><option value='2!1' selected='selected'>Livre</option><option value='1!1'>Livre en VO</option><option value='22!1'>Livres numériques</option><option value='3!1'>Musique</option><option value='21!1'>Téléchargements MP3</option><option value='4!1'>DVD et Blu-Ray</option><option value='5!1'>Jeux vidéo</option><option value='6!1'>Logiciels</option><option value='7!1'>Jeux et Jouets</option><option value='8!1'>High-tech</option><option value='9!1'>Instrument de musique</option><option value='10!1'>Astronomie</option><option value='11!1'>Gadget et Goodies</option><option value='12!1'>Poster et décoration</option><option value='13!1'>Développement Durable</option><option value='14!1'>Fournitures de bureau</option><option value='20!1'>Loisirs et bien-être</option><option value='15!1'>Partition et Méthode</option><option value='23!1'>Petit Electroménager</option><option value='24!1'>Gros Electroménager</option><option value='25!1'>Coffrets Cadeaux</option><option value='16!1'>Spectacles</option>
-		        </select>
-		        <span class="txtCat foSelect">Texte</span><i class="handler">></i>
-		    </span>
-		    <input type="text" class="text" id="Fnac_Search" name="Search" value=""/>
-		    <input type="hidden" name="sft" value="1" />
-			<input class="btSubmit" type="submit" name="submitbtn" value="OK" title='Lancer la recherche'/>
-
-		   
-			
+                if (AppCore.modules.searchAutocomplete.defaultAB == null)
+                    AppCore.modules.searchAutocomplete.defaultAB =  'A' ;
+                AppCore.modules.searchAutocomplete.urlAutocomplete = "http://autocomplete-fr.ws.fnac.com/search-autocomplete/autocomplete?client=1&method=GetCommonSuggest";
+                AppCore.modules.searchAutocomplete.groups = [
+                    {
+                        name: "Suggestions de mots clés",
+                    type: 's',
+                    max: 5,
+                    maxChars: 33,
+                    order: 1
+                },
+                {
+                    name: "Voir les rayons",
+                    type: 'm',
+                    max: 5,
+                    maxChars: 33,
+                    order: 2
+                },
+                {
+                    name: "Produits",
+                    type: 'p',
+                    max: 5,
+                    maxChars: 50,
+                    order: 0
+                }
+            ];
+                
+                AppCore.start("searchAutocomplete");
+            });
 
-	    </fieldset>
-    </form>
-<script type="text/javascript">
-	/* script categorie */
-	$("#contain .txtCat").click(function () {
-		$("#contain .handler").click();
-	})
+        });
+    </script>
 
-	$("#contain .handler").click(function () {
-		ExpandSelect(document.getElementById("category"), 25);
-	});
+    
 
-	$("#category").change(function () {
-		loadValue();
-	});
+<form class="block_search" accept-charset="UTF-8" action="http://recherche.fnac.com/SearchResult/ResultList.aspx" method="GET" name="QuickSearchForm" id="QuickSearchForm">
+    <fieldset>
+        <div id="contain" class="boxSelect">
+            <select name="SCat" id="category" class="realSelect">
+                <option value='0!1'>Tous&nbsp;produits</option><option value='7!1'>Jeu et Jouet</option><option value='2!1' selected='selected'>Livre</option><option value='36!1'>Son, Hifi, Lecteur MP3</option><option value='22!1'>Livre numérique</option><option value='32!1'>TV, Vidéo, Home cinéma</option><option value='1!1'>Livre en VO</option><option value='23!1'>Maison & Cuisine</option><option value='3!1'>Musique</option><option value='30!1'>Puériculture</option><option value='4!1'>DVD et Blu-Ray</option><option value='6!1'>Logiciel</option><option value='5!1'>Jeu vidéo</option><option value='14!1'>Papeterie</option><option value='8!1'>Tablette, Informatique</option><option value='16!1'>Billetterie</option><option value='34!1'>Téléphone, GPS</option><option value='11!1'>Gadget et Goodies</option><option value='35!1'>Photo, Caméscope</option><option value='25!1'>Coffret Cadeau</option>
+            </select>
+        </div>
+        <input type="text" class="text" placeholder="Rechercher" id="Fnac_Search" name="Search" value="" />
+        <input type="hidden" name="sft" value="1" />
+        <input type="hidden" name="sa" id="QuickSearchFormSa" value="0" />
+        <input class="btSubmit" type="submit" name="submitbtn" value="OK" title='Lancer la recherche' />
+        
+    </fieldset>
+</form>
+<script type="text/javascript">
+    $('.realSelect').comboToList({ hiddenInputName: 'SCat' });
+</script>
 
-	function loadValue() {
-		var loadCatValue = $("option:selected", "#category").text();
-		$("#contain .txtCat").text(loadCatValue);
-	}
-	loadValue();
-
-
-	function ExpandSelect(select, maxOptionsVisible) {
-		//
-		// ExpandSelect 1.00
-		// Copyright (c) Czarek Tomczak. All rights reserved.
-		//
-		// License:
-		//      New BSD License (free for any use, read more at http://www.opensource.org/licenses/bsd-license.php)
-		//
-		// Project's website:
-		//      http://code.google.com/p/expandselect/
-		//
-
-		if (typeof maxOptionsVisible == "undefined") {
-			maxOptionsVisible = 20;
-		}
-		if (typeof select == "string") {
-			select = document.getElementById(select);
-		}
-		if (typeof window["ExpandSelect_tempID"] == "undefined") {
-			window["ExpandSelect_tempID"] = 0;
-		}
-		window["ExpandSelect_tempID"]++;
-
-		var rects = select.getClientRects();
-
-		// ie: cannot populate options using innerHTML.
-		function PopulateOptions(select, select2) {
-			select2.options.length = 0; // clear out existing items
-			for (var i = 0; i < select.options.length; i++) {
-				var d = select.options[i];
-				select2.options.add(new Option(d.text, i))
-			}
-		}
-
-		var select2 = document.createElement("SELECT");
-		//select2.innerHTML = select.innerHTML;
-		PopulateOptions(select, select2);
-		select2.style.cssText = "visibility: hidden;";
-		if (select.style.width) {
-			select2.style.width = select.style.width;
-		}
-		if (select.style.height) {
-			select2.style.height = select.style.height;
-		}
-		select2.id = "ExpandSelect_" + window.ExpandSelect_tempID;
-
-		select.parentNode.insertBefore(select2, select.nextSibling);
-		select = select.parentNode.removeChild(select);
-
-		if (select.length > maxOptionsVisible) {
-			select.size = maxOptionsVisible;
-		} else {
-			select.size = select.length;
-		}
-
-		if ("pageXOffset" in window) {
-			var scrollLeft = window.pageXOffset;
-			var scrollTop = window.pageYOffset;
-		} else {
-			// ie <= 8
-			// Function taken from here: http://help.dottoro.com/ljafodvj.php
-			function GetZoomFactor() {
-				var factor = 1;
-				if (document.body.getBoundingClientRect) {
-					var rect = document.body.getBoundingClientRect();
-					var physicalW = rect.right - rect.left;
-					var logicalW = document.body.offsetWidth;
-					factor = Math.round((physicalW / logicalW) * 100) / 100;
-				}
-				return factor;
-			}
-			var zoomFactor = GetZoomFactor();
-			var scrollLeft = Math.round(document.documentElement.scrollLeft / zoomFactor);
-			var scrollTop = Math.round(document.documentElement.scrollTop / zoomFactor);
-		}
-
-		select.style.position = "absolute";
-		select.style.left = (rects[0].left + scrollLeft) + "px";
-		select.style.top = (rects[0].top + scrollTop + 29) + "px";
-		select.style.zIndex = "1000";
-
-		var keydownFunc = function (e) {
-			e = e ? e : window.event;
-			// Need to implement hiding select on "Escape" and "Enter".
-			if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
-				return 1;
-			}
-			// Escape, Enter.
-			if (27 == e.keyCode || 13 == e.keyCode) {
-				select.blur();
-				return 0;
-			}
-			return 1;
-		};
-
-		if (select.addEventListener) {
-			select.addEventListener("keydown", keydownFunc, false);
-		} else {
-			select.attachEvent("onkeydown", keydownFunc);
-		}
-
-		var tempID = window["ExpandSelect_tempID"];
-
-		var clickFunc = function (e) {
-			e = e ? e : window.event;
-			if (e.target) {
-				if (e.target.tagName == "OPTION") {
-					select.blur();
-				}
-			} else {
-				// IE case.
-				if (e.srcElement.tagName == "SELECT" || e.srcElement.tagName == "OPTION") {
-					select.blur();
-				}
-			}
-		};
-
-		if (select.addEventListener) {
-			select.addEventListener("click", clickFunc, false);
-		} else {
-			select.attachEvent("onclick", clickFunc);
-		}
-
-		var blurFunc = function () {
-			if (select.removeEventListener) {
-				select.removeEventListener("blur", arguments.callee, false);
-				select.removeEventListener("click", clickFunc, false);
-				select.removeEventListener("keydown", keydownFunc, false);
-			} else {
-				select.detachEvent("onblur", arguments.callee);
-				select.detachEvent("onclick", clickFunc);
-				select.detachEvent("onkeydown", keydownFunc);
-			}
-			select.size = 1;
-			select.style.position = "static";
-			select = select.parentNode.removeChild(select);
-			var select2 = document.getElementById("ExpandSelect_" + tempID);
-			select2.parentNode.insertBefore(select, select2);
-			select2.parentNode.removeChild(select2);
-
-		};
-
-		if (select.addEventListener) {
-			select.addEventListener("blur", blurFunc, false);
-		} else {
-			select.attachEvent("onblur", blurFunc);
-		}
-
-		document.body.appendChild(select);
-		select.focus();
-	}
 
-</script>
 
 
         
 
 			</div><!-- /fin/#SEARCH-->
 
-			<div id="MONCOIN">
+
+			<div id="MONCOIN" class="clearfix">
                 
-				<p id="monCompte">
-				    <strong>
-				        <span id="MonCompte" class="f_fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBA42424FC349CB1F30C14F4446481FBB43444AC348CB194AC2C0C51241482E45434A4B lkCompte">Mon Compte</span>
-                    </strong>
-                    <strong><a href="http://www4.fnac.com/Help/Faq.aspx#bl=head" target="aide" title="Aide" class="lkHelp">Aide</a></strong>
+				<p id="monCompte"> 
+                    <span id="MonCompteLink" class="monCompteOng ">
+
+                        <a id="FnacCryptLink1" href="#">
+                                <i class="icoMY icoId"><!-- --></i>
+                            </a>
+                        
+                            <a href="https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Standard&PageRedir=http%3a%2f%2fwww.fnac.com%2f" class="lkID colorLk">Se connecter</a>
+                        
+                    </span>
                 </p>
+
                 
-                <div id="HeaderBasket">
-<!--<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/Player30sFunctions.js"></script>-->
 
+
+<p class="maWL">
+    <a class="wlHeaderLk_new showBlockWishlistHeader" href="http://www4.fnac.com/Account/Wishlist/Home">
+        <i class="icoMY icoList"><!-- --></i>
+        <span>Mes listes</span>
+        
+    </a>
+
+    <span id="block-header-wishlist" class="hide">
+    </span>
+</p>
+                <div id="HeaderBasket">
 <script type="text/javascript">
     //Utilisé de partout surtout communautaire. Sera à supprimer.
     var scriptImagesPath = 'http://www4-fr.fnac-static.com/img/';
     
-    AppCore.ready(function(){
-        AppCore.modules.ready("playerIllimite", function(){
-            var params = {
-                playerUrl: 'http://www4.fnac.com/Shelf/Common/Content/Player30s.aspx',
-                playerDomain: '.fnac.com',
-                onPlayFlag: AppCore.modules.cookies.get("PlayerPlaying")=='1',
-                isOpen: AppCore.modules.cookies.get("Player") == '1'
-            };
-            //Init player module.
-            AppCore.start("playerIllimite", params);
-            playerIllimite = AppCore.modules.playerIllimite;
-            
-            
-            try{
-                window.onbeforeunload = playerIllimite.updatePlayerCookies;
-            }catch(e){}
-        });
-    });
     //Basket interface.
     function AddToMyBasket(serializedId, obj)
     {
@@ -601,1045 +388,449 @@ WebForm_InitCallback();//]]>
                 document.location.href = prev;
             }
         }
-    }	
+    }
+    
+    function getCookieVal(offset) {
+        var endstr = document.cookie.indexOf(";", offset);
+        if (endstr == -1)
+            endstr = document.cookie.length;
+        return unescape(document.cookie.substring(offset, endstr));
+    }
+    
+    function GetCookie(name) {
+        var arg = name + "=";
+        var alen = arg.length;
+        var clen = document.cookie.length;
+        var i = 0;
+        while (i < clen) {
+            var j = i + alen;
+            if (document.cookie.substring(i, j) == arg)
+                return getCookieVal(j);
+            i = document.cookie.indexOf(" ", i) + 1;
+            if (i == 0) break;
+        }
+        return null;
+    }
+    
+    $(document ).ready(function() {
+        var nbArtCookieCount = GetCookie('NBART');
+        var nbArtCount = 0;
+        if(nbArtCookieCount != nbArtCount ){
+            if(nbArtCount >= 1){
+                if(nbArtCookieCount >=1){
+                    $('#totalArticlesPanier').text(nbArtCookieCount);
+                }
+                else{
+                    $('#totArticlesCount').html('');
+                }
+            }
+            else {
+                if(nbArtCookieCount >=1){
+                    $('#totArticlesCount').html ('<span id="totalArticlesPanier">'+ nbArtCookieCount+'</span>');
+                }
+            }
+        }
+    });
 </script>
 
+
 <div id="monPanier">
 <input type="hidden" id="NbArt" value="" />
 
-			<div id="cartouche">
-				<p class="clearfix">
-				    
-				    
-						        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel="nofollow">
-					        
-					    <em class="panier">panier</em>
-					</a>		
-					<span class="recapPanier">
-					    
-							        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel="nofollow">
-						        Mon panier
-					    </a>
-					</span>
-					
-					<span id="totArticlesCount" class="totArticles"> 
-					
-					
+        
+        <span class="recapPanier">
+		Panier
 					
-					     :
-					     
-							        <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx" rel="nofollow">
-						        
+                        
+				
                     
-						    <strong>
-							   <span id="totalArticlesPanier" >1</span>
-						    </strong>
-					
-					
-						
-						    Article
-                            
-						   </a>
-					
-					</span>
-										
-				</p>
-			</div><!-- /fin/#cartouche -->
+                    </a>
+        </span>
+
+
 
-		
-		 <p id="msgVide" class="basketInfo">
         
-          </p>
-    
+            <p id="msgVide" class="basketInfo">
+	                
+		                Consulter votre panier
+	                 
+            </p>
         
 
 </div><!-- /fin/#monPanier -->
 
 
-<!--<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/BasketAjax.js"></script>-->
 <div id="GreyScreen"></div>
-
 </div>
                 
 			</div><!-- /fin/#MONCOIN-->
 
 		</div><!-- /fin/#topRIGHT-->
+        
+        
+        
+
+
+<div id="topPromo" class="clearfix">
+    <span id="topPromoTrigger" class=""><strong>
+        
+            Livraison gratuite sur tout le site<i class="icoFLE"><!-- --></i>
+        
+    </strong></span>
+        <div id="topPromoContent" class="hide">
+    
+            <ul class="topPromoList">
+                <li><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/Header/push-livraison-retraitmagasin-290x80.png" alt="Retrait gratuit en magasin ou relais colis" /></li>
+                <li><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/Header/push-livraison-retrait1heure-290x80.png" alt="Retrait 1h gratuit en magasin sur tout le high-tech" /></li>
+            	<li><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/Header/push-livraison-expressplus-290x80_0115.png" alt="Essai gratuit - Express+ Livraison en 1 jour chez vous, illimité toute l'année" /></li>
+            </ul>
+            <a href="http://www4.fnac.com/Help/livraison-gratuite.aspx#bl=pushTop2" class="topPromolk">En savoir plus</a>
+    
+    </div>
+</div>
+
+
+
+
+<!-- # script layer push top promo -->
+<script type="text/javascript">
+    $(function () {
+        $("#topPromoTrigger").popinManager({
+            targetContent: "#topPromoContent",
+            modeView: "layer",
+            eventStart: "click",
+            eventStop: "mouseleave",
+            timer:"250",
+            customPosition: true,
+            relativePosition: { left: 0, top: 20 }
+        });
+    });
+</script>
+  
 
 	</div>
 	<!-- *********************** /fin/#TOP **************************** -->
 
-         
-            
+	        
 
-	<!-- *********************** #MENU **************************** -->
-	<div id="MENU">
+<!-- *********************** #MENU **************************** -->
 
-		<ul id="onglets">
 
-            
-            <li id="ong-ope">
-				<a class="ongLink" href="http://www4.fnac.com/guides/evenements/FnacGaming/Default.aspx#bl=ongMoisGaming" title="Mois du Jeu Vidéo"><span class="inner">Mois du Jeu Vidéo</span></a>
-			</li>
-            
-            
-            		    
-			<li id="ong-Jouets">
-				<a  class="ongLink" href="http://www.fnac.com/enfants.asp#bl=ongENF"><span class="bulleNew bulleNewRouge">New</span><span class="inner">Kids, Jouets Puériculture</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/enfants.asp#bl=MMenf">Jouets et jeux</a></dt>
-								
-								
-								<dd><a href="http://www4.fnac.com/s120211/Jeux-de-societe#bl=MMenf">Jeux de société</a></dd>
-								<dd><a href="http://www4.fnac.com/s120225/Jeux-et-jouets-educatifs#bl=MMenf">Jeux éducatifs</a></dd>
-								<dd><a href="http://www4.fnac.com/s120219/Jeux-de-construction#bl=MMenf">Jeux de construction</a></dd>
-								<dd><a href="http://www4.fnac.com/s120216/Jeux-creatifs#bl=MMenf">Jeux créatifs</a></dd>
-								<dd><a href="http://www4.fnac.com/s120984/Jeux-de-plein-air-et-sports#bl=MMenf">Jeux de plein air</a></dd>
-								<dd><a href="http://www4.fnac.com/s134278/Jouets-pour-filles/Poupees-et-peluches#bl=MMenf">Poupées, peluches</a></dd>
-								<dd><a href="http://www4.fnac.com/s120214/Articles-de-fetes-et-deguisements#bl=MMenf">Déguisements</a></dd>
-								<dd><a href="http://www4.fnac.com/s132339/Jouets-pour-garcons/Vehicules-et-Circuits#bl=MMenf">Véhicules et circuits</a></dd>
-								
-							</dl>
-							<dl>
-								<dt>Univers</dt>
-								<dd><a href="http://www4.fnac.com/s130378/Notre-univers-Playmobil#bl=MMenf">L'univers Playmobil</a></dd>
-								<dd><a href="http://www4.fnac.com/s134778/Notre-univers-Lego#bl=MMenf">L'univers Lego</a></dd>
-								<dd><a href="http://www4.fnac.com/s129822/Tous-vos-heros-favoris/Barbie#bl=MMenf">La boutique Barbie</a></dd>
-								<dd><a href="http://www4.fnac.com/s135708/Vtech#bl=MMenf">La boutique Vtech</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Puericulture-Bebes/shi292171/w-4#bl=MMenf">Puériculture</a></dt>
-								<dd><a href="http://www.fnac.com/Poussettes/shi293407/w-4#bl=MMenf">Poussettes</a></dd>
-								<dd><a href="http://www.fnac.com/Porte-bebes/shi293408/w-4#bl=MMenf">Porte-bébés</a></dd>
-								<dd><a href="http://www.fnac.com/Sieges-Auto/shi293409/w-4#bl=MMenf">Sièges auto</a></dd>
-								<dd><a href="http://www.fnac.com/Promenade-Sortie/shi293413/w-4#bl=MMenf">Promenade / Sortie</a></dd>
-								<dd><a href="http://www.fnac.com/Protection-et-securite/shi293410/w-4#bl=MMenf">Protection et sécurité</a></dd>
-								<dd><a href="http://www.fnac.com/Repas/shi293411/w-4#bl=MMenf">Repas</a></dd>
-								<dd><a href="http://www.fnac.com/Toilette-et-soin/shi293412/w-4#bl=MMenf">Toilette et soin</a></dd>
-								<dd><a href="http://www.fnac.com/Sommeil-et-detente/shi293414/w-4#bl=MMenf">Sommeil et détente</a></dd>
-								<dd><a href="http://www4.fnac.com/s120992/Jouets-1er-age#bl=MMenf">Jeux d'éveil</a></dd>
-								<dd><a href="http://www.fnac.com/Cadeaux-de-naissance/shi296706/w-4#bl=MMenf">Cadeaux de naissance</a></dd>									
-							</dl>
-							<dl>
-								<dt><a onclick="TrackExternalLink('MMenf','http://www.fnacspectacles.com/place-spectacle/Theatre/Theatre-pour-enfants-p460630208962352128.htm%23a1283333674705#bl=MMenf')" href="http://www.fnacspectacles.com/place-spectacle/Theatre/Theatre-pour-enfants-p460630208962352128.htm%23a1283333674705#bl=MMenf">Spectacles pour enfants</a></dt>
-							</dl>							
-							<dl class="allProd">
-						        <dd><a href="http://www.fnac.com/enfants.asp#bl=MMenf" class="allLink">Tous les produits</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						
-						<dl>
-							<dt>Ages</dt>
-							<dd><a href="http://www4.fnac.com/s248337/Tout-petits#bl=MMenf">0 à 2 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126743/3-6-ans#bl=MMenf">3 à 5 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126744/6-9-ans#bl=MMenf">5 à 8 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126745/9-12-ans#bl=MMenf">8 à 12 ans</a></dd>
-							<dd><a href="http://www4.fnac.com/s126746/Plus-de-12-ans#bl=MMenf">+ de 12 ans</a></dd>
-						</dl>
-											
-						<dl>
-							<dt>Conseils</dt>
-							<dd><a href="http://www4.fnac.com/n136420/Nos-coups-de-coeur-Jouets-et-puericulture#bl=MMenf">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://www4.fnac.com/s235424/Offres-de-remboursement-Jouets#bl=MMenf">Offres de remboursement Jouets</a></dd>
-						    <dd><a href="http://www.fnac.com/Offres-de-remboursement/shi297334/w-4#bl=MMenf">Offres de remboursement Puériculture</a></dd>
-						</dl>
-                        
-                        <p class="vignet"><a href="http://www.fnac.com/Puericulture-Bebes/shi292171/w-4#bl=MMvignENF" title="Découvrez l’espace Puériculture "><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/puericulture-68x86.jpg" alt="Découvrez l’espace Puériculture " class="visu"/>Découvrez l'espace <strong>puériculture</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Jouets -->
-		    
-			<li id="ong-Livres" class="first current">
-				<a  class="ongLink" href="http://www.fnac.com/livre.asp#bl=ongLi"><span class="inner">Livres ebooks</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-						    <dl>
-						        <dt><a href="http://www.fnac.com/livre.asp#bl=MMli">Livres</a></dt>
-						    </dl>
-							<dl>
-							    <dt>Littérature et fiction</dt>
-							    <dd><a href="http://livre.fnac.com/s20/Roman-et-Nouvelles#bl=MMli">Romans</a></dd>
-							    <dd><a href="http://livre.fnac.com/s26/Roman-Policier-et-Thriller#bl=MMli">Polars et Thrillers</a></dd>
-							    <dd><a href="http://livre.fnac.com/s30/Fantasy-et-Science-Fiction#bl=MMli">Fantasy et SF</a></dd>
-							</dl>
-							<dl>
-							    <dt>BD &amp; Jeunesse</dt>
-							    <dd><a href="http://livre.fnac.com/s8/BD-et-Humour#bl=MMli">BD et Humour</a></dd>
-							    <dd><a href="http://livre.fnac.com/s30376/BD-et-Humour/Manga#bl=MMli">Manga</a></dd>
-							    <dd><a href="http://livre.fnac.com/s19/Livre-Jeunesse#bl=MMli">Jeunesse</a></dd>
-							</dl>
-                            <dl>
-						        <dt>Art de vivre, nature</dt>
-						        <dd><a href="http://livre.fnac.com/s11/Cuisine-et-vins#bl=MMli">Cuisine et vins</a></dd>
-						        <dd><a href="http://livre.fnac.com/s20670/Loisirs-creatifs-Decoration-Bricolage#bl=MMli">Déco et loisirs créatifs</a></dd>
-						        <dd><a href="http://livre.fnac.com/s1387/Tourisme-et-Voyage#bl=MMli">Tourisme et voyage</a></dd>
-						        <dd><a href="http://livre.fnac.com/s20673/Nature-Animaux-Jardin#bl=MMli">Nature, animaux</a></dd>
-						        <dd><a href="http://livre.fnac.com/s1364/Sports-Loisirs-Transports#bl=MMli">Sport et loisirs</a></dd>
-						        <dd><a href="http://livre.fnac.com/s29/Sante-Bien-etre-Puericulture#bl=MMli">Santé bien-être</a></dd>
-						    </dl>
-							
-						</div>
-						<div class="mainColRight">
-						    <dl>
-							    <dt>Culture et Société</dt>
-							    <dd><a href="http://livre.fnac.com/s556/Art-Cinema-Musique#bl=MMli">Art, Cinéma, Musique</a></dd>
-							    <dd><a href="http://livre.fnac.com/s166839/Actualite-Politique-Economie-Societe#bl=MMli">Actu politique, société</a></dd>
-							    <dd><a href="http://livre.fnac.com/s557/Sciences-humaines#bl=MMli">Sciences Humaines</a></dd>
-							    <dd><a href="http://livre.fnac.com/s17/Histoire#bl=MMli">Histoire</a></dd>
-							    <dd><a href="http://livre.fnac.com/s1891/Scolaire-et-soutien-scolaire#bl=MMli">Scolaire, parascolaire</a></dd>
-							    <dd><a href="http://livre.fnac.com/s64641/Entreprise-management#bl=MMli">Entreprise, Management</a></dd>
-                                <dd><a href="http://livre.fnac.com/s64664/Droit#bl=MMli">Droit</a></dd>
-                                <dd><a href="http://livre.fnac.com/s1253/Livres-Informatique#bl=MMli">Livres informatique</a></dd>
-                                <dd><a href="http://livre.fnac.com/s12/Dictionnaires-et-Langues#bl=MMli">Dictionnaires et Langues</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/telecharger-ebook.asp?RNID=-73&NID=-73#bl=MMli">Ebooks</a></dt>
-								<dd><a href="http://www4.fnac.com/livre-numerique/s165238/Romans-et-nouvelles#bl=MMli">Romans</a></dd>
-								<dd><a href="http://www4.fnac.com/livre-numerique/s165230/Polar-et-Thriller#bl=MMli">Polars</a></dd>
-							</dl>
-							
-							<dl>
-							    <dt><a href="http://musique.fnac.com/s122151/Partitions-de-Musique#bl=MMli">Partitions et méthodes</a></dt>
-							</dl>
-							
-							<dl>
-							    <dt><a href="http://livre.fnac.com/s13991/Livres-anglais-et-etrangers#bl=MMli">Livres anglais et étrangers</a></dt>
-							</dl>
-							<dl class="allProd" style="position:relative !important">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=2#bl=MMli" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://livre.fnac.com/s28626/Coups-de-coeur-Livre#bl=MMli">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://www.fnac.com/BD/Communaute-BD/cl2/w-4#bl=MMli">Communaut&eacute; BD</a></dd>
-							<dd><a href="http://www.fnac.com/Manga/Communaute-Manga/cl3/w-4#bl=MMli">Communaut&eacute; manga</a></dd>
-							<dd><a href="http://www.fnac.com/Kids/Communaute-Kids/cl4/w-4#bl=MMli">Communaut&eacute; kids</a></dd>
-							<dd><a href="http://www.fnac.com/Livre/Livre/cl143/w-4#bl=MMli">Actu livres et société</a></dd>							
-						</dl>
-						<dl>
-                            <dt><a href="http://abonnement-magazine.fnac.com/Magazine/default.asp" target="_blank">Abonnement Presse</a></dt>
-                        </dl>
-                        
-						<dl>
-							<dt><a href="http://livre.fnac.com/s163888/Papeterie/Selection-Rentree-des-classes#bl=MMli">Papeterie</a></dt>
-						</dl>
-						
-                            <p class="vignet"><a href="http://livre.fnac.com/s1891/Scolaire-et-soutien-scolaire" title="Rentrée Scolaire"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/rentree_68.jpg" alt="Rentrée Scolaire" class="visu"/>Rentrée Scolaire&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!--  /fin/#ong-Livres -->
 
-			<li id="ong-Musique">
-				<a  class="ongLink" href="http://www.fnac.com/musique.asp#bl=ongMu"><span class="inner">Musique, MP3 instruments</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/musique.asp#bl=MMmu">Musique</a></dt>
-								<dd><a href="http://musique.fnac.com/s573/Variete-francaise#bl=MMmu">Variété française</a></dd>
-								<dd><a href="http://musique.fnac.com/s558/Pop-Rock#bl=MMmu">Pop-Rock</a></dd>
-								<dd><a href="http://musique.fnac.com/s566/Musique-Classique#bl=MMmu">Musique Classique</a></dd>
-								<dd><a href="http://musique.fnac.com/s559/Jazz-Blues#bl=MMmu">Jazz, Blues</a></dd>
-								<dd><a href="http://musique.fnac.com/s571/Electro#bl=MMmu">Electro</a></dd>
-								<dd><a href="http://musique.fnac.com/s2486/Rap-RetB-Soul-Funk#bl=MMmu">Rap, R&B, Soul, Funk</a></dd>
-								<dd><a href="http://musique.fnac.com/s570/Hard-Metal#bl=MMmu">Hard, Metal</a></dd>
-								<dd><a href="http://musique.fnac.com/s577/Enfants#bl=MMmu">Enfants</a></dd>
-								<dd><a href="http://musique.fnac.com/s572/Musiques-du-monde#bl=MMmu">Musique du monde</a></dd>
-								<dd><a href="http://musique.fnac.com/l909/A-paraitre-musique#bl=MMmu">Nouveautés à paraître</a></dd>																
-							</dl>
-							
-							
-							<dl>
-							    <dt><a href="http://musique.fnac.com/s121859/Tous-les-produits-derives#bl=MMmu">Produits dérivés</a></dt>
-							    <dd><a href="http://musique.fnac.com/s121863/T-shirt-et-vetements#bl=MMmu">T-shirt et vêtements</a></dd>
-							    <dd><a href="http://musique.fnac.com/s122845/Tous-les-produits-derives/Goodies/Goodies-Musique#bl=MMmu">Goodies</a></dd>
-							</dl>
-							
-						</div>
-						<div class="mainColRight">
-						    <dl>
-								<dt><a href="http://www.fnac.com/telecharger-musique.asp#bl=MMmu">MP3</a></dt>
-								<dd><a href="http://telecharger-musique.fnac.com/s132495/mp3/Variete-Francaise#bl=MMmu">Variété française</a></dd>
-								<dd><a href="http://telecharger-musique.fnac.com/s81060/mp3/Pop-Rock#bl=MMmu">Pop-rock</a></dd>
-								<dd><a href="http://telecharger-musique.fnac.com/s81064/mp3/Musique-electronique#bl=MMmu">Musique électronique</a></dd>
-							</dl>
-                            
-							<dl>
-								<dt><a href="http://www.fnac.com/DJ-Home-Studio/shi145140/w-4#bl=MMmu">DJ Home Studio</a></dt>
-							</dl>							
-							<dl>
-								<dt><a href="http://musique.fnac.com/s122274/Instruments-de-musique#bl=MMmu">Instruments</a></dt>
-								<dd><a href="http://musique.fnac.com/s122275/Instruments-de-musique/Toutes-les-Guitares-et-Basses#bl=MMmu">Guitare</a></dd>
-								<dd><a href="http://musique.fnac.com/s122276/Instruments-de-musique/Tous-les-Claviers-et-Pianos#bl=MMmu">Piano, Claviers</a></dd>
-								<dd><a href="http://musique.fnac.com/l163973/Meilleures-ventes-Harmonica/Instruments-de-musique#bl=MMmu">Harmonica</a></dd>
-								<dd><a href="http://musique.fnac.com/s122281/Instruments-de-musique/Tous-les-Accessoires-et-cables#bl=MMmu">Accessoires et câbles</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://musique.fnac.com/s122151/Partitions-de-Musique#bl=MMmu">Partitions et méthodes</a></dt>
-							</dl>
-							
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=3#bl=MMmu" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://musique.fnac.com/l27947/Coups-de-coeur-musique#bl=MMmu">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://www.fnac.com/Jazz/Jazz/cl6/w-4#bl=MMmu">Communaut&eacute; Jazz</a></dd>
-							<dd><a href="http://www.fnac.com/Classique/Classique/cl5/w-4#bl=MMmu">Communaut&eacute; Classique</a></dd>
-							<dd><a href="http://www.fnac.com/Pop-Rock-inde-Electro/Communaute-Pop-Rock-inde-Electro/cl162/w-4#bl=MMmu">Communaut&eacute; Pop-Rock, Electro</a></dd>
-							<dd><a href="http://www.fnac.com/Rap-RetB-Soul-Funk/Rap-RetB-Soul-Funk/cl159/w-4#bl=MMmu">Communaut&eacute; Rap Soul Funk</a></dd>
-							<dd><a href="http://www.fnac.com/Musique/Musique/cl144/w-4#bl=MMmu">Actu Musique</a></dd>
-						</dl>
-						<dl>
-							<dt><a onclick="TrackExternalLink('MMmu','http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm')" href="http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm">Concerts </a></dt>
-						</dl>
-                        
-                            <p class="vignet"><a href="http://musique.fnac.com/s317083/Best-Of-4-CD-20#bl=MMvignMU" title="4 Best Of = 20&nbsp;&euro;"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/4cd-20euros-68x68v5.gif" alt="4 Best Of = 20&nbsp;&euro;" class="visu"/>4 Best Of = 20&nbsp;&euro;&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Musique -->
 
-			<li id="ong-DVD">
-				<a  class="ongLink" href="http://www.fnac.com/video.asp#bl=OngVI"><span class="inner">DVD Blu&#x2011;ray</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/video.asp#bl=MMvi">DVD</a></dt>
-								<dd><a href="http://video.fnac.com/s1732/Series-TV#bl=MMvi">Séries TV</a></dd>
-								<dd><a href="http://video.fnac.com/s2692/DVD-Action-Policier#bl=MMvi">Action-Policier</a></dd>
-								<dd><a href="http://video.fnac.com/s1728/DVD-Comedie#bl=MMvi">Comédie</a></dd>
-								<dd><a href="http://video.fnac.com/s6508/DVD-Grands-Classiques#bl=MMvi">Grands classiques</a></dd>
-								<dd><a href="http://video.fnac.com/s804/DVD-Enfants-Jeunesse#bl=MMvi">Enfants, Jeunesse</a></dd>
-								<dd><a href="http://video.fnac.com/l899/A-paraitre-DVD-et-Blu-Ray#bl=MMvi">Nouveautés à paraître</a></dd>								
-							</dl>
-
-							<dl>
-								<dt><a onclick="TrackExternalLink('MMvi','http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm#bl=MMvi')" href="http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm#bl=MMvi">Billetterie Cinéma</a></dt>
-							</dl>
-							<dl>
-							    <dt><a href="http://musique.fnac.com/s121859/Tous-les-produits-derives#bl=MMvi">Produits dérivés</a></dt>
-							    <dd><a href="http://musique.fnac.com/s122846/Tous-les-produits-derives/Goodies/Goodies-Cinema-et-Series-TV#bl=MMvi">Goodies</a></dd>
-							    <dd><a href="http://musique.fnac.com/s122664/Tous-les-produits-derives/Posters#bl=MMvi">Posters</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-                            <dl>
-								<dt><a href="http://video.fnac.com/s26302/Blu-Ray#bl=MMvi">Blu-ray</a></dt>
-								<dd><a href="http://video.fnac.com/s63967/Blu-Ray/Blu-ray-Action-Policier#bl=MMvi">Action Policier</a></dd>
-								<dd><a href="http://video.fnac.com/s63968/Blu-Ray/Blu-ray-Fantastique-Horreur#bl=MMvi">SF, Fantastique</a></dd>
-								<dd><a href="http://video.fnac.com/s93649/Blu-Ray/Blu-ray-Drame-emotion#bl=MMvi">Comédie dramatique</a></dd>
-								<dd><a href="http://video.fnac.com/l27994/Toutes-les-nouveautes-Blu-Ray/Blu-Ray#bl=MMvi">Actualité Blu-ray</a></dd>								
-								<dd><a href="http://video.fnac.com/l27995/A-paraitre-Blu-Ray/Blu-Ray#bl=MMvi">Nouveautés à paraitre</a></dd>
-							</dl>
-							
-												
-							<dl>
-								<dt>Et aussi</dt>
-								<dd><a href="http://video.fnac.com/s261743/Disney#bl=MMvi">Univers Disney</a></dd>
-							</dl>		
-												
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=4#bl=MMvi" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://video.fnac.com/l6530/Coups-de-coeur-DVD-et-Blu-Ray#bl=MMvi">Coups de c&oelig;ur</a></dd>
-							
-							<dd><a href="http://www.fnac.com/Cinema-et-video/Cinema-et-video/cl145/w-4#bl=MMvi">Actu Cinéma</a></dd>							
-						</dl>
-                        
-                        <p class="vignet"><a href="http://video.fnac.com/s239213/4-DVD-20#bl=MMvignVI" title="4 DVD = 20&nbsp;&euro;"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/4dvd-68x68.gif" alt="4 DVD = 20&nbsp;&euro;" class="visu"/>4 DVD =  <strong>20&nbsp;&euro;</strong>&nbsp;&raquo;</a></p>
-                        
-                     </div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-DVD -->
+<div id="MENU">
 
-			<li id="ong-JeuxVideo">
-				<a  class="ongLink" href="http://www.fnac.com/jeux-video.asp#bl=ongJE"><span class="inner">Jeux vidéo consoles</span></a>
-                
-				<div class="megaMenu clearfix" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/jeux-video.asp#bl=MMje">Jeux vidéo</a></dt>
-								<dd><a href="http://jeux-video.fnac.com/s70055/Reservez-des-maintenant#bl=MMje">Prochaines sorties</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s68914/PlayStation-3#bl=MMje">Jeux PS3</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s69027/Xbox-360/Jeux-Xbox-360#bl=MMje">Jeux Xbox 360</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s68922/Nintendo-Wii/Jeux-Nintendo-Wii#bl=MMje">Jeux WII</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s32527/Jeux-PC#bl=MMje">Jeux PC</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s219261/Nintendo-3DS-et-3DS-XL#bl=MMje">Jeux 3DS</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s69113/Nintendo-DS-DSi-et-DSi-XL/Jeux-Nintendo-DS#bl=MMje">Jeux DS</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s268005/PS-Vita#bl=MMje">Jeux PS Vita</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s90115/Tout-pour-le-Mac/Jeux-Mac#bl=MMje">Jeux Mac</a></dd>								
-								<dd><a href="http://jeux-video.fnac.com/s89554/Jeux-familiaux#bl=MMje">Jeux en famille</a></dd>
-								
-								<dd><a href="http://jeux-video.fnac.com/s94259/Tous-les-jeux-video-retro#bl=MMje">Jeux vidéo rétro</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s160738/Jeux-video-d-occasion#bl=MMje">Jeux d'occasion</a></dd>
-								
-								<dd><a href="http://jeux-video.fnac.com/s95892/Les-jeux-incontournables-du-moment#bl=MMje">Les incontournables</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://jeux-video.fnac.com/s70157/Toutes-les-consoles#bl=MMje">Consoles</a></dt>
-								<dd><a href="http://jeux-video.fnac.com/s70157/Toutes-les-consoles#bl=MMje">Consoles</a></dd>
-								<dd><a href="http://jeux-video.fnac.com/s86680/Tous-les-accessoires#bl=MMje">Accessoires consoles</a></dd>
-                                <dd><a href="http://jeux-video.fnac.com/s70171/Toutes-les-consoles/Consoles-PlayStation-3#bl=MMje">Consoles PS3</a></dd>
-                                <dd><a href="http://jeux-video.fnac.com/s70172/Toutes-les-consoles/Consoles-Xbox-360#bl=MMje">Consoles Xbox 360</a></dd>
-                                <dd><a href="http://jeux-video.fnac.com/s70170/Toutes-les-consoles/Console-Nintendo-Wii#bl=MMje">Consoles Wii</a></dd>
-                                <dd><a href="http://recherche.Logiciel-Jeux-video.fnac.com/n219200/Toutes-les-consoles/Consoles-Nintendo-DS-et-3DS/Nintendo-3DS#bl=MMje">Consoles 3DS</a></dd>
-                                <dd><a href="http://recherche.Logiciel-Jeux-video.fnac.com/n232465/Toutes-les-consoles/Playstation-Vita#bl=MMje">Consoles PS Vita</a></dd>
-							</dl>
-							<dl>
-								<dt><a  onclick="TrackExternalLink('MMje','http://fnac.gamesplanet.com/')" href="http://fnac.gamesplanet.com/" target ="_blank">Téléchargements</a></dt>
-								<dd><a  onclick="TrackExternalLink('MMje','http://fnac.gamesplanet.com/')" href="http://fnac.gamesplanet.com/" target ="_blank">Jeux à télécharger</a></dd>
-							</dl>
-							
-							<dl>
-								<dt><a href="http://musique.fnac.com/s121859/Tous-les-produits-derives#bl=MMje">Produits dérivés</a></dt>
-								<dd><a href="http://jeux-video.fnac.com/s139816/Tous-les-produits-derives-jeux-video/Tous-les-produits-derives#bl=MMje">Goodies</a></dd>
-								<dd><a href="http://musique.fnac.com/s190059/Tous-les-produits-derives/Objets-collectors/Figurines-Jeux-video#bl=MMje">Objets collector</a></dd>
-							</dl>		
-							
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=5#bl=MMje" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-                        <dl>
-							<dt><a href="http://www4.fnac.com/Gaming/Default.aspx#bl=MMje">Mon espace Fnac Gaming</a></dt>
-							<dd><a href="http://www.facebook.com/fnacgaming" target ="_blank">Facebook Fnac Gaming</a></dd>
-							<dd><a href="http://twitter.com/FnacJeuxVideo" target ="_blank">Twitter Fnac Gaming</a></dd>
-						</dl>
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a onclick="TrackExternalLink('MMje','http://www.playfrance.com/')" href="http://www.playfrance.com/" target ="_blank">Tests, news et trailers de jeux vidéo</a></dd>
-							<dd><a onclick="TrackExternalLink('MMje','http://astuce-soluce.playfrance.com/index.php/Accueil')" href="http://astuce-soluce.playfrance.com/index.php/Accueil" target ="_blank">Astuces et solutions</a></dd>
-							<dd><a href="http://jeux-video.fnac.com/s157289/Nos-coups-de-coeur-Jeux-Video#bl=MMje">Coups de c&oelig;ur</a></dd>
-							<dd><a href="http://jeux-video.fnac.com/s167484/Les-offres-Fnac-Gaming#bl=MMje">Offres Fnac Gaming</a></dd>
-							<dd><a href="http://www.fnac.com/Jeux-video/Gaming-et-Jeux-video/cl148/w-4#bl=MMje">Actu Jeux vidéo</a></dd>
-						</dl>
-                        
-                            <p class="vignet"><a href="http://jeux-video.fnac.com/s268005/PS-Vita#bl=MMvignJE" title="Découvrez la PS Vita"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/vita-68x68.jpg" alt="Découvrez la Sony PS Vita" class="visu"/>Découvrez la Sony <strong>PS Vita</strong>&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-JeuxVideo -->
+    <ul id="onglets" class="clearfix">
 
-			<li id="ong-Informatique">
-				<a  class="ongLink" href="http://www.fnac.com/Informatique/shi48966/w-4#bl=ongMic"><span class="inner">Informatique logiciels</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Ordinateur-ecran/shi188929/w-4#bl=MMmic">Ordinateur, écran</a></dt>
-								<dd><a href="http://www.fnac.com/Ordinateur-portable/shi48967/w-4#bl=MMmic">Ordinateur portable</a></dd>
-								<dd><a href="http://www.fnac.com/Netbook-mini-PC/shi64436/w-4#bl=MMmic">NetBook, Mini PC</a></dd>
-								<dd><a href="http://www.fnac.com/Tablette-Tactile/shi159821/w-4#bl=MMmic">Tablette tactile</a></dd>
-								<dd><a href="http://www4.fnac.com/Guides/micro/intelUltrabook/Default.aspx#bl=MMmic">Ultrabooks</a></dd>
-								<dd><a href="http://www.fnac.com/Ordinateur-de-bureau/shi48968/w-4#bl=MMmic">Ordinateur de bureau</a></dd>
-								<dd><a href="http://www.fnac.com/MacBook-iMac-iPad/shi48969/w-4#bl=MMmic">MacBook, iMac, iPad</a></dd>
-								<dd><a href="http://www.fnac.com/Moniteur-Ecran/shi48970/w-4#bl=MMmic">Ecran, Moniteur</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/logiciel.asp#bl=MMmic">Logiciels</a></dt>
-								<dd><a href="http://logiciel.fnac.com/s32672/Antivirus-et-Securite#bl=MMmic">Antivirus, Sécurité</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s32673/Utilitaire-et-Bureautique#bl=MMmic">Utilitaire, Bureautique</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s32676/Tout-pour-le-Mac#bl=MMmic">Pour Mac</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s83738/Graphisme-et-photo#bl=MMmic">Graphisme, Photo</a></dd>
-								<dd><a href="http://telecharger-logiciel.fnac.com/logiciel.html" target ="_blank">Logiciels à télécharger</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s83801/Montage-Video#bl=MMmic">Montage vidéo</a></dd>
-							</dl>
-						
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Stockage-accessoires/shi191087/w-4#bl=MMmic">Stockage, Accessoires</a></dt>
-								<dd><a href="http://www.fnac.com/Disque-dur-cle-USB/shi48972/w-4#bl=MMmic">Disque dur, Clé USB</a></dd>
-								<dd><a href="http://www.fnac.com/Clavier-souris-tablette-graphique/shi116485/w-4#bl=MMmic">Clavier, Souris</a></dd>
-								<dd><a href="http://www.fnac.com/Webcam-enceintes-casque/shi181551/w-4#bl=MMmic">Webcam,Enceinte</a></dd>
-								<dd><a href="http://www.fnac.com/Tablette-Tactile/Accessoires-et-Housses-Tablettes/shi160030/w-4#bl=MMmic">Accessoires Tablettes</a></dd>
-								<dd><a href="http://www.fnac.com/Reseau-CPL-WiFi/shi48973/w-4#bl=MMmic">Réseau CPL, Wifi</a></dd>
-								<dd><a href="http://www.fnac.com/Sacoche/shi116487/w-4#bl=MMmic">Housse, Sacoche</a></dd>
-                                <dd><a href="http://www.fnac.com/Domotique-Maison-connectee/shi226370/w-4#bl=MMmic">Domotique, maison connectée</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Imprimante-scanner/shi48971/w-4#bl=MMmic">Impression</a></dt>
-								<dd><a href="http://www.fnac.com/Imprimante-scanner/shi48971/w-4#bl=MMmic">Imprimante, Scanner</a></dd>
-								<dd><a href="http://www.fnac.com/Cartouche-d-encre-toner/shi116486/w-4#bl=MMmic">Cartouche d'encre, Toner</a></dd>
-							</dl>
-							
-							<dl>
-								<dt><a href="http://www.fnac.com/Composants/shi181557/w-4#bl=MMmic">Composants</a></dt>
-							</dl>
-								
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMmic" class="allLink">critères de recherche</a></dd>
-						    </dl>														
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/Guides/Micro/bien-choisir-ordinateur-portable/Guide-ordinateur-portable.asp#bl=MMmic">Bien choisir son ordinateur portable</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMmic">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMmic">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMmic">Collection Fnac IT</a></dd>
-						</dl>
-                        
-		                    <p class="vignet"><a href="http://www.fnac.com/MacBook-Pro/MacBook-iMac-iPad/nsh71598/w-4#bl=MMvignMIC" title="Découvrez les MacBook Pro"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/macbook-68x68.jpg" alt="Découvrez les MacBook Pro" class="visu"/>Découvrez les <strong>MacBook Pro</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Informatique -->
+        
 
-			<li id="ong-Photo">
-				<a  class="ongLink" href="http://www.fnac.com/Photo-camescope/shi56352/w-4#bl=ongPEC"><span class="inner">Photo caméscopes</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Photo-camescope/shi56352/w-4#bl=MMpec">Photo</a></dt>
-								<dd><a href="http://www.fnac.com/Appareil-photo-numerique-reflex/shi56355/w-4#bl=MMpec">Reflex</a></dd>
-								<dd><a href="http://www.fnac.com/Appareil-photo-numerique-compact-bridge/shi56373/w-4#bl=MMpec">Compact, Bridge</a></dd>
-								<dd><a href="http://www.fnac.com/Appareil-photo-Hybrides/shi248506/w-4#bl=MMpec">Hybride</a></dd>
-								<dd><a href="http://www.fnac.com/Objectif-photo/shi56390/w-4#bl=MMpec">Objectif</a></dd>
-								<dd><a href="http://www.fnac.com/Flash-photo/shi84448/w-4#bl=MMpec">Flash</a></dd>
-								<dd><a href="http://www.fnac.com/Cadre-Numerique/shi56386/w-4#bl=MMpec">Cadre photo numérique</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Camescope/shi56379/w-4#bl=MMpec">Camescope</a></dt>
-								<dd><a href="http://www.fnac.com/Camescope/Camescope-haute-definition/shi87482/w-4#bl=MMpec">Full HD</a></dd>
-								<dd><a href="http://www.fnac.com/Par-usage/Camescope-Etanches-Antichocs/sh246918/w-4#bl=MMpec">Sport</a></dd>
-								<dd><a href="http://www.fnac.com/Camescope/Les-PocketCam/sh129356/w-4#bl=MMpec">Pocket Cam</a></dd>
-								<dd><a href="http://www.fnac.com/Camescope/Accessoires-Camescopes/shi248684/w-4#bl=MMpec">Accessoires</a></dd>
-							</dl>							
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Accessoires-Photo-HG/Accessoires-Photo/shi192283/w-4#bl=MMpec">Accessoires photo</a></dt>
-								<dd><a href="http://www.fnac.com/Carte-memoire/shi195928/w-4#bl=MMpec">Carte mémoire</a></dd>
-								<dd><a href="http://www.fnac.com/Etui-protection-sac/shi56411/w-4#bl=MMpec">Etui, protection, sac</a></dd>
-								<dd><a href="http://www.fnac.com/Trepied/shi84459/w-4#bl=MMpec">Trépied</a></dd>
-								<dd><a href="http://www.fnac.com/Jumelles/shi56406/w-4#bl=MMpec">Jumelles</a></dd>
-								<dd><a href="http://logiciel.fnac.com/s83738/Graphisme-et-photo#bl=MMpec">Logiciels Photo</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://tiragesphoto.fnac.com/" target="_blank">Tirage photo</a></dt>
-							</dl>
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMpec" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/Guides/photo/bien-choisir-photo/default.asp#bl=MMpec">Bien choisir son appareil photo</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMpec">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMpec">Les 8+ Fnac</a></dd>
-							
-							<dd><a href="http://www.fnac.com/Photo/Photo-expositions-galeries/cl147/w-4#bl=MMpec">Actu photo</a></dd>
-							<dd><a href="http://www.fnac.com/Photo/Communaute-Photo/cl152/w-4#bl=MMpec">Communaut&eacute; Photo</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMpec">Collection Fnac IT</a></dd>
-						</dl>
-						
-		                    <p class="vignet"><a href="http://www.fnac.com/les-packs-Fnac-photo-video/sh184731/w-4#bl=MMvignPEC" title="Tous les packs Fnac"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/packs-fnac-68x68.png" alt="Tous les packs Fnac" class="visu"/>Tous les<strong> packs Fnac</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Photo -->
+        
+<li id="ong-Livres" class=" current">
+    <a href="http://www.fnac.com/livre.asp#bl=MMli" class="ongLink">Livres, Ebooks Kobo</a>
+    <div id="ong-Livres-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-			<li id="ong-TV">
-				<a  class="ongLink" href="http://www.fnac.com/TV-Video-Home-cinema/shi56328/w-4#bl=ongTVH"><span class="inner">TV, Vidéo Home&nbsp;cinéma</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Televiseur/shi56452/w-4#bl=MMtvh">TV, &Eacute;cran plat</a></dt>
-								<dd><a href="http://www.fnac.com/TV-LCD/Par-technologie/nsh129037/w-4#bl=MMtvh">TV LCD</a></dd>
-								<dd><a href="http://www.fnac.com/TV-LED/Par-technologie/nsh129044/w-4#bl=MMtvh">TV LED</a></dd>
-								<dd><a href="http://www.fnac.com/TV-3D/Par-technologie/nsh159803/w-4#bl=MMtvh">TV 3D</a></dd>
-								<dd><a href="http://www.fnac.com/TV-Plasma/Par-technologie/nsh118113/w-4#bl=MMtvh">TV Plasma</a></dd>
-								<dd><a href="http://www.fnac.com/Moniteur-TNT/Par-technologie/nsh285681/w-4#bl=MMtvh">Moniteur avec tuner TNT</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Accessoires-TV-Video-HG/Accessoires/shi192219/w-4#bl=MMtvh">Accessoires</a></dt>
-								<dd><a href="http://www.fnac.com/Casque-TV-Hifi/shi117053/w-4#bl=MMtvh">Casque TV, Hifi</a></dd>
-								<dd><a href="http://www.fnac.com/Cable-Audio-Video/shi180725/w-4#bl=MMtvh">Câble audio video</a></dd>
-								<dd><a href="http://www.fnac.com/Adaptateur-antenne-TNT/shi138663/w-4#bl=MMtvh">Adaptateur, antenne TNT</a></dd>
-								<dd><a href="http://www.fnac.com/Meuble-support-TV/shi56622/w-4#bl=MMtvh">Meuble, support TV</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Home-cine-HG/Home-cinema-Video/shi192062/w-4#bl=MMtvh">Home cinema, Vidéo</a></dt>
-								<dd><a href="http://www.fnac.com/Home-Cinema/shi120178/w-4#bl=MMtvh">Home cinema</a></dd>
-								<dd><a href="http://www.fnac.com/Lecteur-DVD-Lecteur-Blu-ray/shi180744/w-4#bl=MMtvh">Lecteur DVD, Blu-ray</a></dd>
-								<dd><a href="http://www.fnac.com/Enregistreur-DVD-Enregistreur-Blu-ray/shi180745/w-4#bl=MMtvh">Lecteur Enregisteur DVD, Blu-Ray</a></dd>
-								<dd><a href="http://www.fnac.com/Lecteur-DVD-portable/shi138662/w-4#bl=MMtvh">Lecteur DVD portable</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Videoprojecteur/shi56623/w-4#bl=MMtvh">Vidéoprojecteur</a></dt>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-3D/Par-categorie/nsh226232/w-4#bl=MMtvh">Projecteur 3D</a></dd>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-Home-Cinema/Par-categorie/nsh63790/w-4#bl=MMtvh">Projecteur Home Cinéma</a></dd>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-Polyvalent/Par-categorie/nsh63788/w-4#bl=MMtvh">Projecteur polyvalent</a></dd>
-								<dd><a href="http://www.fnac.com/Videoprojecteur-Pico/Par-categorie/nsh227748/w-4#bl=MMtvh">Mini projecteur</a></dd>
-							</dl>
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMtvh" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/guides/Tv/GuideTeleviseur/index.asp#bl=MMtvh">Bien choisir sa TV</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMtvh">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMtvh">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www.fnac.com/Decouvrez-notre-selection-Prestige-Hi-fi/shi177041/w-4#bl=MMtvh">Sélection Prestige Hifi</a></dd>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMtvh">Collection Fnac IT</a></dd>
-						</dl>
-                        
-		                    <p class="vignet"><a href="http://www.fnac.com/Decouvrez-nos-TV-grandes-tailles/Televiseur/nsh273881/w-4#bl=MMvignTVH" title="Découvrez nos TV grandes tailles !"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/tv-taille-68x68.jpg" alt="Découvrez nos TV grandes tailles !" class="visu"/>Découvrez nos <strong>TV grandes tailles !</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-TV -->
 
-			<li id="ong-Son">
-				<a  class="ongLink" href="http://www.fnac.com/Son-hifi-lecteur-MP3/shi176062/w-4#bl=ongSon"><span class="inner">Son, hifi lecteurs&nbsp;MP3</span></a>
-                
-				<div class="megaMenu clearfix posM" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/Lecteurs-MP3/shi191538/w-4#bl=MMson">Lecteurs MP3</a></dt>
-								<dd><a href="http://www.fnac.com/iPod/shi176592/w-4#bl=MMson">iPod</a></dd>
-								<dd><a href="http://www.fnac.com/Dock-iPod-MP3/shi176595/w-4#bl=MMson">Dock iPod, MP3</a></dd>
-								<dd><a href="http://www.fnac.com/Casque-ecouteur/shi176594/w-4#bl=MMson">Casque, écouteurs</a></dd>
-								<dd><a href="http://www.fnac.com/Lecteur-MP3-MP4/shi176593/w-4#bl=MMson">Lecteur MP3, MP4</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-iPod/shi176600/w-4#bl=MMson">Accessoire iPod</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-MP3-MP4/shi176601/w-4#bl=MMson">Accessoire MP3, MP4</a></dd>
-								<dd><a href="http://www.fnac.com/Dictaphone-Radio-CD/shi176597/w-4#bl=MMson">Dictaphone, radio-cd</a></dd>
-								<dd><a href="http://www.fnac.com/Radio-Reveil-Baladeur/shi176598/w-4#bl=MMson">Radio-réveil, baladeur</a></dd>																
-							</dl>
-							
-							<dl>
-								<dt><a href="http://www.fnac.com/Sante-et-Bien-etre/shi181858/w-4#bl=MMson">Santé, bien-être</a></dt>
-								<dd><a href="http://www.fnac.com/Sante-et-Bien-etre/Luminotherapie/sh181872/w-4#bl=MMson">Luminothérapie</a></dd>
-								<dd><a href="http://www.fnac.com/Sante-et-Bien-etre/Massage-relaxation/sh181873/w-4#bl=MMson">Massage, relaxation</a></dd>
-								<dd><a href="http://www.fnac.com/Sante-et-Bien-etre/Ambiance/sh181874/w-4#bl=MMson">Ambiance</a></dd>
-								<dd><a href="http://www.fnac.com/Station-meteo/Sante-et-Bien-etre/lm181875/w-4#bl=MMson">Station météo</a></dd>
-							</dl>							
-							<dl>
-							    <dt><a href="http://www.fnac.com/Montre/shi220892/w-4#bl=MMson">Montres</a></dt>
-							</dl>
-														
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/Hifi/shi191539/w-4#bl=MMson">Hifi</a></dt>
-								<dd><a href="http://www.fnac.com/Chaine-Hifi/shi176604/w-4#bl=MMson">Chaine Hifi</a></dd>
-								<dd><a href="http://www.fnac.com/Casque-TV-Hi-fi/shi176608/w-4#bl=MMson">Casque TV, Hifi</a></dd>
-								<dd><a href="http://www.fnac.com/Ampli/shi176606/w-4#bl=MMson">Ampli</a></dd>
-								<dd><a href="http://www.fnac.com/Enceintes/shi176605/w-4#bl=MMson">Enceintes</a></dd>
-								<dd><a href="http://www.fnac.com/Platine-Vinyle-CD/shi178398/w-4#bl=MMson">Platine Vinyle, CD</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-Hifi/shi176607/w-4#bl=MMson">Accessoire Hifi</a></dd>								
-							</dl>
-							
-							<dl>
-								<dt><a href="http://www.fnac.com/DJ-Home-Studio/shi176603/w-4#bl=MMson">DJ, Home studio</a></dt>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Espace-DJ/shi178508/w-4#bl=MMson">Espace DJ</a></dd>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Home-Studio/shi178509/w-4#bl=MMson">Home Studio</a></dd>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Materiel-de-soiree/shi178510/w-4#bl=MMson">Matériel de soirée</a></dd>
-								<dd><a href="http://www.fnac.com/DJ-Home-Studio/Accessoires-DJ/shi178511/w-4#bl=MMson">Accessoire DJ</a></dd>
-							</dl>
-							
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMson" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/guides/high-tech/guide-lecteur-mp3/default.asp#bl=MMson">Bien choisir son lecteur MP3</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMson">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMson">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-						<dl>
-							<dt>Sélections Fnac</dt>
-							<dd><a href="http://www.fnac.com/Espace-Prestige-Hifi/shi179495/w-4#bl=MMson">Sélection Prestige Hifi</a></dd>
-							<dd><a href="http://www4.fnac.com/guides/high-tech/FnacIt/travel/default.aspx#bl=MMson">Collection Fnac IT</a></dd>
-						</dl>
-                        
-		                    <p class="vignet"><a href="http://www.fnac.com/Dock-Airplay-Sans-Fil/Par-categorie/nsh248989/w-4#bl=MMvignSON" title="Dock Airplay et sans fil"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/bowers-68x68.jpg" alt="Dock Airplay et sans fil" class="visu"/><strong>Dock Airplay et sans fil</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Son -->
+        
+            
+<li id="ong-Jouets" class="">
+    <a href="http://www.fnac.com/enfants.asp#bl=MMenf" class="ongLink">jeux, jouets</a>
+    <div id="ong-Jouets-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-			<li id="ong-GPS">
-				<a  class="ongLink" href="http://www.fnac.com/GPS-Telephones-eBook/shi56528/w-4#bl=ongTMG"><span class="inner">Téléphones, GPS, ebook</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt><a href="http://www.fnac.com/iPhone/shi56549/w-4#bl=MMtmg">iPhone, Accessoires</a></dt>
-								<dd><a href="http://www.fnac.com/iPhone-et-accessoires/iPhone-4/shi190276/w-4#bl=MMtmg">IPhone 4</a></dd>
-								<dd><a href="http://www.fnac.com/iPhone-et-accessoires/iPhone-3G-et-3Gs/shi190277/w-4#bl=MMtmg">Iphone 3G, 3Gs</a></dd>
-								<dd><a href="http://www.fnac.com/Telephone-portable-d-occasion/iPhone-d-occasion/sh176661/w-4#bl=MMtmg">Iphone d’occasion</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoires-iPhone/shi117605/w-4#bl=MMtmg">Accessoires iPhone</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Telephone-portable-Smartphone/shi59030/w-4#bl=MMtmg">Téléphone, smartphone</a></dt>
-								<dd><a href="http://www.fnac.com/Telephone-portable-Smartphone/shi59030/w-4#bl=MMtmg">Neuf</a></dd>
-								<dd><a href="http://www.fnac.com/Telephone-portable-d-occasion/shi176660/w-4#bl=MMtmg">Occasion</a></dd>
-								<dd><a href="http://www.fnac.com/Accessoire-telephone-portable-Smartphone/shi59031/w-4#bl=MMtmg">Accessoires téléphone</a></dd>
-								<dd><a href="http://www.fnac.com/Telephone-fixe-DECT/shi59033/w-4#bl=MMtmg">Téléphone fixe</a></dd>
-							</dl>
-                            <dl>
-								<dt><a href="http://forfaitmobile.fnac.com/mobile/fnac/accueil.jspe" target ="_blank">Téléphone avec abonnement</a></dt>
-								<dd><a href="http://forfaitmobile.fnac.com/mobile/telephones?addFilter=&vue=00fnac&tgp=toutes-les-offres&marque=apple" target ="_blank">Iphone</a></dd>
-								<dd><a href="http://forfaitmobile.fnac.com/mobile/offres/toutes-les-offres-sfr?vue=00fnac" target ="_blank">Forfaits</a></dd>
-								<dd><a href="http://forfaitmobile.fnac.com/mobile/offres/toutes-les-offres-sfr?vue=00fnac&tab=FORFAITS_BLOQUES" target ="_blank">Forfaits bloqués</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt><a href="http://www.fnac.com/GPS/shi59029/w-4#bl=MMtmg">GPS</a></dt>
-                                <dd><a href="http://www.fnac.com/Assistant-d-aide-a-la-conduite/shi286117/w-4#bl=MMtmg">Assistant d'aide à la conduite</a></dd>
-                                <dd><a href="http://www.fnac.com/GPS/Accessoires-GPS/shi221274/w-4#bl=MMtmg">Accessoires GPS</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Livre-electronique/shi137559/w-4#bl=MMtmg">Livre numérique</a></dt>
-								<dd><a href="http://www.fnac.com/Livre-electronique/Kobo-by-Fnac/sh259290/w-4#bl=MMtmg">Kobo by Fnac</a></dd>
-								<dd><a href="http://www.fnac.com/Livre-electronique/Accessoires/sh259687/w-4#bl=MMtmg">Accessoires</a></dd>
-								<dd><a href="http://www.fnac.com/telecharger-ebook.asp?RNID=-73&NID=-73#bl=MMtmg">eBooks</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/GPS-Telephones-MM/Bureautique/shi190275/w-4#bl=MMtmg">Bureautique</a></dt>
-								<dd><a href="http://www.fnac.com/Calculatrice/shi104867/w-4#bl=MMtmg">Calculatrice</a></dd>
-								<dd><a href="http://www.fnac.com/Station-meteo/Station-meteo-traducteur-jeu-d-echecs/lm56576/w-4#bl=MMtmg">Station météo</a></dd>
-								<dd><a href="http://www.fnac.com/Station-meteo-traducteur-jeu-d-echecs/Traducteur-dictionnaire/sh56584/w-4#bl=MMtmg">Traducteur, Dictionnaire</a></dd>
-							</dl>
-							<dl class="allProd">
-						        <dd class="lienInverse no_bg pdg_no fontS_11 noir">+&nbsp;de <a href="http://www4.fnac.com/Search/advancedSearch.aspx?stype=8#bl=MMtmg" class="allLink">critères de recherche</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils et communautés</dt>
-							<dd><a href="http://www.fnac.com/Guides/Telephonie/GuideFnacGPS/guide-gps.asp#bl=MMtmg">Bien choisir son GPS</a></dd>
-							<dd><a href="http://www4.fnac.com/Guides/Telephonie/guidecalculatrice2012/default.aspx#bl=MMtmg">Bien choisir sa calculatrice</a></dd>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMtmg">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Guides/services/les-plus-fnac/default.asp#bl=MMtmg">Les 8+ Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/High-Tech/Communaute-High-Tech/cl153/w-4#bl=MMmic">Communaut&eacute; High-Tech</a></dd>
-						</dl>
-                        
-                        <p class="vignet"><a href="http://www.fnac.com/Changez-de-mobile/shi274256/w-4#bl=MMvignTMG" title="Changez de mobile !"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/changez-mobile-68x68.jpg" alt="Changez de mobile !" class="visu"/>Changez de <strong>mobile</strong>&nbsp;!&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-GPS -->
+        
 
-            
-			<li id="ong-Gadgets"> 
-			<a  class="ongLink" href="http://www.fnac.com/Petit-electromenager/shi181432/w-4#bl=ongPEM">
-            <span class="bulleNew bulleNewRouge">New</span>
-            <span class="inner">Maison &amp;&nbsp;Cuisine</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>Petit électroménager</dt>
-								<dd><a href="http://www.fnac.com/Petit-dejeuner-Cafe/shi290358/w-4#bl=MMpem">Café & Petit-déjeuner</a></dd>
-								<dd><a href="http://www.fnac.com/Preparation-culinaire/shi290827/w-4#bl=MMpem">Préparation culinaire</a></dd>
-								<dd><a href="http://www.fnac.com/Cuisson/shi290975/w-4#bl=MMpem">Cuisson</a></dd>
-								<dd><a href="http://www.fnac.com/Aspiration-repassage-et-couture/shi291031/w-4#bl=MMpem">Aspiration, Repassage, Couture</a></dd>
-								<dd><a href="http://www.fnac.com/Confort-de-la-maison-et-Bien-etre/shi292904/w-4#bl=MMpem">Confort & Bien-être</a></dd>
-								<dd><a href="http://www.fnac.com/Beaute-et-sante/shi292905/w-4#bl=MMpem">Beauté & Santé</a></dd>
-							</dl>
-							<dl>
-								<dt>Gros électroménager</dt>
-								<dd><a href="http://www.fnac.com/Lavage-et-sechage/shi291116/w-4#bl=MMpem">Lavage & Séchage</a></dd>
-								<dd><a href="http://www.fnac.com/Lave-vaisselle/shi291117/w-4#bl=MMpem">Lave-vaisselle</a></dd>
-								<dd><a href="http://www.fnac.com/Refrigerateur-et-congelateur/shi291133/w-4#bl=MMpem">Réfrigerateur & Congélateur</a></dd>
-                                <dd><a href="http://www.fnac.com/Cave-a-vin/shi292261/w-4#bl=MMpem">Cave à vin</a></dd>
-                                <dd><a href="http://www.fnac.com/Cuisson-et-hotte/shi291150/w-4#bl=MMpem">Cuisson & Hotte</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Ustensiles de cuisine</dt>
-								<dd><a href="http://www.fnac.com/Ustensiles-de-cuisson/shi292358/w-4#bl=MMpem">Ustensiles de cuisson</a></dd>
-								<dd><a href="http://www.fnac.com/Ustensiles-de-preparation/shi292362/w-4#bl=MMpem">Ustensiles de préparation</a></dd>
-								<dd><a href="http://www.fnac.com/Coutellerie-et-decoupe/shi292363/w-4#bl=MMpem">Coutellerie & Découpe</a></dd>
-								<dd><a href="http://www.fnac.com/Conservation-et-rangement/shi292366/w-4#bl=MMpem">Conservation & Rangement</a></dd>
-							</dl>
-							<dl>
-								<dt>Arts de la table</dt>
-								<dd><a href="http://www.fnac.com/Assiettes-plats-verrines/shi293360/w-4#bl=MMpem">Assiettes, Plats & Verrines</a></dd>
-								<dd><a href="http://www.fnac.com/Couverts-accessoires-de-table/shi293361/w-4#bl=MMpem">Couverts & Accessoires de table</a></dd>
-								<dd><a href="http://www.fnac.com/Vaisselle-du-Petit-dejeuner/shi293362/w-4#bl=MMpem">Vaisselle du Petit-déjeuner</a></dd>
-								<dd><a href="http://www.fnac.com/Vin/shi293363/w-4#bl=MMpem">Vin, Apéritif & Cocktail</a></dd>
-                                <dd><a href="http://www.fnac.com/Linge-de-cuisine/shi293365/w-4#bl=MMpem">Linge de cuisine</a></dd>
-							</dl>
-
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Les marques</dt>
-							<dd><a href="http://www.fnac.com/Expresso-et-cafetieres/Nespresso/shi221846/w-4#bl=MMpem">Nespresso</a></dd>
-							<dd><a href="http://www.fnac.com/Krups/Par-marque/lm221855/w-4#bl=MMpem">Krups</a></dd>
-							<dd><a href="http://www.fnac.com/Magimix/Par-marque/lm221856/w-4#bl=MMpem">Magimix</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Bodum/shi238302/w-4#bl=MMpem">Bodum</a></dd>
-							<dd><a href="http://www.fnac.com/Dyson/Par-marque/lm222057/w-4#bl=MMpem">Dyson</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Cuisinart/shi238305/w-4#bl=MMpem">Cuisinart</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Electrolux/lm246323/w-4#bl=MMpem">Electrolux</a></dd>
-							<dd><a href="http://www.fnac.com/Univers-Lagrange/shi245937/w-4#bl=MMpem">Lagrange</a></dd>
-						</dl>
-                        
-                            <p class="vignet"><a href="http://www.fnac.com/Cuisine/Cuisine/cl233/w-4#bl=MMvignPEM" title="Découvrez la communauté cuisine"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/macarons-68x68.jpg" alt="Découvrez la communauté cuisine" class="visu" />Découvrez la <strong>communauté cuisine</strong>&nbsp;&raquo;</a></p>
-                        
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Gadgets (cuisine)-->
-            
-			
-			<li id="ong-TiragesPhoto">
-				<a  class="ongLink" href="http://tiragesphoto.fnac.com/" target ="_blank"><span class="inner">Tirages photo</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>Tirages photo</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/tirages-photo.html')" href="http://tiragesphoto.fnac.com/tirages-photo.html" target ="_blank">Développement photo</a></dd>
-							</dl>
-							<dl>
-								<dt>Livres photo</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-xxl.html')" href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-xxl.html" target ="_blank">Sur papier satiné (XXL)</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-grands.html')"href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-grands.html" target ="_blank">Sur papier satiné (Grands)</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-petits.html')" href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-satine-petits.html" target ="_blank">Sur papier satiné (Petits)</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/sur-papier-photo.html')" href="http://tiragesphoto.fnac.com/sur-papier-photo.html" target ="_blank">Sur papier photo</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo-sur-papier-brillant.html')" href="http://tiragesphoto.fnac.com/livres-photo-sur-papier-brillant.html" target ="_blank">Sur papier brillant</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Posters et toiles</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-classique.html')" href="http://tiragesphoto.fnac.com/poster-classique.html" target ="_blank">Posters</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-xxl.html')" href="http://tiragesphoto.fnac.com/poster-xxl.html" target ="_blank">Posters XXL</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-sous-plexi.html')" href="http://tiragesphoto.fnac.com/poster-sous-plexi.html" target ="_blank">Posters sous plexi</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/poster-sur-alu.html')" href="http://tiragesphoto.fnac.com/poster-sur-alu.html" target ="_blank">Posters sur alu</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/photo-sur-toile.html')" href="http://tiragesphoto.fnac.com/photo-sur-toile.html" target ="_blank">Photos sur toile</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/pele-mele.html')" href="http://tiragesphoto.fnac.com/pele-mele.html" target ="_blank">Pêle-mêle</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/pele-mele-sur-toile.html')" href="http://tiragesphoto.fnac.com/pele-mele-sur-toile.html" target ="_blank">Pêle-mêle sur toile</a></dd>
-							</dl>
-							<dl>
-								<dt>Autres produits</dt>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/cadeaux-photo.html')" href="http://tiragesphoto.fnac.com/cadeaux-photo.html" target ="_blank">Cadeaux photo</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/cartes-de-vux.html')" href="http://tiragesphoto.fnac.com/cartes-de-vux.html" target ="_blank">Cartes de voeux</a></dd>
-								<dd><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/calendriers-photo.html')" href="http://tiragesphoto.fnac.com/calendriers-photo.html" target ="_blank">Calendriers photo</a></dd>
-							</dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseil Fnac</dt>
-							<dd><a href="http://www4.fnac.com/LaboFnac/essais/tousdossiers.aspx#bl=MMtirages">Dossiers Labo Fnac</a></dd>
-							<dd><a href="http://www.fnac.com/Photo/Photo-expositions-galeries/cl147/w-4#bl=MMpec">Actu photo</a></dd>
-						</dl>
-                        <p class="vignet"><a onclick="TrackExternalLink('MMtirages','http://tiragesphoto.fnac.com/livres-photo.html')" href="http://tiragesphoto.fnac.com/livres-photo.html" target ="_blank" title="Livres photo à partir de 8,90€"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/photo-68x86.jpg" alt="Livres photo à partir de 8,90€" class="visu"/><strong>Livres photo</strong> à partir de 8,90&nbsp;€&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-TiragesPhoto -->
+        
+<li id="ong-Musique" class="">
+    <a href="http://www.fnac.com/musique.asp#bl=MMmu" class="ongLink">Musique Jukebox</a>
+    <div id="ong-Musique-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-			<li id="ong-Evenement">
-				<a  class="ongLink" href="http://www.fnac.com/coffret-cadeau#bl=ongKdo"><span class="inner">Coffrets cadeaux</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>Coffrets cadeaux par thèmes</dt>
-								<dd><a href="http://www4.fnac.com/n256383/Coffrets-cadeaux-Sejours#bl=MMcoffrets">Séjours</a></dd>
-								<dd><a href="http://www4.fnac.com/n256384/Coffrets-cadeaux-Bien-etre#bl=MMcoffrets">Bien-être</a></dd>
-								<dd><a href="http://www4.fnac.com/n256385/Coffrets-cadeaux-Sport-et-pilotage#bl=MMcoffrets">Sport et pilotage</a></dd>
-								<dd><a href="http://www4.fnac.com/n256386/Coffrets-cadeaux-Gastronomie#bl=MMcoffrets">Gastronomie</a></dd>
-								<dd><a href="http://www4.fnac.com/n256426/Coffrets-cadeaux-Oenologie#bl=MMcoffrets">&OElig;nologie</a></dd>
-								<dd><a href="http://www4.fnac.com/n256387/Coffrets-cadeaux-atypiques#bl=MMcoffrets">Atypiques</a></dd>
-								<dd><a href="http://www4.fnac.com/n256389/Coffrets-cadeaux-Luxe#bl=MMcoffrets">Luxe</a></dd>
-								<dd><a href="http://www4.fnac.com/n256390/Coffrets-cadeaux-Multi-thematiques#bl=MMcoffrets">Multi-thématiques</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Coffrets cadeaux par marques</dt>
-								<dd><a href="http://www4.fnac.com/n256393/Coffrets-cadeaux-Fnac#bl=MMcoffrets">Coffrets cadeaux Fnac</a></dd>
-								<dd><a href="http://www4.fnac.com/n256394/Smartbox#bl=MMcoffrets">Smartbox</a></dd>
-								<dd><a href="http://www4.fnac.com/n256395/Wonderbox#bl=MMcoffrets">Wonderbox</a></dd>
-								<dd><a href="http://www4.fnac.com/n256396/Dakotabox#bl=MMcoffrets">Dakota Box</a></dd>
-								<dd><a href="http://www4.fnac.com/n256398/Euphorie#bl=MMcoffrets">Euphorie</a></dd>
-								<dd><a href="http://www4.fnac.com/n257042/OHMYBOX#bl=MMcoffrets">Oh My Box&nbsp;!</a></dd>
-								<dd><a href="http://www4.fnac.com/n256404/Gault-et-Millau#bl=MMcoffrets">Gault & Millau</a></dd>
-								<dd><a href="http://www4.fnac.com/n256405/VIPbox#bl=MMcoffrets">VIP Box</a></dd>
-								<dd><a href="http://www4.fnac.com/n263107/Flying-Pass#bl=MMcoffrets">Flying Pass</a></dd>
-							</dl>
-							<dl class="allProd">
-						        <dd><a href="http://www.fnac.com/coffret-cadeau#bl=MMcoffrets" class="allLink">Tous les produits</a></dd>
-						    </dl>
-						</div>
-					</div>
-					<div class="rightCol">
-						<dl>
-							<dt>Conseils</dt>
-							<dd><a href="http://www4.fnac.com/l256429/Coups-de-coeur-coffrets-cadeaux#bl=MMcoffrets">Coups de c&oelig;ur</a></dd>
-						</dl>
-						
-                        <p class="vignet"><a href="http://www4.fnac.com/l256428/Meilleures-ventes-coffrets-cadeaux#bl=MMvignCOFFRETS" target ="_blank" title="Meilleures ventes coffrets cadeaux"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/meilleures-ventes-68x68.gif" alt="Meilleures ventes coffrets cadeaux" class="visu"/>Meilleures ventes coffrets cadeaux&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-            </li><!-- /fin/#ong-Evenement -->
-            
-			<li id="ong-Spectacles">
-				<a  class="ongLink" href="http://www.fnacspectacles.com/"><span class="inner">Spectacles &amp;&nbsp;voyages</span></a>
-                
-				<div class="megaMenu clearfix posR" >
-				
-					<div class="mainCol clearfix">
-						<div class="mainColLeft">
-							<dl>
-								<dt>&Eacute;vènements</dt>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm')" href="http://www.fnacspectacles.com/place-spectacle/Concert-p304216639723798529.htm">Concerts</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Theatre-p460630208962351336.htm')" href="http://www.fnacspectacles.com/place-spectacle/Theatre-p460630208962351336.htm">Théâtre</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Humour-p460630208962352631.htm')" href="http://www.fnacspectacles.com/place-spectacle/Humour-p460630208962352631.htm">Humour</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Grands-Spectacles-p693575620074077568.htm')" href="http://www.fnacspectacles.com/place-spectacle/Grands-Spectacles-p693575620074077568.htm">Grands Spectacles</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Musees---Expositions-p304216639723798550.htm')" href="http://www.fnacspectacles.com/place-spectacle/Musees---Expositions-p304216639723798550.htm">Musées / Expositions</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Sports-p304216639723798544.htm')" href="http://www.fnacspectacles.com/place-spectacle/Sports-p304216639723798544.htm">Sports</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Festival-p304216639723798560.htm')" href="http://www.fnacspectacles.com/place-spectacle/Festival-p304216639723798560.htm">Festivals</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Classique---Opera-p460630208962351059.htm')" href="http://www.fnacspectacles.com/place-spectacle/Classique---Opera-p460630208962351059.htm">Classique / Opéra</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Danse-p304216639723798541.htm')" href="http://www.fnacspectacles.com/place-spectacle/Danse-p304216639723798541.htm">Danse</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Salons---Foires-p460630208962356678.htm')" href="http://www.fnacspectacles.com/place-spectacle/Salons---Foires-p460630208962356678.htm">Salons / Foires</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm')" href="http://www.fnacspectacles.com/place-spectacle/Cinema-p304216639723798556.htm">Cinéma</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Enfants-p304216639723798547.htm')" href="http://www.fnacspectacles.com/place-spectacle/Enfants-p304216639723798547.htm">Enfants</a></dd>
-							</dl>
-						</div>
-						<div class="mainColRight">
-							<dl>
-								<dt>Loisirs</dt>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Parcs---Spectacles-en-plein-air-p460630208962356221.htm')" href="http://www.fnacspectacles.com/place-spectacle/Parcs---Spectacles-en-plein-air-p460630208962356221.htm">Parcs / Spectacles en plein air</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Monuments---Visites-p927473535004354819.htm')" href="http://www.fnacspectacles.com/place-spectacle/Monuments---Visites-p927473535004354819.htm">Monuments / Visites</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Cirques---Spectacles-equestres-p460630208962353111.htm')" href="http://www.fnacspectacles.com/place-spectacle/Cirques---Spectacles-equestres-p460630208962353111.htm">Cirques / Spectacles équestres</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Cabarets---Revues---Galas-p460630208962356755.htm')" href="http://www.fnacspectacles.com/place-spectacle/Cabarets---Revues---Galas-p460630208962356755.htm">Cabarets / Revues / Galas</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Restauration-p1425483334638662047.htm')" href="http://www.fnacspectacles.com/place-spectacle/Restauration-p1425483334638662047.htm">Restauration</a></dd>
-								<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacspectacles.com/place-spectacle/Activites-de-Loisirs-p927473878230549172.htm')" href="http://www.fnacspectacles.com/place-spectacle/Activites-de-Loisirs-p927473878230549172.htm">Activités de Loisirs</a></dd>
-							</dl>
-							<dl>
-								<dt><a href="http://www.fnac.com/Guides/Common/CoffretsCadeaux/default.asp#bl=MMspect">Coffrets cadeaux</a></dt>
-							</dl>
-						</div>
-					</div>
-					<div class="rightCol" style="min-height:23em !important;">
-						<dl>
-							<dt><a onclick="TrackExternalLink('MMspect','http://www.fnac.com/voyages.asp#bl=MMspect')" href="http://www.fnac.com/voyages.asp#bl=MMspect">Voyages</a></dt>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=we')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=we">Week-ends</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=se')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=se">Séjours</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=cr')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=cr">Croisières</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=ci')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=ci">Circuits</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnac.com/voyages.asp')" href="http://www.fnac.com/voyages.asp">Vols, hôtels, à la carte</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://location.fnac.com/default_fnac.aspx')" href="http://location.fnac.com/default_fnac.aspx">Vacances en France</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnacvoyages.com/subHome.jsp?c.fo=wd')" href="http://www.fnacvoyages.com/subHome.jsp?c.fo=wd">Escapades en France</a></dd>
-							<dd><a onclick="TrackExternalLink('MMspect','http://www.fnac.com/avis')" href="http://www.fnac.com/avis">Location de voitures</a></dd>
-						</dl>
-						
-                        <p class="vignet"><a onclick="TrackExternalLink('MMvignSPECT','http://www.fnacspectacles.com/editorial.do?page=TRACK_festival2012#bl=MMvignSPECT')" href="http://www.fnacspectacles.com/editorial.do?page=TRACK_festival2012#bl=MMvignSPECT" title="Les festivals de l'été" target="_blank"><img src="http://www4-fr.fnac-static.com/img/vignettes/megaMenus/68x68 Festivals.png" alt="Les festival de l'été" class="visu"/><strong>Les festivals de l'été</strong>&nbsp;&raquo;</a></p>
-					</div>
-				</div><!-- /fin/.megaMenu -->
-				
-			</li><!-- /fin/#ong-Spectacles -->
 
-            
+        
+<li id="ong-DVD" class="">
+    <a href="http://www.fnac.com/video.asp#bl=MMvi" class="ongLink">DVD Blu-ray</a>
+    <div id="ong-DVD-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
 
-		</ul><!-- /fin/#onglets-->
 
-	</div>
-	<!-- *********************** /fin/#MENU**************************** -->
+        
+<li id="ong-JeuxVideo" class="">
+    <a href="http://www.fnac.com/jeux-video.asp#bl=MMje" class="ongLink">Jeux vidéo Consoles</a>
+    <div id="ong-JeuxVideo-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-Informatique" class="">
+    <a href="http://www.fnac.com/Informatique/shi48966/w-4#bl=MMmic" class="ongLink">Informatique Tablettes</a>
+    <div id="ong-Informatique-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-Photo" class="">
+    <a href="http://www.fnac.com/Photo-camescope/shi56352/w-4#bl=MMpho" class="ongLink">Photo Caméscopes</a>
+    <div id="ong-Photo-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-TV" class="">
+    <a href="http://www.fnac.com/TV-Video-Home-cinema/shi56328/w-4#bl=MMtvh" class="ongLink">TV, Vidéo Home cinéma</a>
+    <div id="ong-TV-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-Son" class="">
+    <a href="http://www.fnac.com/Son-hifi-lecteur-MP3/shi176062/w-4#bl=MMson" class="ongLink">Casques, Son Docks</a>
+    <div id="ong-Son-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-GPS" class="">
+    <a href="http://www.fnac.com/GPS-Telephones-eBook/shi56528/w-4#bl=MMtmg" class="ongLink">Smartphones Objets connectés</a>
+    <div id="ong-GPS-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-Gadgets" class="">
+    <a href="http://www.fnac.com/Petit-electromenager/shi181432/w-4#bl=MMpem" class="ongLink">Maison Cuisine</a>
+    <div id="ong-Gadgets-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-TiragesPhoto" class="">
+    <a href="http://tiragesphoto.fnac.com/?cref=om_coop_megamenu_tirages_18455_x" class="ongLink" target="_blank">Tirages photo</a>
+    <div id="ong-TiragesPhoto-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-Evenement" class="">
+    <a href="http://www.fnac.com/coffret-cadeau#bl=MMcoffrets" class="ongLink">Coffrets cadeaux</a>
+    <div id="ong-Evenement-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+        
+<li id="ong-Voyages" class="">
+    <a href="http://www.fnac.com/voyages.asp#bl=MMvoy" class="ongLink">Voyages</a>
+    <div id="ong-Voyages-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
 
         
+<li id="ong-Spectacles" class="">
+    <a href="http://www.fnacspectacles.com/?utm_campaign=onglet&utm_medium=text&utm_source=fnac.com&utm_term=billetterie#bl=MMspect" class="ongLink last">Billetterie</a>
+    <div id="ong-Spectacles-content" class="megaMenu clearfix">
+        
+    </div>
+</li>
+
+
+    </ul>
+    
+    
+</div>
+
+<!-- *********************** /fin/#MENU**************************** -->
+
+<script type="text/javascript">
+
+    $(function () {
+
+        $.ajax({
+            url: 'http://www4-fr.fnac-static.com/static/mm/NM3vJoMho5rMYqNk4MBwAiK1BMA1/MegaMenu.js',
+            dataType: 'jsonp',
+            cache: true,
+            crossDomain: true,
+            jsonp: false,
+            jsonpCallback: 'jsoncallback',
+            success: function(data) {
+
+                for (var i = 0; i < data.length; i++) {
+                    $('#' + data[i].Id).html(data[i].Content);
+                }
+
+                jQuery(window).load(function ($) {
+
+                    //[lignes des blocks à aligner
+                    var listGroups = [".megaMenu > .mmEqual ", ".mmMain > .mm1-3"];
+                    var len = listGroups.length, i;
+                    for (i = 0; i < len; i++) {
+                        AppCore.modules.utilities.equalBlocHeight(listGroups[i]);
+                    }
+
+                });
+            }
+        });
+
+    });
+
+</script>
+
+
+
     
 
+    
 </div><!-- /fin/#HEADER-->
+<div id="floatBasketcontent" class="hide add_basketErgoPipeAjax"></div>
+<div id="floatBasketcontentPush" class="hide add_basketErgoPipeAjax"></div>
+
+<div class="popinCGVOCB hide" id="PopinCGVOCB"></div>
+
+
+<script type="text/javascript">
+
+    openPopinSetExpiry = function () {
+        $("#MonCompteLink").mouseenter();
+        var d1 = new Date();
+        var d2 = new Date(d1);
+        d2.setHours(d1.getHours() + 1);
+        localStorage.setItem("sessionPopin", d2);
+    };
+
+    popinCheck = function () {
+        if (localStorage.getItem("sessionPopin") == null) {
+            openPopinSetExpiry();
+        }
+        else {
+            if ((Date.parse(localStorage.sessionPopin) - new Date()) <= 0) { openPopinSetExpiry(); }
+        }
+    };
+
+	function asyncLoadLastOrder() {
+		$.ajax({
+			url: "http://livre.fnac.com/LastUndeliveredOrder.aspx?w-4",
+			data: { },
+            type:  'GET',
+			success: function(response) {
+				$("#popinLastOrderInfosBox").html(response);
+			}
+		});
+	}
+
+	$(function () {
+		$("#MonCompteLink").popinManager({
+			targetContent: "#popinLastOrderInfosBox",
+			modeView: "layer",
+			pageLoad: true,
+			eventStart: "mouseenter",
+			eventStop:"mouseleave",
+			
+			customPosition: true,
+            relativePosition: { left: -53, top: 24 },
+			ajaxLoaderLink: "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif",
+			timer:200
+		});
+	    var isConnected = $("#MonCompteLink").hasClass("isIdentified");
+	    if (!isConnected) {
+
+	        $("#popinLastOrderInfosBox").addClass("not-connected");
+	        setTimeout(function () {
+	            $("#popinLastOrderInfosBox").removeClass("not-connected");
+	        }, 1000);
+
+	        popinCheck();
+	        
+	    }
+	    else {
+	        $(".popinLastOrderInfosBoxNotConnected").remove();
+	    }
+	});
+
+    $(function () {
+        $("#popinLastOrderInfosBox").on("mouseenter", function () {
+            $("#monCompte").addClass("hover");
+        });
+        $("#popinLastOrderInfosBox").on("mouseleave", function () {
+            $("#monCompte").removeClass("hover");
+        });
+    });
+
+    $(function () {
+        $(".lineNew a").on("mouseenter", function () {
+            $(".grey-infos").addClass("hover");
+        });
+        $(".lineNew a").on("mouseleave", function () {
+            $(".grey-infos").removeClass("hover");
+        });
+    });
+
+</script>
+
+<div id="popinLastOrderInfosBox" class="hide">
+    <div class="popinLastOrderInfosBoxNotConnected">
+        <p class="popCptTitle1"><strong>Bienvenue</strong>Comment ça va aujourd'hui ?</p>
+        
+        
+        <p class="popCptLine"><span id="OpenYourAccount1" class="fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBEC6BA42424FC349CB lkBtn">Se connecter</span></p>
+        
+        
+        <p class="popCptLine lineNew">
+            Nouveau client&nbsp;?
+            <span id="OpenYourAccount2" class="fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBEC6BA42424FC349CB orange">Créer un compte&nbsp;&rsaquo;</span>
+        </p>
+        <div class="grey-infos">
+            <p>
+                <img src="http://www4-fr.fnac-static.com/img/Template/Header/u58.png"/>
+                Retrouvez votre panier et vos listes à tout moment sur tous vos écrans.
+            </p>
+            <p>
+                <img src="http://www4-fr.fnac-static.com/img/Template/Header/u60.png"/>
+                Une expérience personnalisée avec des conseils rien que pour vous.
+            </p>
+        </div>
+    </div>
+</div>
+
+
+
+
+
+<div id='fnac_Bottom2' class="BSO_base"></div>
+
+
+
+ 
+
+
+
+
 
 
 
@@ -1649,37 +840,18 @@ WebForm_InitCallback();//]]>
         return 'Fermer';
     }
 </script>
-        <div id="content">
-        <div id="addingToBasketDiv"></div>
-           
-                    
+
+
+        <div id="content" itemscope itemtype="http://schema.org/Product">
+            
+
 <!-- breadcrumbs -->
-<div id="cheminfer">
-    <ul>
- 
-	            <li class="first">
-	            
-	                    <span class="mrg_r_sm">»</span>
-	                
-	                <a href="http://www.fnac.com/livre.asp">
-	                    Livre
-	                </a>
-	                	
-	            </li>
-	        
 
-<li class="current">
-    <span class="mrg_r_sm">»</span>La fille qui rêvait d'un bidon d'essence et d'une allumette
-</li>
-	    
-	    
-    </ul>
-</div>
 <!-- /breadcrumbs -->
 
+
             
 
-    
 <div id="lecteurMp3"></div>
 <script type="text/javascript">  
     AppCore.ready(function()
@@ -1749,3897 +921,6197 @@ WebForm_InitCallback();//]]>
         }
     }
 </script>
-<script type="text/javascript">
-    window.___gcfg = { lang: 'fr' };
-    $(document).ready(function() {
-        $.getScript("https://apis.google.com/js/plusone.js");
-    });
-</script>
-            <div id="home">
-                <div id="fichearticle" class="gris6">
-
-<!--<script type="text/javascript" language="javascript" src="http://www4-fr.fnac-static.com/js/jquery.tooltips.js"></script>-->
-<script type="text/javascript">
-    AppCore.ready(function()
-    {
-        AppCore.start("manageTooltips");
-    });
-    // Fonction de fin de preload du slider pour le tri ebook
-    function preloadSliderFinish() 
-    {
-        var myHash = decodeURIComponent(self.location.hash).toLowerCase();
-        if (myHash.indexOf("#format=") != -1 || self.location.href.indexOf("&format=") != -1) 
-        {
-            if (AppCore.$('#checkboxTriNumerique').length) 
-            {
-                  AppCore.$('#checkboxTriNumerique').attr("checked", false).click();
-                  triArticlesNumeriques(true, "#contenuSlider");
-            } 
-        }
-    }
-</script>
-
 
+            
+<div class="faHead clearfix">
+    <meta itemprop="url" content="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">
 
-<div class="wrapper editorial book mrg_b">
-    <div id="headMainCol">
-     
-        <div class="block_gris">
-            <div class="blk_inside fakeBorder">  
-                <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-                
-                
-                <div id="headMenu" class="pdg_t_25 pdg_b">
-                    
-<script type="text/javascript" language="javascript">
-    function ActivateShowPartAnchor() {
-        var liShow = document.getElementById("liShow");
-        liShow.style.visibility='visible';              
-        if (liShow != null)            
-            liShow.innerHTML = '<a href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#ShowPart">' + liShow.innerHTML + '</a>';
-    }
-</script>
-    <div class="nav-diaporama posrel">
+    <div class="faHeadLeft">
         
-        <span class="margin-center">
-
-				    <a href="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/ZoomPE/0/1/0/9782742765010.jpg" class="activeimg">
-				        <img src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif" alt="Millénium - Millénium, T2" id="artzoomimg" />
-				    </a>
-
-				<span><br />
-		            <A title="Voir tout son univers" class="fi_link" HREF="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson&nbsp;<img src="http://www4-fr.fnac-static.com/img/Ficheintervenant/deco/picto_fi_link.png" alt="Voir tout son univers" class="fi_link_img" /></A>
-		            
-		            &copy;&nbsp;Actes sud
-		            2006
-		            
-    	        </span>
-		    
-        </span>
-    </div>
-    
-    <ul class="listArrow1 mrg_t grisA">
-    
-            
- 
-<li class="zoom lienNosouligne">
-    
+        <div class="visuelArticle">
+        
+          <div class="mainVisual posrel">
+               <i class="loupe hide"><!-- --></i>
+               <img id="imgMainVisual" itemprop="image" src="http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1540-0.jpg" alt="" />
+               <script type="text/javascript">
+                   $("#imgMainVisual").addClass("hide");
+               </script>
+          </div>
+        
+        
+            <div class="carrouselMain clearfix">
+                <span class="arrow arrowLeft"></span>
+                <ul class="carrousel">
+                     
+                            <li > 
+                                        <a href="#" class="openZoomPopin">
+                                            <img src="http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1502-0.jpg" alt="Millénium - Millénium, T2_0" />
+                                        </a>
+                                    
+                            </li>
+                    
+                </ul>
+                <span class="arrow arrowRight"></span>
+            </div>
+        </div>
+        <div id="popinZoom" class="hide zoomArticle">
+            <a href="#" class="close"><i class="closeContent">Fermer</i></a>
+            <div class="topContent">
+                <span class="arrow arrowLeft"><i>precedent</i></span>
+                <ul class="main clearfix">
+
+                </ul>
+                <span class="arrow arrowRight"><i>suivant</i></span>
+            </div>
+            <div class="bottomContent clearfix">
+                <div class="leftPart">
+                    <ul class="thumb clearfix">
+                            
+                    </ul>
+                </div>
+            </div>
+        </div>
         <script type="text/javascript">
-            $(document).ready(function () {
-                if ($("ul li.zoom").length > 0) {
-                    $("ul li.zoom a").click(function (e) {
-                        var storedUrl = navDiaporama.currentImg.href;
-                        var nuUrl = $(this).attr("href");
-                        if ($("div#popZoomImage").length > 0) {
-                            navDiaporama.turnpages = "false";
-                            $("div#popZoomImage p span img").attr("src", nuUrl);
-                            $("div#popZoomImage").css("visibility", "visible");
-                            ifrlayer.make($("div#popZoomImage"));
-                        } else {
-                            navDiaporama.currentImg.href = "";
-                            navDiaporama.turnpages = "false";
-                            var pop = navDiaporama.makePopZoom();
-                            pop.zoomImage.src = nuUrl;
-                            pop.move();
-                            ifrlayer.make(pop);
+            var objJSON = [{"DTO":{"Index":0,"ImageGUID":"7d8d0fac-5b50-4142-adbc-9e00a4977e5b","LiteralUrl_Zoom":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1507-0.jpg","LiteralUrl_47":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1502-0.jpg","LiteralUrl_340":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1540-0.jpg","LiteralUrl_200":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1545-0.jpg","VisualType":1},"LiteralUrl_47":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1502-0.jpg","LiteralUrl_340":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1540-0.jpg","LiteralUrl_200":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1545-0.jpg","LiteralUrl_Zoom":"http://static.fnac-static.com/multimedia/Images/FR/NR/d2/ee/36/3600082/1507-0.jpg","ImageGUID":"7d8d0fac-5b50-4142-adbc-9e00a4977e5b","Index":0,"VisualType":1,"DisplayMode":0,"Link":null}];
+            var itemClicked = 0;
+
+            // On cache le slide si 1 seul visuel
+            if (objJSON.length < 2) {
+                $(".carrouselMain").addClass("hide");
+            }
+
+            function loadContentZoom(item) {
+        
+                var nbItemNotClicked = $("ul.carrousel li a:not(.openZoomPopin)").size();
+                var rItem = (item+1);
+                var VisualFaTypeMax = 4;
+                var itemRealClicked = (rItem > VisualFaTypeMax) ? rItem-nbItemNotClicked : rItem;
+
+                if ($("ul.main li").size() < 1) {
+                    var rCount = 0;
+                    var hasVideo = false;
+                    var tabHeight = [];
+
+                    for (x in objJSON) {
+                        obj = objJSON[x];
+
+                        if (obj.VisualType < VisualFaTypeMax) { // Generated images 
+                            imgOBJ = new Image();
+                            imgOBJ.src = obj.LiteralUrl_Zoom;
+                            tabHeight.push(imgOBJ);
+
+                            $("ul.main").append("<li>");
+                            $("ul.main li").eq(rCount).css({"background":"transparent url('"+obj.LiteralUrl_Zoom+"') no-repeat center center"});
+                            $("ul.thumb").append("<li><img src='"+obj.LiteralUrl_47+"'></li>");
+                            rCount++;
+                        } else if (obj.VisualType == VisualFaTypeMax) { // Video
+                            $("ul.main").append("<li id='playervideo'><div id='playerVideoContainer' class='flowplayer'><video></video></div></li>")
+                            $("ul.thumb").append("<li><i class='thumbVideo'>Video</i></li>");
+                            rCount++;
+                            hasVideo = true;
+						
                         }
-                        navDiaporama.currentImg.href = storedUrl; // on rétablit l'url initiale pour le click sur l'image
-                        return false;
-                    });
-                }
-            });
-		</script>
+                  
+                    }
 
-        <a href="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/ZoomPE/0/1/0/9782742765010.jpg" class="recto" onclick="return false;">
-            RECTO
-	    </a>
-	    <a href="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/ZoomVerso/0/1/0/9782742765010.jpg" class="verso" onclick="return false;">
-            VERSO
-	    </a>
+                    function callbackSlideMoveFunction(param){
+                        // On fait suivre la sélection visuelle des thumbs
+                        var i = param-1;
+                        $(".active", "ul.thumb").removeClass("active");
+                        $("ul.thumb li").eq(i).addClass("active");
+                    }
 
-	
-</li>
+                    // Comportement du premier slide (popin)
+                    setTimeout(function() {
+                        $(".topContent").articleSlide({
+                            startPosition:itemRealClicked,
+                            callbackMove:callbackSlideMoveFunction,
+                            bindKeys:true
+                        });
 
-        
-    </ul>
-    <div class="clearing"></div>
+                        // on positionne la selection sur le visuel cliqué
+                        $("ul.thumb li").eq(itemRealClicked-1).addClass("active");
 
+                        // on adapte la hauteur de la popin par rapport à son contenu 
+                        var tabH = [];
+                        for (val in tabHeight){
+                            tabH.push(tabHeight[val].height);
+                        }
 
-                </div>
-                
-                
-                <div id="headMainContent"> 
-                    
-                    
-                    <div class="pdg_v pdg_h_lg bg_blanc">
+                        tabH.sort(function(a,b){return b-a}); // on tri le tableau pour obtenir la plus grande taille d'image, on la set sur tous les LI
+                        $("ul.main li").height(tabH[0]);
                         
-                        
-                        
-                            
+						
+                        // on centre le player s'il existe
+                        if ($('#playervideo','ul.main').size() > 0) {
+                            var diff = (tabH[0] - $(".zoomArticle embed").height());
+                            var margin = (diff/2);
+                            if (margin > 5) {
+                                $(".zoomArticle embed").css("margin-top", margin+"px");
+                            }
+                        }
+						
+                        // Ajustement si un seul visuel zoom
+                        if (rCount < 2){
+                            $("ul.main li").css({
+                                'width':'100%',
+                                'margin-right':'0'
+                            });
+                            $("ul.main").css("position", "relative");
+                        }
+                    }, 200);
+
+                    var timeClear;
+
+                    // Comportement du second slide (popin)
+                    $("ul.thumb li").live("mouseenter",function(){
+                        var ul = $(this).parent();
+                        var index = $(this).index();
+                        var item = ($(this).index()+1);
+                        clearTimeout(timeClear);
+                        timeClear = setTimeout(function(){
+                            $(".active", ul).removeClass("active");
+                            $("li", ul).eq(index).addClass("active");
+                            $.articleSlide.move(item);
+                        }, 150);
+                    });
+
+                    $("ul.thumb li").live("mouseleave",function(){
+                        clearTimeout(timeClear);
+                    });
+                    
+				
+                } else {
+                    setTimeout(function(){
+                        $.articleSlide.move(itemRealClicked);
+                        // on positionne la selection sur le visuel cliqué
+                        $("ul.thumb .active").removeClass("active");
+                        $("ul.thumb li").eq(itemRealClicked-1).addClass("active");
+                    }, 100);
+                }
+                
+                // on ferme la popin lorqu'on souhaite cliquer dans la buybox
+                $("#popinZoom .buyBox a").click(function(){
+                    $("#layerPopin").click();
+                });
+                trackActionNewFARef(false, 'ZoomFA', 1891354);
+            }
+			
+            $(function(){
+                // Hover mainVisual
+                $(".mainVisual").hover(function(){
+                    $("i.loupe", this).toggleClass("hide");
+                });
+                $("i.loupe", ".mainVisual").click(function(){ // Event click on loupe
+                    $(this).prev().click();
+                });
 
-<h1 class="fontnormal mrg_b_sm">
+                // Slider sous le visuel produit
+                $(".visuelArticle").articleSlide({
+                    mainArticle : ".mainVisual",
+                    objJsonData : objJSON,
+                    nbShow: 5
+                });
+                
+                // Manager zoom pop-in
+                $(".openZoomPopin").popinManager({
+                    targetContent: "#popinZoom",
+                    callbackMethodAfterCreate: "loadContentZoom($(base.el).parent().index())",
+                    bindKeys:true
+                });
+            });
+        </script>
     
-    <em class="titre dispeblock gris5_lk">
-        
-            <a href="http://www4.fnac.com/Millenium/si7752" title="Voir tous les volumes de la série">Millénium</a>
-        ,&nbsp;T2
-            <a href="http://www4.fnac.com/Millenium/si7752">
-                <img src="http://www4-fr.fnac-static.com/img/pictos/picto-fiche-serie_33x15.png" alt="Voir tous les volumes de la série" title="Voir tous les volumes de la série" style="vertical-align:-1px"/>
-            </a>
         
-    </em>
-    
-
-    <strong class="titre dispeblock">
-        La fille qui rêvait d'un bidon d'essence et d'une allumette 
         
-    </strong>
 
-    						
-            <em class="participants dispeblock"><A title="Voir tout son univers" class="fi_link" HREF="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</A>&nbsp;<A title="Voir tout son univers" HREF="http://www4.fnac.com/Stieg-Larsson/ia103133"><img src="http://www4-fr.fnac-static.com/img/Ficheintervenant/deco/picto_fi_link.png" alt="Voir tout son univers" class="fi_link_img" /></A>, <A HREF="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</A> (Traduction), <A HREF="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</A> (Traduction)
-	        
-	         </em>
-	    
-</h1>
 
 
-<ul class="subtitledesc noir">
 
+<table class="noir">
     
-
-        <li id="ebookFormat" class="noir">
-           
-                Roman (broché). Paru en 10/2006
-         
-        </li>
+        <tr>
+            <th scope="row"><span>Date de parution</span></th>
+            <td>
+                
+                    <span>07/11/2011</span>
+                
+            </td>
+        </tr>
     
-    <li class="moutarde gras pdg_v_sm">
-        <div id="BookAvail">
-         
-         En Stock
+        <tr>
+            <th scope="row"><span>Editeur</span></th>
+            <td>
+                
+                    <span itemprop="manufacturer"><a id="FnacLink1" href="http://recherche.fnac.com/e67090/Editions-actes-sud">Éditions actes sud</a></span>
+                
+            </td>
+        </tr>
     
-        </div>
-        
-    </li>
-</ul>
-
-
- 
-  
-
-
-
-    <div class="lireLaSuite mrg_v_sm">
-
-        
-        
-            Lisbeth et Mickael sont de retour dans un roman aussi trépidant que le premier. Nos deux anti-héros sont à nouveau plongés dans une aventure passionnante. Un livre époustoufflant, plein d'humour et d'effroi. Vivement le tome 3. Anais, libraire à la Fnac Clermont Q
+        <tr>
+            <th scope="row"><span>Format</span></th>
+            <td>
+                
+                    <span>ePub</span>
+                
+            </td>
+        </tr>
     
-
+        <tr>
+            <th scope="row"><span>Type de DRM</span></th>
+            <td>
+                
+                    <span>Adobe DRM </span>
+                
+            </td>
+        </tr>
     
+</table>
 
 
+    <p class="txt_r vcar"><a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson?NUMERICAL=Y#ficheDt" class="gras">Voir les caractéristiques</a></p>    
 
-    </div>
-
-
-                        
-                    </div>
-                    
-                    <div class="pdg_v pdg_h_lg brd_t_gris bg_blanc gris6_lk">                     
-                        
-<!--il manque les hits qui sont pas déja dans new ref-->
-
-
-                    <ul class="mrg_b_sm">
-                    
-                        <li class="dispeline img_m">
-                            
-                                <img src="http://www4-fr.fnac-static.com/img/decos/distinctions/small/coupcoeur.gif" alt="Coup de cœur des vendeurs" />&nbsp; 
-                            
-                            <strong>Coup de cœur des vendeurs</strong>
-                            
-                        </li>
-                    
-                    </ul>
-                
-
-
-                        
-    <ul>      
-         
-            <li class="dispeline img_b">
-                
-                Note des internautes:
-                
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
 
-			    &nbsp;|&nbsp;
-            </li>
-        
-            <li class="dispeline"><a href="#reviews">
-            
-            Lire les avis des internautes
-            </a> (72)</li>
-	    
-    </ul>
 
-                    </div>
-                    
-                    
-                    
-                    <div id="bottomHeadMain" class="" >
-                        
-                        
-<div  id="userNotes">
-    
-<p class="mrg_no pdg_v">
-    Pour donner votre avis, veuillez vous
-    <a href="https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Standard&PageRedir=http%3a%2f%2flivre.fnac.com%2fa1891354%2fMillenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">
-        identifier
-    </a>
-    .
-</p>
 
+<div id="popinAveDaeFormat" class="hide">
     
-</div>
- 
-                    
-                        
-                        
 
-<div class="socialNetwork" id="socialNetworkOwner">
-    <div class="shareitems img_m">
-    
-    <div class="fb"><fb:like href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" send="false" layout="button_count" show_faces="false" font="tahoma" ref="DISS_FBL_PE_LIVRE" ></fb:like></div>
-    
-                <div class="DivPlus">
+<a href="#" class="close"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close"></a>
+<h3 class="bleuDemat">Que sont les formats AVE et DAE ?</h3>
 
-<g:plusone size="medium" href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson&Origin=DISS_GOOG1_PE"></g:plusone></g:plusone></div>
-            
-            <a href="http://www4.fnac.com/Shelf/Common/Partners/SocialNetwork/RedirectPage.aspx?url=http%3a%2f%2fwww.facebook.com%2fsharer.php%3fu%3dhttp%3a%2f%2flivre.fnac.com%2fa1891354%2fMillenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson%3fOrigin%3dDISS_FB_PE%26t%3dMill%c3%a9nium+T2+%3a+%22%22La+fille+qui+r%c3%aavait+d%27un+bidon+d%27essence+et+d%27une+allumette%22%22+par+Stieg+Larsson+%3a+Livre" target="_blank" class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img//Communautaire/pictos/link-facebook2.png" alt="Facebook" title="Ajouter au Facebook" /></a>
-            
-            <a id="DivSendMailFA" href="#"class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail2.png" alt="envoyer à un ami" title="envoyer à un ami" /></a>
-            <a class="btPartager gris6 mrg_l_sm" rel="nofollow" href="#">
-                Plus de partage
-            </a>
-            <a id="DivHtmlEmbedFA" style="display: none;"></a>
-            
-        </div>
-         <div class="sep_gris">
-        </div>
-        
-      
-   
-    
+<p>
+    <strong class="rouge dispeblock">Attention:</strong>
     
-
-    <div class="clearing"></div>
+    <strong>Les BD au format AVE ou DAE</strong> ne sont pas lisibles sur les applications Kobo by Fnac ou sur la tablette Kobo Arc.
+    Ces formats sont lisibles <strong>uniquement en streaming</strong> sur votre ordinateur.
+</p>
 </div>
 <script type="text/javascript">
-    AppCore.ready(function()
-    {
-        AppCore.modules.ready("socialNetworks", function()
-        {
-            AppCore.$("#socialNetworkOwner a.btPartager").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','PE||FnacDirect§1891354§1891354§1584035§9782742765010|False',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            AppCore.$("#DivSendMailFA").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','PE||FnacDirect§1891354§1891354§1584035§9782742765010|True',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            function setTooltServ(e)
-            {
-                tooltServ.obj = e.target;
-                tooltServ.x = e.pageX;
-                tooltServ.y = e.pageY;
-            }
+    $(function () {
+        $(".openPopinAveDaeFormat").popinManager({
+            targetContent: "#popinAveDaeFormat"
         });
     });
 </script>
-  
-                        
-                            
-                        
-                       
-                    </div>   
-                </div> 
-                <div class="clearing"></div>
-            </div>
-        </div>        
-        
+    
         
-                <div id="PhysicalPromoDiv">
-                
-<!-- PROMOS -->
-
-        <!-- Else (autre promo) -->
-               <div class="block block_gris block_f7f8f6 mrg_t"><div class="filled flat pdg"><b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>      
-               
-                  <div class="std_Tmargins"><P><FONT face="Arial, Helvetica, sans-serif"><A href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx" target=_blank border="0"><IMG border=0 hspace=8 alt=Kobo align=left src="http://multimedia.fnac.com/Multimedia/bandeaux/eBook/koboglow_75.jpg"></A><FONT size=2>Lisez de jour comme de nuit avec le <A href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx" target=_blank border="0"><FONT color=#f0000><STRONG>KoboGlo</STRONG></FONT></A>, </FONT></FONT><FONT face="Arial, Helvetica, sans-serif"><FONT size=2>la première liseuse tactile et lumineuse.<BR>Retrouvez toute la gamme Kobo by fnac à partir de 99,90 €</FONT></FONT></P></div>
-                
-        <!-- Else (autre promo) -->
-               
-                  <table class="pictopromofa noir" cellpadding="0" cellspacing="0">
-                    <tr>
-                      <td>
-
-                         
-                          <img src="http://www4-fr.fnac-static.com/img/promo/PUSHC-ADHREMISE.png" alt="" />
-                        
-                      </td>
-                      <td class="noir"><b><font size=2>Offre spéciale Adhérent : 1€ offert </b>pour toute commande contenant au moins un Livre, CD, DVD, Blu-ray, Jeux Vidéo ou logiciel  avec le mode « retrait en magasin sous 3 à 6 jours ». </FONT><a href="http://selfservice.fnac.com/selfservice_FR/template.do?id=11023
-"target="_blank"> Voir conditions </a>
-</td>
-                     </tr>
-                   </table>
-                </div></div>
-   
-   
+    <div class="hache"></div>
+    <ul class="floatl SocialNetwork">
+        <li class="FBLike">
+    <div class="fb"><fb:like href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" send="false" layout="button_count" show_faces="false" font="tahoma" ref="DISS_FBL_PE_LIVRE" ></fb:like></div>
+</li>
+        <li class="GPlus">
 
-  
-<!-- /PROMOS -->
+<g:plusone size="medium" href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson&Origin=DISS_GOOG1_PE"></g:plusone></li>
+        <li class="Twitter">
 
-                
-                </div>
+<div id="custom-tweet-button">
+    <span id="FnacLink1" target="_blank" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F4E4E4349CBC21F32454AC1431F32454AC143194AC2C0C52F3246CB432E3BCC46CBCB43C1143B46CB48432EBE464848134222134A264946C34E132142173B2117132123212244494A42143331B82E45CBCBC013224A1321441321444846C4C1431944494A4219424F4E1321444A2A25262A22232B132144BE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F49 ">&nbsp;</span>
+    
+</div></li>
+        <li class="SendMailFA">
+            <span id="FnacLink1" class="fnac 12 openPopinSendMail">
+                <span id='DivSendMailFA'><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail2.png" alt="envoyer à un ami" title="envoyer à un ami" /></span>
+            </span>
             
-<!-- PROMOS -->
-
-<div id="Promoepub" style="display:none">
-
-   </div>
+        </li>
+    </ul>
+    <script type="text/javascript">
+        
+        $(function(){
+            $(".openPopinSendMail").popinManager({
+                targetContent: "#PartagerZone",
+                ajaxMethod: "WebForm_DoCallback('PartagerZone','||FnacDirect§1891354§1891354§1584035§9782742765010|True',base.jSCallBack,null,null,true)"
+            });
+        });
+    </script>
+    <script type="text/javascript">
+        window.___gcfg = { lang: 'fr' };
+        $(function () {
+            $.ajax({ url: "https://apis.google.com/js/plusone.js", dataType: "script", cache: true });
+        });
+    </script>
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
 
-  
-<!-- /PROMOS -->
+    </div><!-- /.faHeadLeft -->
 
-            
+    <div class="faHeadCenter">
         
-   </div> 
-   
 
-      
-   <div id="headRightCol">
-           
-        
- <!-- Algo d'affichage-->
 
+<div>
+    
+    
+    
+        
 
+<h1>
+    
+            <a href="http://www4.fnac.com/Millenium/si7752" title="Voir tous les volumes de la série">Millénium</a>
+        ,&nbsp;Tome 2
 
- 
-<!-- Si Exlusivité Fnac -->
+    <strong class="titre dispeblock">
+        <span itemprop="name">La fille qui rêvait d'un bidon d'essence et d'une allumette</span>
+        
+    </strong>
 
-            <!----------------------------------------------------->
-            <!--Fnac Price -->
+    
+</h1>
 
 
 
-                            
-<script type="text/javascript">
-    function LaunchWL(args){
+<p class="FA lienInverse mrg_t_sm">
+    						
+            <span class="participants"><span id="FnacLink1" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F32CB46434C1EB84AC1C2C24F491F464A2A20222A2222 ">Stieg Larsson</span> (Auteur), <span id="FnacLink2" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A252C2325251FB843494A1EBCC1C34E414A4245 ">Lena Grumbach</span> (Traduction), <span id="FnacLink3" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A252C2325261FBE4AC1421E4B431EBC4FC3C443494A4649 ">Marc de Gouvenain</span> (Traduction)
+	        
+	         </span>
+	    
+            <span id="Span1">-&nbsp;23/10/2006</span>
         
-        WebForm_DoCallback('ArticleHeaderPE$FullPricerControl$ctl00$FnacPrice$AddItemToWL',args,JSHandlerStruct,null,null,true)
-    }
-</script>
- 
-<div class="block block_gris block_f7f8f6 mrg_b">
-    <div class="blk_inside filled pdg_v txt_c">  
-        <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b> 
-
-    <div class="noir img_-25">
-
-
+</p>
 
-    
-            <ul class="noir" style="font-size:11px;">
-            <li>
-            
-                <img src="http://www4-fr.fnac-static.com/img/pictos/price/small/picto_5pourcent.gif" alt="Picto de réduction" />
-            
-                        <span class="price">22,23&nbsp;&euro;</span>&nbsp;&nbsp;
-                        <del class="oldPrice">23,40&nbsp;&euro;</del></li>
-                    </ul>
 
-        
 
+<div id="PopinInfoBook" class="hide genericPopin">
+    <a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+    <div class="PopinInfoBookTitle"><h2 class="upper">B&#233;n&#233;ficiez de <em class="rouge"><span>-5%</span> sur tous vos livres</em></h2><p class="PopinInfoBookIntro">En choisissant le retrait en magasin</p></div>
+    <div class="clearfix puce_no">
+        <div class="PopinInfoBookCol PopinInfoBookCol1"><p class="PopinInfoBookColTitle">Valider votre panier</p><p class="fontS_12">Ajoutez les livres &#224; votre panier, puis validez-le pour passer &#224; l&#39;&#233;tape suivante.</p></div>
+        <div class="PopinInfoBookCol PopinInfoBookCol2"><p class="PopinInfoBookColTitle">Choisissez le retrait en magasin</p><p class="fontS_12">Lors de l&#39;&#233;tape du choix du mode de livraison, choisissez le retrait en magasin. C&#39;est rapide et c&#39;est gratuit.</p></div>
+        <div class="PopinInfoBookCol PopinInfoBookCol3"><p class="PopinInfoBookColTitle">C&#39;est fait !</p><p class="fontS_12">Et hop, les prix se mettent &#224; jour automatiquement : vous b&#233;n&#233;ficiez d&#39;une remise imm&#233;diate de 5% sur le prix &#233;diteur* de tous les livres de votre panier.</p></div>
     </div>
+    <p class="PopinBookMentions">(*) Conform&#233;ment &#224; la nouvelle loi encadrant les conditions de la vente &#224; distance des livres, qui vient compl&#233;ter la loi du 10 ao&#251;t 1981 sur le prix unique du livre, l&#39;application d&#39;une remise de 5% sur le prix des livres n&#39;est d&#233;sormais possible que dans le cadre d&#39;un retrait dans un point de vente commercialisant des livres. B&#233;n&#233;ficiez ainsi de la remise de 5% sur le prix &#233;diteur et de la livraison gratuite en choisissant de faire livrer votre commande dans le magasin Fnac de votre choix</p>
+</div>
 
 
 
-<!-- PROMOS X-->
 
 
-<!-- /PROMOS -->
+<script type="text/javascript">
 
+    function trackOmnitureFivePercent(obj) {
+        var mode = "fa";
+        var t = $(obj.$el[0]);
+        var articlePrid = t.data("prid");
+        
+        var prid = (articlePrid) ? articlePrid : "";
+        var s = s_gi('fnaccomprod');
+        s.linkTrackVars = 'events,products,eVar25';
+        s.linkTrackEvents = 'event4';
+        s.events = 'event4';
+        s.products = (prid) ? ";" + prid : "";
+
+        switch (mode) {
+            case "fa":
+                s.eVar25 = "FA: message livres"
+                s.tl(this, 'o', ' FA message livres');
+                break;
+            case "arbo":
+                s.eVar25 = "Arbo: message livres"
+                s.tl(this,'o',' Arbo message livres');
+                break;
+            case "search":
+                s.eVar25 = "Rech: message livres"
+                s.tl(this,'o',' Rech message livres');
+                break;
+            case "basket":
+                s.eVar25 = "Panier: message livres"
+                s.tl(this,'o',' Panier message livres');
+                break;
+        }
 
+    }
 
-    
-<p class="gris6_lk">
-  <span class="rouge gras">Livraison gratuite</span> 
-  (<a href="http://www.fnac.com/help/A13_05_N.asp?NID=-11&RNID=-11" target="aide" title="Conditions pour profiter de la livraison gratuite">
-    voir conditions
-  </a>)
-</p>
+    $(function () {
+        $(".openPopinInfoBook").popinManager({
+            targetContent : "#PopinInfoBook",
+            ajaxLoaderLink : "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif",
+            callbackMethodAfterCreate : "trackOmnitureFivePercent(this)"
+        });
+    });
+
+</script>
 
-      
     
+</div>
+        
+        
+    <div class="clearfix userOpinion floatl lienInverse mrg_b mrg_r" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> 
+        <span id="FnacLink1" class="fnac 124AC446C24649CB43C1494AC3CB43C2 ">
+            <span class="openLayerUserOpinion FA noir">
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+
+
+                    <span itemprop="ratingValue">4</span>/5
+                    <span>
+                        (<span itemprop="reviewCount">74</span>&nbsp;Avis)
+                        <meta itemprop="ratingCount" content="74" />
+                    </span>
+                
+            </span>
+        </span>
+        
+    </div>
+    <div id="popinAvisInternautes" class="hide">
+        <div id="ArticleHeaderPE_Comments_FAPopinUsersOpinion"></div>
+    </div>
+    <script type="text/javascript">
+        $(".openLayerUserOpinion").popinManager({
+            modeView: "layer",
+            eventStart: "mouseenter",
+            eventStop: "mouseleave",
+            targetContent: "#popinAvisInternautes",
+            ajaxMethod: "WebForm_DoCallback('ArticleHeaderPE$Comments$FAPopinUsersOpinion','true',base.jSCallBack,null,null,false)",
+            callbackMethod: "longComment()",
+            ajaxLoaderLink: "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif",
+            customPosition: true,
+            timer:400
+        });
+    </script>
 
+        
+<div class="floatl distinct">
+    
+        <span class="mrg_r">
+        <img src="http://www4-fr.fnac-static.com/img/decos/distinctions/small/coupcoeur.gif" alt="" />
+        Coups de c&oelig;ur  des Libraires
+        <span id="FnacLink1" class="fnac 12B24FC3C0B24F43C3C1 ">(3)</span>
+            
+        
+        </span>
+    
+</div>
+<div class="clearb"></div>
 
 
-    <p class="moutarde gras">En Stock
-    </p>
 
+        
 
 
-        <div>
+        
+         <div class="pricerZone clearfix">   
             
-                        <ul>
 
-                          <li>
-                            
-                        
-                          
-                          
-                            
-                        
-                            <a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&sctype=standard&prid=1891354&from=111" rel="nofollow" FnacIdProduct="1891354" class="bout-ajout FnacBtnAddBasket" PageOriginClickToBasketType="111"><span class="inner">Ajouter au panier</span></a>
-                            
-			</li>
-                            
-                                <li class="gris5_lk mrg_b_sm bold">ou&nbsp;
-                                
-                            
 
-                                <a   href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?sctype=selection&action=1&prid=1891354" rel="nofollow">Ajouter &agrave; ma s&eacute;lection</a></li>
-                            
-                            <li class="gris6_lk mrg_b_sm"><a href="http://www4.fnac.com/shelf/SearchShopsArticles.aspx?PRID=1891354&NID=1&RNID=-1">Consulter le stock dans votre magasin</a></li>
-                        
-                        </ul>
-                                
-       
-        </div>
 
 
-     
-    </div>
-</div>  
-<div id="ArticleHeaderPE_FullPricerControl_ctl00_FnacPrice_AddItemToWL"></div>
+        <!--New Price 07/12 -->
+        
+    
+    
+    
 
+    <p class="bigPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">9<i>&euro;99</i></strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                <meta itemprop="price" content="9.99" />
 
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
 
+        </p>
 
+        
 
+    
+            
 
+             
 
+<!-- PROMOS -->
 
+        <div id="PopinAdherentCardPromo" class="hide genericPopin clearfix adhPopin">
+            
+	<a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+	<h2 class="upper mrg_b">Prenez votre carte Fnac 3 ans</h2>
+	
 
-    <!-- Start block pricer MP sans MEA -->
-      <div class="block block_gris block_f8f8f6 mrg_b">
-        <div class="blk_inside pricer pdg_h_sm pdg_v_sm txt_c">
-            <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-                <span class="grisfonce police12 gras">Plus d'offres en stock</span>
+	<!-- Type pour le message à afficher -->
+	<!-- OA : Offre Adhérent, RD : Remise Différée -->
+	
+    <div class="card">
+        Avec <strong>la carte 3 ans</strong>, vous <strong class="rouge">économisez </strong> sur votre compte fidélité Fnac.
+        <ul>
+	
+		    <li class="clearfix">
+                <!-- On affiche la carte 25 ans si le client n'est pas loggé ou si l'âge du client loggé est strictement supérieur à 25 ans -->
+		        <img src="http://www4-fr.fnac-static.com/img/decos/adherent/bg-push-eactivation.png" class="psVisuel"/>
+                <div class="age">
+		            <span class="HL hlJaun">Vous avez <strong>plus de 25 ans</strong></span>
+                    <span class="during">Adhésion 3 ans</span>
+                </div>
                 
+<div>
+    <span class="userPrice floatl">
+        
+        10&euro;
+    
 
-           <!-- Boucles sur toutes les offres concernant cet article-->
+    </span>
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(2022506, 0, 0,1)" FnacAdditionalEvent="hidePopinAdherentCard();" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=2022506&sctype=standard&from=111" rel="nofollow" FnacIdProduct="2022506" class="btn b_std_y btn_medium FnacBtnAddBasket floatl">
+        <span class="img i_cart pdg_b_sm mrg_r_lg"></span> Ajout au panier
+    </a>
+</div>
+                
+            </li>
+        
+            <li class="clearfix">
+                <img src="http://www4-fr.fnac-static.com/img/decos/adherent/bg-push-eactivation.png" class="psVisuel"/>
+		        <!-- On affiche la carte 25 ans si le client n'est pas loggé ou si l'âge du client loggé est inférieur ou égal à 25 ans -->
+		        <div class="age">
+                    <span class="HL hlJaun">Vous avez <strong>25 ans ou moins</strong></span>
+                    <span class="during">Adhésion 3 ans</span>
+		        </div>
+                
+<div>
+    <span class="userPrice floatl">
         
-                  <ul class="block MP_MEA pdg_v_sm brd_b_gris context">
-                    <li class="seller">
+        10&euro;
+    
 
-                    <!-- Vendeur -->
-                    <span class="bleu_MP">Vendu par
-                   	
-		                <a href="http://www4.fnac.com/RecycLivre/srefE883410C-7D27-B9CF-2B4B-606141DA5343" class="bleu_MP"><span class="gras">RecycLivre</span></a>
-		            
-		            </span>
-                    <br />
+    </span>
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(2022508, 0, 0,1)" FnacAdditionalEvent="hidePopinAdherentCard();" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=2022508&sctype=standard&from=111" rel="nofollow" FnacIdProduct="2022508" class="btn b_std_y btn_medium FnacBtnAddBasket floatl">
+        <span class="img i_cart pdg_b_sm mrg_r_lg"></span> Ajout au panier
+    </a>
+</div>
+                
+            </li>
+        
+        </ul>
+    </div>
+        </div>
+        <div id="PopinAdherentCardPromoWelcome" class="hide genericPopin clearfix adhPopin">
+            
+	<a href="#" class="close floatr"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close" /></a>
+	<h2 class="upper mrg_b">Prenez votre carte Fnac 3 ans</h2>
+	
 
-                    <!-- Prix  -->
-                        <span class='rouge gras'>
-  
-    4,98&nbsp;&euro;   
+	<!-- Type pour le message à afficher -->
+	<!-- OA : Offre Adhérent, RD : Remise Différée -->
+	
+    <div class="card">
+        Avec <strong>la carte 3 ans</strong>, vous <strong class="rouge">économisez 0&nbsp;&euro;</strong> immédiatement.
+        <ul>
+	
+		    <li class="clearfix">
+                <!-- On affiche la carte 25 ans si le client n'est pas loggé ou si l'âge du client loggé est strictement supérieur à 25 ans -->
+		        <img src="http://www4-fr.fnac-static.com/img/decos/adherent/bg-push-eactivation.png" class="psVisuel"/>
+                <div class="age">
+		            <span class="HL hlJaun">Vous avez <strong>plus de 25 ans</strong></span>
+                    <span class="during">Adhésion 3 ans</span>
+                </div>
+                
+<div>
+    <span class="userPrice floatl">
+        
+        10&euro;
+    
 
-</span>
+    </span>
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(2022506, 0, 0,1)" FnacAdditionalEvent="hidePopinAdherentCard();" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=2022506&sctype=standard&from=111" rel="nofollow" FnacIdProduct="2022506" class="btn b_std_y btn_medium FnacBtnAddBasket floatl">
+        <span class="img i_cart pdg_b_sm mrg_r_lg"></span> Ajout au panier
+    </a>
+</div>
+                
+            </li>
+        
+            <li class="clearfix">
+                <img src="http://www4-fr.fnac-static.com/img/decos/adherent/bg-push-eactivation.png" class="psVisuel"/>
+		        <!-- On affiche la carte 25 ans si le client n'est pas loggé ou si l'âge du client loggé est inférieur ou égal à 25 ans -->
+		        <div class="age">
+                    <span class="HL hlJaun">Vous avez <strong>25 ans ou moins</strong></span>
+                    <span class="during">Adhésion 3 ans</span>
+		        </div>
+                
+<div>
+    <span class="userPrice floatl">
+        
+        10&euro;
+    
 
+    </span>
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(2022508, 0, 0,1)" FnacAdditionalEvent="hidePopinAdherentCard();" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=2022508&sctype=standard&from=111" rel="nofollow" FnacIdProduct="2022508" class="btn b_std_y btn_medium FnacBtnAddBasket floatl">
+        <span class="img i_cart pdg_b_sm mrg_r_lg"></span> Ajout au panier
+    </a>
+</div>
+                
+            </li>
+        
+        </ul>
+    </div>
+        </div>
+        <script type="text/javascript">
+            $(function () {
+                $(".openPopinAdherentCardPromo").popinManager({
+                    targetContent: "#PopinAdherentCardPromo",
+                    ajaxLoaderLink: "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif"
+                });
+                $(".openPopinAdherentCardPromoWelcome").popinManager({
+                    targetContent: "#PopinAdherentCardPromoWelcome",
+                    ajaxLoaderLink: "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif"
+                });
+            });
+        </script>
+    
+<!-- /PROMOS -->
 
-                    
-							 <span class="gris7"> d'occasion </span>
-							 <br /><span class="police11">+ Frais de port : 2,99&nbsp;€</span>
-							 
-                    
-                    </li>
-                    <li class="basket">
-                    
-                    
-                        <p class="moutarde gras mrg_no">En Stock</p>
-                    
-                    
-                      <span class="img_-50">
-                        
-                                    <span class="bout-or"><a FnacIdProduct="1891354" FnacIdOffre=d053f505-f910-3b75-daaf-683c7ab9e5e2 class="inner FnacBtnAddBasket" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&sctype=standard&prid=1891354&offer=d053f505-f910-3b75-daaf-683c7ab9e5e2&from=112" rel="nofollow" >Ajouter au panier</a></span>
-                              
-                      </span>
-                    </li>
 
-                  </ul>
-                  
-                  <ul class="block MP_MEA pdg_v_sm brd_b_gris context">
-                    <li class="seller">
+        </div>
 
-                    <!-- Vendeur -->
-                    <span class="bleu_MP">Vendu par
-                   	
-		                <a href="http://www4.fnac.com/BOOKS-ANY/srefD8F52DDB-6B38-D341-6EA5-886F03DEFBFC" class="bleu_MP"><span class="gras">BOOKS ANY</span></a>
-		            
-		            </span>
-                    <br />
+        
 
-                    <!-- Prix  -->
-                        <span class='rouge gras'>
-  
-    21,72&nbsp;&euro;   
 
-</span>
 
+        <p class="dispoAndSeller">
+        <!--état du produit si la BB est MP occaz-->
+        
+                    <strong class="avail">
+        <span class="vert">Téléchargement immédiat</span>
+    
 
-                    
-							 <span class="gris7">  Neuf  </span>
-									
-									<br /><span class="police11">+ Frais de port : 2,99&nbsp;€</span>
-								
-                    
-                    </li>
-                    <li class="basket">
-                    
-                    
-                        <p class="moutarde gras mrg_no">En Stock</p>
-                    
-                    
-                      <span class="img_-50">
-                        
-                                    <span class="bout-or"><a FnacIdProduct="1891354" FnacIdOffre=9772ef87-dd13-c149-8894-ff0a5ed49e64 class="inner FnacBtnAddBasket" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&sctype=standard&prid=1891354&offer=9772ef87-dd13-c149-8894-ff0a5ed49e64&from=112" rel="nofollow" >Ajouter au panier</a></span>
-                              
-                      </span>
-                    </li>
+</strong>
+                
+        </p>
 
-                  </ul>
-                     
 
-       <!----------------------------------------------------->
-       <!-- Résumé MP -->
-            
+        
+        
 
 
-    <!-- Pour l'intégration : Utiliser la liste article.Offers en cas d'un besoin de séparer les offres pa statut-->
+        
+            
+        
+        
 
-    <!-- Afficher le lien pour les  offres MarketPlace  -->
-                <!-- Plus d'offres MarketPlace  -->
-                     
-                 <ul class="pdg_t_sm">
-                   <li>
-                     <span class="bleuMP">
-                     <a  href="http://livre.fnac.com/Millenium-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson-neuf-occasion?PRID=1891354&REF=FnacDirect" class="bleuMP police12"><span class="chevron">»</span><span class="gras">43 neufs et d'occasion</span>&nbsp;à&nbsp;partir&nbsp;de&nbsp;<span class="gras rouge">4,98&nbsp;&euro;</span></a>
-                      </span>
-                   </li>             
-                 </ul>
-                         
-       <!----------------------------------------------------->        
-     <!-- End block pricer MP -->
-     
+    <dl class="blkResume">
+        <dt class="blkAplat dispeline"><span class="HL"><a href="#ficheResume">En résumé</a></span></dt>
+        <dd><span itemprop="description">Lisbeth et Mickael sont de retour dans un roman aussi trépidant que le premier. Nos deux anti-héros sont à nouveau plongés dans une aventure passionnante. Un livre époustoufflant, plein d'humour et d'effroi. Vivement le tome 3. Anais, libraire à la...</span>
+        
+            <br />
+            <a href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson?NUMERICAL=Y#ficheResume" class="FA">Lire la suite</a>
+        
+        </dd>
+    </dl>
 
+        
+        
+        
+            
+        
+    </div><!-- /.faHeadCenter -->
 
-         <div class="txt_c pdg_t gris6">
-            <a class="police12" href="http://mp.fnac.com/vendre/Livre/La-fille-qui-r-vait-d-un-bidon-d-essence-et-d-une-allumette/1891354/1">Vendez le vôtre</a>
-         </div> 
+    <div class="faHeadRight">
+        
+        <div class="buyBox bbMain">
+            
+            
+            
 
 
-        </div>
-      </div>    
+    <script type="text/javascript">
+        $('input:checkbox', '.buyButtonExpressPlus_B').change(function () {
+            var $input = $(this), $buyButton = $('.buyButtonExpressPlus_AB');
+            if ($input.prop('checked')) {
+                $input.prop('checked', true);
+                $buyButton.removeClass('FnacBtnAddBasket').prop('href', $input.data("url-a"));
+                $buyButton.on("click", function () {
+                    trackAddToBasketNewFA($input.data("idproduct"), $input.data("caller"), $input.data("index"), $input.data("reference"), $input.data("subscriptiontype"))
+                });
+            } else {
+                $input.prop('checked', false);
+                $buyButton.off("click");
+                $buyButton.addClass('FnacBtnAddBasket').prop('href', $input.data("url-b"));
+            }
+        });
 
+        $(".buyButtonExpressPlus_A > a").click(function () {
+            trackAddToBasketNewFA($(this).data("idproduct"), $(this).data("caller"), $(this).data("index"), $(this).data("reference"), $(this).data("subscriptiontype"));
+        });
+    </script>
 
-<div class="block block_gris block_f7f8f6 mrg_b">
-    <div class="blk_inside filled pdg_h_sm pdg_v_sm txt_c">
-        <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-        <div id="choix_format_ebook" class="choix_format_ebook center">
-            <ul class="content">
-                
-<script type="text/javascript">
-var myHash = decodeURIComponent(self.location.hash).toLowerCase(); // selection de l'url
-                        
-if(myHash.indexOf("#format=epub") != -1 || self.location.href.indexOf("&format=epub") != -1 || myHash.indexOf("#format=pdf") != -1 || self.location.href.indexOf("&format=pdf") != -1 )
-{
-    $("#PhysicalPromoDiv").hide();
-}
-else
-{
-    $("#UniqNumPromoDiv").hide();
-}
-</script>
-                <li class="bleu"><span class="nolink"><span class="floatl">Format<span class="gras">
-                    ePub
-                </span></span><span class="floatr prix">9,99&nbsp;&euro;<a href="#" class="explicationFormatsEbook"><img src="http://www4-fr.fnac-static.com/img/decos/point_interrog_bleu.png" alt="" /></a></span></span></li>
+    
+    
+    
 
-            </ul>
-            <a FnacIdProduct="4015696" class="FnacBtnAddBasket" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&sctype=standard&prid=4015696" rel="nofollow" id="numart_buttondl" >
-                <img src="http://www4-fr.fnac-static.com/img/fr-FR//boutons/telech_ce_livre_189x29.png" alt="Télécharger ce livre" class="bt-telecharger" /></a>
-        </div>
+    <div class="mboxDefault"></div><script language= "JavaScript1.2">mboxCreate('FA-buybox');</script>
+    
 
-        <ul>
-            <li id="ajouterAMaSelectionNumerique" class="gris5_lk  bold">ou&nbsp;<a href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?sctype=selection&action=1&prid=4015696" rel="nofollow" id="numart_buttonfav">Ajouter à ma sélection</a></li>
-        </ul>
 
-    </div>
-</div>
 
-<div class="bloc-bulle bloc-bulle-degrade popinFormatsEbook" id="explicationFormatsEbook">
-    <div class="inner">
-        <p class="pdg_b_sm bleu gras fontbigger">Format ePub, PDF, AVE ou DAE ?</p>
-        <p class="pdg_b_sm bleu">Pour télécharger vos livres numériques (couramment appelés eBook) plusieurs formats peuvent exister :</p>
-        <p class="pdg_b_sm gris333"><strong>Le format ePub</strong>  a été conçu pour optimiser la lecture sur les  readers de livres numériques. Les formats ePub sont aussi consultables sur votre ordinateur grâce au logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</p>
-        <p class="pdg_b_sm gris333"><strong>Les fichiers au format PDF</strong> peuvent être lus sur les readers de livres numériques cependant nous vous conseillons une consultation sur votre ordinateur à l’aide du logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</p>
-		<p class="pdg_b_sm gris333"><strong>Les BD au format DAE et AVE</strong> sont lisibles uniquement depuis votre compte fnac.com. La lecture des BD numériques sur fnac.com se fait en streaming.</p>
-		<a href="#" id="closeExplicationFormatsEbook" class="bt-close">Fermer</a>
-	</div>
+ <div id="ARPopin" class="hide genericPopin">               
+        <a href="#" class="close floatr">
+            <img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="" class="close">
+        </a>
+        <h2 class="noir">
+            Achat rapide
+        </h2>
+        <p class="noir">
+            
+            
+                L’option achat rapide vous permet de passer votre commande facilement en un minimum de clics sur Fnac.com.
+            <br />
+            <br />
+                Il vous faut au préalable paramétrer sur votre compte Fnac.com une adresse de livraison et une carte de paiement par défaut. 
+                Une fois l’option activée, il vous suffira de cliquer sur le bouton                    pour le(s) produit(s) souhaité(s).
+            <br />
+            <br />
+                Les commandes réalisées via l’achat rapide sont soumises aux conditions générales de vente Fnac.com, et les paiements effectués sont tout aussi sécurisés que pour une commande classique.
+            
+       
+        </p> 
 </div>
-<div class="bloc-bulle bloc-bulle-degrade popinFormatsEbook" id="explicationFormatsEbook2"></div>
-
-<script language="javascript">
-$(function() {
-    var largeurExplication = $("#explicationFormatsEbook").width();
-	$(".explicationFormatsEbook")
-		.click(function(event) {
-			$("#explicationFormatsEbook")
-			.css({
-			   top: event.pageY,
-			   left: event.pageX - largeurExplication,
-			   display: 'block'
-			 })
-			.show();
-			return false;
-		})
-	 $("#closeExplicationFormatsEbook")
-        .click(function() {
-	        $("#explicationFormatsEbook").css('display','none');
-	        return false;
-        });
-          
-    var largeurExplication2 = $("#explicationFormatsEbook2").width();
-    var explicationFormatsEbook2_HTML = '<div class="inner">';
-    explicationFormatsEbook2_HTML += '<p class="pdg_b_sm bleu gras fontbigger">Format ePub, PDF, AVE ou DAE ?</p>';
-    explicationFormatsEbook2_HTML += '<p class="pdg_b_sm bleu">Pour télécharger vos livres numériques (couramment appelés eBook) plusieurs formats peuvent exister :</p>';
-    explicationFormatsEbook2_HTML += '<p class="pdg_b_sm gris333"><strong>Le format ePub</strong>  a été conçu pour optimiser la lecture sur les  readers de livres numériques. Les formats ePub sont aussi consultables sur votre ordinateur grâce au logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</p>';
-    explicationFormatsEbook2_HTML += '<p class="pdg_b_sm gris333"><strong>Les fichiers au format PDF</strong> peuvent être lus sur les readers de livres numériques cependant nous vous conseillons une consultation sur votre ordinateur à l’aide du logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</p>';
-    explicationFormatsEbook2_HTML += '<p class="pdg_b_sm gris333"><strong>Les BD au format DAE et AVE</strong> sont lisibles uniquement depuis votre compte fnac.com. La lecture des BD numériques sur fnac.com se fait en streaming.</p>';
-    explicationFormatsEbook2_HTML += '<a href="#" id="closeExplicationFormatsEbook2" class="bt-close">Fermer</a>';
-    explicationFormatsEbook2_HTML += '</div>'; 
-        
-	$(".explicationFormatsEbook2")
-		.click(function(event) {
-			$("#explicationFormatsEbook2")
-			.css({
-			   top: event.pageY,
-			   left: event.pageX - largeurExplication2,
-			   display: 'block'
-			 })
-			.html(explicationFormatsEbook2_HTML)
-			.show();
-			return false;
-		})
-	 $("#closeExplicationFormatsEbook2")
-        .live('click', function() {
-	        $("#explicationFormatsEbook2").css('display','none');
-	        return false;
-        });
- });
+ <script type="text/javascript">
+     $(function () {
+         $("a.openPopinAR").popinManager({
+             targetContent: "#ARPopin"
+         });
+     });
 </script>
 
-
-		
+                
+    <a class="btn b_std_b btn_medium FnacBtnAddBasket" FnacIdProduct="4015696" FnacReferentialId="1" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=4015696&sctype=standard" rel="nofollow" id="numart_buttondl" >
+        <span class="img i_dl pdg_b_sm mrg_r_lg"></span> 
+        
+        Télécharger
         
+    </a>
+    
 
 
-    <div id="promo_fnacpro_fa">
-        <div id="fnacpro_fa_titre">
-            <span>PROFESSIONNELS</span>
+
+         
+                
+
+            
+            
+
         </div>
-        <span>En vente aussi sur <a href="http://www.fnacpro.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson?a=1&Origin=FNACPRO_FA" rel="nofollow">fnacpro.com</a></span>
-    </div>
+        
+        <div id="exitLinks" class="txt_c mrg_b_15">
 
-    </div>
+            <div id="ArticleHeaderPE_AddToWishlist1">
+           
+                
 
-	<div class="clearing">&nbsp;</div>
-</div>	
+                <script>
+                    $(function () {
+                        var urlParam = function (name) {
+                            var results = new RegExp('[\\?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
+                            return (results && results[1]) || 0;
+                        }
 
- 
+                        if (urlParam('wladd') == "1") {
+                            $('.addItemFromFa').trigger('click');
+                        };
+                    });
+                </script>
+
+                <div id="block-fa-wishlist">
+                    <span class="img i_wishAdd_small"></span>
+                    <a href="#" class="addItemFromFa" 
+                        data-prid="1891354" data-offerId="" 
+                        data-price="23,4"  data-ref="1">
+                        Ajouter à mes listes</a> 
+                </div>
+                <div id="block-fa-addto-wishlist-wrapperPopin" class="popin-content addto hide" >
+                    <div class="bar">
+                        <div>
+                            <strong>Ajouter à mes listes</strong><i class="img close"></i>
+                        </div>
+                    </div>
+                    
+                    <div>
+                        <span class="not_connected">Vous ne pouvez pas ajouter ce produit à vos listes car vous n'êtes pas connecté"</span>
+                    </div>
                     
-<!-- Ajouter And Not Article.IsSoftware -->
+                </div>
 
-<!-- MBA 17/06/2009 -->
-<!--<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/SliderLite.js"></script>-->
-<script type="text/javascript">
-    AppCore.ready(function()
-    {
-        var args = {
-            sliderContainer: $("#wrapSlide .produitsFnac"),
-            sliderElements: $("#contenuSlider li"),
-            checkboxTriSlider: $("#checkboxTriNumerique"),
-            cssClassTri: "numerique"
-        };
-        AppCore.start("crossSellingSlider", args);
-        //Useless ?
-        //var myHash = decodeURIComponent(self.location.hash).toLowerCase();
-    });
-</script>
+             </div>
+                <div id="ArticleHeaderPE_AddSelection">
 
-<div class="block block_gris mrg_b_lg posrel">
-    <h3 class="h_1-5_gris pdg_b_sm">
-    
-    <strong>Les internautes</strong> ayant acheté 
-     Millénium, T2 - La fille qui rêvait d...
-         
-     ont également acheté :</h3>
-     
-        <span id="triNumeriqueDiv" class="triNumerique posabs"><input type="checkbox" checked="" id="checkboxTriNumerique" /><label for="checkboxTriNumerique">Afficher des <span class="gras bleu">Livres numériques</span> en priorité</label></span>
-     
+<div id="addToSelectionDiv_Header" class="addToSel">
 
-<script type="text/javascript">
+    
+    
+    <input type="hidden" value="http://www4.fnac.com/Account/Basket/IntermediaryBasket.aspx" /> 
+</div>
+</div>
 
- $(document).ready(function(){
-     var len = 15
-     $("#contenuSlider").find('li').each(function() {
-        $(this).find("dl").each(function(){
-            var link = $(this).find("dd #articleLink");
-            if(link)
-            {
-                var innerText = link.text();
-                if(innerText.length > len)
-                {
-                    innerText = jQuery.trim(innerText);
-                    innerText = innerText.substring(0,15);
-                    innerText += "..."; 
-                    link.text(innerText);
-                }
-            }
-         });
+            
+                    <div id="alertes">
+                        
+    <script type="text/javascript">
+    AppCore.ready(function(){
+        AppCore.modules.ready("alertingPrice", function(){
+            var args = {
+                    callBackId: "ArticleHeaderPE$AlertingPriceDrop1",
+                    itemId: "1891354",
+                    prid: "1891354",
+                    itemSKU: "1584035",
+                    priceInitial: "23,4",
+                    priceClickElement: $("#alertingPriceDropdiv .addAlertPrice"),
+                    registerClickElement: $("#alertingPriceDropdiv .registerBeforeAlertPrice"),
+                    registerUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?AlertingType=4&InitialPrice=23%2c4&ItemId=1891354&ItemPrid=1891354&ItemSKU=1584035&LogonType=Alerting&Referrer=http%3a%2f%2flivre.fnac.com%2fa1891354%2fMillenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson",
+                    alertAddedContainer: $('#alertingPriceDropdiv'),
+                    alertSuccessMessage: $("#addAlertSuccessMsg").html(),
+                    alertAlreadyExistsMessage: $("#addAlertExistsMsg").html(),
+                    errorAlertContainer: $('#laberror')
+            };
+            AppCore.modules.alertingPrice.registerPriceAlert(args);
+        });
     });
-    
-});
-</script>
-
+    </script>
+       
+                    </div>
+                
+        </div>
+          
+        
 
+   
 
-    <!-- wrapSlide -->
-    <div id="wrapSlide" class="blk_inside gradient_light">
-        <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-        <div class="blk_content hautSld news_slider produitsFnac"> 
-            <span class="prev"><a href="#" title="Précédent"><img src="http://www4-fr.fnac-static.com/img/MyFnac/boutons/b_flechnav_gauche_off.png" alt="Précédent" title="Précédent" class="rHvr" /></a></span>
-            <span class="next"><a href="#" title="Suivant"><img src="http://www4-fr.fnac-static.com/img/MyFnac/boutons/b_flechnav_droite_off.png" alt="Suivant" title="Suivant" class="rHvr" /></a></span>
-            <div class="news_items">
-                <ul id="contenuSlider" class="container float_l">
-                
+        
+        
 
-                            <li class="item numerique">
-                                
+        <script type="text/javascript">
+            checkBuyBox(); // check if buybox is empty
+            $(function () { // popin Manager for AddToSelection
+                $(".openLayerAddToSelect").popinManager({
+                    modeView: "layer",
+                    autoclose: true,
+                    timeToAutoclose: 2500,
+                    targetContent: "#validActionSelected",
+                    customPosition: true,
+                    relativePosition: { left: -258, top: -25 }
+                });
+            });
+            
+        </script>
+        <div id="validActionSelected" class="hide validActionBuyBox">
+            Cet article a bien été ajouté à ma liste
+        </div>
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson" title="Millénium, T3">
-            <img class="art_part_img" id="img_0" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/1/1/3/9782742770311.gif" alt="Millénium, T3&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson"  title="Millénium, T3">
-            Millénium, T3
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
         
+    <dl class="buyBox">
+        <dt class="header">AUTRES FORMATS</dt>
+
+
         
-    </dd>
+            <dd class="bbOtherFormats">
+                <table>
+                    <tr>
+                        <td>
+                            <div class="infosFormat">
+                                <a class="typeFormat" href="http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">broché</a>
+                            </div>
+                        </td>
+                         
+                        <td align="right">
+                            <span class="userPrice">
+                                
+        23,40&euro;
     
-    <dd class="art_particip">
+
+                            </span>
+                            <!--Affichage du prix barré si promo-->
+                            
+                        </td>
+                        <td class="btn_clk">
+                             
+    <a onclick="trackAddToBasketNewFA(1891354, 7, 0,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1891354&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1891354" FnacReferentialId="1" class="btn b_sqr_y" title="Ajout au panier">
+        <span class="img i_cart"></span> 
+    </a>
+
+                            
+                        </td>
+                    </tr>
+                </table>
+            </dd>
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
 
-    </dd>
+            <dd class="bbOtherFormats">
+                <table>
+                
+                        <tr>
+                            <td>
+                                <div class="infosFormat">
+                                    <a class="typeFormat" href="http://livre.fnac.com/a3764876/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">poche</a>
+                                </div>
+                            </td>
+                            
+                            
+                            <td align="right">
+                                <span class="userPrice">
+                                    
+        10&euro;
     
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item numerique">
+                                </span>
+                                <!--Affichage du prix barré si promo-->
                                 
+                            </td>
+                            <td class="btn_clk">
+                                
+                                    <a AddBasketTrackingFunction="trackAddToBasketNewFA(3764876, 7, 0,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=3764876&sctype=standard&from=111" rel="nofollow" FnacIdProduct="3764876" class="btn b_sqr_y FnacBtnAddBasket" title="Ajout au panier">
+                                        <span class="img i_cart"></span> 
+                                    </a>
+                                
+                            </td>
+                        </tr>
+                    
+                        <tr>
+                            <td>
+                                <div class="infosFormat">
+                                    <a class="typeFormat" href="http://livre.fnac.com/a2422259/Millenium-CD-Mp3-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson">Textes lus</a>
+                                </div>
+                            </td>
+                            
+                            
+                            <td align="right">
+                                <span class="userPrice">
+                                    
+        24,40&euro;
+    
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1823563/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson" title="Millénium, T1">
-            <img class="art_part_img" id="img_1" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/7/5/9782742761579.gif" alt="Millénium, T1&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1823563/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson"  title="Millénium, T1">
-            Millénium, T1
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
-        
+                                </span>
+                                <!--Affichage du prix barré si promo-->
+                                
+                            </td>
+                            <td class="btn_clk">
+                                
+                                    <a AddBasketTrackingFunction="trackAddToBasketNewFA(2422259, 7, 0,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=2422259&sctype=standard&from=111" rel="nofollow" FnacIdProduct="2422259" class="btn b_sqr_y FnacBtnAddBasket" title="Ajout au panier">
+                                        <span class="img i_cart"></span> 
+                                    </a>
+                                
+                            </td>
+                        </tr>
+                    
+                </table>
+            </dd>
+            <dd class="lienInverse">
+                <a href="http://www.fnac.com/o8001619/La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette/w-4" class="offresOtherFormat">
+                    <span class="chevron">&raquo;&nbsp;</span>
+                    <strong>Voir tous les formats</strong>
+		            
+                </a>
+            </dd>
         
-    </dd>
+    </dl>
+
+
+
+<div id="popinDigitalFormat" class='hide clearfix'>
     
-    <dd class="art_particip">
+
+<a href="#" class="close"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close"></a>
+<h3 class='bleuDemat'>Qu’est-ce qu’un livre numérique ?</h3>
+<p>
+    Un <strong>livre numérique</strong>, ou <strong>eBook</strong>, est un ouvrage contenu dans un fichier numérique à lire sur un écran.
+    Différents supports de lecture s’offrent donc à vous : liseuse numérique, tablettes/smatphone, ordinateur.
+    Avec Kobo by Fnac, synchronisez vos livres achetés sur fnac.com et Kobo, prises de notes, etc. sur tous vos supports de lecture.
+    Téléchargez gratuitement l’application Kobo by Fnac et passez de votre smartphone à votre liseuse sans perdre la page !
+</p>
+<p>
+    Fnac et Kobo ont choisi <strong>le format ouvert EPUB</strong>, conçu spécialement pour les livres numériques. Vous pouvez aussi lire des PDF  ou fichiers TXT par exemple.
+</p>
+
+<p> 
+    <strong class="rouge dispeblock">Attention:</strong>
+    <strong>Les livres et BD au format ePub illustré</strong> sont disponibles sur le Kobo Arc et via les applications Kobo by Fnac pour Android et IOS.
+    La lecture de ce format se fait donc uniquement sur smartphones et tablettes (compatibles Android et IOS).
+</p>
+
+<p> 
+    <strong class="rouge dispeblock">Attention:</strong>
+    <strong>Les BD au format AVE ou DAE</strong>   sont lisibles <strong>uniquement en streaming</strong> sur votre ordinateur à partir de fnac.com. <strong>Ces formats</strong> ne sont pas lisibles sur les applications Kobo by Fnac ou sur la tablette Kobo Arc.
+</p>
+</div>
+<script type="text/javascript">
+    $(function () {
+        $(".openPopinDigitalFormat").popinManager({
+            targetContent: "#popinDigitalFormat"
+        });
+    });
+</script>
+
+
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+                <div itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
+                    <meta itemprop="priceCurrency" content="EUR" />
+            
+                </div>
+            
 
-    </dd>
+    </div><!-- /.faHeadRight -->
+
+</div><!-- /.faHead .clearfix -->
+
+                    
+    <a id="opc"><!-- --></a>
     
-   
-</dl>
+    
+<!-- PROMOS -->
 
-                            </li>
-                            
-                            <li class="item numerique">
-                                
+<div id="Promoepub">
+
+   </div>
+
+  
+<!-- /PROMOS -->
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2481530/Julia-Latynina-La-chasse-au-Renne-de-Siberie" title="La chasse au Renne de Sibérie">
-            <img class="art_part_img" id="img_2" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/6/1/7/9782742780716.gif" alt="La chasse au Renne de Sibérie&nbsp;-&nbsp;Julia Latynina" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2481530/Julia-Latynina-La-chasse-au-Renne-de-Siberie"  title="La chasse au Renne de Sibérie">
-            La chasse au Renne de Sibérie
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Julia Latynina
-        
         
-    </dd>
+
+
+
+<div id="popinAveDaeFormat" class="hide">
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
 
-    </dd>
+<a href="#" class="close"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close"></a>
+<h3 class="bleuDemat">Que sont les formats AVE et DAE ?</h3>
+
+<p>
+    <strong class="rouge dispeblock">Attention:</strong>
+    
+    <strong>Les BD au format AVE ou DAE</strong> ne sont pas lisibles sur les applications Kobo by Fnac ou sur la tablette Kobo Arc.
+    Ces formats sont lisibles <strong>uniquement en streaming</strong> sur votre ordinateur.
+</p>
+</div>
+<script type="text/javascript">
+    $(function () {
+        $(".openPopinAveDaeFormat").popinManager({
+            targetContent: "#popinAveDaeFormat"
+        });
+    });
+</script>
+
+        <h2 class="ssTtl"><strong>Indispensable avec</strong> La fille qui rêvait d'un bidon d'essence et d'une allumette</h2>
+        <div class="uppSellEbook blkSpace blkBrd clearfix">
+            <h3><a href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx"><img src="http://www4-fr.fnac-static.com/img/fr-FR/vignettes/FA/gamme-kobo_490.jpg" alt="Kobo by Fnac: La gamme des liseuses s'élargit à partir de 79€90"/></a></h3>
+            <div class="uppSellMsg">
+                <p>
+                Le même <strong>confort de lecture</strong> qu’un livre papier avec des tailles de police adaptables. 
+                <br />Pratique, intuitif et facile à utiliser grâce à <strong>son écran tactile</strong>
+                1000 livres partout avec vous.
+                <br /><a class="showMoreLk floatr" href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx">En savoir plus</a>
+                <strong>Grande autonomie</strong> de lecture jusqu’à 30 jours 
+                </p>
+            </div>
+        </div>
     
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item numerique">
-                                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2307231/Ake-Edwardson-Ce-doux-pays" title="Ce doux pays">
-            <img class="art_part_img" id="img_3" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/7/3/9782709630375.gif" alt="Ce doux pays&nbsp;-&nbsp;Ake Edwardson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2307231/Ake-Edwardson-Ce-doux-pays"  title="Ce doux pays">
-            Ce doux pays
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Ake Edwardson
-        
         
-    </dd>
-    
-   
-</dl>
+        <div class="posrel blkSpace clearfix">
+  
+             
+                <span id="triNumeriqueDiv" class="triNumerique">
+                    <input type="checkbox" checked="" id="checkboxTriNumerique" />
+                    <label for="checkboxTriNumerique">
+                        
+                        Afficher des <strong>Livres numériques</strong> en priorité
+                    </label>
+                </span>
+               
+            <h2 class="ssTtl">
+                
+                <strong>Les internautes</strong> ayant acheté 
+                 Millénium, Tome 2 - La fille qui...
+         
+                 ont également acheté :
+             </h2>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+     
+             <div class="blkBrd">
+                
+<div class="news_slider produitsFnac wrapSlide clearfix" id="jsTopSellings"> 
+    <div class="news_items">
+        <span class="prev arrow arrowLeft"><i>précédent</i></span>
+        <ul class="container float_l contenuSlider">
+            
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2481529/Francois-Weerts-Les-sirenes-d-Alexandrie" title="Les sirènes d'Alexandrie">
-            <img class="art_part_img" id="img_4" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/1/6/7/9782742780761.gif" alt="Les sirènes d'Alexandrie&nbsp;-&nbsp;François Weerts" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, Tome 3" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2626222220201FBE464848434946C34E1E3B4F4E431E221EB84A1EC1434649431E4B4A49C21E48431EC04A484A46C21E4B43C21E424FC3C14A49CBC21E4B1E4A46C11E32CB46434C1EB84AC1C2C24F491241482EB4BAB8B634C143424F2A itemVisuLk">
+            <img class="itemVisu" id="img_0" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/1/1/3/9782742770311.gif" alt="Millénium, Tome 3&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2481529/Francois-Weerts-Les-sirenes-d-Alexandrie"  title="Les sirènes d'Alexandrie">
-            Les sirènes d'Alexandrie
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1993300/Millenium-Tome-3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson#bl=FALIVreco1"  title="Millénium, Tome 3">
+            Millénium, Tome...
         </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
     </dd>
-    <dd class="art_part_dd art_particip">
-        François Weerts
+
+    <dd class="itemStars">
+        <!-- note -->
         
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
         
-    </dd>
-    
-    <dd class="art_particip">
+    </dd>    
+
+    <dd class="itemPricer">
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars35.png" alt="Note moyenne des internautes :3,5/5"/>
 
-    </dd>
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1891507/Andrew-McGahan-Derniers-verres" title="Derniers verres">
-            <img class="art_part_img" id="img_5" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/3/5/9782742765539.gif" alt="Derniers verres&nbsp;-&nbsp;Andrew McGahan" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1891507/Andrew-McGahan-Derniers-verres"  title="Derniers verres">
-            Derniers verres
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Andrew McGahan
+        <!--New Price 07/12 -->
         
-        
-    </dd>
     
-    <dd class="art_particip">
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">23,40&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-    </dd>
-    
-   
-</dl>
+        </p>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2232230/Luiz-Alfredo-Garcia-Roza-Une-fenetre-a-Copacabana" title="Une fenêtre à Copacabana">
-            <img class="art_part_img" id="img_6" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/0/1/9/9782742775910.gif" alt="Une fenêtre à Copacabana&nbsp;-&nbsp;Luiz Alfredo Garcia-Roza" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2232230/Luiz-Alfredo-Garcia-Roza-Une-fenetre-a-Copacabana"  title="Une fenêtre à Copacabana">
-            Une fenêtre à Copacabana
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Luiz Alfredo Ga...
+    
+    
         
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1993300, 12, 1,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1993300&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1993300" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
-
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
     </dd>
     
    
 </dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2232229/Theresa-Schwegel-Un-flic-dans-le-petrin" title="Un flic dans le pétrin">
-            <img class="art_part_img" id="img_7" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/2/9/9782742775927.gif" alt="Un flic dans le pétrin&nbsp;-&nbsp;Theresa Schwegel" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, Tome 1" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2521222324221FBE464848434946C34E1E3B4F4E431E2A1EB843C21E454F4E4E43C21ECAC3461E491E4A464E4A464349CB1EC04AC21E4843C21E44434E4E43C21E32CB46434C1EB84AC1C2C24F491241482EB4BAB8B634C143424F21 itemVisuLk">
+            <img class="itemVisu" id="img_1" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/7/5/9782742761579.gif" alt="Millénium, Tome 1&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2232229/Theresa-Schwegel-Un-flic-dans-le-petrin"  title="Un flic dans le pétrin">
-            Un flic dans le pétrin
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1823563/Millenium-Tome-1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson#bl=FALIVreco2"  title="Millénium, Tome 1">
+            Millénium, Tome...
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Theresa Schwege...
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
         
     </dd>
-    
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+    <dd class="itemStars">
+        <!-- note -->
+        
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2200841/Val-Mc-Dermid-Noirs-tatouages" title="Noirs tatouages">
-            <img class="art_part_img" id="img_8" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/1/3/9782702433317.gif" alt="Noirs tatouages&nbsp;-&nbsp;Val Mc Dermid" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2200841/Val-Mc-Dermid-Noirs-tatouages"  title="Noirs tatouages">
-            Noirs tatouages
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Val Mc Dermid
         
+    </dd>    
+
+    <dd class="itemPricer">
         
-    </dd>
+
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1959288/Tony-Bellotto-Bellini-et-le-demon" title="Bellini et le démon">
-            <img class="art_part_img" id="img_9" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/7/4/9782742768479.gif" alt="Bellini et le démon&nbsp;-&nbsp;Tony Bellotto" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1959288/Tony-Bellotto-Bellini-et-le-demon"  title="Bellini et le démon">
-            Bellini et le démon
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Tony Bellotto
-        
+        <!--New Price 07/12 -->
         
-    </dd>
     
-    <dd class="art_particip">
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">23,20&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars2.png" alt="Note moyenne des internautes :2/5"/>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-    </dd>
-    
-   
-</dl>
+        </p>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2036696/Mainak-Dhar-Flashpoint" title="Flashpoint">
-            <img class="art_part_img" id="img_10" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/8/2/9782742772285.gif" alt="Flashpoint&nbsp;-&nbsp;Mainak Dhar" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2036696/Mainak-Dhar-Flashpoint"  title="Flashpoint">
-            Flashpoint
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Mainak Dhar
+    
+    
         
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1823563, 12, 2,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1823563&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1823563" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
-
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
     </dd>
     
    
 </dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2635623/Theresa-Schwegel-Entorses-au-reglement" title="Entorses au règlement">
-            <img class="art_part_img" id="img_11" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/2/0/5/9782742783502.gif" alt="Entorses au règlement&nbsp;-&nbsp;Theresa Schwegel" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Chambre numéro 10" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A26252422252B1FB843C21E4349CAC343CB43C21E4B1EB3C146471E3C4649CB43C11EB2454A4E41C1431E49C34E43C14F1E2A201EBA47431EB34BCC4AC14BC24F491241482EB4BAB8B634C143424F22 itemVisuLk">
+            <img class="itemVisu" id="img_2" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/2/7/3/9782709628372.gif" alt="Chambre numéro 10&nbsp;-&nbsp;Åke Edwardson" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2635623/Theresa-Schwegel-Entorses-au-reglement"  title="Entorses au règlement">
-            Entorses au règlement
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1986384/Les-enquetes-d-Erik-Winter-Chambre-numero-10-Ake-Edwardson#bl=FALIVreco3"  title="Chambre numéro 10">
+            Chambre numéro...
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Theresa Schwege...
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Ã…ke Edwardson">
+        Ã…ke Edwardson
         
     </dd>
-    
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+    <dd class="itemStars">
+        <!-- note -->
+        
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars35.png" alt="Note moyenne des internautes :3,5/5"/>
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2504846/Knut-Faldbakken-L-athlete" title="L'athlète">
-            <img class="art_part_img" id="img_12" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/2/4/9782020964425.gif" alt="L'athlète&nbsp;-&nbsp;Knut Faldbakken" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2504846/Knut-Faldbakken-L-athlete"  title="L'athlète">
-            L'athlète
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Knut Faldbakken
         
+    </dd>    
+
+    <dd class="itemPricer">
         
-    </dd>
+
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2408617/Ruth-Francisco-Salut-a-toi-o-crepuscule" title="Salut à toi ô crépuscule">
-            <img class="art_part_img" id="img_13" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/8/3/9/9782742777938.gif" alt="Salut à toi ô crépuscule&nbsp;-&nbsp;Ruth Francisco" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2408617/Ruth-Francisco-Salut-a-toi-o-crepuscule"  title="Salut à toi ô crépuscule">
-            Salut à toi ô crépuscule
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Ruth Francisco
+        <!--New Price 07/12 -->
         
-        
-    </dd>
     
-   
-</dl>
+    
 
-                            </li>
-                            
-                            <li class="item">
-                                
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2188477/Jose-Luis-Munoz-La-derniere-enquete-de-l-inspecteur-Rodriguez-Pachon" title="La dernière enquête de l'inspecteur Rodriguez Pachon">
-            <img class="art_part_img" id="img_14" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/2/0/6/9782742773602.gif" alt="La dernière enquête de l'inspecteur Rodriguez Pachon&nbsp;-&nbsp;José Luis Munoz" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2188477/Jose-Luis-Munoz-La-derniere-enquete-de-l-inspecteur-Rodriguez-Pachon"  title="La dernière enquête de l'inspecteur Rodriguez Pachon">
-            La dernière enquête de l'inspecteur Rodriguez Pachon
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        José Luis Munoz
-        
         
-    </dd>
-    
-   
-</dl>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-                            </li>
-                            
-                            <li class="item numerique">
-                                
+        </p>
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2229043/Graham-Hurley-Du-sang-et-du-miel" title="Du sang et du miel">
-            <img class="art_part_img" id="img_15" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/1/1/9782702433119.gif" alt="Du sang et du miel&nbsp;-&nbsp;Graham Hurley" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2229043/Graham-Hurley-Du-sang-et-du-miel"  title="Du sang et du miel">
-            Du sang et du miel
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Graham Hurley
         
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1986384, 12, 3,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1986384&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1986384" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
    
 </dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1934091/Alexandra-Marinina-L-illusion-du-peche" title="L'illusion du péché">
-            <img class="art_part_img" id="img_16" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/4/3/3/9782020839334.gif" alt="L'illusion du péché&nbsp;-&nbsp;Alexandra Marinina" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Les morts de la Saint-Jean" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2A2C262B2B251FB543494946494C1EBE4A49474348481EB843C21E4E4FC1CBC21E4B431E484A1E324A4649CB1EBD434A491241482EB4BAB8B634C143424F2B itemVisuLk">
+            <img class="itemVisu" id="img_3" src="http://static.fnac-static.com/multimedia/Images/FR/NR/38/ff/11/1179448/1535-1.jpg" alt="Les morts de la Saint-Jean&nbsp;-&nbsp;Henning Mankell" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1934091/Alexandra-Marinina-L-illusion-du-peche"  title="L'illusion du péché">
-            L'illusion du péché
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1179448/Henning-Mankell-Les-morts-de-la-Saint-Jean#bl=FALIVreco4"  title="Les morts de la Saint-Jean">
+            Les morts de la...
         </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Henning Mankell">
+        Henning Mankell
+        
     </dd>
-    <dd class="art_part_dd art_particip">
-        Alexandra Marin...
+
+    <dd class="itemStars">
+        <!-- note -->
+        
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
         
+    </dd>    
+
+    <dd class="itemPricer">
         
-    </dd>
+
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2032981/Mari-Jungstedt-Celui-qu-on-ne-voit-pas" title="Celui qu'on ne voit pas">
-            <img class="art_part_img" id="img_17" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/2/4/5/9782259205542.gif" alt="Celui qu'on ne voit pas&nbsp;-&nbsp;Mari Jungstedt" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2032981/Mari-Jungstedt-Celui-qu-on-ne-voit-pas"  title="Celui qu'on ne voit pas">
-            Celui qu'on ne voit pas
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Mari Jungstedt
-        
+        <!--New Price 07/12 -->
         
-    </dd>
     
-    <dd class="art_particip">
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">20,20&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-    </dd>
-    
-   
-</dl>
+        </p>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2606832/Thomas-Kanger-Le-temps-du-loup" title="Le temps du loup">
-            <img class="art_part_img" id="img_18" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/1/0/9782258078017.gif" alt="Le temps du loup&nbsp;-&nbsp;Thomas Kanger" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2606832/Thomas-Kanger-Le-temps-du-loup"  title="Le temps du loup">
-            Le temps du loup
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Thomas Kanger
+    
+    
         
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1179448, 12, 4,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1179448&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1179448" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars3.png" alt="Note moyenne des internautes :3/5"/>
-
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
     </dd>
     
    
 </dl>
 
-                            </li>
-                            
-                            <li class="item">
-                                
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2604128/Larry-Block-Heureux-au-jeu" title="Heureux au jeu">
-            <img class="art_part_img" id="img_19" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/6/7/9782020965767.gif" alt="Heureux au jeu&nbsp;-&nbsp;Larry Block" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Le retour du professeur de danse" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2520242424211FB543494946494C1EBE4A49474348481EB8431EC143CB4FC3C11E4BC31EC0C14F4443C2C243C3C11E4B431E4B4A49C2431241482EB4BAB8B634C143424F23 itemVisuLk">
+            <img class="itemVisu" id="img_4" src="http://static.fnac-static.com/multimedia/Images/FR/NR/46/91/1b/1806662/1535-1.jpg" alt="Le retour du professeur de danse&nbsp;-&nbsp;Henning Mankell" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2604128/Larry-Block-Heureux-au-jeu"  title="Heureux au jeu">
-            Heureux au jeu
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1806662/Henning-Mankell-Le-retour-du-professeur-de-danse#bl=FALIVreco5"  title="Le retour du professeur de danse">
+            Le retour du pr...
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Larry Block
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Henning Mankell">
+        Henning Mankell
         
     </dd>
-    
-   
-</dl>
-
-                            </li>
-                            
-                </ul>
-                <div class="clearb"></div>
-            </div>
-      </div>
-    </div>
-    <!-- /wrapSlide --> 
 
-</div>
+    <dd class="itemStars">
+        <!-- note -->
+        
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
 
-<!-- Remplacer IF par ElseIF -->
+        
+    </dd>    
 
-                    
-                    
+    <dd class="itemPricer">
+        
 
-<div id="communautaire" class="mrg_b_lg">
-    <h3 class="h_1-5_gris pdg_b_sm"><strong>Les communautés s'expriment autour de : </strong> La fille qui rêvait d'un bidon d'essence et d'une allumette</h3>
-    <div class="block_gris posrel">
-        <div class="blk_inside ">
-	        <b class="tl"><!-- --></b>
-	        <b class="tr"><!-- --></b>
-	        <b class="bl"><!-- --></b>
-	        <b class="br"><!-- --></b>
-	            <div class="blk_content pdg_b_sm clearfix">
-         
-                    <div class="blockmaincategorie deuxtiers mrg_t_sm">
-                     
-    <div class="date floatl">
-        <p class="infos">
-            <!--
-            <span class="jour">3</span>
-            <span class="mois">janv.</span>
-            <span class="separate"></span>
-            -->
-            <span class="lienInverse prenom">
-                <img src="http://images3.fnac.com/file.media?f=fWwj_rZyBMM" alt="Pieric" />
-                <a href="http://www.fnac.com/Le-blog-de-Pieric/cc297/w-4">Pieric</a>
-            </span>
-        </p>    
-    </div>
 
+    <!--Fnac Price -->
+    
 
-<div class="article">
-    <a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4">
-        <img id="ProductImage" src="http://images3.fnac.com/file.media?f=Dm8_K6ujNPQ" alt="Mill&#233;nium, les hommes qui n’aimaient pas les femmes : l’omelette su&#233;doise" class="floatl pict" />
-    </a>
 
-    <div class="contenu">
+        <!--New Price 07/12 -->
         
+    
+    
 
+    <p class="smallPricerFA">
 
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-<h3 class="Category_3 img_-25">
-    
-    <span class="CssClassByDefault">Ca va sortir</span>
-</h3>
-<h4 class="lienInverse">
-    <a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4">Mill&#233;nium, les hommes qui n’aimaient pas les femmes : l’omelette su&#233;doise</a>
-</h4>
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22,20&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
         
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-<p>C’est de toute &#233;vidence le personnage de Lisbeth Salander qui a fait plonger t&#234;te baiss&#233;e David Fincher dans ce projet. Et force est de reconna&#238;tre que l’interpr&#233;tation ou plut&#244;t la transformation de Rooney Mara est remarquable d’implication...</p>
-<a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4" class="moutarde dispeblock">Lire la suite</a>
+        </p>
+
+        
 
-<div class="notation">
-    <a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4#reactions">
-        <span class="reaction">
-        6 réactions
-        </span>
-    </a>
-    <div class="fbook">
-        <fb:like href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4" send="false" layout="button_count" show_faces="false" font="tahoma" ref="DISS_FBL_CMR" ></fb:like>
-    </div>
-    <div class="gplus"><g:plusone size="medium" href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4?Origin=DISS_GOOG1_CMR"></g:plusone></div>
     
-        <span class="vues">7276 vues</span>
     
-
-<img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="4 sur 5" title="4 sur 5" class="dispeblock" />
-
-</div>
-    </div>
-</div>
-
-
-<div class="motscles">
-    <span class="tag">Tags : 
         
-            <a href="http://www.fnac.com/david-fincher/ct4541/w-4" class="moutarde">david fincher</a>
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1806662, 12, 5,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1806662&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1806662" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
-            <a href="http://www.fnac.com/steven-zaillian/ct30549/w-4" class="moutarde">steven zaillian</a>
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
+
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="L&#39;homme qui souriait" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A242A212321261FB543494946494C1EBE4A49474348481EB81E454F4E4E431ECAC3461EC24FC3C1464A46CB1241482EB4BAB8B634C143424F24 itemVisuLk">
+            <img class="itemVisu" id="img_5" src="http://static.fnac-static.com/multimedia/Images/FR/NR/f1/9a/18/1612529/1535-1.jpg" alt="L'homme qui souriait&nbsp;-&nbsp;Henning Mankell" />
+        </span>
         
-            <a href="http://www.fnac.com/daniel-craig/ct30550/w-4" class="moutarde">daniel craig</a>
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1612529/Henning-Mankell-L-homme-qui-souriait#bl=FALIVreco6"  title="L'homme qui souriait">
+            L'homme qui sou...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Henning Mankell">
+        Henning Mankell
         
-            <a href="http://www.fnac.com/rooney-mara/ct30551/w-4" class="moutarde">rooney mara</a>
+    </dd>
+
+    <dd class="itemStars">
+        <!-- note -->
         
-            <a href="http://www.fnac.com/robin-wright/ct30552/w-4" class="moutarde">robin wright</a>
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
         
-            <a href="http://www.fnac.com/christopher-plummer/ct30553/w-4" class="moutarde">christopher plummer</a>
+    </dd>    
+
+    <dd class="itemPricer">
         
-            <a href="http://www.fnac.com/stieg-larrson/ct30554/w-4" class="moutarde">stieg larrson</a>
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
         
-            <a href="http://www.fnac.com/mikael-blomkvist/ct30555/w-4" class="moutarde">mikael blomkvist</a>
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">21,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-            <a href="http://www.fnac.com/serial-killer/ct30556/w-4" class="moutarde">serial-killer</a>
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
         
-            <a href="http://www.fnac.com/nazis/ct30557/w-4" class="moutarde">nazis</a>
+
+    
+    
         
-            <a href="http://www.fnac.com/millenium/ct609/w-4" class="moutarde">millenium</a>
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1612529, 12, 6,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1612529&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1612529" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
-            <a href="http://www.fnac.com/lisbeth-salander/ct30558/w-4" class="moutarde">lisbeth salander</a>
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
+
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Avant le gel" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A242C212B26261FB543494946494C1EBE4A49474348481EBAC44A49CB1E48431E4C43481241482EB4BAB8B634C143424F2C itemVisuLk">
+            <img class="itemVisu" id="img_6" src="http://static.fnac-static.com/multimedia/Images/FR/NR/33/85/19/1672499/1535-1.jpg" alt="Avant le gel&nbsp;-&nbsp;Henning Mankell" />
+        </span>
         
-            <a href="http://www.fnac.com/millenium-les-hommes-qui-n-aimaient-pas-les-femmes/ct30559/w-4" class="moutarde">millénium les hommes qui n’aimaient pas les femmes</a>
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1672499/Henning-Mankell-Avant-le-gel#bl=FALIVreco7"  title="Avant le gel">
+            Avant le gel
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Henning Mankell">
+        Henning Mankell
         
-            <a href="http://www.fnac.com/suede/ct1644/w-4" class="moutarde">suède</a>
+    </dd>
+
+    <dd class="itemStars">
+        <!-- note -->
         
-            <a href="http://www.fnac.com/stockholm/ct30560/w-4" class="moutarde">stockholm</a>
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+
         
-            <a href="http://www.fnac.com/trent-reznor/ct21377/w-4" class="moutarde">trent reznor</a>
+    </dd>    
+
+    <dd class="itemPricer">
         
-            <a href="http://www.fnac.com/karen-o/ct30561/w-4" class="moutarde">karen o</a>
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
         
-            <a href="http://www.fnac.com/nine-inch-nails/ct30562/w-4" class="moutarde">nine inch nails</a>
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-            <a href="http://www.fnac.com/atticus-ross/ct21379/w-4" class="moutarde">atticus ross</a>
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
         
-    </span>
 
     
- 
-<span class="floatr social">
-    <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Facebook&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4%253fOrigin%253dFB_EC&Title=Mill%c3%a9nium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%c3%a9doise" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" target="_blank" name="SocialBookmarkFacebook"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-facebook.png" alt="Facebook" title="Ajouter au Facebook"/></a>
-    <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Twitter&URL=http%3a%2f%2fwww4.fnac.com%2f%2fcp14168%2fw-4&Title=Mill%c3%a9nium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%c3%a9doise" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" target="_blank" name="SocialBookmarkTwitter"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-twitter.png" alt="Twitter" title="Ajouter à Twitter"/></a>
-    <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Google&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%c3%a9nium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%c3%a9doise" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" target="_blank" name="SocialBookmarkGoogle"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-google.png" alt="Google" title="Ajouter à Google"/></a>
-    <a class="SocialBookmarkMailPage" href="http://www4.fnac.com/Community/SendMail.aspx?POSTID=14168" name="SocialBookmarkMail" rel="nofollow"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail.png" alt="Mail" title=""/></a>
-    <a class="SocialBookmarkMailPopin" href="#" onclick="ShowDivSendFriendGlobal('ArticleContentPE$ListTwoThirdsArticlePosts1$EditoTwoThirdsPost1$PreviewPostHeaderTags1$PreviewPostHeaderSocial1$SendMailForm1','14168');return false" name="SocialBookmarkMail"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail.png" alt="Mail" title=""/></a>
     
-        <a id="MoreSharing" onclick="GetMoreSocial('PopinShoutIt_14168')" class="moutarde pluspartage">Plus de partage</a>
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1672499, 12, 7,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1672499&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1672499" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+    </dd>
     
-</span>
-<div class="clearing"></div>
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
 
+                </li>
+                
+                <li class="slideItem ">
+                    
+<dl class="clearfix">
 
-<div id="ArticleContentPE_ListTwoThirdsArticlePosts1_EditoTwoThirdsPost1_PreviewPostHeaderTags1_PreviewPostHeaderSocial1_SendMailForm1" class="conteneursendemail">
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="La muraille invisible" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A212C252426251FB543494946494C1EBE4A49474348481EB84A1E4EC3C14A464848431E4649C446C2464148431241482EB4BAB8B634C143424F25 itemVisuLk">
+            <img class="itemVisu" id="img_7" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/8/1/9782020381185.gif" alt="La muraille invisible&nbsp;-&nbsp;Henning Mankell" />
+        </span>
+        
+    </dt>
     
-</div>
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1278698/Henning-Mankell-La-muraille-invisible#bl=FALIVreco8"  title="La muraille invisible">
+            La muraille inv...
+        </a>
+    </dd> 
 
+    <dd class="itemSstl" title="Henning Mankell">
+        Henning Mankell
+        
+    </dd>
 
-  
-    <div id="PopinShoutIt_14168" style="display:none;" class="popinsharesocial">
-        <div class="container">
-            <div class="pdg_t_lg pdg_h_lg pdg_no_b">
-                <h5> Partager "Mill&#233;nium, les hommes qui n’aimaient pas les femmes : l’omelette su&#233;doise" sur ces réseaux :</h5>
-                <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Yahoo&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%26%23233%3bnium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%26%23233%3bdoise" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" target="_blank" name="SocialBookmarkYahoo"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-buzz-bg.png" alt="Yahoo Buzz" title="Votez sur Yahoo Buzz!" class="mrg_b mrg_r_sm" /></a>
-                <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Digg&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%26%23233%3bnium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%26%23233%3bdoise" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" target="_blank" name="SocialBookmarkDigg"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-digg-bg.png" alt="Digg" title="Soumettre à Digg" class="mrg_b mrg_r_sm" /></a>
-                <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Delicious&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%26%23233%3bnium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%26%23233%3bdoise" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" target="_blank" name="SocialBookmarkDelIcioUs"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-delicious-bg.png" alt="DelIcioUs" title="Soumettre à del.icio.us" class="mrg_b mrg_r_sm" /></a>
-                <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=MySpace&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%26%23233%3bnium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%26%23233%3bdoise" target="_blank" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" onfocus="" onmouseover="" name="SocialBookmarkMySpace"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-myspace-bg.png" alt="MySpace" title="Poster sur MySpace" class="mrg_b mrg_r_sm" /></a>
-                <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Netvibes&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%26%23233%3bnium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%26%23233%3bdoise" target="_blank" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" onfocus="" onmouseover="" name="SocialBookmarkNetvibes"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-netvibes-bg.png" alt="Netvibes" title="Partager sur Netvibes" class="mrg_b mrg_r_sm" /></a>
-                <a href="http://www4.fnac.com/Comments/Share/Share.aspx?Site=Wikio&URL=http%253a%252f%252fwww.fnac.com%252fMillenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise%252fcp14168%252fw-4&Title=Mill%26%23233%3bnium%2c+les+hommes+qui+n%e2%80%99aimaient+pas+les+femmes+%3a+l%e2%80%99omelette+su%26%23233%3bdoise" target="_blank" onclick="window.open(this.href,'','left=0,top=0,width=900,height=600,toolbar=1,location=0,resizable=1,scrollbars=1'); return false;" onfocus="" onmouseover="" name="SocialBookmarkWikio"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/linki-wikio-bg.png" alt="Wikio" title="Partager sur Wikio" class="mrg_b mrg_r_sm" /></a>
-            </div>
-            <hr />
-            <div class="pdg_b_lg pdg_h_lg pdg_no_t">
-                <h5>Insérez le post "Mill&#233;nium, les hommes qui n’aimaient pas les femmes : l’omelette su&#233;doise" dans vos pages : </h5>
-                <textarea readonly="readonly" cols="65" rows="5">&lt;iframe width=&quot;315&quot; height=&quot;350&quot; src=&quot;http://www4.fnac.com/Community/PostTwoThirdsEmbedded.aspx?POSTID=14168&quot;&gt;&lt;/iframe&gt;</textarea>
-            </div>
-            <div class="closemap">
-                <a class="moutarde">Fermer</a>
-            </div>
-        </div>
+    <dd class="itemStars">
+        <!-- note -->
         
-    </div>
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
 
+        
+    </dd>    
 
-<script type="text/javascript">
-    $(function()
-    {
-        $(".social a.SocialBookmarkMailPopin img").click(function()
-        {
-            var leftpopin = ($(window).width() - 623) / 2;
-            var pospopin = ($(window).height() - 515) / 2 + $(window).scrollTop();
-            $("div.conteneursendemail").css({ top: pospopin, left: leftpopin }).show();
-            $("#allopa").show();
-        });
-        $("div.popinsharesocial div.closemap a").click(function()
-        {
-            $(".popinsharesocial").hide();
-            $("#allopa").hide();
-        });
-    });
-    function GetMoreSocial(containerToShow)
-    {
-        var leftpopin = ($(window).width() - $(".popinsharesocial").width()) / 2;
-        var toppopin = ($(window).height() - $(".popinsharesocial").height()) / 2 + $(window).scrollTop();
-        $("#" + containerToShow).css({ top: toppopin, left: leftpopin }).show();
-        //$("#allopa").show();
-    }
-</script>
+    <dd class="itemPricer">
+        
 
 
-</div>
+    <!--Fnac Price -->
+    
 
 
-                         
-                 </div>
-             
-            </div>
-        </div>
-    </div>
-    <div id="allopa"></div>
-</div>
+        <!--New Price 07/12 -->
+        
+    
+    
 
-<script type="text/javascript" language="javascript">
+    <p class="smallPricerFA">
 
-    $('div.conteneursendemail').insertAfter($('#communautaire'));
-    $("div.popinsharesocial").insertAfter($("#communautaire"));
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-    $(".social a.SocialBookmarkMailPopin img").click(function()
-    {
-        var wwidth = $(window).width();
-        var leftpopin = (wwidth - 623) / 2;
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">20,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
-        var wheight = $(window).height();
-        var scrollTop = $(window).scrollTop();
-        var pospopin = (wheight - 515) / 2 + scrollTop;
-        $("div.conteneursendemail").css("top",pospopin);
-        $("div.conteneursendemail").css("left",leftpopin);
-        $("div.conteneursendemail").css("visibility","visible");
-        $("#allopa").css("visibility","visible");
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-    });
+        </p>
 
-    $("div.motscles span.social a.pluspartage").click(function()
-    {
         
-        var pwidth = $(".popinsharesocial").width();
-        var wwidth = $(window).width();
-        var leftpopin = (wwidth - 623) / 2;
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1278698, 12, 8,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1278698&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1278698" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
-        var pheight = $(".popinsharesocial").height();
-        var wheight = $(window).height();
-        var scrollTop = $(window).scrollTop();
-        var toppopin = (wheight - pheight) / 2 + scrollTop;
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
 
-        $(".popinsharesocial").css("top",toppopin);
-        $(".popinsharesocial").css("left",leftpopin);
-        $(".popinsharesocial").css("visibility","visible");
-        $("#allopa").css("visibility","visible");
-    });
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-    $("div.closemap a").click(function()
-    {
-        $(".popinsharesocial").css("visibility","hidden");
-        $("#allopa").css("visibility","hidden");
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="La cinquième femme" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A25242C2A22231FB543494946494C1EBE4A49474348481EB84A1E424649CAC346434E431E44434E4E431241482EB4BAB8B634C143424F26 itemVisuLk">
+            <img class="itemVisu" id="img_8" src="http://static.fnac-static.com/multimedia/Images/FR/NR/3f/3b/0d/867135/1535-1.jpg" alt="La cinquième femme&nbsp;-&nbsp;Henning Mankell" />
+        </span>
         
-    });
+    </dt>
     
-    $("#allopa").click(function()
-        {
-            $("#allopa").css("visibility","hidden");
-            $("#EmbeddedPopinMagasin").css("visibility","hidden");
-            $("div.popinsharesocial").css("visibility","hidden");
-            $("div.conteneursendemail").css("visibility","hidden");
-            $("#FMPlaylistPopin").hide();
-        });
-</script>
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a867135/Henning-Mankell-La-cinquieme-femme#bl=FALIVreco9"  title="La cinquième femme">
+            La cinquième fe...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Henning Mankell">
+        Henning Mankell
+        
+    </dd>
 
+    <dd class="itemStars">
+        <!-- note -->
+        
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
 
+        
+    </dd>    
 
- 
-<div id="editorialContent" class="editorialContent mrg_b_lg">
-    <div id="editorialLayout" class=" block block_gris">
-        <div class="blk_inside">
-            
-            
-<div id="BannerHomeRight" class="hide"><span>PUBLICITÉ</span>
-<iframe width="300" height="250" hspace="0" vspace="0" frameborder="0" bordercolor="#000000" topmargin="0" marginwidth="0" marginheight="0" border="0" letmargin="0" scrolling="no" src="http://mfr.247realmedia.com/2/www.fnac.com/telechargement/livre-bibliotheque@Top,Middle!Middle?scat="></iframe>
+    <dd class="itemPricer">
+        
 
 
-</div>
+    <!--Fnac Price -->
+    
 
-            <div id="fnacOpinion">
-            
-            	<!-- </ Affichage BazarVoice - Coup de coeur des vendeurs> -->
-            	
-		<div id="ArticleContentPE_ArticleChaptersPE_EditorialContent1_StaffReview1">
-	<div class="coupDeCoeur pdg_b">
-	    <h3 class="h_1-5_gris pdg_v">
-	        
-	        <strong>Coups de cœur </strong>des vendeurs : 
-            <span>
-	            
-                    <!-- NLA 22091223 n'afficher que les 3 premiers avis -->
-                    3 avis en ligne 
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">20,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
                 
-            </span>
-            	        
-        </h3>
+
         
-        <!-- NLA 22091223 n'afficher que les 3 premiers avis -->
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
         
 
-        <!-- /NLA 22091223 n'afficher que les 3 premiers avis -->
+    
+    
         
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(867135, 12, 9,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=867135&sctype=standard&from=111" rel="nofollow" FnacIdProduct="867135" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
-        <div class="mrg_b_lg">
-		        <ul class="mrg_no">
-		            <li>
-		                
-			                <strong>ELIZABETH</strong> de FNAC Noisy-le-Grand
-			            
-			        </li>
-			    </ul>
-			    <!-- Popin Lire la suite -->
-			    <div class="lireLaSuite mrg_v_sm">
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
 
-				        <strong class="orange">
-				        Une lutte sans merci
-				        </strong><br />
-				        Soupçonnée du meurtre d'un couple qui enquêtait sur le commerce du sexe, Lisbeth Salander se retrouve traquée par la police. Pour sauver sa peau, elle se lance dans une croisade à 100 à l'heure contre les hommes qui n'aiment pas les femmes…
-Michaël Blomkvist sera un allié de choix et de choc...
+                </li>
+                
+                <li class="slideItem ">
+                    
+<dl class="clearfix">
 
-			     </div>
-			     
-			    
-        </div>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Un flic dans le pétrin" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A212122212121261F3B4543C143C24A1E324245CC434C43481E33491E444846421E4B4A49C21E48431EC043CBC146491241482EB4BAB8B634C143424F2A20 itemVisuLk">
+            <img class="itemVisu" id="img_9" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/2/9/9782742775927.gif" alt="Un flic dans le pétrin&nbsp;-&nbsp;Theresa Schwegel" />
+        </span>
         
-        <div class="mrg_b_lg">
-		        <ul class="mrg_no">
-		            <li>
-		                
-			                <strong>EMILIE</strong> de FNAC Croix-Blanche
-			            
-			        </li>
-			    </ul>
-			    <!-- Popin Lire la suite -->
-			    <div class="lireLaSuite mrg_v_sm">
-
-				        <strong class="orange">
-				        Stieg Larsson
-				        </strong><br />
-				        Les retrouvailles ne vont pas être de tout repos entre Mikael Blomkvist et Lisbeth Salander dans ce deuxième tome de la série culte du polar suèdois.
-Encore plus palpitant et trépidant que le précédent, à dévorer sans attendre!
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a2232229/Theresa-Schwegel-Un-flic-dans-le-petrin#bl=FALIVreco10"  title="Un flic dans le pétrin">
+            Un flic dans le...
+        </a>
+    </dd> 
 
-			     </div>
-			     
-			    
-        </div>
+    <dd class="itemSstl" title="Theresa Schwegel">
+        Theresa Schwege...
         
-        <div class="mrg_b_lg">
-		        <ul class="mrg_no">
-		            <li>
-		                
-			                <strong>L'equipe livre</strong> de FNAC NANTES
-			            
-			        </li>
-			    </ul>
-			    <!-- Popin Lire la suite -->
-			    <div class="lireLaSuite mrg_v_sm">
-
-				        <strong class="orange">
-				        
-				        </strong><br />
-				        Il avait mis la barre très haut avec Millenium 1, Il maintient l'excellence de son récit en nous racontant comment Lisbeth, écorchée et géniale, asociale et attachante veut, même au prix du sang, apurer les comptes de son enfance
-
-			     </div>
-			     
-			    
-        </div>
+    </dd>
+
+    <dd class="itemStars">
+        <!-- note -->
         
-  </div>
-        </div>
-		
-                <!-- </ Affichage BazarVoice - Coup de coeur des vendeurs> -->
+    </dd>    
+
+    <dd class="itemPricer">
+        
+
 
-<!-- Test pour l'intégration de SplitGame -->
+    <!--Fnac Price -->
     
-                <!-- <Si l'article physique n'a pas d'avis on affiche celui de l'article numérique > -->
-                
-                <!-- <Affichage résumé court market > -->
-                    <div class="resume pdg_b_lg ">
-                        <h2 class="h_1-5_gris pdg_v">
-                                <strong>En résumé :</strong>
-                                Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette
-                                
-                        </h2>
-                        <div>
-                        Une enquête sur un réseau de prostitution dévoile des secrets d'espionnage et un lourd passé familial.
-                        </div>
-                    </div>
-                
 
-                <!-- <Affichage Avis de la Fnac> -->
-                
-                <!-- <Si l'article physique n'a pas d'avis on affiche celui de l'article numérique > -->
-                
-                <div class="avisfnac pdg_b_lg">
-                    <h2 class="h_1-5_mout pdg_v">
-                        <strong>Avis de la Fnac&nbsp;:</strong>
-                        Millénium, T2 - La fille qui rêvait d'un bidon d'essence et d'une allumette
-                        
-                    </h2>
-                    
-                    <div class="lireLaSuite">
-                        
-                             
-                        
-                        Lisbeth et Mickael sont de retour dans un roman aussi trépidant que le premier. Nos deux anti-héros sont à nouveau plongés dans une aventure passionnante. Un livre époustoufflant, plein d'humour et d'effroi. Vivement le tome 3. Anais, libraire à la Fnac Clermont Q
-                        
-                        
-                        
-                        
-                    </div>
-                    
-                </div>
-                
-                <!-- </ Affichage Avis de la Fnac> -->
 
-                <!-- <Affichage Avis de l'éditeur> -->
-                <!-- <Si l'article physique n'a pas d'avis on affiche celui de l'article numérique > -->
-                
-                <div class="avisediteur pdg_b_lg">
-                    <h2 class="h_1-5_gris pdg_v"><strong>Le Mot de l'éditeur</strong>&nbsp;:
-                     Millénium, T2 - La fille qui rêvait d'un bidon d'essence et d'une allumette
-                     
-                    </h2>
-                     <div class="lireLaSuite">
-                        
-                        Tandis que Lisbeth Salander coule des journées supposées tranquilles aux Caraïbes, Mikael Blomkvist, réhabilité, victorieux, est prêt à lancer un numéro spécial de Millenium sur un thème brûlant pour des gens haut placés : une sombre histoire de prostituées exportées des pays de l'Est. Mikael aimerait surtout revoir Lisbeth. Il la retrouve sur son chemin, mais pas vraiment comme prévu : un soir, dans une rue de Stockholm, il la voit échapper clé peu à une agression manifestement très planifiée.<br>Enquêter sur clés sujets qui fâchent mafieux et politiciens n'est pas ce qu'on souhaite à clé jeunes journalistes amoureux de la vie. Deux meurtres se succèdent, les victimes enquêtaient pour Millenium. Pire que tout, la police et les médias vont bientôt traquer Lisbeth, coupable toute désignée et qu'on a vite fait de qualifier de tueuse en série au passé psychologique lourdement chargé.<br>Mais qui était cette gamine attachée sur un lit, exposée aux caprices d'un maniaque et qui survivait en rêvant d'un bidon d'essence et d'une allumette ?<br>S'agissait-il d'une des filles des pays de l'Est, y a-t-il une hypothèse plus compliquée encore ? C'est dans cet univers à cent à l'heure que nous embarque Stieg Larsson qui signe avec ce deuxième volume de la trilogie Millenium un thriller au rythme affolant.<br>
-                        
-                    </div>
-                </div>
-                
-                <!-- <Affichage Avis du Partenaire> -->
-                <!-- <Si l'article physique n'a pas d'avis on affiche celui de l'article numérique > -->
-                
-                <!-- </ Affichage Avis de l'éditeur> -->
-                
+        <!--New Price 07/12 -->
+        
+    
+    
 
-            </div>
-  
-          
-            <div class="clearb"></div>
-        </div>
-    </div>
-</div>
+    <p class="smallPricerFA">
 
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-<div id="ArticleContentPE_FAUsersOpinion1">
-<div class="mrg_b_lg">
-    <div class="block block_gris">
-        <div class="blk_inside pdg">
-            <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-            <div id="avisinternautes">
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">20,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
                 
-<a name="reviews"></a>
-<div id="headeropinion">
-    <h2 class="h_1-5_gris pdg_b"><strong>Avis des internautes</strong>&nbsp;: 
-            
-                "Millénium, T2 - La fille qui rêvait d'un bidon d'essence et d'une allumette"
-            
-    </h2>
-</div>    
-
 
-                <div id="avisinternautesFA">
-                    <div class="colgauche">
-                        
-        
-<div class="ProductRating context">
-    <p class=Text1">
-        <span>Notes des clients :</span>
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-        <div class="clear"></div>
-    </p>
+        </p>
 
-             
-       <p id="ratingSummary" class="RatingSummaryLinkReadID">
-        <span class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4AC446C21EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431F2AC02A25262A22232B" title="Lire tous les commentaires" name="ReadReviews">Lire tous les commentaires</span>
         
-            <span class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FC2454348441F4A4B4B3F424F4E4E4349CB194AC2C0C52F3031B6BB2E2A25262A22232B" title="Écrire un avis" name="WriteReview">Écrire un avis</span>
+
+    
+    
         
-        </p>
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(2232229, 12, 10,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=2232229&sctype=standard&from=111" rel="nofollow" FnacIdProduct="2232229" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+    </dd>
     
-</div>    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
 
-                        
-                        
+                </li>
+                
+                <li class="slideItem ">
+                    
+<dl class="clearfix">
 
-<div class="ProductAverageRating">
-    <div class="NbAvis clearfix">
-        <strong>Répartition des notes</strong>
-        <span class="floatr">(72  avis)</span>
-    </div>
-    <div class="notation">
-        
-        <div class="rowjauge">
-            <div class="stars"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/histogram_legend_5.gif" alt="note" /></div>
-            <div class="jaugepourcent">
-                <div class="pourcent" style="width:54%">&nbsp;</div>
-            </div>
-            <div class="nbcomments">39</div>
-            <div class="clearing"></div>
-        </div>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Los Angeles river" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A23222B222A2C1FBE4642454A43481EB24F4949434848C61EB84FC21EBA494C434843C21EC146C443C11241482EB4BAB8B634C143424F2A2A itemVisuLk">
+            <img class="itemVisu" id="img_10" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/0/7/2/9782020588270.gif" alt="Los Angeles river&nbsp;-&nbsp;Michael Connelly" />
+        </span>
         
-        <div class="rowjauge">
-            <div class="stars"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/histogram_legend_4.gif" alt="note" /></div>
-            <div class="jaugepourcent">
-                <div class="pourcent" style="width:22%">&nbsp;</div>
-            </div>
-            <div class="nbcomments">16</div>
-            <div class="clearing"></div>
-        </div>
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1534317/Michael-Connelly-Los-Angeles-river#bl=FALIVreco11"  title="Los Angeles river">
+            Los Angeles riv...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Michael Connelly">
+        Michael Connell...
         
-        <div class="rowjauge">
-            <div class="stars"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/histogram_legend_3.gif" alt="note" /></div>
-            <div class="jaugepourcent">
-                <div class="pourcent" style="width:6%">&nbsp;</div>
-            </div>
-            <div class="nbcomments">5</div>
-            <div class="clearing"></div>
-        </div>
+    </dd>
+
+    <dd class="itemStars">
+        <!-- note -->
         
-        <div class="rowjauge">
-            <div class="stars"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/histogram_legend_2.gif" alt="note" /></div>
-            <div class="jaugepourcent">
-                <div class="pourcent" style="width:8%">&nbsp;</div>
-            </div>
-            <div class="nbcomments">6</div>
-            <div class="clearing"></div>
-        </div>
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+
         
-        <div class="rowjauge">
-            <div class="stars"><img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/histogram_legend_1.gif" alt="note" /></div>
-            <div class="jaugepourcent">
-                <div class="pourcent" style="width:6%">&nbsp;</div>
-            </div>
-            <div class="nbcomments">5</div>
-            <div class="clearing"></div>
-        </div>
+    </dd>    
+
+    <dd class="itemPricer">
         
-    </div>
-</div>    
 
-                    </div>
-                    
-                    
-                    <div id="blocAvis" class="coldroite floatl">
-                        
 
-<div id="FACommentSummary">
-     Avis du produit(72)
+    <!--Fnac Price -->
     
-    &nbsp;|&nbsp;<a href="http://www4.fnac.com/shelf/add_comment.aspx?PRID=1891354" title="Écrire un avis" name="WriteReview">Écrire un avis</a>
-    
-</div>   
 
-                        
-<div id="oneComment6256372" class="oneComment ">
-    <div class="pdg_h floatl width30">
+
+        <!--New Price 07/12 -->
         
+    
+    
 
-<div id="CommentRating_6256372" class="CommentRating">
+    <p class="smallPricerFA">
 
-    <p><span>Note :</span>
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note de l'internaute :5/5"/>
-</p>
-</div>    
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">21,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
         
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
 
-<div id="CommentUserData_6256372" class="CommentUserData">
-    <div id="User_6256372" class="User">
-        <a href="http://www4.fnac.com/Marielle/prA5674F22-955C-4FE1-B0B1-ED35B2B43310" name="TrackingTag_Review_Display_ReadAllReviews" class="user">Marielle</a>
         
-            
-            <div id="popincontrib_6256372" class="popincontrib">
-                <img src="http://www4-fr.fnac-static.com/img/boutons/fermer_blanc-gris_59x15.png" alt="Fermer la fenetre" class="close floatr" />
-                
-                Fnac définit un Contributeur Majeur comme étant un utilisateur du site qui fournit un grand nombre d’avis très utiles sur les produits. Le nombre de commentaires d’un examinateur et les votes d’utilité reçus pour chaque commentaire sont les deux critères qui déterminent le rang d’un examinateur.
-            </div>
-            <script type="text/javascript">
-                AppCore.ready(function()
-                {
-                    AppCore.$('CommentUserData_6256372 .biguser > img').click(function()
-                    {
-                        AppCore.$("#popincontrib_6256372").css("visibility", "visible");
-                    });
-                    AppCore.$('#popincontrib_6256372 > img.close').click(function()
-                    {
-                        AppCore.$("#popincontrib_6256372").css("visibility", "hidden");
-                    });
-                });
-            </script>
+
+    
+    
         
-    </div>
-    <div id="LieuDateUser_6256372" class="LieuDateUser">
-        Châteauroux, 20/09/2012 
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1534317, 12, 11,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1534317&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1534317" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
-    </div>
-</div>
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
 
-    </div>
-    <div class="pdg_l floatl comment">
-        
+                </li>
+                
+                <li class="slideItem ">
+                    
+<dl class="clearfix">
 
-<div id="CommentText_6256372" class="CommentText">
-    <div id="TitleComment_6256372" class="TitleComment pdg_b_sm brd_b_gris">
-        Encore meilleur !
-    </div>
-    <div id="ContentComment_6256372" class="ContentComment">
-        C'est avec plaisir que l'on retrouve Lisbeth, après son "coup de maître" du 1er volume ! Une nouvelle affaire attend Mikael, qui va recroiser sa route. Style dans la droite ligne du premier opus de cette trilogie. A ne manquer sous aucun prétexte !
-    </div>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Lumière morte" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2B23232624221FBE4642454A43481EB24F4949434848C61EB8C34E4643C1431E4E4FC1CB431241482EB4BAB8B634C143424F2A21 itemVisuLk">
+            <img class="itemVisu" id="img_11" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/3/6/2/9782020588263.gif" alt="Lumière morte&nbsp;-&nbsp;Michael Connelly" />
+        </span>
+        
+    </dt>
     
-</div>
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1455963/Michael-Connelly-Lumiere-morte#bl=FALIVreco12"  title="Lumière morte">
+            Lumière morte
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Michael Connelly">
+        Michael Connell...
         
+    </dd>
+
+    <dd class="itemStars">
+        <!-- note -->
         
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
 
-<div id="CommentUtile_6256372" class="CommentUtile">
-    <span>Cet avis vous a-t-il été utile ?</span>
-    <a id="FeedbackYes_6256372" onclick="popWait('FeedbackYes_6256372','http://www4-fr.fnac-static.com/img/pictos/ajax_busy.gif');WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1$OneComment1$CommentUtile1','6256372|1',JSHandlerStructWithMsg,null,null,true);" class="bout-gris-fonce"><span class="inner">Oui</span></a>
-    <a id="FeedbackNo_6256372" onclick="popWait('FeedbackYes_6256372','http://www4-fr.fnac-static.com/img/pictos/ajax_busy.gif');WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1$OneComment1$CommentUtile1','6256372|0',JSHandlerStructWithMsg,null,null,true);" class="bout-gris-fonce"><span class="inner">Non</span></a>
-    <div class="clearing"></div>         
-</div> 
+        
+    </dd>    
 
-         
-<div id="CommentAbuse_6256372" class="CommentAbuse">
-    <span><a href="http://www4.fnac.com/Comments/DeclareAbuseArticle.aspx?PRID=1891354&reviewID=6256372&PreviousURL=http%253a%252f%252flivre.fnac.com%252fa1891354%252fMillenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" title="Signaler un abus" name="WriteReview">Signaler un abus</a></span>
-    <div class="clearing"></div>         
-</div> 
+    <dd class="itemPricer">
+        
 
-         <div id="CommentOnSocialNetwork_6256372" class="CommentOnSocialNetwork">
-            <span id="Label_6256372" class="floatl">Faites connaître cet avis :</span>
-            
 
-<div class="socialNetwork" id="socialNetworkOwner">
-    <div class="shareitems img_m">
+    <!--Fnac Price -->
     
-            <a href="http://www4.fnac.com/Shelf/Common/Partners/SocialNetwork/RedirectPage.aspx?url=http%3a%2f%2fwww.facebook.com%2fsharer.php%3fu%3dhttp%3a%2f%2fwww4.fnac.com%2fimp-avis-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette%2f1p1891354%3freviewID%3d6256372%26Origin%3dDISS_FB_AVIS%26t%3dMill%c3%a9nium+T2+%3a+%22%22La+fille+qui+r%c3%aavait+d%27un+bidon+d%27essence+et+d%27une+allumette%22%22+par+Stieg+Larsson+%3a+Livre" target="_blank" class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img//Communautaire/pictos/link-facebook2.png" alt="Facebook" title="Ajouter au Facebook" /></a>
-            
-            <a id="DivSendMailFA" href="#"class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail2.png" alt="envoyer à un ami" title="envoyer à un ami" /></a>
-            <a class="btPartager gris6 mrg_l_sm" rel="nofollow" href="#">
-                Plus de partage
-            </a>
-            <a id="DivHtmlEmbedFA" style="display: none;"></a>
-            
-        </div>
-         <div class="sep_gris">
-        </div>
+
+
+        <!--New Price 07/12 -->
         
-      
-   
     
     
 
-    <div class="clearing"></div>
-</div>
-<script type="text/javascript">
-    AppCore.ready(function()
-    {
-        AppCore.modules.ready("socialNetworks", function()
-        {
-            AppCore.$("#socialNetworkOwner a.btPartager").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','RE|6256372|FnacDirect§1891354§1891354§1584035§9782742765010|False',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            AppCore.$("#DivSendMailFA").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','RE|6256372|FnacDirect§1891354§1891354§1584035§9782742765010|True',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            function setTooltServ(e)
-            {
-                tooltServ.obj = e.target;
-                tooltServ.x = e.pageX;
-                tooltServ.y = e.pageY;
-            }
-        });
-    });
-</script>
-
-         </div>
+    <p class="smallPricerFA">
 
-        
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-         
-    </div>
-    <div class="clearing"></div>
-</div>    
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">21,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
-                        
-<div id="oneComment6190070" class="oneComment ">
-    <div class="pdg_h floatl width30">
         
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-<div id="CommentRating_6190070" class="CommentRating">
-
-    <p><span>Note :</span>
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note de l'internaute :5/5"/>
-</p>
-</div>    
+        </p>
 
         
 
-<div id="CommentUserData_6190070" class="CommentUserData">
-    <div id="User_6190070" class="User">
-        <a href="http://www4.fnac.com/Bgoldo/prFEE42FF4-2A21-09C5-0A94-F231414AB3F4" name="TrackingTag_Review_Display_ReadAllReviews" class="user">Bgoldo</a>
+    
+    
         
-            
-            <div id="popincontrib_6190070" class="popincontrib">
-                <img src="http://www4-fr.fnac-static.com/img/boutons/fermer_blanc-gris_59x15.png" alt="Fermer la fenetre" class="close floatr" />
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1455963, 12, 12,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1455963&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1455963" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
+
+                </li>
                 
-                Fnac définit un Contributeur Majeur comme étant un utilisateur du site qui fournit un grand nombre d’avis très utiles sur les produits. Le nombre de commentaires d’un examinateur et les votes d’utilité reçus pour chaque commentaire sont les deux critères qui déterminent le rang d’un examinateur.
-            </div>
-            <script type="text/javascript">
-                AppCore.ready(function()
-                {
-                    AppCore.$('CommentUserData_6190070 .biguser > img').click(function()
-                    {
-                        AppCore.$("#popincontrib_6190070").css("visibility", "visible");
-                    });
-                    AppCore.$('#popincontrib_6190070 > img.close').click(function()
-                    {
-                        AppCore.$("#popincontrib_6190070").css("visibility", "hidden");
-                    });
-                });
-            </script>
+                <li class="slideItem ">
+                    
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Derniers verres" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A25262A23202C1FBA494BC143CC1EBE42BC4A454A491EBB43C1494643C1C21EC443C1C143C21241482EB4BAB8B634C143424F2A22 itemVisuLk">
+            <img class="itemVisu" id="img_12" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/3/5/9782742765539.gif" alt="Derniers verres&nbsp;-&nbsp;Andrew McGahan" />
+        </span>
         
-    </div>
-    <div id="LieuDateUser_6190070" class="LieuDateUser">
-        France, 27/02/2012 
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1891507/Andrew-McGahan-Derniers-verres#bl=FALIVreco13"  title="Derniers verres">
+            Derniers verres
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Andrew McGahan">
+        Andrew McGahan
         
-    </div>
-</div>
+    </dd>
 
-    </div>
-    <div class="pdg_l floatl comment">
+    <dd class="itemStars">
+        <!-- note -->
         
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
 
-<div id="CommentText_6190070" class="CommentText">
-    <div id="TitleComment_6190070" class="TitleComment pdg_b_sm brd_b_gris">
-        Aussi bon que le tome 1
-    </div>
-    <div id="ContentComment_6190070" class="ContentComment">
-        Ce roman nous tient en haleine du debut jusqu'a la fin et nous motive à acheter le tome 3
-    </div>
-    
-</div>
         
+    </dd>    
+
+    <dd class="itemPricer">
         
 
-<div id="CommentUtile_6190070" class="CommentUtile">
-    <span>Cet avis vous a-t-il été utile ?</span>
-    <a id="FeedbackYes_6190070" onclick="popWait('FeedbackYes_6190070','http://www4-fr.fnac-static.com/img/pictos/ajax_busy.gif');WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1$OneComment1$CommentUtile1','6190070|1',JSHandlerStructWithMsg,null,null,true);" class="bout-gris-fonce"><span class="inner">Oui</span></a>
-    <a id="FeedbackNo_6190070" onclick="popWait('FeedbackYes_6190070','http://www4-fr.fnac-static.com/img/pictos/ajax_busy.gif');WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1$OneComment1$CommentUtile1','6190070|0',JSHandlerStructWithMsg,null,null,true);" class="bout-gris-fonce"><span class="inner">Non</span></a>
-    <div class="clearing"></div>         
-</div> 
 
-         
-<div id="CommentAbuse_6190070" class="CommentAbuse">
-    <span><a href="http://www4.fnac.com/Comments/DeclareAbuseArticle.aspx?PRID=1891354&reviewID=6190070&PreviousURL=http%253a%252f%252flivre.fnac.com%252fa1891354%252fMillenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" title="Signaler un abus" name="WriteReview">Signaler un abus</a></span>
-    <div class="clearing"></div>         
-</div> 
+    <!--Fnac Price -->
+    
 
-         <div id="CommentOnSocialNetwork_6190070" class="CommentOnSocialNetwork">
-            <span id="Label_6190070" class="floatl">Faites connaître cet avis :</span>
-            
 
-<div class="socialNetwork" id="socialNetworkOwner">
-    <div class="shareitems img_m">
-    
-            <a href="http://www4.fnac.com/Shelf/Common/Partners/SocialNetwork/RedirectPage.aspx?url=http%3a%2f%2fwww.facebook.com%2fsharer.php%3fu%3dhttp%3a%2f%2fwww4.fnac.com%2fimp-avis-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette%2f1p1891354%3freviewID%3d6190070%26Origin%3dDISS_FB_AVIS%26t%3dMill%c3%a9nium+T2+%3a+%22%22La+fille+qui+r%c3%aavait+d%27un+bidon+d%27essence+et+d%27une+allumette%22%22+par+Stieg+Larsson+%3a+Livre" target="_blank" class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img//Communautaire/pictos/link-facebook2.png" alt="Facebook" title="Ajouter au Facebook" /></a>
-            
-            <a id="DivSendMailFA" href="#"class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail2.png" alt="envoyer à un ami" title="envoyer à un ami" /></a>
-            <a class="btPartager gris6 mrg_l_sm" rel="nofollow" href="#">
-                Plus de partage
-            </a>
-            <a id="DivHtmlEmbedFA" style="display: none;"></a>
-            
-        </div>
-         <div class="sep_gris">
-        </div>
-        
-      
-   
+        <!--New Price 07/12 -->
+        
     
     
 
-    <div class="clearing"></div>
-</div>
-<script type="text/javascript">
-    AppCore.ready(function()
-    {
-        AppCore.modules.ready("socialNetworks", function()
-        {
-            AppCore.$("#socialNetworkOwner a.btPartager").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','RE|6190070|FnacDirect§1891354§1891354§1584035§9782742765010|False',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            AppCore.$("#DivSendMailFA").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','RE|6190070|FnacDirect§1891354§1891354§1584035§9782742765010|True',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            function setTooltServ(e)
-            {
-                tooltServ.obj = e.target;
-                tooltServ.x = e.pageX;
-                tooltServ.y = e.pageY;
-            }
-        });
-    });
-</script>
-
-         </div>
+    <p class="smallPricerFA">
 
-        
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-         
-    </div>
-    <div class="clearing"></div>
-</div>    
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">24,20&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
-                        
-<div id="oneComment6173916" class="oneComment ">
-    <div class="pdg_h floatl width30">
         
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-<div id="CommentRating_6173916" class="CommentRating">
-
-    <p><span>Note :</span>
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note de l'internaute :5/5"/>
-</p>
-</div>    
+        </p>
 
         
 
-<div id="CommentUserData_6173916" class="CommentUserData">
-    <div id="User_6173916" class="User">
-        <a href="http://www4.fnac.com/Piiimousse/prC155DAB8-30B9-497B-B07A-AFC665ADF32F" name="TrackingTag_Review_Display_ReadAllReviews" class="user">Piiimousse</a>
+    
+    
         
-            
-            <div id="popincontrib_6173916" class="popincontrib">
-                <img src="http://www4-fr.fnac-static.com/img/boutons/fermer_blanc-gris_59x15.png" alt="Fermer la fenetre" class="close floatr" />
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1891507, 12, 13,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1891507&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1891507" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
+
+                </li>
                 
-                Fnac définit un Contributeur Majeur comme étant un utilisateur du site qui fournit un grand nombre d’avis très utiles sur les produits. Le nombre de commentaires d’un examinateur et les votes d’utilité reçus pour chaque commentaire sont les deux critères qui déterminent le rang d’un examinateur.
-            </div>
-            <script type="text/javascript">
-                AppCore.ready(function()
-                {
-                    AppCore.$('CommentUserData_6173916 .biguser > img').click(function()
-                    {
-                        AppCore.$("#popincontrib_6173916").css("visibility", "visible");
-                    });
-                    AppCore.$('#popincontrib_6173916 > img.close').click(function()
-                    {
-                        AppCore.$("#popincontrib_6173916").css("visibility", "hidden");
-                    });
-                });
-            </script>
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Peur blanche" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A23262B20212B1FB743491EB44F484843CBCB1E3043C3C11E41484A494245431241482EB4BAB8B634C143424F2A2B itemVisuLk">
+            <img class="itemVisu" id="img_13" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/8/7/1/9782221096178.gif" alt="Peur blanche&nbsp;-&nbsp;Ken Follett" />
+        </span>
         
-    </div>
-    <div id="LieuDateUser_6173916" class="LieuDateUser">
-        France, 20/01/2012 
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1594024/Ken-Follett-Peur-blanche#bl=FALIVreco14"  title="Peur blanche">
+            Peur blanche
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Ken Follett">
+        Ken Follett
         
-    </div>
-</div>
+    </dd>
 
-    </div>
-    <div class="pdg_l floatl comment">
+    <dd class="itemStars">
+        <!-- note -->
         
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars3.png" alt="Note moyenne des internautes :3/5"/>
 
-<div id="CommentText_6173916" class="CommentText">
-    <div id="TitleComment_6173916" class="TitleComment pdg_b_sm brd_b_gris">
-        Superbe
-    </div>
-    <div id="ContentComment_6173916" class="ContentComment">
-        Un très bon livre que je vous conseille à tous ! Du suspens.. je n'ai pu me retenir de le lire. En 3 jours, il était terminé ! Vite j'achète la suite.  Il y a de l'intrigue.. Les personnages deviennent vivant dans notre imaginaire car il ont un aspect très réaliste !
-    </div>
-    
-</div>
         
+    </dd>    
+
+    <dd class="itemPricer">
         
 
-<div id="CommentUtile_6173916" class="CommentUtile">
-    <span>Cet avis vous a-t-il été utile ?</span>
-    <a id="FeedbackYes_6173916" onclick="popWait('FeedbackYes_6173916','http://www4-fr.fnac-static.com/img/pictos/ajax_busy.gif');WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1$OneComment1$CommentUtile1','6173916|1',JSHandlerStructWithMsg,null,null,true);" class="bout-gris-fonce"><span class="inner">Oui</span></a>
-    <a id="FeedbackNo_6173916" onclick="popWait('FeedbackYes_6173916','http://www4-fr.fnac-static.com/img/pictos/ajax_busy.gif');WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1$OneComment1$CommentUtile1','6173916|0',JSHandlerStructWithMsg,null,null,true);" class="bout-gris-fonce"><span class="inner">Non</span></a>
-    <div class="clearing"></div>         
-</div> 
 
-         
-<div id="CommentAbuse_6173916" class="CommentAbuse">
-    <span><a href="http://www4.fnac.com/Comments/DeclareAbuseArticle.aspx?PRID=1891354&reviewID=6173916&PreviousURL=http%253a%252f%252flivre.fnac.com%252fa1891354%252fMillenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" title="Signaler un abus" name="WriteReview">Signaler un abus</a></span>
-    <div class="clearing"></div>         
-</div> 
+    <!--Fnac Price -->
+    
 
-         <div id="CommentOnSocialNetwork_6173916" class="CommentOnSocialNetwork">
-            <span id="Label_6173916" class="floatl">Faites connaître cet avis :</span>
-            
 
-<div class="socialNetwork" id="socialNetworkOwner">
-    <div class="shareitems img_m">
-    
-            <a href="http://www4.fnac.com/Shelf/Common/Partners/SocialNetwork/RedirectPage.aspx?url=http%3a%2f%2fwww.facebook.com%2fsharer.php%3fu%3dhttp%3a%2f%2fwww4.fnac.com%2fimp-avis-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette%2f1p1891354%3freviewID%3d6173916%26Origin%3dDISS_FB_AVIS%26t%3dMill%c3%a9nium+T2+%3a+%22%22La+fille+qui+r%c3%aavait+d%27un+bidon+d%27essence+et+d%27une+allumette%22%22+par+Stieg+Larsson+%3a+Livre" target="_blank" class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img//Communautaire/pictos/link-facebook2.png" alt="Facebook" title="Ajouter au Facebook" /></a>
-            
-            <a id="DivSendMailFA" href="#"class="mrg_l_sm">
-                <img src="http://www4-fr.fnac-static.com/img/Communautaire/pictos/link-mail2.png" alt="envoyer à un ami" title="envoyer à un ami" /></a>
-            <a class="btPartager gris6 mrg_l_sm" rel="nofollow" href="#">
-                Plus de partage
-            </a>
-            <a id="DivHtmlEmbedFA" style="display: none;"></a>
-            
-        </div>
-         <div class="sep_gris">
-        </div>
+        <!--New Price 07/12 -->
         
-      
-   
     
     
 
-    <div class="clearing"></div>
-</div>
-<script type="text/javascript">
-    AppCore.ready(function()
-    {
-        AppCore.modules.ready("socialNetworks", function()
-        {
-            AppCore.$("#socialNetworkOwner a.btPartager").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','RE|6173916|FnacDirect§1891354§1891354§1584035§9782742765010|False',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            AppCore.$("#DivSendMailFA").click(function(e){
-                e.preventDefault();
-                setTooltServ(e)
-                WebForm_DoCallback('PartagerZone','RE|6173916|FnacDirect§1891354§1891354§1584035§9782742765010|True',JSHandlerStruct,null,null,true);
-                return false;
-            });
-            function setTooltServ(e)
-            {
-                tooltServ.obj = e.target;
-                tooltServ.x = e.pageX;
-                tooltServ.y = e.pageY;
-            }
-        });
-    });
-</script>
-
-         </div>
+    <p class="smallPricerFA">
 
-        
-
-         
-    </div>
-    <div class="clearing"></div>
-</div>    
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-                        
-                        <div class="clearing"></div>
-                    </div>
-                </div> 
-                
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
                 
-                <div class="txt_r clearing pdg_t_lg pdg_b">
-                    <a href="http://www4.fnac.com/avis-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette/1p1891354" class="bout-gris mrg_r"><span class="inner">Voir tous les avis</span></a>
-                    
-                    <script type="text/javascript">
-                    $(document).ready(function(){  
-                      $("#printAllReviews").show();
-                        });
-                    </script>
-                    <span id="printAllReviews" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F464EC01E4AC446C21EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431F2AC02A25262A22232B bout-gris" style="display:none"><span class="inner">Imprimer tous les avis</span></span>
-                    
-                </div>
-                <div class="clearing">
-                </div>
-            </div>
-        </div>
-    </div>
-</div> 
-</div><script type="text/javascript">
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "1", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|1|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "2", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|2|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "3", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|3|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "4", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|4|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "5", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|5|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "6", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|6|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "7", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|7|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "8", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|8|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "9", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|9|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "10", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|10|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "11", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|11|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "12", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|12|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "13", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|13|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "14", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|14|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "15", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|15|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "16", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|16|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "17", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|17|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "18", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|18|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "19", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|19|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "20", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|20|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "21", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|21|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "22", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|22|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "23", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|23|1|1',JSHandlerStructCache,null,null,true)" );
-RegisterRendering( "ArticleContentPE_FAUsersOpinion1", "24", "WebForm_DoCallback('ArticleContentPE$FAUsersOpinion1','|24|1|1',JSHandlerStructCache,null,null,true)" );
-</script>
 
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-<div class="block block_gris mrg_b_lg">
-    <div id="ficheDt" class="blk_inside">
-	    <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-<div class="blk_content pdg">
-
+        </p>
 
+        
 
-<div class="ficheDt separator pdg_b_lg mrg_b">
-    <h2 class="h_1-5_gris mrg_b"><strong>Fiche détaillée</strong> : Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette</h2>
     
-<table summary="données détaillée de l'article">
-
-                <tr>
-                    <th scope="row" align="left"><span>Auteur</span></th>
-                    <td><span>
-                    <A HREF="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</A>
-                    </span></td>
-                
-                    </tr>
-                
-                <tr>
-                    <th scope="row" align="left"><span>Traduction</span></th>
-                    <td><span>
-                    <A HREF="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</A>, <A HREF="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</A>
-                    </span></td>
-                
-                    </tr>
-                
-                <tr>
-                    <th scope="row" align="left"><span>Editeur</span></th>
-                    <td><span>
-                    <A HREF="http://recherche.fnac.com/e35174/Actes-sud">Actes sud</A>
-                    </span></td>
-                
-                    </tr>
-                
-                <tr>
-                    <th scope="row" align="left"><span>Date de parution</span></th>
-                    <td><span>
-                    octobre 2006
-                            </span></td>
-                
-                    </tr>
-                
-                <tr>
-                    <th scope="row" align="left"><span>Collection</span></th>
-                    <td><span>
-                    <A HREF="http://recherche.fnac.com/c104654/Actes-Noirs">Actes Noirs</A>
-                    </span></td>
-                
-                    </tr>
-                
-                <tr>
-                    <th scope="row" align="left"><span>Format</span></th>
-                    <td><span>
-                    16cm x 23cm
-                    </span></td>
-                
-                    </tr>
-                
-                <tr>
-                    <th scope="row" align="left"><span>ISBN</span></th>
-                    <td><span>
-                    2742765018</tr>
-                            
-                                <tr><th scope="row"><span>EAN</span></th>
-                                <td><span>978-2742765010</span></td></tr>
-                            </span></td>
-                
-                <tr>
-                    <th scope="row" align="left"><span>Illustration</span></th>
-                    <td><span>
-                    Pas d'illustrations 
-                    </span></td>
-                
-                    </tr>
-                
-</table>
-
-</div>
-
-<div class="drtNumerique floatl" style="width:59%">
-    <h2 class="h_1-5_gris mrg_b"><strong>Droits numériques</strong> : Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette</h2>
     
-            <table width="100%" border="0" cellspacing="0">
         
-           <tr>
-<th><span>Format</span></th><td><span class="bleu">ePub</span></td>
-            </tr> 
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1594024, 12, 14,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1594024&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1594024" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
-           <tr>
-<th><span>Editeur</span></th><td><A HREF="http://recherche.fnac.com/e67090/Editions-actes-sud">Éditions actes sud</A></td>
-            </tr> 
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
+   
+</dl>
+
+                </li>
+                
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Mystic river" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A212C2620222C1FBB43494946C21EB843454A49431EBEC6C2CB46421EC146C443C11241482EB4BAB8B634C143424F2A23 itemVisuLk">
+            <img class="itemVisu" id="img_14" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/2/6/9782743609627.gif" alt="Mystic river&nbsp;-&nbsp;Dennis Lehane" />
+        </span>
         
-           <tr>
-<th><span>Date de parution</span></th><td>17/10/2011</td>
-            </tr> 
+    </dt>
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1279037/Dennis-Lehane-Mystic-river#bl=FALIVreco15"  title="Mystic river">
+            Mystic river
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Dennis Lehane">
+        Dennis Lehane
         
-           <tr>
-<th><span>Type de DRM</span></th><td>Adobe DRM </td>
-            </tr> 
+    </dd>
+
+    <dd class="itemStars">
+        <!-- note -->
         
-           <tr>
-<th><span>Droit d'impression</span></th><td>Non autorisé </td>
-            </tr> 
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
+
         
-           <tr>
-<th><span>Droit de Copier/Coller</span></th><td>Non autorisé </td>
-            </tr> 
+    </dd>    
+
+    <dd class="itemPricer">
         
-            </table>
-            
-</div>
 
 
-<div class="bloc-bulle bloc-bulle-degrade floatr mrg_t_lg" style="width:39%">
-    <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b><b class="fleche-bulle"></b>
-    <div class="inner">
-        <p class="pdg_b_sm bleu gras fontbigger">Format ePub, PDF, AVE ou DAE ?</p>
-        <p class="pdg_b_sm bleu">Pour télécharger vos livres numériques (couramment appelés eBook) plusieurs formats peuvent exister, pour en savoir plus, <a href="#" class="explicationFormatsEbook2 bleu">cliquez ici</a>.</p>
-    </div>
-</div>
+    <!--Fnac Price -->
+    
 
-            <div class="clearl"></div>
-       </div>
-    </div>
-</div>
 
+        <!--New Price 07/12 -->
+        
+    
+    
 
-                            
+    <p class="smallPricerFA">
 
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22,50&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
-    <div class="pdg_b_sm img_m">
-        <h3 class="h_1-5_gris dispeline mrg_r"><strong><a href="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</a>&nbsp;:&nbsp;</strong>Autres articles</h3> 
         
-<script type="text/javascript">
-AppCore.ready(function()
-{
-    AppCore.modules.ready("alertingNews", function()
-    {
-        args = {
-            callbackId: "ExtendedPropertiesPE$ExtendedBookProperties$ParticipantLinkedArticles1$AlertingNews1",
-            contributorId: "103133",
-            contributorName: "Stieg Larsson",
-            addAlertElement: $("#alertingNewsdiv103133 a.addAlert"),
-            registerBeforeElement: $("#alertingNewsdiv103133 a.registerBefore"),
-            errorAddAlert: $("#errorAlertingNews103133"),
-            successAddAlert: $("#alertingNewsdiv103133 .newsAlerted"),
-            registerBeforeAlertUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Alerting&Referrer=http%3a%2f%2fwww4.fnac.com%2fStieg-Larsson%2fia103133&AlertingType=1&ContributorId=103133&ContributorName=Stieg+Larsson&Count=0",
-            alertCount: 0
-        };
-        this.registerContributor(args);
-    });
-});
-</script>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
+        </p>
 
+        
 
-    <div id="alertingNewsdiv103133" class="dispeline">
-        <strong class="orangeAlert">Je souhaite être informé des nouveautés</strong>
-         de Stieg Larsson
-        <a class="registerBefore bout-gris-alerte ">
-            <span class="mrg_l_sm pointer inner">Ajouter à  mes alertes</span>
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1279037, 12, 15,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1279037&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1279037" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
         </a>
-        <strong id="errorAlertingNews103133" class="rouge" style="display:none;">
-            <span class="dispeblock txt_c">Un problème technique est survenu, merci de réessayer ultérieurement</span>
-        </strong>
-        <span class="newsAlerted" style="display:none">
-            <img src="http://www4-fr.fnac-static.com/img/Alerting/cloche-alerting.png" alt="cloche" class="mrg_r_sm"/>
-            <strong class="orangeAlert">Vous avez choisi d'être alerté sur les nouveautés</strong>
-            de <span class="contributorName"></span>
-        </span>    
-    </div>
-
+    </span>
         
-    </div>
-  
-    <div class="block block_gris mrg_b_lg">
-        <div class="blk_inside">
-            <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-            <div class="pdg_no blk_content">
-            <ul class="topList">
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
           
-                <li>
-                    <ul class="partList floatl part_l_a_part part_l_a_size posrel">
-                        <li class="txt_c pdg_t_lg pdg_b part_l_a_li" >
-                            <a href="http://www4.fnac.com/Stieg-Larsson/ia103133" title="Stieg Larsson" >
-                                <img src="http://multimedia.fnac.com/multimedia/images_intervenants/Portraits/Petit/3/3/103133.gif" alt="Portrait de Stieg Larsson" />
-                            </a>
-                        </li>
+    </dd>
+    
+   
+</dl>
 
-                        <li class="pdg_h txt_c lienInverse part_l_a_li">
-                            <a class="bout-gris2L txt_decouv" href="http://www4.fnac.com/Stieg-Larsson/ia103133" title="" >
-                                <span class="inner">Découvrir tout son univers</span>
-                            </a>
-                        </li>
-                    </ul>
-                    <img class="floatl part_l_a_arrow" src="http://www4-fr.fnac-static.com/img/decos/arrows/fleche_gris_29x15.png" alt="" />
                 </li>
                 
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+                <li class="slideItem  numerique">
+                    
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson" title="Millénium, T3">
-            <img class="art_part_img" id="img_10" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/1/1/3/9782742770311.gif" alt="Millénium, T3&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Le Codex" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A262126202A211FBB4FC34C484AC21E30C143C2CB4F491EB8431EB24F4B43C51241482EB4BAB8B634C143424F2A24 itemVisuLk">
+            <img class="itemVisu" id="img_15" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/6/2/8/9782841878826.gif" alt="Le Codex&nbsp;-&nbsp;Douglas Preston" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson"  title="Millénium, T3">
-            Millénium, T3
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1929012/Douglas-Preston-Le-Codex#bl=FALIVreco16"  title="Le Codex">
+            Le Codex
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Douglas Preston">
+        Douglas Preston
         
     </dd>
-    
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
-
-    </dd>
-    
-   
-</dl>
-
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a3764876/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" title="Millénium, T2">
-            <img class="art_part_img" id="img_11" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/7/8/9782742797875.gif" alt="Millénium, T2&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a3764876/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson"  title="Millénium, T2">
-            Millénium, T2
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
+    <dd class="itemStars">
+        <!-- note -->
         
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars35.png" alt="Note moyenne des internautes :3,5/5"/>
+
         
-    </dd>
-    
-    <dd class="art_particip">
+    </dd>    
+
+    <dd class="itemPricer">
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
 
-    </dd>
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a3857794/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson" title="Millénium, T1">
-            <img class="art_part_img" id="img_12" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/6/9/9/9782330004996.gif" alt="Millénium, T1&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a3857794/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson"  title="Millénium, T1">
-            Millénium, T1
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
+        <!--New Price 07/12 -->
         
-        
-    </dd>
     
-    <dd class="art_particip">
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">21,25&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-    </dd>
-    
-   
-</dl>
+        </p>
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson#FORMAT=ePub" title="Millénium 3 - La reine dans le palais des courants d'air">
-            <img class="art_part_img" id="img_13" src="http://multimedia.fnac.com/multimedia/FR/Images_Produits/FR/eBook/Grandes110_110/4/5/2/9782742798254.gif" alt="Millénium 3 - La reine dans le palais des courants d'air&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson#FORMAT=ePub"  title="Millénium 3 - La reine dans le palais des courants d'air">
-            Millénium 3 - La reine dans le palais des courants d'air
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Lena Grumbach,...
+    
+    
         
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1929012, 12, 16,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1929012&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1929012" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
    
 </dl>
 
-                    </li>
+                </li>
+                
+                <li class="slideItem  numerique">
                     
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#FORMAT=ePub" title="Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette">
-            <img class="art_part_img" id="img_14" src="http://www4-fr.fnac-static.com/img/fr-FR/catalog/noscan_110x110.gif" alt="Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Stieg Larsson" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Madame Ti mène l&#39;enquête" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A24212526222B1FB843C21E494FC3C443484843C21E4349CAC343CB43C21E4BC31E4DC34C431E3B461EBE4A4B4A4E431E3B461E4E4349431E481E4349CAC343CB431EB4C1434B43C146421EB843494FC14E4A494B1241482EB4BAB8B634C143424F2A2C itemVisuLk">
+            <img class="itemVisu" id="img_16" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/2/0/4/9782213624402.gif" alt="Madame Ti mène l'enquête&nbsp;-&nbsp;Frédéric Lenormand" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#FORMAT=ePub"  title="Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette">
-            Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1628934/Les-nouvelles-enquetes-du-juge-Ti-Madame-Ti-mene-l-enquete-Frederic-Lenormand#bl=FALIVreco17"  title="Madame Ti mène l'enquête">
+            Madame Ti mène...
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Lena Grumbach,...
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Frédéric Lenormand">
+        Frédéric Lenorm...
         
     </dd>
-    
-   
-</dl>
 
-                    </li>
-                    
-            
-            </ul>
-            <div class="clear"></div>
-            </div>
-        </div>
-    </div>
+    <dd class="itemStars">
+        <!-- note -->
+        
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
 
         
+    </dd>    
 
-    <div class="pdg_b_sm img_m">
-        <h3 class="h_1-5_gris dispeline mrg_r"><strong><a href="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</a>&nbsp;:&nbsp;</strong>Autres articles</h3> 
+    <dd class="itemPricer">
         
-<script type="text/javascript">
-AppCore.ready(function()
-{
-    AppCore.modules.ready("alertingNews", function()
-    {
-        args = {
-            callbackId: "ExtendedPropertiesPE$ExtendedBookProperties$ParticipantLinkedArticles1$AlertingNews1",
-            contributorId: "87588",
-            contributorName: "Lena Grumbach",
-            addAlertElement: $("#alertingNewsdiv87588 a.addAlert"),
-            registerBeforeElement: $("#alertingNewsdiv87588 a.registerBefore"),
-            errorAddAlert: $("#errorAlertingNews87588"),
-            successAddAlert: $("#alertingNewsdiv87588 .newsAlerted"),
-            registerBeforeAlertUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Alerting&Referrer=http%3a%2f%2frecherche.fnac.com%2fia87588%2fLena-Grumbach&AlertingType=1&ContributorId=87588&ContributorName=Lena+Grumbach&Count=0",
-            alertCount: 0
-        };
-        this.registerContributor(args);
-    });
-});
-</script>
 
 
+    <!--Fnac Price -->
+    
 
-    <div id="alertingNewsdiv87588" class="dispeline">
-        <strong class="orangeAlert">Je souhaite être informé des nouveautés</strong>
-         de Lena Grumbach
-        <a class="registerBefore bout-gris-alerte ">
-            <span class="mrg_l_sm pointer inner">Ajouter à  mes alertes</span>
-        </a>
-        <strong id="errorAlertingNews87588" class="rouge" style="display:none;">
-            <span class="dispeblock txt_c">Un problème technique est survenu, merci de réessayer ultérieurement</span>
-        </strong>
-        <span class="newsAlerted" style="display:none">
-            <img src="http://www4-fr.fnac-static.com/img/Alerting/cloche-alerting.png" alt="cloche" class="mrg_r_sm"/>
-            <strong class="orangeAlert">Vous avez choisi d'être alerté sur les nouveautés</strong>
-            de <span class="contributorName"></span>
-        </span>    
-    </div>
 
+        <!--New Price 07/12 -->
         
-    </div>
-  
-    <div class="block block_gris mrg_b_lg">
-        <div class="blk_inside">
-            <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-            <div class="pdg_no blk_content">
-            <ul class="topList">
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
           
-                <li>
-                    <ul class="partList floatl part_l_a_part part_l_a_size posrel">
-                        <li class="txt_c pdg_t_lg pdg_b part_l_a_li" >
-                            <a href="http://recherche.fnac.com/ia87588/Lena-Grumbach" title="Lena Grumbach" >
-                                <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Portrait de Lena Grumbach" />
-                            </a>
-                        </li>
+		
 
-                        <li class="pdg_h txt_c lienInverse part_l_a_li">
-                            <a class="bout-gris2L txt_decouv" href="http://recherche.fnac.com/ia87588/Lena-Grumbach" title="" >
-                                <span class="inner">Découvrir tout son univers</span>
-                            </a>
-                        </li>
-                    </ul>
-                    <img class="floatl part_l_a_arrow" src="http://www4-fr.fnac-static.com/img/decos/arrows/fleche_gris_29x15.png" alt="" />
-                </li>
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">16,50&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
                 
-                    <li class="floatl txt_c mrg_part_img container">
-                        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a4127404/Camilla-Lackberg-La-sirene" title="La sirène">
-            <img class="art_part_img" id="img_20" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/2/9/9782330008925.gif" alt="La sirène&nbsp;-&nbsp;Camilla Läckberg" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a4127404/Camilla-Lackberg-La-sirene"  title="La sirène">
-            La sirène
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Camilla Läckber...
         
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1628934, 12, 17,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1628934&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1628934" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
-
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
     </dd>
     
    
 </dl>
 
-                    </li>
+                </li>
+                
+                <li class="slideItem  numerique">
                     
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a3100036/Camilla-Lackberg-L-enfant-allemand" title="L'enfant allemand">
-            <img class="art_part_img" id="img_21" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/6/7/6/9782742794676.gif" alt="L'enfant allemand&nbsp;-&nbsp;Camilla Läckberg" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Ombre et soleil" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A232324202B211FB843C21E4349CAC343CB43C21E4B1EB3C146471E3C4649CB43C11EBF4E41C1431E43CB1EC24F484346481EBA47431EB34BCC4AC14BC24F491241482EB4BAB8B634C143424F2A25 itemVisuLk">
+            <img class="itemVisu" id="img_17" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/5/5/9782709625555.gif" alt="Ombre et soleil&nbsp;-&nbsp;Ã…ke Edwardson" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a3100036/Camilla-Lackberg-L-enfant-allemand"  title="L'enfant allemand">
-            L'enfant allemand
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1556042/Les-enquetes-d-Erik-Winter-Ombre-et-soleil-Ake-Edwardson#bl=FALIVreco18"  title="Ombre et soleil">
+            Ombre et soleil
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Camilla Läckber...
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Ã…ke Edwardson">
+        Ã…ke Edwardson
         
     </dd>
-    
-    <dd class="art_particip">
+
+    <dd class="itemStars">
+        <!-- note -->
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+    </dd>    
 
-    </dd>
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2537584/Camilla-Lackberg-Le-predicateur" title="Le prédicateur">
-            <img class="art_part_img" id="img_22" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/9/9/7/9782742781799.gif" alt="Le prédicateur&nbsp;-&nbsp;Camilla Läckberg" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2537584/Camilla-Lackberg-Le-predicateur"  title="Le prédicateur">
-            Le prédicateur
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Camilla Läckber...
+        <!--New Price 07/12 -->
         
-        
-    </dd>
     
-    <dd class="art_particip">
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22,30&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-    </dd>
-    
-   
-</dl>
+        </p>
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson" title="Millénium, T3">
-            <img class="art_part_img" id="img_23" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/1/1/3/9782742770311.gif" alt="Millénium, T3&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson"  title="Millénium, T3">
-            Millénium, T3
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
+    
+    
         
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1556042, 12, 18,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1556042&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1556042" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
-
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
     </dd>
     
    
 </dl>
 
-                    </li>
+                </li>
+                
+                <li class="slideItem ">
                     
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a2848201/Camilla-Lackberg-L-oiseau-de-mauvais-augure" title="L'oiseau de mauvais augure">
-            <img class="art_part_img" id="img_24" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/4/6/0/9782742791064.gif" alt="L'oiseau de mauvais augure&nbsp;-&nbsp;Camilla Läckberg" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Voyage fatal" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2224262C21241FB74ACB45C61E3143464245C21E344FC64A4C431E444ACB4A481241482EB4BAB8B634C143424F2A26 itemVisuLk">
+            <img class="itemVisu" id="img_18" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/7/7/5/9782221095577.gif" alt="Voyage fatal&nbsp;-&nbsp;Kathy Reichs" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a2848201/Camilla-Lackberg-L-oiseau-de-mauvais-augure"  title="L'oiseau de mauvais augure">
-            L'oiseau de mauvais augure
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1369726/Kathy-Reichs-Voyage-fatal#bl=FALIVreco19"  title="Voyage fatal">
+            Voyage fatal
         </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Kathy Reichs">
+        Kathy Reichs
+        
     </dd>
-    <dd class="art_part_dd art_particip">
-        Camilla Läckber...
+
+    <dd class="itemStars">
+        <!-- note -->
         
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
+
         
-    </dd>
-    
-    <dd class="art_particip">
+    </dd>    
+
+    <dd class="itemPricer">
         
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars3.png" alt="Note moyenne des internautes :3/5"/>
 
-    </dd>
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                    </li>
-                    
-            
-            </ul>
-            <div class="clear"></div>
-            </div>
-        </div>
-    </div>
 
+        <!--New Price 07/12 -->
         
+    
+    
 
-    <div class="pdg_b_sm img_m">
-        <h3 class="h_1-5_gris dispeline mrg_r"><strong><a href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</a>&nbsp;:&nbsp;</strong>Autres articles</h3> 
-        
-<script type="text/javascript">
-AppCore.ready(function()
-{
-    AppCore.modules.ready("alertingNews", function()
-    {
-        args = {
-            callbackId: "ExtendedPropertiesPE$ExtendedBookProperties$ParticipantLinkedArticles1$AlertingNews1",
-            contributorId: "87589",
-            contributorName: "Marc de Gouvenain",
-            addAlertElement: $("#alertingNewsdiv87589 a.addAlert"),
-            registerBeforeElement: $("#alertingNewsdiv87589 a.registerBefore"),
-            errorAddAlert: $("#errorAlertingNews87589"),
-            successAddAlert: $("#alertingNewsdiv87589 .newsAlerted"),
-            registerBeforeAlertUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?LogonType=Alerting&Referrer=http%3a%2f%2frecherche.fnac.com%2fia87589%2fMarc-de-Gouvenain&AlertingType=1&ContributorId=87589&ContributorName=Marc+de+Gouvenain&Count=0",
-            alertCount: 0
-        };
-        this.registerContributor(args);
-    });
-});
-</script>
-
+    <p class="smallPricerFA">
 
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
 
-    <div id="alertingNewsdiv87589" class="dispeline">
-        <strong class="orangeAlert">Je souhaite être informé des nouveautés</strong>
-         de Marc de Gouvenain
-        <a class="registerBefore bout-gris-alerte ">
-            <span class="mrg_l_sm pointer inner">Ajouter à  mes alertes</span>
-        </a>
-        <strong id="errorAlertingNews87589" class="rouge" style="display:none;">
-            <span class="dispeblock txt_c">Un problème technique est survenu, merci de réessayer ultérieurement</span>
-        </strong>
-        <span class="newsAlerted" style="display:none">
-            <img src="http://www4-fr.fnac-static.com/img/Alerting/cloche-alerting.png" alt="cloche" class="mrg_r_sm"/>
-            <strong class="orangeAlert">Vous avez choisi d'être alerté sur les nouveautés</strong>
-            de <span class="contributorName"></span>
-        </span>    
-    </div>
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">22&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
         
-    </div>
-  
-    <div class="block block_gris mrg_b_lg">
-        <div class="blk_inside">
-            <b class="tl"></b><b class="tr"></b><b class="bl"></b><b class="br"></b>
-            <div class="pdg_no blk_content">
-            <ul class="topList">
-          
-                <li>
-                    <ul class="partList floatl part_l_a_part part_l_a_size posrel">
-                        <li class="txt_c pdg_t_lg pdg_b part_l_a_li" >
-                            <a href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain" title="Marc de Gouvenain" >
-                                <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Portrait de Marc de Gouvenain" />
-                            </a>
-                        </li>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-                        <li class="pdg_h txt_c lienInverse part_l_a_li">
-                            <a class="bout-gris2L txt_decouv" href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain" title="" >
-                                <span class="inner">Découvrir tout son univers</span>
-                            </a>
-                        </li>
-                    </ul>
-                    <img class="floatl part_l_a_arrow" src="http://www4-fr.fnac-static.com/img/decos/arrows/fleche_gris_29x15.png" alt="" />
-                </li>
-                
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+        </p>
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a3764876/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" title="Millénium, T2">
-            <img class="art_part_img" id="img_30" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/5/7/8/9782742797875.gif" alt="Millénium, T2&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a3764876/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson"  title="Millénium, T2">
-            Millénium, T2
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
         
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1369726, 12, 19,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1369726&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1369726" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
-    <dd class="art_particip">
-        
-    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
-
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
     </dd>
     
    
 </dl>
 
-                    </li>
+                </li>
+                
+                <li class="slideItem ">
                     
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+<dl class="clearfix">
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a3857794/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson" title="Millénium, T1">
-            <img class="art_part_img" id="img_31" src="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/6/9/9/9782330004996.gif" alt="Millénium, T1&nbsp;-&nbsp;Stieg Larsson" />
-        </a>
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Chromosome 6" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2A2125202C251F314F4146491EB24F4F471EB245C14F4E4FC24F4E431E241241482EB4BAB8B634C143424F2120 itemVisuLk">
+            <img class="itemVisu" id="img_19" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/3/9/0/9782226116093.gif" alt="Chromosome 6&nbsp;-&nbsp;Robin Cook" />
+        </span>
+        
     </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a3857794/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson"  title="Millénium, T1">
-            Millénium, T1
+    
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1128078/Robin-Cook-Chromosome-6#bl=FALIVreco20"  title="Chromosome 6">
+            Chromosome 6
         </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Stieg Larsson
-        
+    </dd> 
+
+    <dd class="itemSstl" title="Robin Cook">
+        Robin Cook
         
     </dd>
-    
-    <dd class="art_particip">
+
+    <dd class="itemStars">
+        <!-- note -->
         
     <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
 
-    </dd>
+        
+    </dd>    
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
     
-   
-</dl>
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson#FORMAT=ePub" title="Millénium 3 - La reine dans le palais des courants d'air">
-            <img class="art_part_img" id="img_32" src="http://multimedia.fnac.com/multimedia/FR/Images_Produits/FR/eBook/Grandes110_110/4/5/2/9782742798254.gif" alt="Millénium 3 - La reine dans le palais des courants d'air&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1993300/Millenium-T3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson#FORMAT=ePub"  title="Millénium 3 - La reine dans le palais des courants d'air">
-            Millénium 3 - La reine dans le palais des courants d'air
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Lena Grumbach,...
-        
+        <!--New Price 07/12 -->
         
-    </dd>
     
-   
-</dl>
+    
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">21,50&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#FORMAT=ePub" title="Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette">
-            <img class="art_part_img" id="img_33" src="http://www4-fr.fnac-static.com/img/fr-FR/catalog/noscan_110x110.gif" alt="Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson#FORMAT=ePub"  title="Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette">
-            Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Lena Grumbach,...
-        
         
-    </dd>
-    
-   
-</dl>
+        <!-- FIN affichage des prix standard (sans remise) -->
 
-                    </li>
-                    
-                    <li class="floatl txt_c mrg_part_img container">
-                        
+        </p>
 
-<dl>
-    <dt class="imgSld art_part_dt">     
-        <a class="" href="http://livre.fnac.com/a1823563/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson#FORMAT=ePub" title="Millénium 1 - Les hommes qui n'aimaient pas les femmes">
-            <img class="art_part_img" id="img_34" src="http://multimedia.fnac.com/multimedia/FR/Images_Produits/FR/eBook/Grandes110_110/0/3/2/9782742798230.gif" alt="Millénium 1 - Les hommes qui n'aimaient pas les femmes&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Stieg Larsson" />
-        </a>
-    </dt>
-    <dd id="lienInverse" class="lienInverse">
-        <a class="" id="articleLink"  href="http://livre.fnac.com/a1823563/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson#FORMAT=ePub"  title="Millénium 1 - Les hommes qui n'aimaient pas les femmes">
-            Millénium 1 - Les hommes qui n'aimaient pas les femmes
-        </a>
-    </dd>
-    <dd class="art_part_dd art_particip">
-        Lena Grumbach,...
         
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1128078, 12, 20,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1128078&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1128078" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
         
     </dd>
     
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+    
    
 </dl>
 
-                    </li>
-                    
-            
-            </ul>
-            <div class="clear"></div>
-            </div>
-        </div>
+                </li>
+                
+        </ul>
+        <span class="next arrow arrowRight"><i>suivant</i></span>
     </div>
+</div>
+<script type="text/javascript">
+    $(function () {
 
-          
+        if ($("#triNumeriqueDiv").size() > 0) {
+            triNumeriqueArticle($("#checkboxTriNumerique").attr("checked"));
+       
+            $("#checkboxTriNumerique").click(function () {
+                triNumeriqueArticle($(this).attr("checked"));
+            });
+        }
 
-                    <div>
-                                          
+        // Slider sous le visuel produit
+        $("#jsTopSellings").articleSlide({
+            nbShow: 6,
+            nbMove: 6,
+            speed: 450
+        });
 
-<div class="floatl width180 mrg_r_lg">
+    });
+</script>
+            </div>
+        </div>
     
-</div>
-                        
-                        <div class="seealso">
-                            
- 
+    
+
+
+
+
+
+
+
+
+
+
+
 
 <script type="text/javascript">
-//-- Fix pour les visuels nobody ! --//
-    $(document).ready(function(){
-        $(".part ul li dl dt a img").each(function ()
-        {
-            var height = $(this).height();
-            var nobody = $(this).attr("src").lastIndexOf("nobody");
-            if (nobody != -1) 
-            {
-                $(this).parent("a").css({position:"absolute",left: 0,bottom: 0});
-            }
-            if(nobody == -1 && height < 110) 
-            {
-                $(this).parent("a").css({position:"absolute",left: 0,top: 0});
-            }
-        });
+    $(document).ready(function () {
+        var viewState = $("#editorialContent .resumeMarket").height();
+        // si la hauteur du bloc .resume est  nulle, on peut afficher le mot de l'editeur à 100% :
+        if (viewState == null) {
+            $(".avisEditeur").addClass("alone");
+        }
     });
 </script>
-<div id="relatedParticipants" class="block block_gris mrg_b_lg">
-<h3 class="h_1-5_gris pdg_b_sm"><strong><a href="http://www4.fnac.com/Stieg-Larsson/ia103133" title="Stieg Larsson" >Stieg Larsson</a></strong>&nbsp;:&nbsp;Artistes liés</h3> 
-    <div class="blk_inside">
-	<b class="tl"></b>
-	<b class="tr"></b>
-	<b class="bl"></b>
-	<b class="br"></b>
-	<div class="blk_content txt_c">
-	    <div class="part">
-            <ul>
-                
-                    <li>
-                        
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia620381/Andrew-McGahan">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Andrew McGahan" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia620381/Andrew-McGahan" title="Andrew McGahan">
-            Andrew McGahan
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
-                
-                    <li>
-                        
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia743171/Julia-Latynina">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Julia Latynina" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia743171/Julia-Latynina" title="Julia Latynina">
-            Julia Latynina
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
-                
-                    <li>
-                        
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia637979/Cornelia-Read">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Cornélia Read" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia637979/Cornelia-Read" title="Cornélia Read">
-            Cornélia Read
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
-                
-                    <li>
-                        
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia79900/Marie-Francoise-Colombani">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Marie-Françoise Colombani" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia79900/Marie-Francoise-Colombani" title="Marie-Françoise Colombani">
-            Marie-Françoise Colo...
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
-                
-                    <li>
-                        
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia656589/Andrea-Maria-Schenkel">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Andrea Maria Schenkel" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia656589/Andrea-Maria-Schenkel" title="Andrea Maria Schenkel">
-            Andrea Maria Schenke...
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
+<div id="editorialContent" class="editorialContent">
+
+    
+
+    
+    <div id="ficheResume">
+
+        <!-- <Affichage AVIS DE LA FNAC> *********************************** -->
+        
+        
+        <div class="avisfnac blkSpace clearfix">
+            <h2 class="ssTtl">
+                <strong>Avis de la Fnac&nbsp;:</strong>
+                Millénium, Tome 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette
                 
-                    <li>
-                        
+            </h2>
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia912029/Eva-Gabrielsson">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Eva Gabrielsson" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia912029/Eva-Gabrielsson" title="Eva Gabrielsson">
-            Eva Gabrielsson
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
+            <a href="#" class="BlkToTop">Haut de page<span class="arrow-up"><!-- --></span></a>
+            <div class="blkBrd blkBrdPdg">
+                Lisbeth et Mickael sont de retour dans un roman aussi trépidant que le premier. Nos deux anti-héros sont à nouveau plongés dans une aventure passionnante. Un livre époustoufflant, plein d'humour et d'effroi. Vivement le tome 3. Anais, libraire à la Fnac Clermont Q
+            </div>
+
+        </div>
+        
+        <!-- <FIN Affichage Avis de la Fnac> ******************************* -->
+
+
+
+        
+        
+        
+
+        <!-- <Affichage RESUME COURT MARKETING >  ************************* -->
+        
+        
+        <!-- AGAR | Connect 30841 : Dans le cas d'un livre numérique on doit que le resume marketing -->
+        
+        <div class="spaceForTitle">
+            <!-- -->
+        </div>
+        
+        <div class="editoContent blkBrd blkSpace clearfix">
+            
+            <div class="resumeMarket alone ">
+                <h2 class="ssTtl">
+                    <strong>En résumé :</strong>
+
+                    Actes Noirs - Millénium 2 - La fille...
+                    
+                </h2>
+                <div class="resMarkContent">
+                    Une enquête sur un réseau de prostitution dévoile des secrets d'espionnage et un lourd passé familial.
+                </div>
+            </div>
+            
+            <!-- <FIN Affichage résumé court market >  ************************* -->
+
+
+            <!-- <Affichage MOT DE L'EDITEUR> ********************************* -->
+            
+            
+            <!-- AGAR | Connect 30841 : Dans le cas d'un livre phusique on doit que le mot de l'éditeur -->
+            
+                <!-- <FIN Affichage mot de l'éditeur> ***************************** -->
+
+
+
+                <!-- <Affichage AVIS DU PARTENAIRE> ******************************** -->
                 
-                    <li>
+                
+                    <!-- <FIN Affichage Avis du partenaire> *************************** -->
+                    
+                            </div>
+                            
+
+                            
+                        </div>
                         
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia796350/Ben-Pastor">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Ben Pastor" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia796350/Ben-Pastor" title="Ben Pastor">
-            Ben Pastor
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
-                
-                    <li>
                         
+<div id="PEArticleRC_StaffReview">
+    <div id="CoupCoeur">
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia813508/Simon-Lewis">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Simon Lewis" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia813508/Simon-Lewis" title="Simon Lewis">
-            Simon Lewis
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
+        
+	        <div class="coupDeCoeur blkSpace clearfix">
+	            <h2 class="ssTtl">
+	                
+                    Coups de c&oelig;ur  des Libraires
+                    
+	                
+                    
+                    	        
+                </h2>
+                <a class="BlkToTop" href="#">Haut de page<span class="arrow-up"><!-- --></span></a>
+
+                <div class="blkBrd blkBrdPdg">
+                    <!-- NLA 22091223 n'afficher que les 3 premiers avis -->
+                    
+                    <!-- /NLA 22091223 n'afficher que les 3 premiers avis -->
+                    
+                    <ul class="sanspuce pdg_v">
+                        
+		                    <li class="widthCC3 floatl mrg_b  pdg_r">
+				                <span class="topBl">
+                                    <span class="img i_ccoeur mrg_b_lg mrg_r floatl"></span>
+                                    <h3 class="noir font1-2 dispeblock pdg_b_sm">Une lutte sans merci</h3>
+		                            
+			                            <strong class="orange">ELIZABETH de FNAC Noisy-le-Grand</strong>
+			                        
+                                </span>
+				                Soupçonnée du meurtre d'un couple qui enquêtait sur le commerce du sexe, Lisbeth Salander se retrouve traquée par la police. Pour sauver sa peau, elle se lance dans une croisade à 100 à l'heure contre les hommes qui n'aiment pas les femmes…
+Michaël Blomkvist sera un allié de choix et de choc...
+
+			                    <!-- Popin Lire la suite 
+			                    <div class="lireLaSuite pdg">
+                
+				                        
                 
-                    <li>
+			                        </div>-->
+			     
+			                    
+                            </li>
                         
+		                    <li class="widthCC3 floatl mrg_b  brd_l_gris pdg_h_lg">
+				                <span class="topBl">
+                                    <span class="img i_ccoeur mrg_b_lg mrg_r floatl"></span>
+                                    <h3 class="noir font1-2 dispeblock pdg_b_sm">Stieg Larsson</h3>
+		                            
+			                            <strong class="orange">EMILIE de FNAC Croix-Blanche</strong>
+			                        
+                                </span>
+				                Les retrouvailles ne vont pas être de tout repos entre Mikael Blomkvist et Lisbeth Salander dans ce deuxième tome de la série culte du polar suèdois.
+Encore plus palpitant et trépidant que le précédent, à dévorer sans attendre!
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia743170/Francois-Weerts">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="François Weerts" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia743170/Francois-Weerts" title="François Weerts">
-            François Weerts
-        </a>
-    </dd>
-</dl>
- 
-                    </li>
+			                    <!-- Popin Lire la suite 
+			                    <div class="lireLaSuite pdg">
+                
+				                        
+                
+			                        </div>-->
+			     
+			                    
+                            </li>
+                        
+		                    <li class="widthCC3 floatl mrg_b  brd_l_gris pdg_h_lg">
+				                <span class="topBl">
+                                    <span class="img i_ccoeur mrg_b_lg mrg_r floatl"></span>
+                                    <h3 class="noir font1-2 dispeblock pdg_b_sm"></h3>
+		                            
+			                            <strong class="orange">L'equipe livre de FNAC NANTES</strong>
+			                        
+                                </span>
+				                Il avait mis la barre très haut avec Millenium 1, Il maintient l'excellence de son récit en nous racontant comment Lisbeth, écorchée et géniale, asociale et attachante veut, même au prix du sang, apurer les comptes de son enfance
+
+			                    <!-- Popin Lire la suite 
+			                    <div class="lireLaSuite pdg">
                 
-                    <li>
+				                        
+                
+			                        </div>-->
+			     
+			                    
+                            </li>
                         
+                    </ul>
+                    <div class="clearb"></div>
+                </div>
 
-<dl>
-    <dt>
-        <a href="http://recherche.fnac.com/ia615373/Christian-Jungersen">
-            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Christian Jungersen" />
-        </a>
-    </dt>
-    <dd class="lienInverse">
-        <a class="noir" href="http://recherche.fnac.com/ia615373/Christian-Jungersen" title="Christian Jungersen">
-            Christian Jungersen
+                
+    </div>
+    </div>
+
+
+
+
+    
+    <div id="communautaire" class="blkSpace">
+        <h2 class="ssTtl">
+            <strong>
+                Les Libraires Fnac parlent de 
+                
+            </strong> La fille qui rêvait d'un bidon d'essence et d'une allumette
+        </h2>
+        <a href="#" class="BlkToTop">
+            Haut de page
+            <span class="arrow-up"><!-- --></span>
         </a>
-    </dd>
-</dl>
- 
-                    </li>
+        <div class="blkBrd">
+            
+    <div class="spaceVisual">
+        <span id="FnacLink3" target="_blank" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FB846C4C1431FB94FC21E424F49C2434648C21EB846C4C143C21F4248212C2A1FCC1E2B rouge">
+                        <img src="http://static.fnac-static.com/multimedia/Images/FD/Comete/42120/CCP_IMG_ORIGINAL/490624.gif" alt="Livre" />
+                    </span>
+                    
                 
-            </ul>
-            <div class="clear"></div>
-        </div>
-      </div>
+    </div>
+
+                
+
+<div class="posrel clearfix">
+     
+            <div class="blockmaincategorie deuxtiers mrg_t_sm">
+                
+                 
+    <div class="date">
+        <span class="lienInverse prenom">
+            <img src="http://static.fnac-static.com/multimedia/Images/FD/Comete/48940/CCP_IMG_34x39/568996.gif" alt="Pieric" class="avatar" />
+            <span id="FnacLink1" target="_blank" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FB8431E41484F4C1E4B431E304643C146421F424221262C1FCC1E2B ">Pieric</span>
+            
+        </span>
+    </div>
+
+
+<div class="article">
+    <a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4" target="_blank">
+        <img id="ProductImage" src="http://static.fnac-static.com/multimedia/Images/FD/Comete/25862/CCP_IMG_145xAUTO/299285.jpg" alt="Mill&#233;nium, les hommes qui n’aimaient pas les femmes : l’omelette su&#233;doise" class="floatl pict" />
+    </a>
+
+    <div class="contenu">
+        
+
+
+
+<h3 class="Category_3 img_-25">
+    
+    <span class="CssClassByDefault">Ca va sortir</span>
+</h3>
+<h4 class="lienInverse">
+    <a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4" target="_blank">Mill&#233;nium, les hommes qui n’aimaient pas les femmes : l’omelette su&#233;doise</a>
+</h4>
+
+        
+
+<p>C’est de toute &#233;vidence le personnage de Lisbeth Salander qui a fait plonger t&#234;te baiss&#233;e David Fincher dans ce projet. Et force est de reconna&#238;tre que l’interpr&#233;tation ou plut&#244;t la transformation de Rooney Mara est remarquable d’implication...</p>
+<a href="http://www.fnac.com/Millenium-les-hommes-qui-n-aimaient-pas-les-femmes-l-omelette-suedoise/cp14168/w-4" class="moutarde dispeblock" target="_blank">lire la suite</a>
+
+<div class="notation">
+    <span id="FnacLink1" target="_blank" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1FBE464848434946C34E1E4843C21E454F4E4E43C21ECAC3461E491E4A464E4A464349CB1EC04AC21E4843C21E44434E4E43C21E481E4F4E434843CBCB431EC2C3434B4F46C2431F42C02A2B2A24251FCC1E2B12C1434A42CB464F49C2 ">
+        <span class="reaction">
+            6réactions
+        </span>
+    </span>
+    
+    
+    
+        <span class="vues">9423 vues</span>
+    
+
+<img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="4 sur 5" title="4 sur 5" class="dispeblock" />
+
+</div>
     </div>
 </div>
-	 
 
-                            
-<div id="seeAlso">
-    <h3 class="h_1-5_gris pdg_b_sm"><strong>Voir aussi</strong></h3>
-    <div class="block block_gris">
-      <div class="blk_inside ">
-	    <b class="tl"><!-- --></b>
-	    <b class="tr"><!-- --></b>
-	    <b class="bl"><!-- --></b>
-	    <b class="br"><!-- --></b>
-	    <div class="blk_content pdg"> 
-            <ul class="listArrowOrange">
-                        
-             <li>
-             
-             <a href="http://livre.fnac.com/s28626/Coups-de-coeur-Livre">Coups de coeur Livre</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s28626/Coups-de-coeur-Livre">Coups de coeur Livre</a>
-               
-              &gt;
-              
-             <a href="http://recherche.livre.fnac.com/n38264/Coups-de-coeur-Livre/Coups-de-coeur-Polar">Coups de coeur Polar</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://recherche.livre.fnac.com/n269391/eBooks-au-cinema">eBooks au cinéma</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s228782/Livres-d-occasion">Livres d'occasion</a>
-               
-              &gt;
-              
-             <a href="http://recherche.livre.fnac.com/n228808/Livres-d-occasion/Romans-Policiers-Thrillers-d-occasion">Romans Policiers, Thrillers d'occasion</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://www4.fnac.com/l274386/Meilleures-Ventes-Polar">Meilleures Ventes Polar</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://www4.fnac.com/livre-numerique/s165230/Polar-et-Thriller">Polar et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://www4.fnac.com/livre-numerique/l165554/Coups-de-coeur-Policier/Polar-et-Thriller">Coups de coeur Policier</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://www4.fnac.com/livre-numerique/s165230/Polar-et-Thriller">Polar et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://www4.fnac.com/livre-numerique/l165660/Meilleures-ventes-Policier/Polar-et-Thriller">Meilleures ventes Policier</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://www4.fnac.com/livre-numerique/s165230/Polar-et-Thriller">Polar et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://recherche.livre.fnac.com/n300171/Polar-et-Thriller/Millenium">Millénium</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://www4.fnac.com/livre-numerique/s165230/Polar-et-Thriller">Polar et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://recherche.livre.fnac.com/n165791/Polar-et-Thriller/Polar-entre-5-et-10">Polar entre 5 et 10 €</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s20/Roman-et-Nouvelles">Roman et Nouvelles</a>
-               
-              &gt;
-              
-             <a href="http://livre.fnac.com/s1905/Roman-et-Nouvelles/Roman-etranger">Roman étranger</a>
-               
-              &gt;
-              
-             <a href="http://livre.fnac.com/s83373/Roman-et-Nouvelles/Roman-etranger/Roman-Scandinave">Roman Scandinave</a>
-               
-              &gt;
-              
-             <a href="http://livre.fnac.com/l223178/Polars-polaires/Roman-Scandinave/Roman-etranger/Roman-et-Nouvelles">Polars polaires</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s26/Roman-Policier-et-Thriller">Roman Policier et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://livre.fnac.com/s48823/Roman-Policier-et-Thriller/Les-autres-editeurs-de-Polars">Les autres éditeurs de Polars...</a>
-               
-              &gt;
-              
-             <a href="http://recherche.livre.fnac.com/n48826/Roman-Policier-et-Thriller/Les-autres-editeurs-de-Polars/Actes-Sud">Actes Sud</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s26/Roman-Policier-et-Thriller">Roman Policier et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://livre.fnac.com/l774/Meilleures-ventes-Polar/Roman-Policier-et-Thriller">Meilleures ventes Polar</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s26/Roman-Policier-et-Thriller">Roman Policier et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://livre.fnac.com/l198831/Polars-polaires/Roman-Policier-et-Thriller">Polars polaires</a>
-              
-             </li>
-             
-             <li>
-             
-             <a href="http://livre.fnac.com/s26/Roman-Policier-et-Thriller">Roman Policier et Thriller</a>
-               
-              &gt;
-              
-             <a href="http://recherche.livre.fnac.com/n268811/Roman-Policier-et-Thriller/Toute-la-saga-Millenium">Toute la saga Millénium</a>
-              
-             </li>
-             
-            </ul>
-	    </div>
-      </div>
+
+                     
+            </div>
+        
+
+</div>
+
+            
+        </div>
+    </div>
+
+
+
+
+
+
+
+
+
+  
+
+
+        
+        <script language="JavaScript">
+            function google_ad_request_done(google_ads) {
+                /*
+                * This function is required and is used to display
+                * the ads that are returned from the JavaScript
+                * request. You should modify the document.write
+                * commands so that the HTML they write out fits
+                * with your desired ad layout.
+                */
+                var s;
+                /*
+                * Verify that there are actually ads to display.
+                */
+                if (google_ads.length == 0) return;
+                /*
+                * If an image or Flash ad is returned, display that ad.
+                * If a rich media ad is returned, display that as "as is."
+                * Otherwise, build a string containing all of the ads and
+                * then use a document.write() command to print that string.
+                */
+                s = '<a class="ad_attribution" target="_blank" href="' + google_info.feedback_url + '">Annonces Google</a><br>';
+
+                for (var i = 0; i < google_ads.length; i++) {
+                    if (google_ads[i].type == "image") {
+                        s += '<a href="' + google_ads[i].url + '" target="_top" title="go to ' + google_ads[i].visible_url + '">';
+                        s += '<img border="0" src="' + google_ads[i].image_url + '"width="' + google_ads[i].image_width + '"height="' + google_ads[i].image_height + '">';
+                        s += '</a>';
+                    }
+                    else if (google_ads[i].type == "flash") {
+                        s += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"';
+                        s += ' WIDTH="' + google_ad.image_width + '" HEIGHT="' + google_ad.image_height + '">';
+                        s += '<PARAM NAME="movie" VALUE="' + google_ad.image_url + '">' + '<PARAM NAME="quality" VALUE="high">' + '<PARAM NAME="AllowScriptAccess" VALUE="never">';
+                        s += '<EMBED src="' + google_ad.image_url + '" WIDTH="' + google_ad.image_width + '" HEIGHT="' + google_ad.image_height + '"';
+                        s += ' TYPE="application/x-shockwave-flash AllowScriptAccess="never" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT>';
+                    }
+                    else if (google_ads[i].type == "html") {
+                        s += google_ads[i].snippet;
+                    }
+                    else if (google_ads[i].type == "text") {
+                        // Adjust text sizes to occupy the majority of ad space.
+                        if (google_ads.length == 1) {
+                            ad_title_class = 'ad_title_large';
+                            ad_text_class = 'ad_text_large';
+                            ad_url_class = 'ad_url_large';
+                        }
+                        else {
+                            ad_title_class = 'ad_title';
+                            ad_text_class = 'ad_text';
+                            ad_url_class = 'ad_url';
+                        }
+
+                        s += '<div class="blkSense"><a class="tSense ' + ad_title_class + '" href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].line1 + '</a>';
+                        s += '<br><span class="tSense ' + ad_text_class + '">';
+                        s += google_ads[i].line2 + '<br>' + google_ads[i].line3 + '</span><br>';
+                        s += '<a class="lSense ' + ad_url_class + '" href="' + google_ads[i].url + '" target="_blank">' + google_ads[i].visible_url + '</a></div>';
+                    }
+                }
+
+                document.write(s);
+                return;
+            }
+
+            /*
+            * This section is responsible for setting the parameters of the ad call
+            * Customize this section to your needs with input from your account
+            manager
+            */
+            // The following parameters should be modified appropriately
+            google_ad_client = 'ca-pub-2531201876452453'; // substitute your client_id
+            //google_ad_channel = 'sports'; // substitute your channel
+            google_ad_output = 'js'; // leave this value as js
+            google_max_num_ads = '3'; // specify the number of maximum ads
+            //google_ad_type = 'text,image,flash,html'; // type of ads to display
+            google_ad_type = 'text'; // type of ads to display
+            google_safe = 'high'; // specify the ad safety
+            // The following parameter is required if you are displaying image, Flash or rich media ads.
+            //google_image_size = '728x90'; // the size of the ad block
+            // The following parameters are options you can specify as necessary
+            // google_encoding = 'utf8'; // specify the output language of the ads
+            google_language = 'fr'; // override the default page language
+
+            // The following parameter should be used only during testing
+            google_adtest = 'off'; // remove this line on launch day
+        </script>
+        <!--
+        /*
+        * The JavaScript returned from the following page uses
+        * the parameter values assigned above to populate an array
+        * of ad objects. Once that array has been populated,
+        * the JavaScript will call the google_ad_request_done
+        * function to display the ads.
+        */
+        -->
+        <div id="adSense" class="clearfix">
+            <script language="JavaScript"
+            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+            </script>
+        </div>
+
+
+    
+
+
+
+
+<div id="ficheDt" class="blkSpace clearfix">
+
+
+    <h2 class="ssTtl"><strong>Fiche détaillée</strong> : Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette</h2>
+    <a href="#" class="BlkToTop">Haut de page<span class="arrow-up"><!-- --></span></a>
+    <div class="blkBrd blkBrdPdg clearfix">
+        
+        <div class="xtraProperties">
+            
+                <h3>Fiche détaillée</h3>
+            
+    <table summary="données détaillée de l'article" class="">
+    
+                    <tr>
+                        <th scope="row"><span>Auteur</span></th>
+                        <td>
+                            <span>
+                        <a id="FnacLink1" href="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</a>
+                        </span></td>
+                    
+                        </tr>
+                    
+                    <tr>
+                        <th scope="row"><span>Traduction</span></th>
+                        <td>
+                            <span>
+                        <a id="FnacLink1" href="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</a>, <a id="FnacLink2" href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</a>
+                        </span></td>
+                    
+                        </tr>
+                    
+                    <tr>
+                        <th scope="row"><span>Editeur</span></th>
+                        <td>
+                            <span>
+                        <a id="FnacLink1" href="http://recherche.fnac.com/e35174/Actes-sud">Actes sud</a>
+                        </span></td>
+                    
+                        </tr>
+                    
+                    <tr>
+                        <th scope="row"><span>Date de parution</span></th>
+                        <td>
+                            <span>
+                        23/10/2006
+                                </span></td>
+                    
+                        </tr>
+                    
+                    <tr>
+                        <th scope="row"><span>Collection</span></th>
+                        <td>
+                            <span>
+                        <a id="FnacLink1" href="http://recherche.fnac.com/c104654/Actes-Noirs">Actes Noirs</a>
+                        </span></td>
+                    
+                        </tr>
+                    
+                    <tr>
+                        <th scope="row"><span>Format</span></th>
+                        <td>
+                            <span>
+                        16cm x 23cm
+                        </span></td>
+                    
+                        </tr>
+                    
+                    <tr>
+                        <th scope="row"><span>ISBN</span></th>
+                        <td>
+                            <span>
+                        2742765018</tr>
+                                    <tr><th scope="row"><span>EAN</span></th>
+                                    <td><span>978-2742765010</span></td></tr>
+                                </span></td>
+                    
+                    <tr>
+                        <th scope="row"><span>Illustration</span></th>
+                        <td>
+                            <span>
+                        Pas d'illustrations 
+                        </span></td>
+                    
+                        </tr>
+                    
+        <tr>
+            <td><meta itemprop="productID" content="978-2742765010"/></td>
+        </tr>
+    
+    </table>
+
+
+        </div>
+        <div class="drtNumerique">
+            
+                <h3>Caractéristiques numériques</h3>
+            
+                    <table class="width100">
+                
+                    <tr>
+                        <th><span>Format</span></th><td><span class="bleu">ePub</span></td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Traduction</span></th><td><a id="FnacLink1" href="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</a>, <a id="FnacLink2" href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</a></td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Editeur</span></th><td><a id="FnacLink1" href="http://recherche.fnac.com/e67090/Editions-actes-sud">Éditions actes sud</a></td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Date de parution</span></th><td>07/11/2011</td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Collection</span></th><td><a id="FnacLink1" href="http://recherche.fnac.com/c325419/Actes-Noirs">Actes Noirs</a></td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>EAN</span></th><td>9782742798247</td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Type de DRM</span></th><td>Adobe DRM </td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Droit d'impression</span></th><td>Non autorisé </td>
+                    </tr> 
+                
+                    <tr>
+                        <th><span>Droit de Copier/Coller</span></th><td>Non autorisé </td>
+                    </tr> 
+                
+                    </table>
+                
+
+            <div class="bloc_bulle">
+                <p class="bleuInfo lienInverse">
+                    Quel format pour mon livre numérique ?&nbsp;&nbsp;&nbsp;
+                    <a href="#" class="explicationFormatsEbook2 FA openPopinWhichDigitalFormat">
+                        En savoir plus
+                    </a>
+                </p>
+            </div>
+        </div>
+
+        <div class="clearb"></div>
+    </div>
+
+
+    
+<div id="popinWhichDigitalFormat" class="hide">
+    
+
+<a href="#" class="close"><img src="http://www4-fr.fnac-static.com/img/boutons/btn_close.gif" alt="Fermer" class="close"></a>
+<h3 class="bleuDemat mrg_b">Quel format pour mon livre numérique? En savoir plus</h3>
+<dl class="mrg_b">
+
+    <dt class="normal mrg_b_sm">Pour télécharger vos livres numériques (couramment appelés eBooks) plusieurs formats peuvent exister :</dt>
+
+    <dd class="mrg_b_sm">Le <strong>ePub</strong> est un format ouvert qui a été conçu pour optimiser la lecture sur les liseuses numériques ainsi que sur les tablettes et smartphones via les applications de lecture. Les formats ePub sont aussi consultables sur votre ordinateur grâce au logiciel Kobo by Fnac, à télécharger gratuitement après votre achat (www.fnac.com/kobobyfnac). </dd>
+
+    <dd class="mrg_b_sm">Les <strong>fichiers au format PDF</strong> peuvent être lus sur les liseuses numériques, cependant nous vous conseillons une consultation sur votre ordinateur à l’aide du logiciel Adobe Digital Editions, à télécharger gratuitement après votre achat.</dd>
+
+</dl>
+
+
+<p> 
+    <strong class="rouge dispeblock">Attention:</strong>
+    <strong>Les BD au format AVE ou DAE</strong> ne sont pas lisibles sur les applications Kobo by Fnac ou sur la tablette Kobo Arc. Ces formats sont lisibles <strong>uniquement en streaming</strong> sur votre ordinateur.
+</p>
+
+<p> 
+    <strong class="rouge dispeblock">Attention:</strong>
+    <strong>Les livres et BD au format ePub illustré</strong> sont disponibles sur le Kobo Arc et via les applications Kobo by Fnac pour Android et IOS. La lecture de ce format se fait donc uniquement sur smartphones et tablettes (compatibles Android et IOS).
+</p>
+</div>
+<script type="text/javascript">
+    $(function () {
+        $(".openPopinWhichDigitalFormat").popinManager({
+            targetContent: "#popinWhichDigitalFormat"
+        });
+    });
+</script>
+
+</div>
+
+
+
+
+        
+
+
+<div class="blkSpace">
+
+    <h2 class="ssTtl">
+        <strong>
+            Autour de
+            </strong>
+            &nbsp;Stieg Larsson
+     </h2>
+     <a href="#" class="BlkToTop">
+                Haut de page
+                <span class="arrow-up"><!-- --></span>
+     </a>
+    <div class="universParticipant blkBrd blkSpace blkBrdPdg clearfix">
+  
+        <div class="pptIDcard">
+            <i class="arrow-right"><!-- --></i>
+            <a href="http://www4.fnac.com/Stieg-Larsson/ia103133" title="Stieg Larsson" >
+                <img src="http://static.fnac-static.com/multimedia/images_intervenants/Portraits/Petit/3/3/103133.gif" alt="Portrait de Stieg Larsson" />
+            </a>
+
+            <h3><a href="http://www4.fnac.com/Stieg-Larsson/ia103133">Stieg Larsson</a></h3>
+
+            <p>
+                <span id="FnacLink1" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F32CB46434C1EB84AC1C2C24F491F464A2A20222A2222 btn b_big_w">Découvrir tout <br /><strong>son univers</strong></span>
+                
+            </p>
+
+            
+<script type="text/javascript">
+AppCore.ready(function()
+{
+    AppCore.modules.ready("alertingNews", function()
+    {
+        args = {
+            callbackId: "PEArticleRC$LinkedArticles1$ExtendedBookProperties$ParticipantLinkedArticles1$AlertingNews1",
+            contributorId: "103133",
+            contributorName: "Stieg Larsson",
+            addAlertElement: $("#alertingNewsdiv103133 a.addAlert"),
+            registerBeforeElement: $("#alertingNewsdiv103133 a.registerBefore"),
+            errorAddAlert: $("#errorAlertingNews103133"),
+            successAddAlert: $("#alertingNewsdiv103133 .newsAlerted"),
+            alreadyExistsAlert: $("#alertingNewsdiv103133 .alreadyExistsAlert"),
+            registerBeforeAlertUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?AlertingType=1&ContributorId=103133&ContributorName=Stieg+Larsson&LogonType=Alerting&Referrer=http%3a%2f%2fwww4.fnac.com%2fStieg-Larsson%2fia103133"
+        };
+        this.registerContributor(args);
+    });
+});
+</script>
+
+
+
+    <p id="alertingNewsdiv103133" class="pptAlerting">
+        
+        Je souhaite être informé de ses nouveautés
+
+        <span id="FnacLink1" class="fnac 4D4AC44AC242C146C0CB2DC143CBC3C14910444A48C24327 registerBefore btn b_std_w">
+            <span class="img i_alert mrg_r_sm"><!-- --></span>Ajout à mes alertes</span>
+        
+
+        <strong id="errorAlertingNews103133" class="rouge" style="display:none;">
+           Un problème technique est survenu, merci de réessayer ultérieurement
+        </strong>
+
+        <span class="newsAlerted" style="display:none">
+            
+            Vous avez choisi d'être alerté de ses nouveautés
+        </span>    
+        <span class="alreadyExistsAlert" style="display:none">
+            
+            Vous être déjà abonné à l'alerte de ses nouveautés
+        </span>    
+    </p>
+
+            
+
+        </div>
+
+
+        <div class="pptRelated">
+
+            <div id="PEArticleRC_LinkedArticles1_ExtendedBookProperties_ParticipantLinkedArticles1_ParticipantSpectacle"></div>
+
+            <div class="pptRelArticles">
+                <h3>Autres oeuvres</h3>
+                
+                    <ul class="pptRelArtList clearfix">
+                    
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T1" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2225232C2C262B1FBE464848434946C34E1E3B4F4E431E2A1EB843C21E454F4E4E43C21ECAC3461E491E4A464E4A464349CB1EC04AC21E4843C21E44434E4E43C21E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/FR/Images_Produits/FR/fnac.com/Grandes110_110/6/9/9/9782330004996.jpg" alt="Millénium, T1&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a3857794/Millenium-Tome-1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson"  title="Millénium, T1">
+            Millénium, T1
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">10&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(3857794, 14, 1,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=3857794&sctype=standard&from=111" rel="nofollow" FnacIdProduct="3857794" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T2" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A222C242B252C241FBE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/9b/ee/34/3468955/1535-1.jpg" alt="Millénium, T2&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a3764876/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson"  title="Millénium, T2">
+            Millénium, T2
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">10&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(3764876, 14, 2,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=3764876&sctype=standard&from=111" rel="nofollow" FnacIdProduct="3764876" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T3" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2320212B242B2C1FBE464848434946C34E1E3B4F4E431E221EB84A1EC1434649431E4B4A49C21E48431EC04A484A46C21E4B43C21E424FC3C14A49CBC21E4B1E4A46C11E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/5d/32/42/4338269/1535-1.jpg" alt="Millénium, T3&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a5024647/Millenium-Tome-3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson"  title="Millénium, T3">
+            Millénium, T3
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">10&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(5024647, 14, 3,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=5024647&sctype=standard&from=111" rel="nofollow" FnacIdProduct="5024647" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, Tome 3" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2626222220201FBE464848434946C34E1E3B4F4E431E221EB84A1EC1434649431E4B4A49C21E48431EC04A484A46C21E4B43C21E424FC3C14A49CBC21E4B1E4A46C11E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/1/1/3/9782742770311.gif" alt="Millénium, Tome 3&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1993300/Millenium-Tome-3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson"  title="Millénium, Tome 3">
+            Millénium, Tome...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">23,40&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(1993300, 14, 4,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=1993300&sctype=standard&from=111" rel="nofollow" FnacIdProduct="1993300" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T5" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2C2C26222123261FBE464848434946C34E1E3B4F4E431E231EBE464848434946C34E1EB54F4EC2 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/4f/f1/60/6353231/1535-1.jpg" alt="Millénium, T5&nbsp;-&nbsp;Homs, Stieg Larsson, Sylvain Runberg" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a7793259/Millenium-Tome-5-Millenium-Homs"  title="Millénium, T5">
+            Millénium, T5
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Homs, Stieg Larsson, Sylvain Runberg">
+        Homs, Stieg Lar...
+        
+    </dd>
+    
+        <dd class="itemStars">
+           
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">14,50&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(7793259, 14, 5,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=7793259&sctype=standard&from=111" rel="nofollow" FnacIdProduct="7793259" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                    </ul>
+            </div>
+
+
+            
+
+<div class="relatedParticipants">
+    <h3>Artistes du même univers</h3> 
+    <div>
+        <ul class="relPptList clearfix">
+            
+                <li class="relPptItem">
+                    
+
+<dl>
+    <dt>
+        <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A2C2224232A211F3C464848464A4E1EB6C1CC4649 ">
+            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="William Irwin" />
+        </span>
+        
+    </dt>
+    <dd class="lienInverse">
+        <a class="noir" href="http://recherche.fnac.com/ia736512/William-Irwin" title="William Irwin">
+            William Irwin
+        </a>
+    </dd>
+</dl>
+ 
+                </li>
+            
+                <li class="relPptItem">
+                    
+
+<dl>
+    <dt>
+        <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A2A2022202A24241FB3C146421EB1C14F49C24F49 ">
+            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Eric Bronson" />
+        </span>
+        
+    </dt>
+    <dd class="lienInverse">
+        <a class="noir" href="http://recherche.fnac.com/ia1030166/Eric-Bronson" title="Eric Bronson">
+            Eric Bronson
+        </a>
+    </dd>
+</dl>
+ 
+                </li>
+            
+                <li class="relPptItem">
+                    
+
+<dl>
+    <dt>
+        <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A2C2C2A2121211F3B4543C143C24A1E324245CC434C4348 ">
+            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Theresa Schwegel" />
+        </span>
+        
+    </dt>
+    <dd class="lienInverse">
+        <a class="noir" href="http://recherche.fnac.com/ia771222/Theresa-Schwegel" title="Theresa Schwegel">
+            Theresa Schwegel
+        </a>
+    </dd>
+</dl>
+ 
+                </li>
+            
+                <li class="relPptItem">
+                    
+
+<dl>
+    <dt>
+        <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A2C262620201FBE4AC146431EB4C14A49424F46C2431EB24F484F4E414A4946 ">
+            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Marie-Françoise Colombani" />
+        </span>
+        
+    </dt>
+    <dd class="lienInverse">
+        <a class="noir" href="http://recherche.fnac.com/ia79900/Marie-Francoise-Colombani" title="Marie-Françoise Colombani">
+            Marie-Françoise Colo...
+        </a>
+    </dd>
+</dl>
+ 
+                </li>
+            
+                <li class="relPptItem">
+                    
+
+<dl>
+    <dt>
+        <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A262A212021261FB3C44A1EBC4A41C1464348C2C24F49 ">
+            <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Eva Gabrielsson" />
+        </span>
+        
+    </dt>
+    <dd class="lienInverse">
+        <a class="noir" href="http://recherche.fnac.com/ia912029/Eva-Gabrielsson" title="Eva Gabrielsson">
+            Eva Gabrielsson
+        </a>
+    </dd>
+</dl>
+ 
+                </li>
+            
+        </ul>
+
+    </div>
+</div>
+
+            
+
+        </div>
+
+    </div>
+</div>
+
+           
+
+<div class="blkSpace">
+
+    <h2 class="ssTtl">
+        <strong>
+            Autour de
+            </strong>
+            &nbsp;Lena Grumbach
+     </h2>
+     <a href="#" class="BlkToTop">
+                Haut de page
+                <span class="arrow-up"><!-- --></span>
+     </a>
+    <div class="universParticipant blkBrd blkSpace blkBrdPdg clearfix">
+  
+        <div class="pptIDcard">
+            <i class="arrow-right"><!-- --></i>
+            <a href="http://recherche.fnac.com/ia87588/Lena-Grumbach" title="Lena Grumbach" >
+                <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Portrait de Lena Grumbach" />
+            </a>
+
+            <h3><a href="http://recherche.fnac.com/ia87588/Lena-Grumbach">Lena Grumbach</a></h3>
+
+            <p>
+                <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A252C2325251FB843494A1EBCC1C34E414A4245 btn b_big_w">Découvrir tout <br /><strong>son univers</strong></span>
+                
+            </p>
+
+            
+<script type="text/javascript">
+AppCore.ready(function()
+{
+    AppCore.modules.ready("alertingNews", function()
+    {
+        args = {
+            callbackId: "PEArticleRC$LinkedArticles1$ExtendedBookProperties$ParticipantLinkedArticles1$AlertingNews1",
+            contributorId: "87588",
+            contributorName: "Lena Grumbach",
+            addAlertElement: $("#alertingNewsdiv87588 a.addAlert"),
+            registerBeforeElement: $("#alertingNewsdiv87588 a.registerBefore"),
+            errorAddAlert: $("#errorAlertingNews87588"),
+            successAddAlert: $("#alertingNewsdiv87588 .newsAlerted"),
+            alreadyExistsAlert: $("#alertingNewsdiv87588 .alreadyExistsAlert"),
+            registerBeforeAlertUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?AlertingType=1&ContributorId=87588&ContributorName=Lena+Grumbach&LogonType=Alerting&Referrer=http%3a%2f%2frecherche.fnac.com%2fia87588%2fLena-Grumbach"
+        };
+        this.registerContributor(args);
+    });
+});
+</script>
+
+
+
+    <p id="alertingNewsdiv87588" class="pptAlerting">
+        
+        Je souhaite être informé de ses nouveautés
+
+        <span id="FnacLink1" class="fnac 4D4AC44AC242C146C0CB2DC143CBC3C14910444A48C24327 registerBefore btn b_std_w">
+            <span class="img i_alert mrg_r_sm"><!-- --></span>Ajout à mes alertes</span>
+        
+
+        <strong id="errorAlertingNews87588" class="rouge" style="display:none;">
+           Un problème technique est survenu, merci de réessayer ultérieurement
+        </strong>
+
+        <span class="newsAlerted" style="display:none">
+            
+            Vous avez choisi d'être alerté de ses nouveautés
+        </span>    
+        <span class="alreadyExistsAlert" style="display:none">
+            
+            Vous être déjà abonné à l'alerte de ses nouveautés
+        </span>    
+    </p>
+
+            
+
+        </div>
+
+
+        <div class="pptRelated">
+
+            <div id="PEArticleRC_LinkedArticles1_ExtendedBookProperties_ParticipantLinkedArticles1_ParticipantSpectacle"></div>
+
+            <div class="pptRelArticles">
+                <h3>Autres oeuvres</h3>
+                
+                    <ul class="pptRelArtList clearfix">
+                    
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Cyanure" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2B2C21202420241FB24A4E4648484A1EB84A42474143C14C1EB2C64A49C3C143 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110_110/8/4/4/9782330013448.gif" alt="Cyanure&nbsp;-&nbsp;Camilla Läckberg" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a4720606/Camilla-Lackberg-Cyanure"  title="Cyanure">
+            Cyanure
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Camilla Läckberg">
+        Camilla Läckber...
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars3.png" alt="Note moyenne des internautes :3/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">7&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(4720606, 14, 1,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=4720606&sctype=standard&from=111" rel="nofollow" FnacIdProduct="4720606" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="La Faiseuse d&#39;anges" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A24252C2B26212B1FB24A4E4648484A1EB84A42474143C14C1EB84A1E444A46C243C3C2431E4B1E4A494C43C22FB933BEB331B6B2BAB82E3612B4BF31BEBA3B2E4330C341 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/3e/ed/5a/5958974/1535-0.jpg" alt="La Faiseuse d'anges&nbsp;-&nbsp;Lena Grumbach, Camilla Läckberg, Shani Grumbach" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a6874924/Camilla-Lackberg-La-faiseuse-d-anges?NUMERICAL=Y#FORMAT=ePub"  title="La Faiseuse d'anges">
+            La Faiseuse d'a...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Lena Grumbach, Camilla Läckberg, Shani Grumbach">
+        Lena Grumbach,...
+        
+    </dd>
+    
+        <dd class="itemStars">
+           
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">14,99&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+
+        
+            <span class="itemBB">
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(7257122, 14, 2,1);" class="btn b_sqr_b FnacBtnAddBasket" FnacIdProduct="7257122" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=7257122&sctype=standard" rel="nofollow" id="numart_buttondl" >
+        <span class="img i_dl pdg_b_sm mrg_r_lg"></span>
+    </a>
+        
+    
+</span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="L&#39;oiseau de mauvais augure" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A242620212322201FB24A4E4648484A1EB84A42474143C14C1EB81E4F46C2434AC31E4B431E4E4AC3C44A46C21E4AC34CC3C143 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/f2/ca/57/5753586/1535-1.jpg" alt="L'oiseau de mauvais augure&nbsp;-&nbsp;Camilla Läckberg" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a6902530/Camilla-Lackberg-L-oiseau-de-mauvais-augure"  title="L'oiseau de mauvais augure">
+            L'oiseau de mau...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Camilla Läckberg">
+        Camilla Läckber...
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">9,70&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(6902530, 14, 3,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=6902530&sctype=standard&from=111" rel="nofollow" FnacIdProduct="6902530" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Le prédicateur" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2323262320252A1FB24A4E4648484A1EB84A42474143C14C1EB8431EC0C1434B46424ACB43C3C1 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/FR/Images_Produits/FR/fnac.com/Grandes110_110/0/3/0/9782330018030.jpg" alt="Le prédicateur&nbsp;-&nbsp;Camilla Läckberg" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a5595081/Camilla-Lackberg-Le-predicateur"  title="Le prédicateur">
+            Le prédicateur
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Camilla Läckberg">
+        Camilla Läckber...
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">9,70&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(5595081, 14, 4,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=5595081&sctype=standard&from=111" rel="nofollow" FnacIdProduct="5595081" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Le gardien de phare" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2323262321202A1FB24A4E4648484A1EB84A42474143C14C1EB8431E4C4AC14B4643491E4B431EC0454AC143 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/9e/a9/49/4827550/1535-1.jpg" alt="Le gardien de phare&nbsp;-&nbsp;Camilla Läckberg" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a5595201/Camilla-Lackberg-Le-gardien-de-phare"  title="Le gardien de phare">
+            Le gardien de p...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Camilla Läckberg">
+        Camilla Läckber...
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars4.png" alt="Note moyenne des internautes :4/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">23,50&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(5595201, 14, 5,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=5595201&sctype=standard&from=111" rel="nofollow" FnacIdProduct="5595201" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                    </ul>
+            </div>
+
+
+            
+
+        </div>
+
+    </div>
+</div>
+
+           
+
+<div class="blkSpace">
+
+    <h2 class="ssTtl">
+        <strong>
+            Autour de
+            </strong>
+            &nbsp;Marc de Gouvenain
+     </h2>
+     <a href="#" class="BlkToTop">
+                Haut de page
+                <span class="arrow-up"><!-- --></span>
+     </a>
+    <div class="universParticipant blkBrd blkSpace blkBrdPdg clearfix">
+  
+        <div class="pptIDcard">
+            <i class="arrow-right"><!-- --></i>
+            <a href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain" title="Marc de Gouvenain" >
+                <img src="http://www4-fr.fnac-static.com/img/catalog/nobody_80x118.png" alt="Portrait de Marc de Gouvenain" />
+            </a>
+
+            <h3><a href="http://recherche.fnac.com/ia87589/Marc-de-Gouvenain">Marc de Gouvenain</a></h3>
+
+            <p>
+                <span id="FnacLink1" class="fnac 45CBCBC02D1F1FC143424543C14245431944494A4219424F4E1F464A252C2325261FBE4AC1421E4B431EBC4FC3C443494A4649 btn b_big_w">Découvrir tout <br /><strong>son univers</strong></span>
+                
+            </p>
+
+            
+<script type="text/javascript">
+AppCore.ready(function()
+{
+    AppCore.modules.ready("alertingNews", function()
+    {
+        args = {
+            callbackId: "PEArticleRC$LinkedArticles1$ExtendedBookProperties$ParticipantLinkedArticles1$AlertingNews1",
+            contributorId: "87589",
+            contributorName: "Marc de Gouvenain",
+            addAlertElement: $("#alertingNewsdiv87589 a.addAlert"),
+            registerBeforeElement: $("#alertingNewsdiv87589 a.registerBefore"),
+            errorAddAlert: $("#errorAlertingNews87589"),
+            successAddAlert: $("#alertingNewsdiv87589 .newsAlerted"),
+            alreadyExistsAlert: $("#alertingNewsdiv87589 .alreadyExistsAlert"),
+            registerBeforeAlertUrl: "https://secure.fnac.com/Account/Logon/Logon.aspx?AlertingType=1&ContributorId=87589&ContributorName=Marc+de+Gouvenain&LogonType=Alerting&Referrer=http%3a%2f%2frecherche.fnac.com%2fia87589%2fMarc-de-Gouvenain"
+        };
+        this.registerContributor(args);
+    });
+});
+</script>
+
+
+
+    <p id="alertingNewsdiv87589" class="pptAlerting">
+        
+        Je souhaite être informé de ses nouveautés
+
+        <span id="FnacLink1" class="fnac 4D4AC44AC242C146C0CB2DC143CBC3C14910444A48C24327 registerBefore btn b_std_w">
+            <span class="img i_alert mrg_r_sm"><!-- --></span>Ajout à mes alertes</span>
+        
+
+        <strong id="errorAlertingNews87589" class="rouge" style="display:none;">
+           Un problème technique est survenu, merci de réessayer ultérieurement
+        </strong>
+
+        <span class="newsAlerted" style="display:none">
+            
+            Vous avez choisi d'être alerté de ses nouveautés
+        </span>    
+        <span class="alreadyExistsAlert" style="display:none">
+            
+            Vous être déjà abonné à l'alerte de ses nouveautés
+        </span>    
+    </p>
+
+            
+
+        </div>
+
+
+        <div class="pptRelated">
+
+            <div id="PEArticleRC_LinkedArticles1_ExtendedBookProperties_ParticipantLinkedArticles1_ParticipantSpectacle"></div>
+
+            <div class="pptRelArticles">
+                <h3>Autres oeuvres</h3>
+                
+                    <ul class="pptRelArtList clearfix">
+                    
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T1" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2225232C2C262B1FBE464848434946C34E1E3B4F4E431E2A1EB843C21E454F4E4E43C21ECAC3461E491E4A464E4A464349CB1EC04AC21E4843C21E44434E4E43C21E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/FR/Images_Produits/FR/fnac.com/Grandes110_110/6/9/9/9782330004996.jpg" alt="Millénium, T1&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a3857794/Millenium-Tome-1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson"  title="Millénium, T1">
+            Millénium, T1
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">10&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(3857794, 14, 1,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=3857794&sctype=standard&from=111" rel="nofollow" FnacIdProduct="3857794" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T2" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A222C242B252C241FBE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/9b/ee/34/3468955/1535-1.jpg" alt="Millénium, T2&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a3764876/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson"  title="Millénium, T2">
+            Millénium, T2
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars5.png" alt="Note moyenne des internautes :5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">10&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(3764876, 14, 2,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=3764876&sctype=standard&from=111" rel="nofollow" FnacIdProduct="3764876" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium, T3" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2320212B242B2C1FBE464848434946C34E1E3B4F4E431E221EB84A1EC1434649431E4B4A49C21E48431EC04A484A46C21E4B43C21E424FC3C14A49CBC21E4B1E4A46C11E32CB46434C1EB84AC1C2C24F49 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/5d/32/42/4338269/1535-1.jpg" alt="Millénium, T3&nbsp;-&nbsp;Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a5024647/Millenium-Tome-3-La-reine-dans-le-palais-des-courants-d-air-Stieg-Larsson"  title="Millénium, T3">
+            Millénium, T3
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Stieg Larsson">
+        Stieg Larsson
+        
+    </dd>
+    
+        <dd class="itemStars">
+         
+                <!-- note -->
+                
+    <img src="http://www4-fr.fnac-static.com/img/decos/etoiles/stars45.png" alt="Note moyenne des internautes :4,5/5"/>
+
+          
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+    <!--Fnac Price -->
+    
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">10&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+        
+            <span class="itemBB">
+        <a AddBasketTrackingFunction="trackAddToBasketNewFA(5024647, 14, 3,1);" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=5024647&sctype=standard&from=111" rel="nofollow" FnacIdProduct="5024647" class="btn b_sqr_y FnacBtnAddBasket">
+            <span class="img i_cart pdg_b_sm mrg_r_lg"></span>
+        </a>
+    </span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="La Princesse des glaces" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A212122212A252B1FB24A4E4648484A1EB84A42474143C14C1EB84A1EC0C146494243C2C2431E4B43C21E4C484A4243C22FB933BEB331B6B2BAB82E3612B4BF31BEBA3B2E4330C341 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/cc/f0/36/3600588/1535-0.jpg" alt="La Princesse des glaces&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Camilla Läckberg" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a2232184/Camilla-Lackberg-La-princesse-des-glaces?NUMERICAL=Y#FORMAT=ePub"  title="La Princesse des glaces">
+            La Princesse de...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Lena Grumbach, Marc de Gouvenain, Camilla Läckberg">
+        Lena Grumbach,...
+        
+    </dd>
+    
+        <dd class="itemStars">
+           
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">9,99&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+
+        
+            <span class="itemBB">
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(4016626, 14, 4,1);" class="btn b_sqr_b FnacBtnAddBasket" FnacIdProduct="4016626" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=4016626&sctype=standard" rel="nofollow" id="numart_buttondl" >
+        <span class="img i_dl pdg_b_sm mrg_r_lg"></span>
+    </a>
+        
+    
+</span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                        <li class="pptRelArtItem">
+                            
+
+<dl class="clearfix">
+
+    <dt class="visualBox">     
+        <span id="FnacLink1" title="Millénium 1 - Les hommes qui n&#39;aimaient pas les femmes" onclick="trackActionNewFA(&#39;CrossSell&#39;);" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F4A2A2521222324221FBE464848434946C34E1E3B4F4E431E2A1EB843C21E454F4E4E43C21ECAC3461E491E4A464E4A464349CB1EC04AC21E4843C21E44434E4E43C21E32CB46434C1EB84AC1C2C24F492FB933BEB331B6B2BAB82E3612B4BF31BEBA3B2E4330C341 itemVisuLk">
+            <img class="itemVisu" id="img1" src="http://static.fnac-static.com/multimedia/Images/FR/NR/ab/15/36/3544491/1535-0.jpg" alt="Millénium 1 - Les hommes qui n'aimaient pas les femmes&nbsp;-&nbsp;Lena Grumbach, Marc de Gouvenain, Stieg Larsson" />
+        </span>
+        
+    </dt>
+
+    <dd class="itemTtl"> 
+        <a class="itemLk" id="articleLink" onclick="trackActionNewFA('CrossSell');"  href="http://livre.fnac.com/a1823563/Millenium-Tome-1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson?NUMERICAL=Y#FORMAT=ePub"  title="Millénium 1 - Les hommes qui n'aimaient pas les femmes">
+            Millénium 1 - L...
+        </a>
+    </dd> 
+
+    <dd class="itemSstl" title="Lena Grumbach, Marc de Gouvenain, Stieg Larsson">
+        Lena Grumbach,...
+        
+    </dd>
+    
+        <dd class="itemStars">
+           
+        </dd>
+      
+
+    <dd class="itemPricer">
+        
+
+
+
+
+        <!--New Price 07/12 -->
+        
+    
+    
+
+    <p class="smallPricerFA">
+
+        <!-- Début cas des prix remisés -->
+         <!--FIN cas des prix remisés --> <!-- DEBUT affichage des prix standard (sans remise) -->
+          
+		
+
+                <!-- gestion la remise dégressive-->
+				
+                    <strong class="userPrice">9,99&euro;</strong> <!-- parfois des prix "affaire de Fnac" s'affiche -->
+                
+
+        
+        <!-- FIN affichage des prix standard (sans remise) -->
+
+        </p>
+
+        
+
+    
+    
+
+        
+            <span class="itemBB">
+    <a AddBasketTrackingFunction="trackAddToBasketNewFA(3903034, 14, 5,1);" class="btn b_sqr_b FnacBtnAddBasket" FnacIdProduct="3903034" href="http://www4.fnac.com/Account/Basket/IntermediaryShoppingCartRecalculate.aspx?action=1&prid=3903034&sctype=standard" rel="nofollow" id="numart_buttondl" >
+        <span class="img i_dl pdg_b_sm mrg_r_lg"></span>
+    </a>
+        
+    
+</span>
+        
+
+    </dd>
+    
+    <dd class="itemSeller">
+        <!-- vendu par -->
+          
+    </dd>
+</dl>
+
+                        </li>
+                        
+                    </ul>
+            </div>
+
+
+            
+
+        </div>
+
+    </div>
+</div>
+
+             
+
+
+
+
+
+    
+
+
+
+<div id="PEArticleRC_UsersOpinion1">
+
+
+<script type="text/javascript">
+
+    function paginationComments(args) {
+        return DirectRenderingWithMsg("WebForm_DoCallback('PEArticleRC$UsersOpinion1','" + args + "',JSHandlerStructWithMsg,null,null,true)");
+    }
+    function showAllOpinion(args) {
+        paginationComments('1|10|1;' + args);
+        return false;
+    }
+
+
+
+    function ChangeTransletedOpinion(args) {
+        var argsTranslated = args ? "translate" : "notranslate";
+        return DirectRenderingWithMsg("WebForm_DoCallback('PEArticleRC$UsersOpinion1','" + argsTranslated + "',JSHandlerStructWithMsg,null,null,true)");
+    }
+
+</script>
+
+
+
+<div id="avisinternautes" class="blkSpace avisinternautes clearfix">
+    
+
+<h2 class="ssTtl"><strong>Avis des internautes</strong>&nbsp;: 
+        
+            "Millénium, Tome 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette"
+        
+</h2>
+    
+
+
+    <a href="#" class="BlkToTop">Haut de page<span class="arrow-up"><!-- --></span></a>
+    <div class="clearb">
+        <!-- -->
+    </div>
+    <div class="blkBrd clearfix">
+        <div class="headOpinion clearfix">
+            
+<div class="productRating">
+    <div class="inner">
+        <strong>Note moyenne</strong>
+        <div class="nbcomments">
+            <span id="FnacLink1" onclick="function(){ return showAllOpinion(); }" class="fnac 4D4AC44AC242C146C0CB2DC143CBC3C14910444A48C24327 ">(74 avis)</span>
+                
+            
+        </div>
+    </div>
+    <div class="stars clearfix">
+        
+    <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_emptyStar"><!-- --></i>
+
+    </div>
+     
+
+    
+</div>    
+
+            
+
+<div class="productAverageRating">
+    
+    <div class="notation">
+        
+                <div class="rowjauge clearfix">
+                    <div class="nbcomments">40</div>
+                    
+                    <div class="jaugepourcent">
+                        <div class="pourcent" style="width:54%">&nbsp;</div>
+                    </div>
+                    <div class="stars">
+                        
+                        <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+                        
+                    </div>
+                </div>
+        
+                <div class="rowjauge clearfix">
+                    <div class="nbcomments">17</div>
+                    
+                    <div class="jaugepourcent">
+                        <div class="pourcent" style="width:22%">&nbsp;</div>
+                    </div>
+                    <div class="stars">
+                        
+                        <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+                        
+                    </div>
+                </div>
+        
+                <div class="rowjauge clearfix">
+                    <div class="nbcomments">5</div>
+                    
+                    <div class="jaugepourcent">
+                        <div class="pourcent" style="width:6%">&nbsp;</div>
+                    </div>
+                    <div class="stars">
+                        
+                        <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+                        
+                    </div>
+                </div>
+        
+                <div class="rowjauge clearfix">
+                    <div class="nbcomments">6</div>
+                    
+                    <div class="jaugepourcent">
+                        <div class="pourcent" style="width:8%">&nbsp;</div>
+                    </div>
+                    <div class="stars">
+                        
+                        <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+                        
+                    </div>
+                </div>
+        
+                <div class="rowjauge clearfix">
+                    <div class="nbcomments">5</div>
+                    
+                    <div class="jaugepourcent">
+                        <div class="pourcent" style="width:6%">&nbsp;</div>
+                    </div>
+                    <div class="stars">
+                        
+                        <i class="img i_star"><!-- --></i>
+                        
+                    </div>
+                </div>
+        
+    </div>
+</div>    
+
+            <div class="addComment">
+                
+<div>
+    <span id="FnacLink1" title="Écrire un avis" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FC2454348441F4A4B4B3F424F4E4E4349CB194AC2C0C52F3031B6BB2E2A25262A22232B b_std_w btn">
+        <span class="img i_comment"><!-- --></span>Écrire un avis</span>
+    
+</div>
+
+                
+            </div>
+        </div>
+
+        <ul class="clearfix contentOpinion">
+            
+<li id="oneComment6355094" class="oneComment  clearfix">
+    <div class="user">
+        
+
+<div id="CommentRating_6355094" class="rating">
+
+
+    <p class="clearfix">
+        <span class="floatl">Note :</span>
+        
+    <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_emptyStar"><!-- --></i>
+
+    </p>
+</div>    
+
+        
+
+<div id="CommentUserData_6355094">
+    <div id="User_6355094" class="userData">
+        par
+        <span id="TrackingTag_Review_Display_ReadAllReviews" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB5BB2C231FC0C1242625222544222A41254A22242B4120212421434244432A232A2C4A412C2B42252C2343234443432C252B2C262A2C43 ">HD75</span>
+        
+        <span class="img i_user"><!-- --></span>
+
+        
+    </div>
+    <div id="LieuDateUser_6355094" class="lieuDateUser">
+        Paris, 31/08/2013 
+        
+    </div>
+</div>
+
+    </div>
+    <div class="comment">
+        
+
+<div id="CommentText_6355094">
+    <div id="TitleComment_6355094" class="title">
+        Prenant
+    </div>
+    <div id="ContentComment_6355094" class="context">
+        N'ayant pas lu le premier mais ayant apprécié le film, j'ai attaqué ce livre par curiosité. Je n'ai pas été déçue. Il y a quelques redondances du fait du changement de points de vues avec les différents personnages, mais une lecture malgré tout agréable.
+        
+    </div>
+    
+</div>
+
+
+        
+        
+    </div>
+    <div class="more">
+        
+    <div id="CommentSummary_6355094" class="feedBack">
+        1 personne sur 1 a trouvé ce commentaire utile.
+        
+    </div>
+
+        
+
+<div id="CommentUtile_6355094" class="usefulYesNo">
+    <span class="mrg_r_lg">Cet avis vous a-t-il été utile ?</span>
+     <span id="FnacLink1" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A42473643C23F2422232320262B1C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C2422232320262BC82A1C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackYes_6355094" class="inner">Oui</span>
+    </span>
+    <span id="FnacLink2" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A4247B94F3F2422232320262B1C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C2422232320262BC8201C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackNo_6355094" class="inner">Non</span>
+    </span>
+
+    
+</div> 
+
+
+        
+<div id="CommentAbuse_6355094" class="abuse">
+    <span>
+        <span id="FnacLink1" title="Signaler un abus" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F4E4E4349CBC21FBB4342484AC143BA41C3C243BAC1CB46424843194AC2C0C52F30C143C4464FC3C23331B82E45CBCBC0132123224A132123214413212321444846C4C1431944494A4219424F4E13212321444A2A25262A22232B1321232144BE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F491321232244B933BEB331B6B2BAB8132123224B36143031B6BB2E2A25262A22232B14C143C44643CCB6BB2E2422232320262B ">Signaler un abus</span>
+        
+    </span>
+    <div class="clearing"></div>         
+</div> 
+
+        
+
+
+
+        
+    </div>
+</li>
+
+            
+<li id="oneComment6337108" class="oneComment  clearfix">
+    <div class="user">
+        
+
+<div id="CommentRating_6337108" class="rating">
+
+
+    <p class="clearfix">
+        <span class="floatl">Note :</span>
+        
+    <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+
+    </p>
+</div>    
+
+        
+
+<div id="CommentUserData_6337108">
+    <div id="User_6337108" class="userData">
+        par
+        <span id="TrackingTag_Review_Display_ReadAllReviews" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBA4843C51FC0C123434A2C2C2A4B262B422A2521214B432A2324442A2022212B22412A4A202A432326212124422B41414A262C424B4A22 ">Alex</span>
+        
+        <span class="img i_user"><!-- --></span>
+
+        
+    </div>
+    <div id="LieuDateUser_6337108" class="lieuDateUser">
+        Le Havre, 24/06/2013 
+        
+    </div>
+</div>
+
+    </div>
+    <div class="comment">
+        
+
+<div id="CommentText_6337108">
+    <div id="TitleComment_6337108" class="title">
+        Un classique
+    </div>
+    <div id="ContentComment_6337108" class="context">
+        Une suite évidente et incroyable. Une intrigue et un suspense haletant. On retrouve avec plaisir les personnages du premier tome. Une lecture facile et plaisante
+        
+    </div>
+    
+</div>
+
+
+        
+        
+    </div>
+    <div class="more">
+        
+    <div id="CommentSummary_6337108" class="feedBack">
+        1 personne sur 1 a trouvé ce commentaire utile.
+        
+    </div>
+
+        
+
+<div id="CommentUtile_6337108" class="usefulYesNo">
+    <span class="mrg_r_lg">Cet avis vous a-t-il été utile ?</span>
+     <span id="FnacLink1" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A42473643C23F2422222C2A20251C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C2422222C2A2025C82A1C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackYes_6337108" class="inner">Oui</span>
+    </span>
+    <span id="FnacLink2" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A4247B94F3F2422222C2A20251C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C2422222C2A2025C8201C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackNo_6337108" class="inner">Non</span>
+    </span>
+
+    
+</div> 
+
+
+        
+<div id="CommentAbuse_6337108" class="abuse">
+    <span>
+        <span id="FnacLink1" title="Signaler un abus" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F4E4E4349CBC21FBB4342484AC143BA41C3C243BAC1CB46424843194AC2C0C52F30C143C4464FC3C23331B82E45CBCBC0132123224A132123214413212321444846C4C1431944494A4219424F4E13212321444A2A25262A22232B1321232144BE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F491321232244B933BEB331B6B2BAB8132123224B36143031B6BB2E2A25262A22232B14C143C44643CCB6BB2E2422222C2A2025 ">Signaler un abus</span>
+        
+    </span>
+    <div class="clearing"></div>         
+</div> 
+
+        
+
+
+
+        
+    </div>
+</li>
+
+            
+<li id="oneComment6256372" class="oneComment  clearfix">
+    <div class="user">
+        
+
+<div id="CommentRating_6256372" class="rating">
+
+
+    <p class="clearfix">
+        <span class="floatl">Note :</span>
+        
+    <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+
+    </p>
+</div>    
+
+        
+
+<div id="CommentUserData_6256372">
+    <div id="User_6256372" class="userData">
+        par
+        <span id="TrackingTag_Review_Display_ReadAllReviews" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBE4AC146434848431FC0C12B22222C242544442422262B2123212A2A25222C23244A22212C23412B4B4B2342224A252C202626422B2423422A2B2B ">Marielle</span>
+        
+        <span class="img i_user"><!-- --></span>
+
+        
+    </div>
+    <div id="LieuDateUser_6256372" class="lieuDateUser">
+        Châteauroux, 20/09/2012 
+        
+    </div>
+</div>
+
+    </div>
+    <div class="comment">
+        
+
+<div id="CommentText_6256372">
+    <div id="TitleComment_6256372" class="title">
+        Encore meilleur !
+    </div>
+    <div id="ContentComment_6256372" class="context">
+        C'est avec plaisir que l'on retrouve Lisbeth, après son "coup de maître" du 1er volume ! Une nouvelle affaire attend Mikael, qui va recroiser sa route. Style dans la droite ligne du premier opus de cette trilogie. A ne manquer sous aucun prétexte !
+        
+    </div>
+    
+</div>
+
+
+        
+        
+    </div>
+    <div class="more">
+        
+    <div id="CommentSummary_6256372" class="feedBack">
+        1 personne sur 1 a trouvé ce commentaire utile.
+        
+    </div>
+
+        
+
+<div id="CommentUtile_6256372" class="usefulYesNo">
+    <span class="mrg_r_lg">Cet avis vous a-t-il été utile ?</span>
+     <span id="FnacLink1" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A42473643C23F24212324222C211C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C24212324222C21C82A1C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackYes_6256372" class="inner">Oui</span>
+    </span>
+    <span id="FnacLink2" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A4247B94F3F24212324222C211C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C24212324222C21C8201C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackNo_6256372" class="inner">Non</span>
+    </span>
+
+    
+</div> 
+
+
+        
+<div id="CommentAbuse_6256372" class="abuse">
+    <span>
+        <span id="FnacLink1" title="Signaler un abus" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F4E4E4349CBC21FBB4342484AC143BA41C3C243BAC1CB46424843194AC2C0C52F30C143C4464FC3C23331B82E45CBCBC0132123224A132123214413212321444846C4C1431944494A4219424F4E13212321444A2A25262A22232B1321232144BE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F491321232244B933BEB331B6B2BAB8132123224B36143031B6BB2E2A25262A22232B14C143C44643CCB6BB2E24212324222C21 ">Signaler un abus</span>
+        
+    </span>
+    <div class="clearing"></div>         
+</div> 
+
+        
+
+
+
+        
+    </div>
+</li>
+
+            
+<li id="oneComment6190070" class="oneComment  clearfix">
+    <div class="user">
+        
+
+<div id="CommentRating_6190070" class="rating">
+
+
+    <p class="clearfix">
+        <span class="floatl">Note :</span>
+        
+    <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+
+    </p>
+</div>    
+
+        
+
+<div id="CommentUserData_6190070">
+    <div id="User_6190070" class="userData">
+        par
+        <span id="TrackingTag_Review_Display_ReadAllReviews" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB14C4F484B4F1FC0C1204A212B22232525442B422A262C202020242B4A21434A262C212A2423412C2B2043222C2C4326422C232224444A264B ">Bgoldo</span>
+        
+        <span class="img i_user"><!-- --></span>
+
+        
+    </div>
+    <div id="LieuDateUser_6190070" class="lieuDateUser">
+        France, 27/02/2012 
+        
+    </div>
+</div>
+
+    </div>
+    <div class="comment">
+        
+
+<div id="CommentText_6190070">
+    <div id="TitleComment_6190070" class="title">
+        Aussi bon que le tome 1
+    </div>
+    <div id="ContentComment_6190070" class="context">
+        Ce roman nous tient en haleine du debut jusqu'a la fin et nous motive à acheter le tome 3
+        
+    </div>
+    
+</div>
+
+
+        
+        
+    </div>
+    <div class="more">
+        
+        
+
+<div id="CommentUtile_6190070" class="usefulYesNo">
+    <span class="mrg_r_lg">Cet avis vous a-t-il été utile ?</span>
+     <span id="FnacLink1" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A42473643C23F242A2620202C201C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C242A2620202C20C82A1C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackYes_6190070" class="inner">Oui</span>
+    </span>
+    <span id="FnacLink2" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A4247B94F3F242A2620202C201C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C242A2620202C20C8201C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackNo_6190070" class="inner">Non</span>
+    </span>
+
+    
+</div> 
+
+
+        
+<div id="CommentAbuse_6190070" class="abuse">
+    <span>
+        <span id="FnacLink1" title="Signaler un abus" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F4E4E4349CBC21FBB4342484AC143BA41C3C243BAC1CB46424843194AC2C0C52F30C143C4464FC3C23331B82E45CBCBC0132123224A132123214413212321444846C4C1431944494A4219424F4E13212321444A2A25262A22232B1321232144BE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F491321232244B933BEB331B6B2BAB8132123224B36143031B6BB2E2A25262A22232B14C143C44643CCB6BB2E242A2620202C20 ">Signaler un abus</span>
+        
+    </span>
+    <div class="clearing"></div>         
+</div> 
+
+        
+
+
+
+        
+    </div>
+</li>
+
+            
+<li id="oneComment6173916" class="oneComment  clearfix">
+    <div class="user">
+        
+
+<div id="CommentRating_6173916" class="rating">
+
+
+    <p class="clearfix">
+        <span class="floatl">Note :</span>
+        
+    <i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i><i class="img i_star"><!-- --></i>
+
+    </p>
+</div>    
+
+        
+
+<div id="CommentUserData_6173916">
+    <div id="User_6173916" class="userData">
+        par
+        <span id="TrackingTag_Review_Display_ReadAllReviews" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F304646464E4FC3C2C2431FC0C1444425204321422C41414B252420442B4226212A234A254B2C212B254B222A2B4A2C2A4B2A2A4B43234A212025202244 ">Piiimousse</span>
+        
+        <span class="img i_user"><!-- --></span>
+
+        
+    </div>
+    <div id="LieuDateUser_6173916" class="lieuDateUser">
+        France, 20/01/2012 
+        
+    </div>
+</div>
+
+    </div>
+    <div class="comment">
+        
+
+<div id="CommentText_6173916">
+    <div id="TitleComment_6173916" class="title">
+        Superbe
+    </div>
+    <div id="ContentComment_6173916" class="context">
+        Un très bon livre que je vous conseille à tous ! Du suspens.. je n'ai pu me retenir de le lire. En 3 jours, il était terminé ! Vite j'achète la suite.  Il y a de l'intrigue.. Les personnages deviennent vivant dans notre imaginaire car il ont un aspect très réaliste !
+        
+    </div>
+    
+</div>
+
+
+        
+        
+    </div>
+    <div class="more">
+        
+        
+
+<div id="CommentUtile_6173916" class="usefulYesNo">
+    <span class="mrg_r_lg">Cet avis vous a-t-il été utile ?</span>
+     <span id="FnacLink1" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A42473643C23F242A2C22262A241C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C242A2C22262A24C82A1C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackYes_6173916" class="inner">Oui</span>
+    </span>
+    <span id="FnacLink2" onclick="function(){return false;}" class="fnac 4D4AC44AC242C146C0CB2DC04FC03C4A46CB151CB443434B414A4247B94F3F242A2C22262A241C181C45CBCBC02D1F1FCCCCCC2B1E44C11944494A421EC2CB4ACB464219424F4E1F464E4C1FC04642CB4FC21F4A4D4AC53F41C3C2C6194C46441C16273C4341B44FC14E3FBB4FB24A4848414A4247151C30B3BAC1CB4642484331B21B33C243C1C2BFC04649464F492A1BBF4943B24F4E4E4349CB2A1BB24F4E4E4349CB33CB4648432A1C181C242A2C22262A24C8201C18BD32B54A494B4843C132CBC1C342CB3C46CB45BEC24C1849C348481849C3484818CBC1C3431627 btn b_std_w">
+        <span id="FeedbackNo_6173916" class="inner">Non</span>
+    </span>
+
+    
+</div> 
+
+
+        
+<div id="CommentAbuse_6173916" class="abuse">
+    <span>
+        <span id="FnacLink1" title="Signaler un abus" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F4E4E4349CBC21FBB4342484AC143BA41C3C243BAC1CB46424843194AC2C0C52F30C143C4464FC3C23331B82E45CBCBC0132123224A132123214413212321444846C4C1431944494A4219424F4E13212321444A2A25262A22232B1321232144BE464848434946C34E1E3B4F4E431E211EB84A1E44464848431ECAC3461EC143C44A46CB1E4B1EC3491E41464B4F491E4B1E43C2C2434942431E43CB1E4B1EC349431E4A4848C34E43CBCB431E32CB46434C1EB84AC1C2C24F491321232244B933BEB331B6B2BAB8132123224B36143031B6BB2E2A25262A22232B14C143C44643CCB6BB2E242A2C22262A24 ">Signaler un abus</span>
+        
+    </span>
+    <div class="clearing"></div>         
+</div> 
+
+        
+
+
+
+        
+    </div>
+</li>
+
+            
+        </ul>
+
+        
+        <div id="PEArticleRC_UsersOpinion1_divAllOpinions" class="clearfix txt_r">
+            <a href="#" onclick="trackActionNewFA('Avis', 1891354); return showAllOpinion(false);" class="getAllOpinions">Tous les avis</a>
+        </div>
+    </div>
+</div>
+</div><script type="text/javascript">
+RegisterRendering( "PEArticleRC_UsersOpinion1", "1", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|1|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "2", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|2|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "3", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|3|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "4", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|4|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "5", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|5|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "6", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|6|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "7", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|7|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "8", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|8|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "9", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|9|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "10", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|10|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "11", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|11|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "12", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|12|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "13", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|13|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "14", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|14|1|1',JSHandlerStructCache,null,null,true)" );
+RegisterRendering( "PEArticleRC_UsersOpinion1", "15", "WebForm_DoCallback('PEArticleRC$UsersOpinion1','|15|1|1',JSHandlerStructCache,null,null,true)" );
+</script>
+
+
+
+
+
+<div class="seeAlso blkSpace clearfix">
+    <h2 class="ssTtl"><strong>Voir aussi</strong></h2>
+    <a href="#" class="BlkToTop">Haut de page<span class="arrow-up"><!-- --></span></a>
+    <div class="clearb">
+        <!-- -->
+    </div>
+
+    <div class="blkBrd blkBrdPdg">
+        <ul class="listArrowOrange">
+            
+                        <li>
+                    <span id="FnacLink1" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4846C4C1431E49C34E43C146CAC3431FC22A24232122201F304F484AC11E43CB1E3B45C146484843C1 ">Polar et Thriller</span>
+                    
+                     
+                          &gt;
+                          <span id="FnacLink1" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4846C4C1431E49C34E43C146CAC3431F482A242323232B1FB24FC3C0C21E4B431E424F43C3C11E304F4846424643C11F304F484AC11E43CB1E3B45C146484843C1 ">Coups de coeur Policier</span>
+                    
+                    
+                        </li>
+                    
+                        <li>
+                    <span id="FnacLink1" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4846C4C1431E49C34E43C146CAC3431FC22A24232122201F304F484AC11E43CB1E3B45C146484843C1 ">Polar et Thriller</span>
+                    
+                     
+                          &gt;
+                          <span id="FnacLink1" class="fnac 45CBCBC02D1F1F4846C4C1431944494A4219424F4E1F492220202A2C2A1F304F484AC11E43CB1E3B45C146484843C11FBE464848434946C34E1E43491E43B14F4F47 ">Millénium en eBook</span>
+                    
+                    
+                        </li>
+                    
+        </ul>
     </div>
-</div>    
+</div>
+
+
+
 
 
-                            
-		                        
 <p class="txt_r pdg_t">
+    <span id="FnacLink1" class="fnac 4D4AC44AC242C146C0CB2DCC46494B4FCC19C0C14649CB151627 btn b_std_w bold noir pdg_sm clearfix">
+    <span class="inner floatl">Imprimer</span>
+    <span class="floatr img i_ergo2 mrg_l_sm"><!-- --></span>
+</span>
+
+
+    <span id="FnacLink1" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F3243494BBE4A46481F3243494BBE4A4648194AC2C0C52F3031B6BB2E2A25262A22232B mrg_l btn b_std_w bold noir pdg_sm clearfix">
+            <span class="inner floatl">Envoyer cette page &agrave; un ami</span>
+            <span class="floatr img i_ergo2 mrg_l_sm"><!-- --></span>
+        </span>
     
-    <span id="printPE" class="f_fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FC2454348441FBAC1CB4642484330C14649CB4A41484321194AC2C0C52F3031B6BB2E2A25262A22232B1430C14649CB2E2A nosouligne bout-flech" style="display:none">
-        <span class="inner">Imprimer</span>
-    </span>
-  
-    <a href="http://www4.fnac.com/SendMail/SendMail.aspx?PRID=1891354" class="mrg_l bout-flech">
-        <span class="inner">Envoyer cette page &agrave; un ami</span>
-    </a>
-  
 </p>
 
-                        </div>
-                    </div>
 
-                    
-                    <div class="clearing">
-                    </div>
-                </div>
-            </div>
+
+                
+
+<div id="StorePopin" class="hide"></div>
+
+<input type="hidden" id="clickedLinkReclaimPopup" value="" />
+<script type="text/javascript" src='https://maps.googleapis.com/maps/api/js?key=AIzaSyDzXzrrU99j404-2hP99APXRIega82uLyA&language=fr&sensor=true'></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/js/KE8dHcHWw-7qRWDgC4BWv-38K6Q1/js/RetreatStore.js"></script>
+<script type="text/javascript">
+
+    function SetFlag(elem) {
+        var r = $(elem).prev().val();
+        $("#clickedLinkReclaimPopup").val(r);
+        SetPopinContext();
+    }
+
+    function SetPopinContext() {
+        var clickedValue = $("#clickedLinkReclaimPopup").val();
+        var hdReclaimTitle = $("#hdReclaimTitle");
+        var isTechnical = "False";
+        var reclaimTitleConsult = "Consulter le stock en magasin";
+
+        var buttons = $('div#popinStoreReclaim a.btn.b_std_y');
+        var buttons2 = $('div#popinStoreReclaim a.btn.b_std_w');
+
+        if (clickedValue == 2 && isTechnical == "True") {
+            hdReclaimTitle.text(reclaimTitleConsult);
+            buttons.each(function (index) {
+
+                if ($(this).hasClass("btn b_std_y hide")) {
+                    $(this).removeAttr('class');
+                    $(this).addClass("btn b_std_y hide dontShow");
+                } else {
+                    $(this).removeAttr('class');
+                    $(this).addClass("btn b_std_y hide");
+                }
+            });
+
+            buttons2.each(function (index) {
+
+                if ($(this).hasClass("btn b_std_w hide")) {
+                    $(this).removeAttr('class');
+                    $(this).addClass("btn b_std_w hide dontShow");
+                } else {
+                    $(this).removeAttr('class');
+                    $(this).addClass("btn b_std_w hide");
+                }
+            });
+        } else if (clickedValue == 1) {
+            hdReclaimTitle.html('Retrait en Magasin <span class="rouge">Gratuit</span>');
+
+                buttons.each(function (index) {
+
+                    if ($(this).hasClass("btn b_std_y hide dontShow")) {
+                        $(this).removeClass('dontShow');
+                    } else {
+                        $(this).removeAttr('class');
+                        $(this).addClass("btn b_std_y");
+                    }
+                });
+
+                buttons2.each(function (index) {
+
+                    if ($(this).hasClass("btn b_std_w hide dontShow")) {
+                        $(this).removeClass('dontShow');
+                    } else {
+                        $(this).removeAttr('class');
+                        $(this).addClass("btn b_std_w");
+                    }
+                });
+
+            } else {
+                hdReclaimTitle.text(reclaimTitleConsult);
+            }
+    }
+
+    var pridStoreCheck = "1891354";
+    var rguStoreCheck = "1584035";
+    var typeStoreCheck = "11001";
+    var ApiGoogleKey = 'AIzaSyDzXzrrU99j404-2hP99APXRIega82uLyA';
+    var pathRoot = $("#pathRoot").val();
+    var webpage = pathRoot + "/OrderPipe/NewCustomer/RelayAddressAjaxSuggestionList.aspx";
+    var webpageStore = pathRoot + "/OrderPipe/NewCustomer/StoresSuggestionList.aspx?w-4";
+    var paramUrl = location.search;
+    var RetreatStoreManager = new RetreatStoreManager();
+     
+    function retreatStoreCallback() {
+        RetreatStoreManager.Initialize();
+    }
+
+    function loadRetreatStore(obj, element) {
+        $("#StorePopin").load("/Nav/RetreatStore/GetRetreatStorePopin?Prid=1891354",
+            function (callback) {
+                if (callback != "") {
+                    element.jSCallBack(callback);
+                    $(element.options.targetContent).find("a.socloz").on("click", function () {
+                        element.hidePopinAndLayer();
+                    });
+                }
+            });
+    };
+
+
+
+    $(function () {
+
+
+        $(".openLayerStoreReclaim").popinManager({
+            targetContent: "#StorePopin",
+            ajaxCharsSplit: '',
+            ajaxMethod: "loadRetreatStore(base.el,base);",
+            callbackMethod: "retreatStoreCallback();",
+            ajaxLoaderLink: "http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif",
+            multiContent: true
+        });
+
+
+        if (paramUrl.indexOf("showstorereclaim") != -1) {
+            $(".contextStore .openLayerStoreReclaim").click();
+        }
+
+    });
+
+</script> 
         </div>
-        
     </div><!-- /fin #page_1col -->
 
+    <!-- Pub -->
+    
<div id="BannerHomeRight">
    <iframe width="300" height="250" hspace="0" vspace="0" frameborder="0" bordercolor="#000000" middlemargin="0" marginwidth="0" marginheight="0" border="no" letmargin="0" scrolling="no" src="http://mfr.247realmedia.com/2/www.fnac.com/produits/livres/recherche/rg@Middle?scat="></iframe>
</div>

+    <!-- Pub -->
+
     <!-- Dynamo Keywords -->
     
-<div class="dynamo clearb">
-<span class="gras moutarde">Sur Fnac.com vous trouverez aussi&nbsp;:</span>
 
-               <a href="http://livre.fnac.com/a225172/Peugeot-306#bl=dynLiv" >Livres peugeot 306</a>
-           
-                &nbsp;|&nbsp;
+    <!-- END Dynamo Keywords --> 
+               
+    
+
+<div class="spacer">&nbsp;</div>
+
+<div class="wrapFooter iPadHide">
+
+
+    
+
+
+
+       
+            
+<div class="Footer mrg_t_xlg">
+
+    <div class="Footer-Sgf">
+        <h2 class="FooterSgf-Title">Services et garanties Fnac</h2>
+        <ul class="FooterSfg-List clearfix">
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-1 Footer-ico" href="http://www4.fnac.com/Help/Faq.aspx?idHelp=13303&idQRfaq=2" target="aide" title="Satisfait ou remboursé">Satisfait <br />ou remboursé</a></li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-2 Footer-ico" href="http://www4.fnac.com/Help/retrait-et-livraison.aspx#bl=FooterRetraitMag" title="Retrait gratuit en magasin">Retrait gratuit <br />en magasin</a></li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-3 Footer-ico" href="http://www.fnac.com/Magazine/home_adherents.asp#bl=FooterCarteAdh" title="La carte Fnac - Adhérez et économisez">La carte Fnac <br />Adhérez et économisez</a>
+            </li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-4 Footer-ico" href="http://www4.fnac.com/Service/default.aspx#bl=FooterSavFnac" title="SAV Fnac 7J/7">SAV Fnac <br />7J/7</a></li>
+            
+            <li class="FooterSgf-Item"><a class="FooterSgf-link FooterSgf-link-5 Footer-ico" href="http://www.fnac.com/les-espaces-passions-de-la-Fnac/w-4#bl=FooterConseilsExperts" title="Conseils et Tests des experts">Conseils et Tests <br />des experts</a></li>
+        </ul>
+    </div>
+
+    <div class="Footer-Middle clearfix">
+        <div class="FooterMiddle-col FooterMiddle-Left">
+            
+            <p class="FooterMiddle-Left-1">
+                <span id="FooterNewsLetters" title="Bons Plans Fnac" class="fnac 45CBCBC0C22D1F1FC24342C3C1431944494A4219424F4E1FBEC6B4494A421FB943CCC24843CBCB43C1194AC2C0C51241482EB44F4FCB43C1B943CCC24843CBCB43C1C2 Footer-ico"><strong>Bons plans Fnac</strong> <br />Ne manquez plus les dernières offres !</span>
+            </p>
+            
+            <p class="FooterMiddle-Left-2">
+                <span id="FooterFnacMobile" title="Appli Mobile &amp; Tablette" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBCC3464B43C21F3B434843C0454F4946431F4AC0C04846C21E4E4F414648431F4B43444AC348CB194AC2C0C51241482EB44F4FCB43C1BAC0C04846C2BE4F41464843 Footer-ico"><strong>Appli Mobile & Tablette</strong> <br />La Fnac, n'importe où, n'importe quand</span>
+            </p>
+        </div>
+        
+        <p class="FooterMiddle-col FooterMiddle-Center">
+            <span id="FooterLogo" title="Fnac.com" class="fnac 45CBCBC02D1F1FCCCCCC1944494A4219424F4E1F1241482EB44F4FCB43C1B84F4C4FB4494A42 Footer-ico graf FooterMiddle-logo">Fnac.com</span>
+        </p>
+        <div class="FooterMiddle-col FooterMiddle-Right">
+            <ul class="FooterMiddle-Social-List clearfix">
                 
-               <a href="http://livre.fnac.com/a240497/Alex-Sanders-Le-gouter-de-Manu#bl=dynLiv" >Le goûter de manu</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterFbFnac" target="_blank" title="Facebook" class="fnac 45CBCBC02D1F1FCCCCCC19444A4243414F4F4719424F4E1F44494A42 FooterMiddle-Social-link FooterMiddle-Facebook Footer-ico graf">Facebook</span></li>
                 
-               <a href="http://livre.fnac.com/a192971/Marc-de-Gouvenain-Le-Merveilleux-voyage-de-Nils-Holgersson-a-travers-la-Suede#bl=dynLiv" >Livre merveilleux voyage nils holgersson</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterTwFnac" target="_blank" title="Twitter" class="fnac 45CBCBC02D1F1FCBCC46CBCB43C119424F4E1F44494A42 FooterMiddle-Social-link FooterMiddle-Twitter Footer-ico graf">Twitter</span></li>
                 
-               <a href="http://livre.fnac.com/a1888398/Collectif-La-petite-fille-aux-allumettes#bl=dynLiv" >Livre la petite fille aux allumettes</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterInstagram" target="_blank" title="Instagram" class="fnac 45CBCBC02D1F1F4649C2CB4A4CC14A4E19424F4E1F44494A423F4F44444642464348 FooterMiddle-Social-link FooterMiddle-Instagram Footer-ico graf">Instagram</span></li>
                 
-               <a href="http://livre.fnac.com/a1626393/Jean-Michel-Cohen-Savoir-maigrir#bl=dynLiv" >Regime savoir maigrir cohen</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterGooglePlus" target="_blank" title="Google +" class="fnac 45CBCBC02D1F1FC048C3C2194C4F4F4C484319424F4E1F17B4B9BAB2 FooterMiddle-Social-link FooterMiddle-GooglePlus Footer-ico graf">Google +</span></li>
                 
-               <a href="http://livre.fnac.com/a1810081/Islandia-T1-Escale-boreale-Marc-Vedrines#bl=dynLiv" >Islandia bd</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterYoutube" target="_blank" title="Youtube" class="fnac 45CBCBC02D1F1FC64FC3CBC3414319424F4E1FC3C243C11F44494A42 FooterMiddle-Social-link FooterMiddle-Youtube Footer-ico graf">Youtube</span></li>
                 
-               <a href="http://livre.fnac.com/a1242860/Per-Olov-Enquist-Le-cinquieme-hiver-du-magnetiseur#bl=dynLiv" >Livre le cinquieme hiver du magnetiseur</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterPinterest" target="_blank" title="Pintereset" class="fnac 45CBCBC02D1F1FCCCCCC19C04649CB43C143C2CB19424F4E1F44494A424F44444642464348 FooterMiddle-Social-link FooterMiddle-Pinterest Footer-ico graf">Pinterest</span></li>
                 
-               <a href="http://livre.fnac.com/a3404411/Katarina-Mazetti-Le-caveau-de-famille#bl=dynLiv" >Katarina mazetti le caveau de famille</a>
-           
-                &nbsp;|&nbsp;
+                <li class="FooterMiddle-Social-Item"><span id="FooterLinkedin" target="_blank" title="Fnac Pro sur LinkedIn" class="fnac 45CBCBC02D1F1F48464947434B464919424F4E1F424F4EC04A49C61F44494A421EC0C14F FooterMiddle-Social-link FooterMiddle-Linkedin Footer-ico graf">Fnac Pro sur LinkedIn</span></li>
+            </ul>
+            <div class="FooterMiddle-Mag">
+                <form class="Footer-FormMag clearfix" action="http://www4.fnac.com/Community/SearchStore.aspx">
+                    
+                    <label for="city">
+                        <span id="FooterMagHome" title="Trouver un magasin" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484F424A4846C243C11E4E4A4C4AC246491E44494A421241482EB44F4FCB43C1B54F4E43BE4A4C ">Trouver un magasin</span>
+                    </label>
+                    <input type="text" value="Ville / code postal ..." name="city" id="city" class="Footer-FormMag-input" />
+                    <input type="submit" value="OK" />
+                </form>
+            </div>
+        </div>
+    </div>
+
+    <div class="Footer-Bottom">
+        <div class="FooterBottomLinks clearfix">
+            <dl class="FooterBottomLinks-Col">
+                <dt>Le groupe Fnac</dt>
+                <dd><a href="http://groupe-fnac.com/" rel="nofollow" target="_blank" title="Le groupe Fnac">Le groupe Fnac</a></dd>
+                <dd><a href="http://groupe-fnac.com/index.php/category/carrieres" rel="nofollow" target="_blank" title="Recrutement">Recrutement</a></dd>
                 
-               <a href="http://livre.fnac.com/a2232184/Camilla-Lackberg-La-princesse-des-glaces#bl=dynLiv" >Camilla lackberg princesse glaces</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterDevDurable" target="_blank" title="Développement durable" class="fnac 45CBCBC02D1F1F4CC14FC3C0431E44494A4219424F4E1F46494B43C519C045C01F494FCBC14343494C4A4C434E4349CB ">Développement durable</span></dd>
                 
-               <a href="http://livre.fnac.com/a2693998/Camilla-Lackberg-Le-tailleur-de-pierre#bl=dynLiv" >Tailleur de pierre camilla lackberg</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterLaboFnacEssais" title="Le Labo Fnac Essais" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F484A414FB4494A421F43C2C24A46C21FCB4FC3C24B4FC2C24643C1C2194AC2C0C51241482EB44F4FCB43C1B84A414FB4494A42B3C2C24A46C2 ">Le Labo Fnac Essais</span></dd>
                 
-               <a href="http://livre.fnac.com/a255026/Marc-de-Gouvenain-De-planete-en-planete#bl=dynLiv" >Livres sur les planetes</a>
-           
-                &nbsp;|&nbsp;
                 
-               <a href="http://livre.fnac.com/a2817931/Katarina-Mazetti-Le-mec-de-la-tombe-d-a-cote#bl=dynLiv" >Tombe d a cote katarina mazetti</a>
-           
-                &nbsp;|&nbsp;
+            </dl>
+            <dl class="FooterBottomLinks-Col">
+                <dt>Aide, SAV, services</dt>
                 
-               <a href="http://livre.fnac.com/a933540/Tomi-Ungerer-Allumette#bl=dynLiv" >Livres tomi ungerer allumette</a>
-           
-                &nbsp;|&nbsp;
+	            <dd><span id="FooterSuiviCommande" target="_blank" title="Aide et suivi de commande" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01FB44ACA194AC2C0C51241482EB44F4FCB43C132C346C446B24F4E4E4A494B43 ">Aide et suivi de commande</span></dd>
                 
-               <a href="http://livre.fnac.com/a2535116/Stieg-Larsson-The-girl-who-played-with-fire#bl=dynLiv" >The girl who played with fire</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterReprise" title="Argus Reprise" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBCC3464B43C21F424F4E4E4F491FC143C0C146C2431F4B43444AC348CB194AC2C0C51241482EB44F4FCB43C1BAC14CC3C23143C0C146C243 ">Argus Reprise</span></dd>
                 
-               <a href="http://livre.fnac.com/a775790/Collectif-Quinziemes-assises-de-la-traduction-litteraire-Arles-1998-Actes#bl=dynLiv" >Livre traducteur traduction</a>
-           
-                &nbsp;|&nbsp;
+                <dd><a href="http://www4.fnac.com/Guides/common/cheques-cartes-cadeaux/Default.aspx#bl=FooterChequeCadeau" rel="nofollow" title="Chèque cadeau Fnac">Chèque cadeau Fnac</a></dd>
                 
-               <a href="http://livre.fnac.com/a1331231/Pierre-Bordage-Les-derniers-hommes#bl=dynLiv" >Les derniers hommes</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterAffiliation" title="Affiliation" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4A44444648464ACB43C21F4A4242C3434648194AC2C0C51241482EB44F4FCB43C1BA44444648464ACB464F49 ">Affiliation</span></dd>
                 
-               <a href="http://livre.fnac.com/a1823563/Millenium-T1-Les-hommes-qui-n-aimaient-pas-les-femmes-Stieg-Larsson#bl=dynLiv" >Les homme qui n aimaient pas les femmes</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterPublicite" title="Publicité" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBA4BC443C1CB46C243C11F31434C46C2CBC14ACB464F49194AC2C0C51241482EB44F4FCB43C130C34148464246CB43 ">Publicité</span></dd>
+            </dl>
+            <dl class="FooterBottomLinks-Col">
+                <dt>&Agrave; propos</dt>
                 
-               <a href="http://livre.fnac.com/a2217274/Millenium-Coffret-3-volumes-Millenium-Stieg-Larsson#bl=dynLiv" >Coffret millenium</a>
-           
-                &nbsp;|&nbsp;
+		        <dd><span id="FooterCGVFnac" title="Conditions générales de vente Fnac.com" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01F44494A42424F4E1E424CC4194AC2C0C51241482EB44F4FCB43C1B2BC34 ">Conditions générales de vente</span></dd>
                 
-               <a href="http://livre.fnac.com/a2479864/Stieg-Larsson-Millenium-la-trilogie#bl=dynLiv" >Millenium trilogie stieg larsson</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterDonnesPerso" title="Données personnelles" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FBFC14B43C13046C0431F4B4ACB4A30C14FCB4342CB194AC2C0C51241482EB44F4FCB43C1BB4ACB4A30C14FCB4342CB ">Données personnelles</span></dd>
                 
-               <a href="http://www4.fnac.com/Stieg-Larsson/ia103133#bl=dynLiv" >Livres stieg larsson</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterMLeg" title="Mentions légales" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1F4349CBC143C0C146C2431F4E4349CB464F49C23F48434C4A4843C2194AC2C0C51241482EB44F4FCB43C1BE4349CB464F49C2B8434C4A4843C2 ">Mentions légales</span></dd>
                 
-               <a href="http://musique.fnac.com/a2817782/Middle-of-the-Road-Soley-soley-and-other-hits-CD-album#bl=dynLiv" >Soley soley and other hits</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterSignalAbus" target="_blank" title="Signalez un abus" class="fnac 45CBCBC02D1F1F4EC348CB464E434B464A1944494A4219424F4E1F4EC348CB464E434B464A1F44494A424B46C14342CB1FC04B441F32464C494A4843CD1EC3491E4A41C3C219C04B44 ">Signalez un abus</span></dd>
                 
-               <a href="http://livre.fnac.com/a1830759/Jean-Paul-Bourdon-Athletisme-educatif#bl=dynLiv" >Athlétisme éducatif</a>
-           
-                &nbsp;|&nbsp;
+                <dd><span id="FooterCookies" title="Cookies" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB54348C01F44494A42424F4E1E424F4F474643C2194AC2C0C51241482EB44F4FCB43C1B24F4F474643C2 ">Cookies</span></dd>
                 
-               <a href="http://livre.fnac.com/a1899049/J-P-Gratien-Marius-Moutet-un-socialiste-d-outre-mer#bl=dynLiv" >Marius moutet un socialiste d outre mer</a>
-           
-</div>
-
-
-    <!-- END Dynamo Keywords --> 
-               
-    
-
-<div class="spacer">&nbsp;</div>
-
-<div class="wrapFooter">
-
-
-
-       
-            
-    <ul class="plusFnac clearfix">
-        <li class="pf pf1"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8200" target="aide">Satisfait ou<br />remboursé</a></li>
-        <li class="pf pf2"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8200" target="aide">&Eacute;change<br />en magasin</a></li>
-        <li class="pf pf3"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8027" target="aide">Paiement à<br />l'expédition</a></li>
-        <li class="pf pf4"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8004" target="aide">Livraison gratuite<br />sur les livres</a></li>
-        <li class="pf pf5"><a href="http://www4.fnac.com/Help/Faq.aspx?idQRfaq=2&idHelp=8199" target="aide">Paiement<br />sécurisé</a></li>
-    </ul>
-
-
-<iframe allowtransparency="true" id="iFrameFooter" src="http://www4.fnac.com/Navigation/engagements-pratique-entreprise.aspx" width="993" height="315" frameborder="0" scrolling="no" name="footer" marginheight="0" marginwidth="0"></iframe>
-
-<div id="subfooter">
- <ul class="mrg_t">
-      <li class="first">Nos partenaires jeux vidéo :</li>
-      <li class="first"><a href="http://www.playfrance.com/#bl=Footer" target="_blank" class="min">Jeux PlayStation</a></li>
-      <li><a href="http://www.xboxfrance.com/#bl=Footer" target="_blank" class="min">Jeux Xbox 360</a></li>
-      <li><a href="http://www.wiidsfrance.com/#bl=Footer" target="_blank" class="min">Jeux Wii et DS</a></li>
-      <li><a href="http://www.pcactu.com/#bl=Footer" target="_blank" class="min">Jeux PC</a></li>
-      <li><a href="http://astuce-soluce.playfrance.com/index.php/Accueil#bl=Footer" target="_blank" class="min">Astuces et codes jeux vidéo</a></li>
-    </ul>
-
-    <ul class="mrg_t">
-      <li class="first">Evénements à venir sur fnac.com :</li>
-      
-      <li class="first"><a href="http://www.fnac.com/noel/w-4" class="min">Noël</a></li>
-      <li><a href="http://www.fnac.com/soldes/w-4" class="min">Soldes</a></li>
-      <li><a href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx" class="min">Kobo</a></li>
-    </ul>
+                <dd><span id="FooterWinners" title="Résultats des concours" class="fnac 45CBCBC02D1F1FCCCCCC2B1944494A4219424F4E1FB24F49CB43C2CB1FB846C2CB194AC2C0C51241482EB44F4FCB43C13143C2C348CB4ACBC2B24F49424FC3C1C2 ">Résultats des concours</span></dd>
+            </dl>
+            <dl class="FooterBottomLinks-Col">
+                <dt>&Agrave; la Fnac</dt>
+                
+                <dd><span id="FooterFnacPro" title="Fnac Pro" class="fnac 45CBCBC02D1F1FCCCCCC1944494A42C0C14F19424F4E1F1241482EB44F4FCB43C1B4494A4230C14F ">Fnac Pro</span></dd>
+                
+                <dd><a href="http://www4.fnac.com/Guides/marketplace/vente-et-revente/default.aspx#bl=FooterMarketPlace" title="Fnac Marketplace">Fnac Marketplace</a></dd>
+                
+                <dd><span id="FooterJukebox" target="_blank" title="Fnac Jukebox" class="fnac 45CBCBC02D1F1FCCCCCC1944494A424DC34743414FC519424F4E1F1241482EB44F4FCB43C1B4494A42BDC34743414FC5 ">Fnac Jukebox</span></dd>
+                
+                <dd><a href="http://www.fnac.com/Les-tests-du-LaboFnac/Labo-Fnac/cl220/w-4#bl=FooterLaboFnac" title="Labo Fnac">Labo Fnac</a></dd>
+            </dl>
+        </div>
+        <div class="FooterBottomLast clearfix">
+            <div class="FooterBottomLast-Left">
+                <div class="FooterBottomLast-Land">
+                    <span class="Footer-ico Footer-France graf">Vous êtes sur Fnac.com France</span>
+                    <span id="worldTrigger" class="">France - Changer de Pays</span>
+                    <div id="popinWorld" class="hide">
+                        <ul class="FooterBotom-world">
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.com/#bl=FooterWorldFrance" title="Fnac France" class="FooterBotom-world-link FooterBotom-world-France Footer-ico">Fnac France</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.pt/#bl=FooterWorldPortugal" title="Fnac Portugal" class="FooterBotom-world-link FooterBottom-world-Portugal Footer-ico">Fnac Portugal</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.es/#bl=FooterWorldEspagne" title="Fnac Espagne" class="FooterBotom-world-link FooterBottom-world-Espagne Footer-ico">Fnac Espagne</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href=http://www.fnac.com.br/#bl=FooterWorldBresil title="Fnac Brésil" class="FooterBotom-world-link FooterBottom-world-Bresil Footer-ico">Fnac Brésil</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fr.fnac.be/#bl=FooterWorldBelgiqueFR" title="Fnac Belgique (Français)" class="FooterBotom-world-link FooterBottom-world-Belgique Footer-ico">Fnac Belgique (Français)</a></li>
+                             
+                            <li class="FooterBotom-world-item"><a href=http://www.nl.fnac.be/#bl=FooterWorldBelgiqueNL title="Fnac Belgique (Néerlandais)" class="FooterBotom-world-link FooterBottom-world-Belgique Footer-ico">Fnac Belgique (Néerlandais)</a></li>
+                            
+                            <li class="FooterBotom-world-item"><a href="http://www.fnac.ch/#bl=FooterWorldSuisse" title="Fnac Suisse" class="FooterBotom-world-link FooterBottom-world-Suisse Footer-ico">Fnac Suisse</a></li>
+                            
+                            <li class="FooterBotom-world-item mrg_b_no"><a href="http://www.fnacmaroc.ma/#bl=FooterWorldMaroc" title="Fnac Maroc" class="FooterBotom-world-link FooterBottom-world-Maroc Footer-ico">Fnac Maroc</a></li>
+                        </ul>
+                        <i class="FooterBottomPopinArrow">&nbsp;</i>
+                    </div>
+                    <!-- # script layer popin World -->
+                    <script type="text/javascript">
+                        $(function () {
+                            $("#worldTrigger").popinManager({
+                                targetContent: "#popinWorld",
+                                modeView: "layer",
+                                eventStart: "click",
+                                eventStop: "mouseleave",
+                                customPosition: true,
+                                relativePosition: { left: -25, bottom: -310 }
+                            });
+                        });
+                    </script>
+                </div>
+                <p class="FooterBottomLast-Payment">
+                    <span class="FooterBottomLast-Payment-Ico Footer-ico graf">Payez avec les cartes de paiement Visa, MasterCard, Mastro, Carte Bleue, American Express, eCarte Bleue, Paypal ...</span>
+                    <a class="FooterBottomLast-Payment-Link" href="http://www4.fnac.com/Help/Faq.aspx?idHelp=8022&idQRfaq=2" target="aide" rel="nofollow"  title="plus d'infos sur les moyens de paiement">Plus d'info</a>
+                </p>
+                <ul class="FooterBottomLast-Site puce_no">
+                    <li class="FooterBottomLast-Site-Item">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www4.fnac.com/Navigation/plan.aspx#bl=FooterPlanSite" title="Plan du site">Plan du site</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item">&copy;&nbsp;Fnac 2015</li>
+                    <li class="FooterBottomLast-Site-Item hasHyphenBefore hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://www.playfrance.com/?utm_source=fnac&utm_medium=fichearticle&utm_campaign=pasdecampagne" target="_blank" title="Jeux PlayStation">Jeux PlayStation</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://www.xboxfrance.com/?utm_source=fnac&utm_medium=fichearticle&utm_campaign=pasdecampagne" target="_blank" title="Jeux Xbox 360">Jeux Xbox 360</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://www.wiidsfrance.com/?utm_source=fnac&utm_medium=fichearticle&utm_campaign=pasdecampagne" title="Jeux Wii et DS">Jeux Wii et DS</a>
+                    </li>
+                    <li class="FooterBottomLast-Site-Item hasCommaAfter">
+                        <a class="FooterBottomLast-Site-link" href="http://astuce-soluce.playfrance.com/index.php/Accueil" target="_blank" title="Astuces et codes jeux vidéo">Astuces et codes jeux vidéo</a>
+                    </li>
+                </ul>
+                <dl class="FooterBottomLast-Site">
+                    <dt class="FooterBottomLast-Site-Item">Evènements à venir sur Fnac.com : </dt>
+                    <dd class="FooterBottomLast-Site-Item hasCommaAfter">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www.fnac.com/noel/w-4#bl=FooterNoel" title="Noël">Noël</a>
+                    </dd>
+                    <dd class="FooterBottomLast-Site-Item hasCommaAfter">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www.fnac.com/soldes/w-4#bl=FooterSoldes" title="Soldes">Soldes</a>
+                    </dd>
+                    <dd class="FooterBottomLast-Site-Item">
+                        
+                        <a class="FooterBottomLast-Site-link" href="http://www4.fnac.com/Guides/High-tech/kobo/default.aspx#bl=FooterKobo" title="Kobo">Kobo</a>
+                    </dd>
+                </dl>
+            </div>
+            <div class="FooterBottomLast-Right">
+                <ul class="FooterBottomLast-Awards clearfix">
+                    <li class="FooterBottomLast-Awards-Item FooterBottom-Award-1 Footer-ico graf">FEVAD FAVOR'I 2014 : meilleur site e-commerce - Prix des internautes</li>
+                    <li class="FooterBottomLast-Awards-Item FooterBottom-Award-2 Footer-ico graf">FEVAD FAVOR'I 2014 : meilleur site e-commerce - Prix du jury</li>
+                </ul>
+            </div>
+        </div>
+    </div>
 
-    <ul class="mrg_t">
-      <li class="first">&copy;&nbsp;Fnac 2012</li>
-    </ul>
 </div>
+<script type="text/javascript">
+    $(function () {
+        var $inputMag = $("#city");
+        var inputOriginalValue = $inputMag.val();
+        if (!$inputMag.data("originalValue")) {
+            $inputMag.data("originalValue", inputOriginalValue);
+        }
+        $inputMag
+            .focus(function () {
+                $inputMag.val("");
+            })
+            .focusout(function () {
+                $inputMag.val($inputMag.data("originalValue"));
+            });
+    });
+</script>
 
         
     
 
-
+    
+    <script type="text/javascript">
+        $(document).ready(function () {
+            $("a.popRetourMag").popinManager({ targetContent: "#PopinRetourMag" });
+        });
+    </script>
+    
 </div>
 
 
+<div id='fnac_Bottom'></div>
+<div id='fnac_Bottom1'></div>
+
 
 
 <!-- START IADVIZE LIVECHAT -->
-<script type="text/javascript">
-    var iproto = (("https:" == document.location.protocol) ? "https://" : "http://");
-    var url = 'fnac.livechat.iadvize.com';
-    var sid = '3';
-    document.write(unescape("%3Cscript src='" + iproto +url+"/chat_init.js?sid="+sid+"' type='text/javascript'%3E%3C/script%3E"));
-</script>
+
+
+<script src="http://fnac.livechat.iadvize.com/chat_init.js?sid=3" type="text/javascript"></script>
+
 <!-- END IADVIZE LIVECHAT -->
  
-       
     
-     
 <script type="text/javascript">
     AppCore.ready(function()
     {
         AppCore.start("waitingMgr", {
-            contentContainer: $("#waitingMsg"),
+            contentContainer: $("#waitingMsg2"),
             layerContainer: $("#shadowLayer")
         });
     });
 </script>
+
 <div id="shadowLayer"></div>
-<div id="waitingMsg">
-    <img src="http://www4-fr.fnac-static.com/img/pictos/chrono_anim.gif" alt="Veuillez patienter..." />
+<div id="waitingMsg2">
+    <img src="http://www4-fr.fnac-static.com/img/decos/ajax-loader-FA.gif" alt="Veuillez patienter..." />
     <p>Veuillez patienter...</p>
 </div>
 
 
-    <div id="SimulateurCredit">
+    <div id="PartagerZone">
     <script type="text/javascript">
-    function SimulCreditAjax(codecredit,totalttc,date)
-    {
-        return DirectRenderingWithMsg("WebForm_DoCallback('SimulateurCredit','SIMUL_CREDIT|"+codecredit+"|"+totalttc+"|"+date+"',JSHandlerStructWithMsg,null,null,true)");
-    }
-    </script>
-</div>
-    
-<script type="text/javascript">
-//Deplacement du bloc de telechargement pour les FA numeriques dans la colonne de droite
-var myHash = decodeURIComponent(self.location.hash).toLowerCase();
-var isShowPub = true;
-
-$(document).ready(function() {
-
-if(myHash != undefined && (myHash.indexOf("#format=") != -1 || document.location.href.indexOf("&format=") != -1))
-
-{
-
-        $("a.zoom").hide();
-    
-    
-    $("img#artzoomimg").attr("src", "http://www4-fr.fnac-static.com/img/fr-FR/catalog/noscan_100x125.gif")
-                       .attr("alt", "Millénium 2 - La fille qui rêvait d'un bidon d'essence et d'une allumette");
-                       
-    
-    $("#ebookFormat").html("Roman (ePub). Paru en 10/2011");
-
-    $("#BookAvail").html("Disponibilité immédiate");
-    
-    $("#expressdeliveryinfo").remove();
-
-    
-    var choixFormatEbook = $("#choix_format_ebook").parents(".block:eq(0)");
-    $("#headRightCol").prepend(choixFormatEbook);
-    $("#ajouterAMaSelectionNumerique").show();
-    $("#ajouterAMaSelection").hide();
-
-    var communityHiddenLnk = $("#hiddenLink_1891354");
-    if (communityHiddenLnk.length && communityHiddenLnk.val().indexOf("%23format%3d") < 0)
-        communityHiddenLnk.attr("value", communityHiddenLnk.val() + "%23format%3dePub");
-
-}
-
-else
-{
-    $("#ajouterAMaSelectionNumerique").hide();
-    $("#ajouterAMaSelection").show();
-}
-
-    if(myHash.indexOf("#format=") < 0 && myHash.indexOf("&format=") <0)
-    {
-        if ($("#BannerHomeRight").length)
-        {
-            $("#BannerHomeRight").remove();
-            isShowPub = false;
-        }
-    }
-
-
-    if (isShowPub)
-    {
-
-        $("#editorialLayout").addClass("withPub300x250");
-
-        $("#BannerHomeRight").removeClass("hide");
-    }
-});
-</script>
-
+        function Share(str, prid, isShowSendMail)
+        {
+            //Opens popin defined in socialnetworks.js.
+            AppCore.modules.socialNetworks.openSharePopin(AppCore.$("#" + str), isShowSendMail);
+            $('#snResultMessage').html('Votre message a bien été envoyé');
+        }
+    </script>
+    </div>
     
 <div style="display:none;">
 
 </div>
 <script type="text/javascript">
-    
-    function dataArticleCallBackFunction(s)
-    {
-        // USE s.getQueryParam function in order to support ? and  #    
-        var fromParam = s.getQueryParam('from');
-        var catParam = s.getQueryParam('cat');
-        var midParam = s.getQueryParam('mid');
-        var frParam = s.getQueryParam('fr');
-       
-        var sPageOriginClick =  pageOriginClick(fromParam, frParam);
-        if(sPageOriginClick != "Moteur")
-        {
-            s.eVar2 = sPageOriginClick;
-        }        
-        s.prop34 = sPageOriginClick;
 
-        if(midParam)
-        {
-             s.eVar36 = midParam;
+    function trackActionNewFARef(isMP, action, id, price) {
+        if (isMP) {
+            trackActionNewFA(action, "MP-" + id, price);
+        } else {
+            trackActionNewFA(action, id, price);
         }
-        
-        if(fromParam)
-        {
-            // Tracking Bloc Accessoires
-            if(catParam && fromParam == 203)
-            {
-                s.eVar37 = catParam;
-            }
-            //Tracking Bloc Fnac Pack
-            if(fromParam == 204)
-            {
-                s.eVar2 = "Block Pack Fnac :FA";
-            }
-            //Tracking Bloc Article similaires
-            if(fromParam == 205)
-            {
-                s.eVar2 = "Block Articles Similaires :FA";
-            }
-        }          
     }
-
-    
-    function trackAction(action, id, price)
+       
+    function trackActionNewFA(action, id, price)
     {
-
         
             var s=s_gi(s_account);
             
@@ -5654,7 +7126,6 @@ else
 
             var midParam = s.getQueryParam('mid');
             
-            s.eVar2 = "";
             s.eVar6 = "";
             s.products = "";
             s.events = "";
@@ -5668,146 +7139,521 @@ else
             switch (action)
             {
                 case "Ecoute":
-                    s.linkTrackVars='prop17';
-                    s.prop17 = 'FA: Top Ecoute';
+                    s.linkTrackVars='events,products';
+                    s.linkTrackEvents='event26';
+                    s.events='event26';
+                    s.products = ';' + id;
+                    s.tl(this,'o','Ajout Panier');
+                    break;
+                case "PlayerAddDemat":
+                    s.linkTrackVars='events,products,eVar6,eVar17,eVar19';
+                    s.linkTrackEvents='scAdd';
+                    s.events='scAdd';
+                    s.eVar6='FA: Ecoute Audio: Ajout au panier';
+                    s.eVar17="Achat Standard";
+                    s.eVar19='Non applicable';
+                    s.products = ';' + id;
+                    s.tl(this,'o','Ajout Panier');
                     break;
                 case "Show":
                     s.linkTrackVars='prop17';
                     s.prop17 = 'FA: Spectacles';
                     break;
-                case "IHave":
-                    s.linkTrackVars='prop17';
-                    s.prop17 = "FA: My Fnac: je l'ai";
-                    break;
-                case "NotInterest":
-                    s.linkTrackVars='prop17';
-                    s.prop17 = 'FA: My Fnac: pas interessé';
-                    break;
                 case "ViewScreenShot":
-                    s.linkTrackVars='prop17';
+                    s.linkTrackVars='products,prop17';
                     s.prop17 = "Captures d'écran";
+                    s.products = ';' + id;
                     break;
                 case "Labo":
-                    s.linkTrackVars='prop17';
+                    s.linkTrackVars='products,prop17';
                     s.prop17 = "FA PT: Labo Fnac";
-                    break;
-                case "PlayerPE":
-                    s.linkTrackVars='prop17';
-                    s.prop17 = "FA PE: Player Video";
-                    break;
-                case "PlayerPT":
-                    s.linkTrackVars='prop17';
-                    s.prop17 = "FA PT: Player Video";
+                    s.products = ';' + id;
                     break;
                 case "Avis":
-                    s.linkTrackVars='prop17';
+                    s.linkTrackVars='products,prop17';
                     s.prop17 = "FA : Avis des internautes";
+                    s.products = ';' + id;
+                    break;
+                case "ZoomFA":
+                    s.linkTrackVars='events,products,eVar25';
+                    s.linkTrackEvents='event4';
+                    s.events='event4';
+                    s.eVar25 = "FA: Zoom article";
+                    s.products = ';' + id;
+                    s.tl(this,'o','Zoom FA');
+                    break;
+                case "AddSelection":
+                    s.linkTrackVars='events,products';
+                    s.linkTrackEvents='event3';
+                    s.events='event3';
+                    s.products = ';' + id;
+                    s.tl(this,'o','Ajout liste');
                     break;
-                case "AddAcc":
-                    var prid = id;
-                    var title = "";
-                    if(prid.indexOf("|") != -1){
-                        var args = id.split("|");
-                        if(args.length == 2){
-                            var prid = args[0];
-                            var title = args[1];
-                         }
+                case "PopinCredit":
+                    s.linkTrackVars='events,products,eVar25';
+                    s.linkTrackEvents='event4';
+                    s.events='event4';
+                    s.eVar25 = "FA: Demande financement";
+                    s.products = ';' + id;
+                    s.tl(this,'o','Demande Credit');
+                    break;
+                case "StoreReclaimPopin":
+                    s.linkTrackVars='events,products,eVar6,eVar17,eVar19,eVar25';
+                    s.linkTrackEvents='scAdd,event4';
+                    s.events='scAdd,event4';
+                    if (parseInt(price) == 1)
+                    {
+                        s.eVar6='FA: BuyBox: Retrait Magasin';
+                    }
+                     else if (parseInt(price) == 2)
+                    {
+                        s.eVar6='FA: Pop in Zoom: Retrait Magasin';
                     }
-                    s.linkTrackVars='prop17,eVar2,eVar6,products,events,eVar36';
-                    s.linkTrackEvents='scAdd, event13';
-                    s.eVar2 = "Block Accesoires: FA";
-                    s.eVar6 = "Fiche Produit PT : Accessoires";
-                    s.products = ";" + prid;
-                    s.products += ";;;event12=" + price + ";evar7=Fnac|evar8=Fcom|evar9=1"
-
-                    s.events = "scAdd, event13";
-                    s.eVar36 = prid;
-                    s.evar37 = unescape(title);
+                    s.eVar17="Achat Standard";
+                    s.eVar19='Non applicable';
+                    s.eVar25="FA: Selection magasin";
+                    s.products = ';' + id;
+                    s.tl(this,'o','Ajout Panier');
                     break;
-                case "AddDemat":
-                        var prid = id;
-                    var title = "";
-                    if(prid.indexOf("|") != -1){
-                        var args = id.split("|");
-                        if(args.length == 2){
-                            var prid = args[0];
-                            var title = args[1];
-                         }
+                case "StoreReclaimLink":
+                    s.linkTrackVars='events,products,eVar6,eVar17,eVar19';
+                    s.linkTrackEvents='scAdd';
+                    s.events='scAdd';
+                    if (parseInt(price) == 1)
+                    {
+                        s.eVar6='FA: BuyBox: Retrait Magasin';
+                    }
+                     else if (parseInt(price) == 2)
+                    {
+                        s.eVar6='FA: Pop in Zoom: Retrait Magasin';
                     }
-                    s.linkTrackVars='prop17,eVar2,eVar6,products,events,eVar36';
-                    s.linkTrackEvents='scAdd, event12,scView';
-                    s.products = ";" + prid;
-                    s.products += ";;;event12=" + price + ";evar7=Fnac|evar8=Demat|evar9=1"
-                    s.events = "scAdd,scView, event12";
-                    s.eVar36 = prid;
-                    s.evar37 = unescape(title);
+                    s.eVar17="Achat Standard";
+                    s.eVar19='Non applicable';
+                    s.products = ';' + id;
+                    s.tl(this,'o','Ajout Panier');
+                    break;
+                case "CrossSell":
+                    s.linkTrackVars='eVar2';
+                    s.eVar2="cross-sell"
+                    s.tl(this,'o','Acces Produit cross sell');
+                    break;
+                case "Comparator":
+                    s.linkTrackVars='events,products';
+                    s.linkTrackEvents='event6';
+                    s.events='event6';
+                    s.products = ';' + id;
+                    s.tl(this,'o','Ajout comparateur');
                     break;
             }
-            s.t();
             s.linkTrackVars='';
         
+    }
+
+    function trackAddToBasketNewFA(itemId, caller, index) {
+        return trackAddToBasketNewFA(itemId, caller, index, 1);
+    }
+    function trackAddToBasketNewFA(itemId, caller, index, referentialid)
+    {
+        return trackAddToBasketNewFA(itemId, caller, index, referentialid, 'trial');
+    }
+
+    function trackAddToBasketNewFA(itemId, caller, index, referentialid, typeabonnement)
+    {
+        // Caller:
+        // 1 : Main FA BuyBox
+        // 2 : Choice Box
+        // 3 : Popin Zoom
+        // 4 : Produit indispensable
+        // 5 : Accessoires
+        // 6 : Pack Fnac
+        // 7 : OthersFormat
+        // 8 : Panier flottant Recommandations
+        // 9 : PT Garanties
+        // 10 : PT Services
+        // 11 : PT Produits similaires
+        // 12 : PE egalement achetés
+        // 13 : Popin Credit
+        // 14 : PE autour de
+        // 15 : PE Produits dérivés
+        // 16 : PE JV bloc Avec
+        // 17 : Ajout BuyBox Fnac
+        // 18 : Ajout buyBox With Express+
+        // 19 : Popin Livraison Ajout Express+
+        
+            if (parseInt(caller) > 0)
+            {
+                var s=s_gi(s_account);
+            
+                //Start Re-built standard query string in the url
+                var urlTmp=window.location.href;
+                if(urlTmp.indexOf('#',0)>0){
+                    s.pageURL=urlTmp.substring(0,urlTmp.indexOf('#',0))+"&"+urlTmp.substring(urlTmp.indexOf('#',0)+1,urlTmp.length);
+                    if(s.pageURL.indexOf('?',0)==-1) {
+                        s.pageURL=s.pageURL.substring(0,s.pageURL.indexOf('&',0))+"?"+s.pageURL.substring(s.pageURL.indexOf('&',0)+1,s.pageURL.length);
+                    }
+                }else s.pageURL=urlTmp;
+
+                var midParam = s.getQueryParam('mid');
+            
+                s.eVar6 = "";
+                s.products = "";
+                s.events = "";
+                s.prop17 = "";
+               
+                if(midParam)
+                    s.eVar36 = midParam;
+                else
+                    s.eVar36 = "";
+                if (referentialid && referentialid == 3) {
+                    itemId = "MP-" + itemId;
+                }
+                s.linkTrackVars = 'events,products,eVar2,eVar6,eVar17,eVar19,eVar56,eVar57';
+                s.linkTrackEvents='scAdd';
+                s.events='scAdd';
+                s.eVar17 = "Achat Standard";
+                s.eVar56 = s.prop56 = 'Non Abonne Express';
+                s.eVar57 = '';
+                s.products = ';' + itemId;
+                       
+                switch (parseInt(caller))
+                {
+                    case 1:
+                        s.eVar6='FA: BuyBox: Ajout Panier';
+                        s.eVar19='Non applicable';
+                        break;
+                    case 2:
+                        s.eVar6='FA: ChoiceBox: Ajout Panier';
+                        s.eVar19 = index;
+                        break;
+                    case 3:
+                        s.eVar6='FA: Pop in Zoom: Ajout Panier';
+                        s.eVar19='Non applicable';
+                        break;
+                    case 4:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: Produit indispensable: Ajout Panier';
+                        s.eVar19='Non applicable';
+                        break;
+                    case 5:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: Bloc Accessoires: Ajout Panier';
+                        s.eVar19 = index;
+                        break;
+                    case 6:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: Pack Fnac: Ajout Panier';
+                        s.eVar19 = index;
+                        break;
+                    case 7:
+                        s.eVar6='FA: Autres Formats: Ajout Panier';
+                        s.eVar19='Non applicable';
+                        break;
+                    case 8:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="upsell";
+                        s.eVar6 = 'Panier Flottant: Recommandations: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 9:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: GARANTIES: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 10:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: SERVICES: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 11:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: PDTS SIMILAIRES: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 12:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: EGALEMENT: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 13:
+                        s.eVar6='FA: Pop in Credit: Ajout Panier';
+                        s.eVar19='Non applicable';
+                        break;
+                    case 14:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: AUTOUR: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 15:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: PDTS DERIVES: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 16:
+                        s.linkTrackVars += ',eVar2';
+                        s.eVar2="cross-sell";
+                        s.eVar6='FA: JV AVEC: Ajout au panier';
+                        s.eVar19 = index;
+                        break;
+                    case 17:
+                        s.linkTrackVars += ',scAdd';
+                        s.eVar6 = 'FA: Vendeur Fnac: Ajout Panier';
+                        s.eVar19 = 'Non applicable';
+                        break;
+                    case 18:
+                        s.linkTrackVars += ',scAdd';
+                        s.linkTrackEvents = 'scAdd,event51';
+                        s.events = 'scAdd,event51';
+                        s.eVar6 = 'FA: BuyBox: Ajout panier Express+';
+                        s.eVar19 = index;
+                        if (typeabonnement == 'trial') {
+                            s.eVar57 = 'Abonnement Express Essai';
+                        } else {
+                            s.eVar57 = 'Abonnement Express Payant';
+                        }
+                        break;
+                    case 19:
+                        s.linkTrackVars += ',scAdd';
+                        s.linkTrackEvents = 'event51';
+                        s.events = 'event51';
+                        s.eVar6 = 'FA: Popin Livraison: Ajout panier Express+';
+                        s.eVar19 = 'Non applicable';
+                        if (typeabonnement == 'trial') {
+                            s.eVar57 = 'Abonnement Express Essai';
+                        } else {
+                            s.eVar57 = 'Abonnement Express Payant';
+                        }
+                        break;
+                }
+
+                
+                if (caller ==18)
+                    s.tl(this, 'o', 'Ajout Panier avec abonnement express');
+                else if (caller == 19)
+                    s.tl(this, 'o', 'Ajout Panier abonnement express');
+                else
+                    s.tl(this, 'o', 'Ajout Panier');
+
+                s.linkTrackVars='';
+            }
+        
     }
     // -->
     function trackAlertingAction(ItemId, AlertingType, AlertingCount, DropType, ContributorName)
     {
         
             var s=s_gi(s_account);
-            s.linkTrackVars='events,prop35,eVar15'; //Uniquement si la prop35 est declare plus bas
-            s.linkTrackEvents='event29';
-            s.events='event29';
             switch (parseInt(AlertingType))
             {
                 case 1 :
-                    s.prop35 = ContributorName ;
+                    s.linkTrackVars='events,eVar15,eVar22';
+                    s.linkTrackEvents='event29';
+                    s.events='event29';
+                    s.eVar22 = 'PARTICIPANT: ' + ContributorName;
                     s.eVar15 = 'Nouveauté';
+                    s.tl(this,'o','Alerte nouveautés');
                     break;
                 case 2:
+                    s.linkTrackVars='events,prop35,eVar15'; 
+                    s.linkTrackEvents='event29';
+                    s.events='event29';
                     s.prop35 = 'Fiche Article';
                     s.products = ItemId;
                     s.eVar15 = 'Produit Disponible'
+                    s.tl(this,'o','Alerte');
                     break;
                 case 4:
-                    s.prop35 = 'Fiche Article';
-                    s.products = ItemId;
+                    s.linkTrackVars='events,products,eVar15,eVar22'; 
+                    s.linkTrackEvents='event29';
+                    s.events='event29';
+                    s.products = ';' + ItemId;
+                    s.eVar22 = 'PID:'+s.products
                     if(DropType == 0){
                         s.eVar15 = 'Baisse Prix';
+                        s.tl(this,'o','Alerte baisse de prix');
                     }
                     if(DropType == 1){
                         s.eVar15 = 'Limite Prix';
+                        s.tl(this,'o','Alerte limite de prix');
                     }
                     break;
             }
-            s.tl(this,'o','Alerte');
         
     }
     
-    function tracklink(id, price)
+    function tracklink(id, price, ocbMode)
     {
         
             var s=s_gi(s_account);
+
+            s.linkTrackVars='events,products,eVar6,eVar17,eVar19';
+            s.linkTrackEvents='scAdd';
+            s.events='scAdd';
+            s.eVar17="Achat Immediat";
+            switch (parseInt(ocbMode))
+            {
+                case 1:
+                    s.eVar6='FA: BuyBox: Achat Immediat';
+                    break;
+                case 2:
+                    s.eVar6='FA: Pop in Zoom: Achat Immediat';
+                    break;
+            }
             
-            
-            s.eVar2 = "";
-            s.eVar6 = "";
-            s.products = "";
-            s.events = "";
-            s.prop17 = "";
-            s.linkTrackVars="products,events,eVar6,eVar7,eVar8,eVar9";
-            s.linkTrackEvents="event12";       
-            s.eVar6="FA:Buy Box:Achat Rapide"; 
-            s.events="scAdd, scOpen, event12"
-            s.products = ";" + id;
-            s.products += ";;;event12=" + price + ";evar7=Fnac|evar8=Fcom|evar9=1";
-            s.tl(this,'o','Achat Rapide');
+            s.eVar19='Non applicable';
+            s.products = ';' + id;
+            s.tl(this,'o','Ajout Panier');
+
+         
+    }
+
+    function trackPackFnacOCB(id, index)
+    {
+        
+            var s=s_gi(s_account);
+
+            s.linkTrackVars='events,products,eVar6,eVar2,eVar17,eVar19';
+            s.linkTrackEvents='scAdd';
+            s.events='scAdd';
+            s.eVar2="cross-sell";
+            s.eVar6='FA: Pack Fnac: Achat Immediat';
+            s.eVar17="Achat Immediat";
+            s.eVar19 = index;
+            s.products = ';' + id;
+            s.tl(this,'o','Ajout Panier');
+
+         
+    }
+
+    function trackStoreLocator(keyWord, nbResult)
+    {
+        
+            var s=s_gi(s_account);
+
+            s.linkTrackVars='events,eVar26,eVar27,eVar28';
+            s.linkTrackEvents='event5';
+            s.events='event5';
+            s.eVar26=keyWord.toLowerCase();
+            if (parseInt(nbResult) == 0)
+            {
+                s.eVar27='zero';
+            }
+            else
+            {
+                s.eVar27=nbResult;
+            }
+            s.eVar28 = s.pagename;
+            s.tl(this,'o','Store Locator');
+
+         
+    }
+
+    function trackStoreLocatorFavAndNearest()
+    {
+        
+            var s=s_gi(s_account);
 
+            s.linkTrackVars='events,eVar26,eVar27,eVar28';
+            s.linkTrackEvents='event5';
+            s.events='event5';
+            s.eVar26 = 'Non applicable';
+            s.eVar27 = 'Non applicable';
+            s.eVar28 = s.pagename;
+            s.tl(this,'o','Store Locator');
          
     }
 
+    function trackRSE() {
+        
+         var s = s_gi(s_account);
+         s.linkTrackVars = 'events,products,eVar25';
+         s.linkTrackEvents = 'event4';
+         s.events = 'event4';
+         s.eVar25 = "FA: Note environnementale";
+         s.products = ';1891354';
+            s.tl(this, 'o', 'Note Environnementale FA');
+        
+    }
+
+    function trackAddToWishlist() {
+        //
+        var s = s_gi(s_account);
+        s.linkTrackVars='events,products';
+        s.linkTrackEvents = 'event89';
+        s.events = 'event89';
+        s.products = ';1891354';
+        s.tl(this, 'o', 'Ajout a liste de noel');
+        //
+    }
+
+    function trackOpenShippingInfo() {
+        
+        var s = s_gi(s_account);
+        s.linkTrackVars = 'events,eVar25';
+        s.linkTrackEvents = 'event4';
+        s.events = 'event4';
+        s.eVar25 = 'FA: Popin Livraison';
+        s.tl(this, 'o', 'Affichage popin Livraison');
+        
+    }
+
+</script>
+
+
+<script type="text/javascript">
+    var DataAutoCompleteCallback = function () {
+        if (location.hash.length > 0) {
+            var hashVarObj = {};
+            var cptsa = 0;
+            var hashArr = location.hash.replace("#", "").split("&");
+            for (var i = 0; i < hashArr.length; i++) {
+                var t = hashArr[i].split("=");
+
+                if (t.length == 2) {
+                    var temp = "" + t[0];
+                    if (temp == "st" || temp == "ct" || temp == "t") {
+                        hashVarObj[temp] = decodeURIComponent(t[1]);
+                        cptsa = cptsa + 1;
+                    }
+                }
+            }
+            if (hashVarObj != null && cptsa == 3) {
+                s.prop10 = hashVarObj.st;  
+                s.prop13 = hashVarObj.cat; 
+                s.eVar2 = "search";
+                s.eVar10 = hashVarObj.st; 
+                s.eVar13 = "D=c13"; 
+                s.eVar42 = "D=v2";
+                if (hashVarObj.t == 'c') {
+                    s.eVar71 = "autocompletion:categorie";
+                }
+                else {
+                    s.linkTrackVars = 'eVar2';
+                    s.eVar71 = "autocompletion:produit";
+                    s.events = "prodView,event2";
+                }
+                
+            }
+        }
+    }
 </script>
 
 
 
 <script type="text/javascript">
+    
+    var s_account = 'fnaccomprod';
+    var s_trackingServer = 'metrics.fnac.com';
+    var s_trackingServerSecure = 'smetrics.fnac.com';
+    
     function pageOriginClick(from, fr)
     {
         var iPageOriginClickToBasketType = 0;
@@ -5892,6 +7738,13 @@ else
                 case "119":
                     Omniture_pageOriginClikToBasket = "Page Label: Mini-FA";
                     break;
+                case "122":
+                    Omniture_pageOriginClikToBasket = "Fiche Serie";
+                    break;
+                case "123":
+                    Omniture_pageOriginClikToBasket = "Panier Flottant : Recommandations";
+                    break;
+                    
             }
         }
         else
@@ -5928,14 +7781,76 @@ else
 
 	function trackBasket(articlePrid, From)
     {
-            var s=s_gi('fnaccomprod');
-            s.linkTrackVars='events,products,eVar6';
-            s.linkTrackEvents='scAdd'
-            s.events = 'scAdd'
-            s.eVar6 = pageOriginClick(From);
-            s.products = ';' + articlePrid
-            s.tl(this, 'o', 'Ajout Panier');
-    }
+	    var s=s_gi(s_account);
+	    var originClick = TrackBasketOverridedOriginClick(From);
+	    if(originClick.length == 0 && s.prop40.length > 0)
+	        originClick = s.prop40.toUpperCase() ;
+	    s.linkTrackVars='events,products,eVar2,eVar6,eVar17,eVar19';
+        s.linkTrackEvents='scAdd';
+        s.events = 'scAdd';
+        if(originClick.match(/Panier Flottant/))
+        {
+            s.eVar2="upsell";
+        }
+        if(!originClick.match(/BuyBox/) && !originClick.match(/Panier Flottant/))
+            originClick = originClick + ": BuyBox";
+        s.eVar6 = originClick + ": Ajout Panier";
+        s.eVar17="Achat Standard";
+        s.eVar19="Non applicable";
+        s.products = ';' + articlePrid;
+        s.tl(this, 'o', 'Ajout Panier');
+	}
+
+	function trackBasket(articlePrid, From, position)
+	{
+	    var s=s_gi(s_account);
+	    var originClick = TrackBasketOverridedOriginClick(From);
+	    if(originClick.length == 0 && s.prop40.length > 0)
+	        originClick = s.prop40.toUpperCase();
+	    s.linkTrackVars='events,products,eVar2,eVar6,eVar17,eVar19';
+	    s.linkTrackEvents='scAdd';
+	    s.events = 'scAdd';
+	    if(originClick.match(/Panier Flottant/))
+	    {
+	        s.eVar2="upsell";
+	    }
+	    if(!originClick.match(/BuyBox/) && !originClick.match(/Panier Flottant/))
+	        originClick = originClick + ": BuyBox";
+	    s.eVar6 = originClick + ": Ajout Panier";
+	    s.eVar17="Achat Standard";
+	    if(position === undefined || position == null || position.length <= 0)
+	        s.eVar19="Non applicable"; 
+	    else
+	        s.eVar19=position;    
+	    s.products = ';' + articlePrid;
+	    s.tl(this, 'o', 'Ajout Panier');
+	}
+
+	function TrackBasketOverridedOriginClick(From)
+	{
+	    var originClick = pageOriginClick(From);
+	    if(originClick=="Moteur")
+	        originClick = "";
+	    if(originClick=="FI:Mini-FA")
+	        originClick = "Fiche Itervenant:";
+	    return originClick;
+	}
+
+	function getParamFromQueryString(p)
+	{
+	    var urlTmp=window.location.href;
+	    var normalizedUrl = "";
+	    if(urlTmp.indexOf('#',0)>0){
+	        normalizedUrl=urlTmp.substring(0,urlTmp.indexOf('#',0))+"&"+urlTmp.substring(urlTmp.indexOf('#',0)+1,urlTmp.length);
+	        if(normalizedUrl.indexOf('?',0)==-1) {
+	            normalizedUrl=s.pageURL.substring(0,s.pageURL.indexOf('&',0))+"?"+s.pageURL.substring(s.pageURL.indexOf('&',0)+1,s.pageURL.length);
+	        }
+	    }else normalizedUrl=urlTmp;
+
+	    var re = new RegExp(".*[?&]" + p + "=([^&]+)(&|$)");
+	    var match = urlTmp.match(re);
+	    return(match ? match[1] : "");
+	}
 
 </script>
 
@@ -5946,21 +7861,17 @@ else
 Copyright 1997-2006 Omniture, Inc. More info available at
 http://www.omniture.com -->
 
-<script type="text/javascript" >
-    var s_account = 'fnaccomprod';
-    var s_trackingServer = 'metrics.fnac.com';
-    var s_trackingServerSecure = 'smetrics.fnac.com';
-</script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/s_code.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/js/HSLMFhFFu9sA9-EXMJqzcCcmvvg1/js/s_code.js"></script>
 <script type="text/javascript"><!--
 
 /* You may give each page an identifying name, server, and channel on
 the next lines. */
 s.charSet="UTF-8";
 s.pageName="FA:LIV:Fiche Article"
-s.server="FCSWEBFARM3"
+s.server="FCS1WPFWEBFR4"
 s.channel="Produits"
 s.pageType=""
+s.prop56="Non Abonne Express"
 s.prop1="Livre"
 s.prop40="Fiche Article"
 s.prop49="FA:LIV:La fille qui rêvait d'un bidon d'essence et d'une allumette"
@@ -5975,7 +7886,7 @@ s.events="prodView,event2,event10,event20"
 s.products=";1891354"
 s.purchaseID=""
 s.eVar1=""
-s.eVar2="browse"
+s.eVar2=""
 s.eVar3="1"
 s.eVar4=""
 s.eVar5=""
@@ -5986,22 +7897,30 @@ s.eVar37=""
 s.eVar12=""
 s.eVar15=""
 s.eVar17=""
+s.eVar19=""
 s.prop8=""
 
+s.eVar54=""
+s.eVar56="Non Abonne Express"
+s.eVar57=""
+
+
+
+
+    mboxLoadSCPlugin(s);
 
 /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
     
 
-    if (dataArticleCallBackFunction)
+    if (DataAutoCompleteCallback)
     {
-        dataArticleCallBackFunction(s);
+        DataAutoCompleteCallback(s);
     }
     
     
     var s_code=s.t();
     if(s_code)document.write(s_code)
 
-
 //--></script>
 <script language="JavaScript"><!--
 if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
@@ -6010,10 +7929,13 @@ if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+
 </div>
 
 
-    <script src="http://www4-fr.fnac-static.com/js/AUDIOPLAYER.jsg" type="text/javascript"></script><script src="http://www4-fr.fnac-static.com/js/BASKET.jsg" type="text/javascript"></script><script src="http://www4-fr.fnac-static.com/js/FOOTER.jsg" type="text/javascript"></script><script src="http://www4-fr.fnac-static.com/js/FA.jsg" type="text/javascript"></script>
     
+    
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/Cnloo63PeRtEicnRFqkJXCWMfSk1/FOOTER2.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/jPbMvZcvLllF8Y1HCLeAKr8Z1go1/AUDIOPLAYER.js"></script>
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/jsg/XlICVoFrdPwO7iJUb74N2O8KPLU1/BASKET.js"></script>
 
-
+    
 
 <div style="display:none;">
 
@@ -6028,17 +7950,27 @@ if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+
      // Structure et arborescence
      tc_vars["template_type"] = "fiches";
      tc_vars["template_name"] = "13_fiches_fiche_article_pe";
-     tc_vars["arbo_niv1"] = "livre";
-     tc_vars["arbo_niv2"] = ":fiche article";
+     tc_vars["arbo_niv1"] = "Livre";
+     tc_vars["arbo_niv2"] = ":Fiche Article";
      tc_vars["arbo_niv3"] = "";
      tc_vars["arbo_niv4"] = "";
      tc_vars["arbo_niv5"] = "";
      tc_vars["arbo_niv6"] = "";
-     tc_vars["page_name"] = "fa:liv:fiche article";
+     tc_vars["page_name"] = "FA:LIV:Fiche Article";
 
-            // Adhérent
+     tc_vars["env_language"] = "fr-FR";
+     tc_vars["env_country"] = "FR";
+     
+     // Adhérent
      tc_vars["user_id"] =  "";
      tc_vars["user_segment"] = "Non-Adherent";
+     tc_vars["user_age"] = "";
+     tc_vars["user_gender"] = "";
+     tc_vars["user_subscription_date"] = "";
+     tc_vars["user_subscription_newsletter"] = "";
+     tc_vars["express_plus"] = "";
+     tc_vars["eligibility_ express_plus_trial"] = "";
+     tc_vars["user_segment_type"] = "";
 
      tc_vars["search_kw"] = "";
      tc_vars["search_nb_results"] = "";
@@ -6049,154 +7981,105 @@ if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+
      tc_vars["search_type"] = "";
 
      // Produit
-     tc_vars["product_name"] = "la fille qui rêvait d\'un bidon d\'essence et d\'une allumette";
+     tc_vars["product_name"] = "La fille qui rêvait d\u0027un bidon d\u0027essence et d\u0027une allumette";
      tc_vars["product_id"] = "1891354";
      tc_vars["product_ref"] = "1";
      tc_vars["product_ref_id"] = "1-1891354";
      tc_vars["product_stock"] = "yes";
-     tc_vars["product_category"] = "fcom";
-     tc_vars["product_vendor"] = "fnac";
-
+     tc_vars["product_category"] = "Fcom";
+     tc_vars["product_vendor"] = "Fnac";
+     tc_vars["product_unitprice_ati"] = "23.40";
+     tc_vars["product_discount_ati"] = "23.40";
+     tc_vars["product_unitprice_tf"] = "22.18";
+     tc_vars["product_discount_tf"] = "22.18";
+     tc_vars["product_currency"] = "EUR";
+     tc_vars["product_trademark"] = "";
+     tc_vars["product_url_page"] = "http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson";
+     tc_vars["product_picture_url"] = "http://static.fnac-static.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif";
+     tc_vars["product_isbundle"] = "no";
+     tc_vars["product_breadcrumb_id"] = "11001";
+     tc_vars["product_rating"] = "4";
+     
+     //OrderPipe
+     tc_vars["cart_id"] = "";
      tc_vars["order_id"] = "";
      tc_vars["orderUserRefs"] = "";
-     tc_vars["cart_id"] = "";
      tc_vars["order_amount"] = "";
-     tc_vars["order_pay_method"] = "";
      tc_vars["order_amount_ati"] = "";
      tc_vars["order_amount_wt"] = "";
+     tc_vars["order_amount_ati_with_sf"] = "";
+     tc_vars["order_amount_tf_with_sf"] = "";
+     tc_vars["order_currency"] = "";
+     tc_vars["order_pay_method"] = "";
      tc_vars["order_new_client"] = "";
-     tc_vars["order_promo_code"] = "";
      tc_vars["order_nb_products"] = "0";
-     tc_vars["order_zip"] = "";
+     tc_vars["order_promo_code"] = "";
      tc_vars["order_state"] = "";
+     tc_vars["order_shipping_method"] = "";
+     tc_vars["order_ship_ati"] = "";
+     tc_vars["order_ship_tf"] = "";
+     tc_vars["order_tax"] = "";
+     tc_vars["order_zip"] = "";
      
      // Products
      tc_vars["order_products"] = [];
-          
+       
+         
 
+	 //Nav
+     tc_vars["nav_typvt"] = "1";
+     tc_vars["nav_support"] = "1";
+     tc_vars["product_unitpricemp"] = "";
+     tc_vars["product_unitprice"] = "23,40";
+     tc_vars["product_unitprice_discount"] = "23,40";
+     tc_vars["product_offrebuybox"] = "2";
+     tc_vars["product_pricemode"] = "1";
+     tc_vars["product_availabilitype"] = "3";
+     tc_vars["product_productflagchoosebox"] = "1";
+     tc_vars["product_availability"] = "99";
+     tc_vars["nav_ip"] = "178.16.171.35";
+     tc_vars["nav_origine"] = "";
+     tc_vars["nav_objectid"] = "1891354";
+     tc_vars["nav_pathid"] = "1";
+     tc_vars["user_auth"] = "0";
+
+     // Search
+     tc_vars["list_products"] = [];
+     
  </script>
 
-<!-- TAGCOMMANDER START //-->
 
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/tc_Fnaccom_1_load.js"></script>
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/tc_Fnaccom_1_exec.js"></script>
+ 
+<script type="text/javascript" src="http://www4-fr.fnac-static.com/static/tc/e--m-HLsIwWC8w1r-OVEDWikP1s1/load_exec.1.D.js"></script>
+
+
+
+
 <noscript>
     
    <iframe src="http://redirect28.tagcommander.com/utils/noscript.php?id=1&mode=iframe&template_type=fiches&page_name=FA%3aLIV%3aFiche+Article" width="1" height="1"></iframe>
 </noscript>
 
 <!-- TAGCOMMANDER END //-->
-    
-<script type="text/javascript" src="http://www4-fr.fnac-static.com/js/criteo_ld.js"></script>
-<script type="text/javascript">
-    document.write('<div id=\"cto_se_7708898_ac\" style=\"display:none\">');
-    document.write('<div class=\"ctoWidgetServer\">http:\/\/fnac.widget.criteo.com\/pdf\/<\/div>');
-    document.write('<div class=\"ctoDataType\">sendEvent<\/div>');
-    document.write('<div class=\"ctoParams\">wi=7708898&pt1=2&i=1891354<\/div>');
-    document.write('<\/div>');
-</script>
-    
-    <div id="PartagerZone">
-    <script type="text/javascript">
-        AppCore.ready(function()
-        {
-            var args = {
-                sendMailContainer: "#sendMail",
-                mailFieldsContainer: "#SendMailZone",
-                mailFieldsToReset: "input[id^=FriendEmail], input[id^=FriendName], #Message",
-                htmlEmbedContainer: "#htmlEmbed",
-                sendResult: "#snResultMessage",
-                popinCloseButton: "#fermer",
-                
-                clickEvents: { 
-                        showSendMail: "#openSendMail",
-                        sendMail: "#sendMailButton"
-                        
-                 }
-            };
-            AppCore.start("socialNetworks", args);
-		                 
-			        });
-        //Opens share Popin + send mail fields.
-    
 
-        function Share(str, prid, isShowSendMail)
-        {
-            //Opens popin defined in socialnetworks.js.
-            AppCore.modules.socialNetworks.openSharePopin(AppCore.$("#" + str), isShowSendMail);
-            $('#snResultMessage').html('Votre message a bien été envoyé');
-        }
-    </script>
-    </div>
-    
 
-<div itemscope itemtype="http://data-vocabulary.org/Product">
-    <span itemprop="category" content="broché"/>
-</div>
+     
+    
 
 
- 
-<div itemscope itemtype="http://schema.org/Product">
-    
-    <span itemprop="name"           content="Millénium, T2" />
-    <span itemprop="image"          content="http://multimedia.fnac.com/multimedia/FR/images_produits/FR/Fnac.com/Grandes110/0/1/0/9782742765010.gif" />
-    <span itemprop="url"            content="http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson" />
-    <span itemprop="description"    content="Tandis que Lisbeth Salander coule des journées supposées tranquilles aux Caraïbes, Mikael Blomkvist, réhabilité, victorieux, est prêt à lancer un numéro spécial de Millenium sur un thème brûlant pour des gens haut placés : une sombre histoire de pros..." />
 
-    
-    
-    
-        <span itemprop="productID"  content="9782742765010" />
-     
-                <span itemprop="manufacturer" content="Actes sud" />
-    
-     <span itemprop="aggregateRating"   itemscope itemtype="http://schema.org/AggregateRating">
-        <meta itemprop="itemReviewed"   content="Millénium, T2" />
-        <meta itemprop="ratingValue"    content="4" />
-        <meta itemprop="reviewCount"    content="72" />
-        <meta itemprop="bestRating"     content="5" />
-     </span>
-     
-     <span itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
-        <span itemprop="lowPrice"       content="4,98" />
-        <span itemprop="offerCount"     content="43" />
-        <meta itemprop="priceCurrency"  content="EUR" />
-     </span>
+<div id="dvPopinRedirect"></div>
 
-     
-</div>
 
-    <script language="javascript" type="text/javascript">
-        function initClipBoard(){
-            var clip = new ZeroClipboard.Client();
-            ZeroClipboard.setMoviePath('http://livre.fnac.com/flash/ZeroClipboard10.swf?w-4');
-            clip.addEventListener("mouseover", function(){ // hack du plugin
-                clip.setText($("#DivTASN").val()); 
-            });
-            clip.addEventListener("mousedown", function(){ 
-                alert('HTML copié dans le presse-papier');
-            });
-            clip.setText('');
-            clip.glue('copyMe');
-        }
-        
-        try
-        {
-            if(appUrl)
-            {
-                lz.embed.swf({
-                    id: 'lzapp',
-                    url: appUrl,
-                    width: '100%',
-                    height: '100%',
-                    wmode: 'transparent',
-                    appenddivid: 'lzappContainer',
-                    allowFullScreen : 'true',
-                    query: ''
-                });
-            }
-        }
-        catch(e){}
-    </script>
+    <div id="ScriptSoCloz"></div>
 </body>
+<script type='text/javascript'>
+    $(window).load(function () {
+        var idRichContent = $('#asyncLoadRichContentPostParam').val();
+        if (idRichContent != "") asyncLoadRichContentPost(idRichContent);
+
+        var idHighLight = $('#asyncLoadHighLightPostParam').val();
+        if (idHighLight != "") asyncLoadHighLightPost(parseInt(idHighLight));
+    });
+</script>
 </html>
diff --git a/tests/fixtures/onedtouch_oai.xml b/tests/fixtures/onedtouch_oai.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f9c7df31261d3f70e55724a37751dbf479272880
--- /dev/null
+++ b/tests/fixtures/onedtouch_oai.xml
@@ -0,0 +1,635 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
+  <responseDate>2015-02-24T09:29:37Z
+  </responseDate>
+  <request metadataPrefix="oai1dtouch_dc" verb="ListRecords">http://dev.1dtouch.com/oai
+  </request>
+  <ListRecords>
+    <record>
+      <header>
+	<identifier>oai:oai1dtouch.com:124
+	</identifier>
+	<datestamp>2015-02-09T08:47:27Z
+	</datestamp>
+      </header>
+      <metadata>
+	<oai1dtouch_dc xmlns="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/ http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc.xsd">
+	  <id>124
+	  </id>
+	  <icpn>3610159181474
+	  </icpn>
+	  <title>WOLFEP0241</title>
+	  <date>2014-11-03T00:00:00Z
+	  </date>
+	  <label>Wolf Music Recordings
+	  </label>
+	  <cover_url>https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181474.jpg
+	  </cover_url>
+	  <url>http://music.1dtouch.com/albums/124
+	  </url>
+	  <artists>
+	    <artist>Ishmael
+	    </artist>
+	  </artists>
+	  <styles>
+	    <style>Dance
+	    </style>
+	    <style>House
+	    </style>
+	    <style>Deep
+	    </style>
+	  </styles>
+	  <tracks>
+	    <track>
+	      <isrc>GB2SA1200088
+	      </isrc>
+	      <position>1
+	      </position>
+	      <title>Dejong
+	      </title>
+	      <length>PT0H7M20S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200088_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GB2SA1200089
+	      </isrc>
+	      <position>2
+	      </position>
+	      <title>Takoma
+	      </title>
+	      <length>PT0H5M30S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200089_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GB2SA1200090
+	      </isrc>
+	      <position>3
+	      </position>
+	      <title>Ashbury Roll
+	      </title>
+	      <length>PT0H5M26S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200090_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GB2SA1200091
+	      </isrc>
+	      <position>4
+	      </position>
+	      <title>Takoma
+	      </title>
+	      <length>PT0H7M13S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200091_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	  </tracks>
+	</oai1dtouch_dc>
+      </metadata>
+    </record>
+    <record>
+      <header>
+	<identifier>oai:oai1dtouch.com:125
+	</identifier>
+	<datestamp>2015-02-09T08:47:27Z
+	</datestamp>
+      </header>
+      <metadata>
+	<oai1dtouch_dc xmlns="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/ http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc.xsd">
+	  <id>125
+	  </id>
+	  <icpn>3610159181993
+	  </icpn>
+	  <title>Ataché
+	  </title>
+	  <date>2014-11-06T00:00:00Z
+	  </date>
+	  <label>Altino's Music / Couleurs Music Publishing
+	  </label>
+	  <cover_url>https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181993.jpg
+	  </cover_url>
+	  <url>http://music.1dtouch.com/albums/125
+	  </url>
+	  <artists>
+	    <artist>T-Micky
+	    </artist>
+	  </artists>
+	  <styles>
+	    <style>World
+	    </style>
+	  </styles>
+	  <tracks>
+	    <track>
+	      <isrc>GBGYQ1400032
+	      </isrc>
+	      <position>1
+	      </position>
+	      <title>Pa kite
+	      </title>
+	      <length>PT0H4M54S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400032_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR6V82527830
+	      </isrc>
+	      <position>2
+	      </position>
+	      <title>Nou pare
+	      </title>
+	      <length>PT0H3M50S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr6v82527830_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400033
+	      </isrc>
+	      <position>3
+	      </position>
+	      <title>Manvi kwazé L
+	      </title>
+	      <length>PT0H3M27S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400033_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400034
+	      </isrc>
+	      <position>4
+	      </position>
+	      <title>Kite L ale
+	      </title>
+	      <length>PT0H4M38S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400034_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400035
+	      </isrc>
+	      <position>5
+	      </position>
+	      <title>Pale yo
+	      </title>
+	      <length>PT0H3M39S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400035_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400036
+	      </isrc>
+	      <position>6
+	      </position>
+	      <title>Love Me
+	      </title>
+	      <length>PT0H4M14S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400036_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1200019
+	      </isrc>
+	      <position>7
+	      </position>
+	      <title>N'oublies pas
+	      </title>
+	      <length>PT0H3M50S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1200019_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400037
+	      </isrc>
+	      <position>8
+	      </position>
+	      <title>Mèt bliye M
+	      </title>
+	      <length>PT0H3M43S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400037_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400038
+	      </isrc>
+	      <position>9
+	      </position>
+	      <title>Mesi manman
+	      </title>
+	      <length>PT0H4M35S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400038_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400039
+	      </isrc>
+	      <position>10
+	      </position>
+	      <title>San ou
+	      </title>
+	      <length>PT0H4M14S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400039_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400040
+	      </isrc>
+	      <position>11
+	      </position>
+	      <title>Sere mwen
+	      </title>
+	      <length>PT0H4M20S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400040_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400041
+	      </isrc>
+	      <position>12
+	      </position>
+	      <title>Nouvèl la gaye
+	      </title>
+	      <length>PT0H3M44S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400041_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GBGYQ1400042
+	      </isrc>
+	      <position>13
+	      </position>
+	      <title>Yo met pale
+	      </title>
+	      <length>PT0H4M6S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gbgyq1400042_320k.mp3
+	      </url>
+	      <artists>
+		<artist>T-Micky
+		</artist>
+	      </artists>
+	    </track>
+	  </tracks>
+	</oai1dtouch_dc>
+      </metadata>
+    </record>
+    <record>
+      <header>
+	<identifier>oai:oai1dtouch.com:126
+	</identifier>
+	<datestamp>2015-02-09T08:47:27Z
+	</datestamp>
+      </header>
+      <metadata>
+	<oai1dtouch_dc xmlns="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/ http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc.xsd">
+	  <id>126
+	  </id>
+	  <icpn>3610159198724
+	  </icpn>
+	  <title>Impact
+	  </title>
+	  <date>2015-01-12T00:00:00Z
+	  </date>
+	  <label>Karlito
+	  </label>
+	  <cover_url>https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159198724.jpg
+	  </cover_url>
+	  <url>http://music.1dtouch.com/albums/126
+	  </url>
+	  <artists>
+	    <artist>Karlito
+	    </artist>
+	  </artists>
+	  <styles>
+	    <style>Hip Hop
+	    </style>
+	    <style>French Hip Hop
+	    </style>
+	  </styles>
+	  <tracks>
+	    <track>
+	      <isrc>FR10S1493172
+	      </isrc>
+	      <position>1
+	      </position>
+	      <title>Undercover
+	      </title>
+	      <length>PT0H3M22S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493172_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493173
+	      </isrc>
+	      <position>2
+	      </position>
+	      <title>Le zoo
+	      </title>
+	      <length>PT0H3M10S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493173_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493174
+	      </isrc>
+	      <position>3
+	      </position>
+	      <title>Continue
+	      </title>
+	      <length>PT0H4M17S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493174_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493175
+	      </isrc>
+	      <position>4
+	      </position>
+	      <title>A la kiss
+	      </title>
+	      <length>PT0H3M6S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493175_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493176
+	      </isrc>
+	      <position>5
+	      </position>
+	      <title>Banga
+	      </title>
+	      <length>PT0H1M41S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493176_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493177
+	      </isrc>
+	      <position>6
+	      </position>
+	      <title>Ego
+	      </title>
+	      <length>PT0H3M37S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493177_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493178
+	      </isrc>
+	      <position>7
+	      </position>
+	      <title>O.Dog Psycho
+	      </title>
+	      <length>PT0H3M17S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493178_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493179
+	      </isrc>
+	      <position>8
+	      </position>
+	      <title>Affranchis
+	      </title>
+	      <length>PT0H3M12S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493179_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493180
+	      </isrc>
+	      <position>9
+	      </position>
+	      <title>Biz Biz
+	      </title>
+	      <length>PT0H1M22S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493180_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493181
+	      </isrc>
+	      <position>10
+	      </position>
+	      <title>Ghetto Youth
+	      </title>
+	      <length>PT0H3M42S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493181_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493182
+	      </isrc>
+	      <position>11
+	      </position>
+	      <title>Défoncer
+	      </title>
+	      <length>PT0H3M5S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493182_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493183
+	      </isrc>
+	      <position>12
+	      </position>
+	      <title>Illimité
+	      </title>
+	      <length>PT0H4M22S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493183_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493184
+	      </isrc>
+	      <position>13
+	      </position>
+	      <title>No Drama
+	      </title>
+	      <length>PT0H3M35S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493184_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493185
+	      </isrc>
+	      <position>14
+	      </position>
+	      <title>La folie
+	      </title>
+	      <length>PT0H3M48S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493185_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>FR10S1493186
+	      </isrc>
+	      <position>15
+	      </position>
+	      <title>Victoria
+	      </title>
+	      <length>PT0H4M46S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/fr10s1493186_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Karlito
+		</artist>
+	      </artists>
+	    </track>
+	  </tracks>
+	</oai1dtouch_dc>
+      </metadata>
+    </record>
+   
+
+<resumptionToken>oai1dtouch_dc.f(2015-02-09T08:46:09Z).u(2015-02-09T08:47:27Z):133</resumptionToken></ListRecords></OAI-PMH>
diff --git a/tests/fixtures/onedtouch_oai_end.xml b/tests/fixtures/onedtouch_oai_end.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bfa106a4d517a166463d0273dcf2a9036177630d
--- /dev/null
+++ b/tests/fixtures/onedtouch_oai_end.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
+  <responseDate>2015-02-24T09:29:37Z
+  </responseDate>
+  <request metadataPrefix="oai1dtouch_dc" verb="ListRecords">http://dev.1dtouch.com/oai
+  </request>
+  <ListRecords>
+    <record>
+      <header>
+	<identifier>oai:oai1dtouch.com:128
+	</identifier>
+	<datestamp>2015-02-09T08:47:27Z
+	</datestamp>
+      </header>
+      <metadata>
+	<oai1dtouch_dc xmlns="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc/ http://dev.1dtouch.com/OAI/2.0/oai1dtouch_dc.xsd">
+	  <id>128
+	  </id>
+	  <icpn>3610159181474
+	  </icpn>
+	  <title>WOLFEP026
+	  </title>
+	  <date>2014-11-03T00:00:00Z
+	  </date>
+	  <label>Wolf Music Recordings
+	  </label>
+	  <cover_url>https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181474.jpg
+	  </cover_url>
+	  <url>http://music.1dtouch.com/albums/124
+	  </url>
+	  <artists>
+	    <artist>Ishmael
+	    </artist>
+	  </artists>
+	  <styles>
+	    <style>Dance
+	    </style>
+	    <style>House
+	    </style>
+	    <style>Deep
+	    </style>
+	  </styles>
+	  <tracks>
+	    <track>
+	      <isrc>GB2SA1200088
+	      </isrc>
+	      <position>1
+	      </position>
+	      <title>Dejong
+	      </title>
+	      <length>PT0H7M20S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200088_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GB2SA1200089
+	      </isrc>
+	      <position>2
+	      </position>
+	      <title>Takoma
+	      </title>
+	      <length>PT0H5M30S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200089_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GB2SA1200090
+	      </isrc>
+	      <position>3
+	      </position>
+	      <title>Ashbury Roll
+	      </title>
+	      <length>PT0H5M26S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200090_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	    <track>
+	      <isrc>GB2SA1200091
+	      </isrc>
+	      <position>4
+	      </position>
+	      <title>Takoma
+	      </title>
+	      <length>PT0H7M13S
+	      </length>
+	      <url>https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200091_320k.mp3
+	      </url>
+	      <artists>
+		<artist>Ishmael
+		</artist>
+	      </artists>
+	    </track>
+	  </tracks>
+	</oai1dtouch_dc>
+      </metadata>
+    </record>
+<resumptionToken></resumptionToken>   
+</ListRecords></OAI-PMH>
diff --git a/tests/library/Class/AdminVarTest.php b/tests/library/Class/AdminVarTest.php
index 2f005e87a91d0f1de4f75ea22e33d72ee20abde6..1a3867071831b5db36e3fbbfaf592321825c8fe9 100644
--- a/tests/library/Class/AdminVarTest.php
+++ b/tests/library/Class/AdminVarTest.php
@@ -33,11 +33,6 @@ abstract class AdminVarTestCase extends ModelTestCase {
 
 class AdminVarTestGet extends AdminVarTestCase {
 
-	public function setup() {
-		Class_AdminVar::set('WORKFLOW_TEXT_MAIL_ARTICLE_PENDING','');
-		Class_AdminVar::set('WORKFLOW_TEXT_MAIL_ARTICLE_REFUSED','');
-	}
-
 	public function testGetReturnsValeur() {
 		$my_var = Class_AdminVar::getLoader()
 			->newInstance()
@@ -139,18 +134,6 @@ class AdminVarTestGet extends AdminVarTestCase {
 	}
 
 
-	/** @test */
-	public function workflowTextMailArticlePendingShouldHaveDefaultTextNouvelArticleAValider() {
-		$this->assertEquals('Un nouvel article est à valider. TITRE_ARTICLE URL_ARTICLE',Class_AdminVar::getWorkflowTextMailArticlePending());
-	}
-
-
-	/** @test */
-	public function workflowTextMailArticleRefusedShouldHaveDefaultTextArticleRefuse() {
-		$this->assertEquals('L\'article a été refusé.',Class_AdminVar::getWorkflowTextMailArticleRefused());
-	}
-
-
 
 	/** @test */
 	public function getVarShouldStripSlashes() {
@@ -214,4 +197,29 @@ class AdminVarBabelthequeTest extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+class AdminVarWorkflowTest extends Storm_Test_ModelTestCase {
+	public function setup() {
+		parent::setup();
+		Class_AdminVar::beVolatile();
+		Class_AdminVar::set('WORKFLOW_TEXT_MAIL_ARTICLE_PENDING','');
+		Class_AdminVar::set('WORKFLOW_TEXT_MAIL_ARTICLE_REFUSED','');
+	}
+
+
+	/** @test */
+	public function workflowTextMailArticlePendingShouldHaveDefaultTextNouvelArticleAValider() {
+		$this->assertEquals('Un nouvel article est à valider. TITRE_ARTICLE URL_ARTICLE',
+												Class_AdminVar::getWorkflowTextMailArticlePending());
+	}
+
+
+	/** @test */
+	public function workflowTextMailArticleRefusedShouldHaveDefaultTextArticleRefuse() {
+		$this->assertEquals('L\'article a été refusé.',
+												Class_AdminVar::getWorkflowTextMailArticleRefused());
+	}
+}
+
 ?>
\ No newline at end of file
diff --git a/tests/library/Class/Album/UsageConstraintTest.php b/tests/library/Class/Album/UsageConstraintTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..d7b38d2b462bbbbc5f7603f7488d8091fe8b74d5
--- /dev/null
+++ b/tests/library/Class/Album/UsageConstraintTest.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+class Class_Album_UsageConstraintTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		Storm_Model_Loader::defaultToVolatile();
+
+		$this->fixture('Class_Album',
+									 ['id' => 23]);
+
+		$this->fixture('Class_Album_UsageConstraint',
+									 ['id' => 2,
+										'album_id' => 23,
+										'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
+										'serialized_datas' => json_encode(['duration' => 45,
+																											 'quantity' => 30,
+																											 'max_number_of_users' => 15])]);
+
+
+
+		Class_Album::clearCache();
+		Class_Album_UsageConstraint::clearCache();
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function albumGetCounstraintsLoanDurationShouldAnswers45() {
+		$this->assertEquals(45, Class_Album::find(23)->getUsageConstraints()->getLoanDuration());
+	}
+
+
+	/** @test */
+	public function savedConstraintShouldSerializeItsDatas() {
+		$constraint = Class_Album_UsageConstraint::newInstance(['usage_type' => Class_Album_Usageconstraint::DEVICE_SHARE_CONSTRAINT,
+																														'quantity' => 4]);
+		Class_Album::find(23)
+			->addUsageConstraint($constraint)
+			->save();
+
+		Class_Album_UsageConstraint::clearCache();
+		$this->assertEquals(['quantity' => 4],
+												json_decode(Class_Album_UsageConstraint::find(3)->getSerializedDatas(),
+																		true));
+	}
+}
+
+
+?>
\ No newline at end of file
diff --git a/tests/library/Class/AlbumTest.php b/tests/library/Class/AlbumTest.php
index dedf14e4fbddbd9a6e1704e006e49e1a5eb43772..27aa464b0ebec137406903595f4ad62db240b9c6 100644
--- a/tests/library/Class/AlbumTest.php
+++ b/tests/library/Class/AlbumTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 abstract class AlbumHarlockTestCase extends Storm_Test_ModelTestCase {
@@ -65,7 +65,7 @@ class AlbumHarlockBasicTest extends AlbumHarlockTestCase {
 		$ressourceMock
 			->whenCalled('setAlbum')->with($this->_album)->answers($ressourceMock)
 			->getWrapper()->whenCalled('initializeWith')->answers(null);
-		
+
 		$wrapper = Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
 			->whenCalled('newInstance')
 			->answers($ressourceMock)
@@ -77,12 +77,18 @@ class AlbumHarlockBasicTest extends AlbumHarlockTestCase {
 	}
 
 
+	/** @test */
+	public function usageConstraintsShouldBeEmptyArray() {
+		$this->assertEquals(0, count($this->_album->getUsageConstraints()));
+	}
+
+
 	/** @test */
 	public function permalinkShouldBeBibNumNotice999() {
 		$this->assertEquals(array('module' => 'opac',
 															'controller' => 'bib-numerique',
 															'action' => 'notice',
-															'id' => 999), 
+															'id' => 999),
 												$this->_album->getPermalink());
 	}
 
@@ -105,14 +111,14 @@ class AlbumHarlockBasicTest extends AlbumHarlockTestCase {
 		$this->assertFalse($this->_album->isVisible());
 	}
 
-	
+
 	/** @test */
 	public function withIdOrigine_05DC03_PermalinkShouldBeBibNumNoticeIDO_05DC03() {
 		$this->_album->setIdOrigine('05DC03');
 		$this->assertEquals(array('module' => 'opac',
 															'controller' => 'bib-numerique',
 															'action' => 'notice',
-															'ido' => '05DC03'), 
+															'ido' => '05DC03'),
 												$this->_album->getPermalink());
 	}
 
@@ -152,7 +158,7 @@ class AlbumHarlockBasicTest extends AlbumHarlockTestCase {
 	public function setThumbnailLeftPageCropLeftShouldUpdateCfgThumbnails() {
 		$expected_cfg = $this->_album->getThumbnailAttributes();
 		$expected_cfg['thumbnail_left_page_crop_left'] = 20;
-		
+
 		$this->_album->setThumbnailLeftPageCropLeft(20);
 		$this->assertEquals(ZendAfi_Filters_Serialize::serialize($expected_cfg),
 												$this->_album->getCfgThumbnails());
@@ -204,7 +210,7 @@ class AlbumHarlockBasicTest extends AlbumHarlockTestCase {
 
 	/** @test */
 	function annee800ShouldBeSavedWithFourDigits() {
-		$this->assertSame('0800', 
+		$this->assertSame('0800',
 											$this->_album->setAnnee(800)->getAnnee());
 	}
 
@@ -223,8 +229,8 @@ class AlbumHarlockBasicTest extends AlbumHarlockTestCase {
 
 	/** @test */
 	public function notesAsArrayShouldContains305and317() {
-		$this->assertEquals(array('305$a' => '20eme siecle', '317$a' => 'viens de l\'espace'), 
-												$this->_album->getNotesAsArray());
+		$this->assertEquals(array('305$a' => '20eme siecle', '317$a' => 'viens de l\'espace'),
+												$this->_album->getMarc()->getDatas());
 	}
 
 
@@ -247,8 +253,8 @@ abstract class AlbumHarlockFileUploadHandlerTestCase extends AlbumHarlockTestCas
 		$this->_wrapper->whenCalled('delete')->answers(null)->getWrapper();
 
 		$this->_handler = $this->getMockBuilder('Class_Upload')
-											->disableOriginalConstructor()
-											->getMock();
+													 ->disableOriginalConstructor()
+													 ->getMock();
 	}
 }
 
@@ -318,16 +324,16 @@ class AlbumHarlockWithRessourcesTest extends AlbumHarlockTestCase {
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
 			->whenCalled('findAllBy')
 			->answers(array(
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(1)
-				  ->setIdAlbum(999)
-					->setTitre('Nausica'),
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(2)
-				  ->setIdAlbum(999)
-				  ->setFolio('03R')
-					->setTitre('Arcadia'),
-			));
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(1)
+											->setIdAlbum(999)
+											->setTitre('Nausica'),
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(2)
+											->setIdAlbum(999)
+											->setFolio('03R')
+											->setTitre('Arcadia'),
+											));
 
 		$this->_resources = $this->_album->getRessources();
 	}
@@ -351,7 +357,7 @@ class AlbumHarlockWithRessourcesTest extends AlbumHarlockTestCase {
 															'controller' => 'bib-numerique',
 															'action' => 'notice',
 															'id' => 999,
-															'folio' => 1), 
+															'folio' => 1),
 												$this->_resources[0]->getPermalink());
 	}
 
@@ -368,7 +374,7 @@ class AlbumHarlockWithRessourcesTest extends AlbumHarlockTestCase {
 															'controller' => 'bib-numerique',
 															'action' => 'notice',
 															'id' => 999,
-															'folio' => '03R'), 
+															'folio' => '03R'),
 												$this->_resources[1]->getPermalink());
 	}
 }
@@ -379,19 +385,19 @@ class AlbumHarlockWithRessourcesTest extends AlbumHarlockTestCase {
 class AlbumHarlockWithOnlyImagesRessourcesTest extends AlbumHarlockTestCase {
 	protected function setUp() {
 		parent::setUp();
-		
+
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
 			->whenCalled('findAllBy')
 			->answers(array(
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(1)
-					->setTitre('Nausica')
-				  ->setFichier('1.png'),
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(2)
-					->setTitre('Arcadia')
- 				  ->setFichier('2.gif'),
-			));
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(1)
+											->setTitre('Nausica')
+											->setFichier('1.png'),
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(2)
+											->setTitre('Arcadia')
+											->setFichier('2.gif'),
+											));
 	}
 
 
@@ -431,19 +437,19 @@ class AlbumHarlockWithOnlyImagesRessourcesTest extends AlbumHarlockTestCase {
 class AlbumHarlockWithNotOnlyImagesRessourcesTest extends AlbumHarlockTestCase {
 	protected function setUp() {
 		parent::setUp();
-		
+
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
 			->whenCalled('findAllBy')
 			->answers(array(
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(1)
-					->setTitre('Nausica')
-				  ->setFichier('1.png'),
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(2)
-					->setTitre('Arcadia')
- 				  ->setFichier('2.pdf'),
-			));
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(1)
+											->setTitre('Nausica')
+											->setFichier('1.png'),
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(2)
+											->setTitre('Arcadia')
+											->setFichier('2.pdf'),
+											));
 	}
 
 
@@ -483,19 +489,19 @@ class AlbumHarlockWithNotOnlyImagesRessourcesTest extends AlbumHarlockTestCase {
 class AlbumHarlockWithNotImagesRessourcesTest extends AlbumHarlockTestCase {
 	protected function setUp() {
 		parent::setUp();
-		
+
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
 			->whenCalled('findAllBy')
 			->answers(array(
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(1)
-					->setTitre('Nausica')
-				  ->setFichier('1.zip'),
-				Class_AlbumRessource::getLoader()
-					->newInstanceWithId(2)
-					->setTitre('Arcadia')
- 				  ->setFichier('2.pdf'),
-			));
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(1)
+											->setTitre('Nausica')
+											->setFichier('1.zip'),
+											Class_AlbumRessource::getLoader()
+											->newInstanceWithId(2)
+											->setTitre('Arcadia')
+											->setFichier('2.pdf'),
+											));
 	}
 
 
@@ -547,25 +553,25 @@ class AlbumHarlockSortingResourcesTest extends AlbumHarlockTestCase {
 		parent::setUp();
 
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Album')
-																						->whenCalled('save')->answers(true);
+			->whenCalled('save')->answers(true);
 
 		$this->_nausica = Class_AlbumRessource::getLoader()
-												->newInstanceWithId(1)
-												->setTitre('Nausica')
-												->setFichier('1_AB.jpg')
-												->setOrdre(1);
+			->newInstanceWithId(1)
+			->setTitre('Nausica')
+			->setFichier('1_AB.jpg')
+			->setOrdre(1);
 
 		$this->_arcadia = Class_AlbumRessource::getLoader()
-												->newInstanceWithId(2)
-												->setTitre('Arcadia')
-												->setFichier('03.jpg')
-												->setOrdre(2);
+			->newInstanceWithId(2)
+			->setTitre('Arcadia')
+			->setFichier('03.jpg')
+			->setOrdre(2);
 
 		$this->_sylphide = Class_AlbumRessource::getLoader()
-												->newInstanceWithId(3)
-												->setTitre('Sylphide')
-												->setFichier('3_25.jpg')
-												->setOrdre(3);
+			->newInstanceWithId(3)
+			->setTitre('Sylphide')
+			->setFichier('3_25.jpg')
+			->setOrdre(3);
 
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
 			->whenCalled('findAllBy')
@@ -668,8 +674,8 @@ class AlbumHarlockSortingResourcesTest extends AlbumHarlockTestCase {
 
 
 		$this->assertEquals(1, $this->_arcadia->getOrdre());
-		$this->assertEquals(2, $albator->getOrdre()); 
-		$this->assertEquals(3, $this->_sylphide->getOrdre(), $this->_sylphide->getFichierWithoutId()); 
+		$this->assertEquals(2, $albator->getOrdre());
+		$this->assertEquals(3, $this->_sylphide->getOrdre(), $this->_sylphide->getFichierWithoutId());
 		$this->assertEquals(4, $this->_nausica->getOrdre());
 
 	}
diff --git a/tests/library/Class/ArticleTest.php b/tests/library/Class/ArticleTest.php
index e292af1f14ca8ac50194417ad985a93cc664197f..6b0cfb8fe5eb8acbf85b8ac0e5d8fead2f487160 100644
--- a/tests/library/Class/ArticleTest.php
+++ b/tests/library/Class/ArticleTest.php
@@ -366,6 +366,8 @@ class ArticleWithTraductionsTest extends Storm_Test_ModelTestCase {
 }
 
 
+
+
 class ArticleTestSmallArticle extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -442,10 +444,10 @@ class ArticleTestSmallArticle extends Storm_Test_ModelTestCase {
 												 'id' => '0'],
 												$this->_article->getUrl());
 	}
+}
 
 
 
-}
 
 class ArticleTestSummaryAndFullContentForArticleWithEndTag extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
@@ -475,13 +477,24 @@ class ArticleTestSummaryAndFullContentForArticleWithEndTag extends Storm_Test_Mo
 }
 
 
+
+
 class ArticleTestSummaryAndFullContentForArticleWithDescription extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
 
 	protected function setUp() {
 		parent::setUp();
-		$this->_article = ArticleTestFixtures::descriptionArticle();
+		$this->_article = $this->fixture('Class_Article',
+																		 ['id' => 3,
+																			'titre' => 'Fête de la pomme',
+																			'description' => 'à Boussy',
+																			'contenu' => 'venez nombreux!',
+																			'debut' => '2010-10-02T00:00:00+02:00',
+																			'fin' => '2010-10-03T00:00:00+02:00',
+																			'events_debut' => null,
+																			'events_fin' => '20/12/2010',
+																			'date_maj' => '2012-12-15']);
 	}
 
 	/** @test */
@@ -502,15 +515,31 @@ class ArticleTestSummaryAndFullContentForArticleWithDescription extends Storm_Te
 	}
 
 
+ /** @test */
+	public function dateMajShouldBeNotModifiedAndStay2012_12_15() {
+		$this->assertEquals('2012-12-15', $this->_article->getDateMaj());
+
+	}
 }
 
+
+
+
 class ArticleTestSummaryAndFullContentForArticleWithEmptyDescription extends Storm_Test_ModelTestCase {
 	/** @var Class_Article  */
 	protected $_article;
 
 	protected function setUp() {
 		parent::setUp();
-		$this->_article = ArticleTestFixtures::emptyDescriptionArticle();
+		$this->_article = $this->fixture('Class_Article',
+																		 ['id' => 0,
+																			'titre' => 'Fête de la pomme',
+																			'description' => '',
+																			'contenu' => 'venez nombreux!',
+																			'debut' => '2010-10-02T00:00:00+02:00',
+																			'fin' => '2010-10-03T00:00:00+02:00',
+																			'events_debut' => null,
+																			'events_fin' => '20/12/2010']);
 	}
 
 	/** @test */
@@ -531,6 +560,8 @@ class ArticleTestSummaryAndFullContentForArticleWithEmptyDescription extends Sto
 	}
 }
 
+
+
 class ArticleTestEmptyDates extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -561,6 +592,9 @@ class ArticleTestEmptyDates extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+
 class ArticleTestFutureStartDate extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -591,6 +625,8 @@ class ArticleTestFutureStartDate extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
 class ArticleTestPastStartDate extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -622,6 +658,9 @@ class ArticleTestPastStartDate extends Storm_Test_ModelTestCase {
 
 }
 
+
+
+
 class ArticleTestFutureEndDate extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -658,6 +697,9 @@ class ArticleTestFutureEndDate extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+
 class ArticleTestPastEndDate extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -693,6 +735,9 @@ class ArticleTestPastEndDate extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+
 class ArticleTestAllPastDates extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -728,6 +773,9 @@ class ArticleTestAllPastDates extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+
 class ArticleTestAllFutureDates extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -763,6 +811,9 @@ class ArticleTestAllFutureDates extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+
 class ArticleTestDatesIncludesNow extends Storm_Test_ModelTestCase {
 	/** @var Class_Article */
 	protected $_article;
@@ -793,6 +844,9 @@ class ArticleTestDatesIncludesNow extends Storm_Test_ModelTestCase {
 	}
 }
 
+
+
+
 class ArticleTestFixtures {
 	/**
 	 * @return Class_Article
@@ -927,44 +981,12 @@ class ArticleTestFixtures {
 																			'EVENTS_FIN' => '20/12/2010'
 																		));
 	}
-
-	/**
-	 * @return Class_Article
-	 */
-	public static function descriptionArticle() {
-		return Class_Article::getLoader()->newFromRow(array(
-																			'ID_ARTICLE' => 0,
-																			'TITRE' => 'Fête de la pomme',
-																			'DESCRIPTION' => 'à Boussy',
-																			'CONTENU' => 'venez nombreux!',
-																			'DEBUT' => '2010-10-02T00:00:00+02:00',
-																			'FIN' => '2010-10-03T00:00:00+02:00',
-																			'EVENTS_DEBUT' => null,
-																			'EVENTS_FIN' => '20/12/2010'
-																		));
-	}
-
-	/**
-	 * @return Class_Article
-	 */
-	public static function emptyDescriptionArticle() {
-		return Class_Article::getLoader()->newFromRow(array(
-																			'ID_ARTICLE' => 0,
-																			'TITRE' => 'Fête de la pomme',
-																			'DESCRIPTION' => '',
-																			'CONTENU' => 'venez nombreux!',
-																			'DEBUT' => '2010-10-02T00:00:00+02:00',
-																			'FIN' => '2010-10-03T00:00:00+02:00',
-																			'EVENTS_DEBUT' => null,
-																			'EVENTS_FIN' => '20/12/2010'
-																		));
-	}
-
 }
 
 
 
-Class EventsByMonthNoArticlesTest extends Storm_Test_ModelTestCase {
+
+class EventsByMonthNoArticlesTest extends Storm_Test_ModelTestCase {
 	public function setup() {
 		parent::setup();
 
@@ -984,6 +1006,8 @@ Class EventsByMonthNoArticlesTest extends Storm_Test_ModelTestCase {
 }
 
 
+
+
 abstract class EventsByMonthWithArticleTestCase extends Storm_Test_ModelTestCase {
 	protected $concert;
 
@@ -1028,6 +1052,8 @@ abstract class EventsByMonthWithArticleTestCase extends Storm_Test_ModelTestCase
 }
 
 
+
+
 class EventsByMonthWithArticleSameYearTest extends EventsByMonthWithArticleTestCase {
 	public function setup() {
 		parent::setup();
@@ -1037,6 +1063,8 @@ class EventsByMonthWithArticleSameYearTest extends EventsByMonthWithArticleTestC
 }
 
 
+
+
 class EventsByMonthWithArticleNextYearTest extends EventsByMonthWithArticleTestCase {
 	public function setup() {
 		parent::setup();
@@ -1046,12 +1074,19 @@ class EventsByMonthWithArticleNextYearTest extends EventsByMonthWithArticleTestC
 
 
 
+
 class ArticleIndexAllTest extends Storm_Test_ModelTestCase {
 	public function setUp() {
 		parent::setUp();
 		Class_Exemplaire::beVolatile();
 		Class_Notice::beVolatile();
 		Class_NoticeDomain::beVolatile();
+
+		$user = $this->fixture('Class_Users',
+													 ['id' => 1,
+														'login' => 'Tom',
+														'password' => 'pwd']);
+
 		$this->fixture('Class_Catalogue',
 									 ['id' => 1,
 										'libelle' => 'My domain']);
@@ -1060,6 +1095,7 @@ class ArticleIndexAllTest extends Storm_Test_ModelTestCase {
 									 ['id' => 1,
 										'titre' => 'My Cms First Step',
 										'contenu' => 'My Cms First Step',
+										'auteur' => $user,
 										'indexation' => 1]);
 
 		$this->fixture('Class_Article',
@@ -1075,7 +1111,7 @@ class ArticleIndexAllTest extends Storm_Test_ModelTestCase {
 
 	/** @test */
 	public function articleAlphaKeyShouldBeAsMYCMSFIRSTSTEP_8() {
-		$this->assertEquals('MYCMSFIRSTSTEP------8', Class_Article::find(1)->getAlphaKey());
+		$this->assertEquals('MYCMSFIRSTSTEP-1-TOM----8', Class_Article::find(1)->getAlphaKey());
 	}
 
 
@@ -1150,4 +1186,4 @@ class ArticleUnindexTest extends Storm_Test_ModelTestCase {
 	public function recordShouldNotHaveDomainFacet() {
 		$this->assertNotContains('H2', Class_Notice::find(1)->getFacettes());
 	}
-}
\ No newline at end of file
+}
diff --git a/tests/library/Class/AvisNoticeTest.php b/tests/library/Class/AvisNoticeTest.php
index 1fe389c915be0ea492b73bca8fd6dbca789cfe54..6050c89d51ef7004eed4d040d786034f868dc129 100644
--- a/tests/library/Class/AvisNoticeTest.php
+++ b/tests/library/Class/AvisNoticeTest.php
@@ -16,42 +16,42 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'Class/AvisNotice.php';
 require_once 'ModelTestCase.php';
 
 class AvisNoticeFixtures extends TestFixtures {
 	protected $_fixtures = array(
-										'marcus_on_millenium' => array('ID' => 23,
-																									 'ID_USER' => 2,
-																									 'ENTETE' => 'excellent', 
-																									 'AVIS' => 'on en redemande',
-																									 'CLEF_OEUVRE' => 'MILLENIUM--LARSSON',
-																									 'DATE_AVIS' => '2010-05-21',
-																									 'NOTE' => '4'),
-										'marcus_on_potter' => array('ID' => 25,
-																								'ID_USER' => 2,
-																								'ENTETE' => 'pour les enfants',
-																								'AVIS' => 'ils aiment bien',
-																								'CLEF_OEUVRE' => 'POTTER',
-																								'DATE_AVIS' => '2010-05-20',
-																								'NOTE' => 3),
-										'steve_on_millenium' => array('ID' => 12,
-																									'ID_USER' => 5,
-																									'ENTETE' => 'ça fait peur',
-																									'AVIS' => 'très glauque',
-																									'CLEF_OEUVRE' => 'MILLENIUM--LARSSON',
-																									'DATE_AVIS' => '2009-05-17',
-																									'NOTE' => null),
-										'steve_on_potter' => array('ID' => 48,
-																							 'ID_USER' => 5,
-																							 'ENTETE' => 'Vive potter',
-																							 'AVIS' => "c'est génial",
-																							 'CLEF_OEUVRE' => 'POTTER',
-																							 'DATE_AVIS' => '2011-05-17',
-																							 'NOTE' => 3)
-										);
+															 'marcus_on_millenium' => array('ID' => 23,
+																															'ID_USER' => 2,
+																															'ENTETE' => 'excellent',
+																															'AVIS' => 'on en redemande',
+																															'CLEF_OEUVRE' => 'MILLENIUM--LARSSON',
+																															'DATE_AVIS' => '2010-05-21',
+																															'NOTE' => '4'),
+															 'marcus_on_potter' => array('ID' => 25,
+																													 'ID_USER' => 2,
+																													 'ENTETE' => 'pour les enfants',
+																													 'AVIS' => 'ils aiment bien',
+																													 'CLEF_OEUVRE' => 'POTTER',
+																													 'DATE_AVIS' => '2010-05-20',
+																													 'NOTE' => 3),
+															 'steve_on_millenium' => array('ID' => 12,
+																														 'ID_USER' => 5,
+																														 'ENTETE' => 'ça fait peur',
+																														 'AVIS' => 'très glauque',
+																														 'CLEF_OEUVRE' => 'MILLENIUM--LARSSON',
+																														 'DATE_AVIS' => '2009-05-17',
+																														 'NOTE' => null),
+															 'steve_on_potter' => array('ID' => 48,
+																													'ID_USER' => 5,
+																													'ENTETE' => 'Vive potter',
+																													'AVIS' => "c'est génial",
+																													'CLEF_OEUVRE' => 'POTTER',
+																													'DATE_AVIS' => '2011-05-17',
+																													'NOTE' => 3)
+	);
 
 	public static function instance() {
 		return new self();
@@ -73,7 +73,7 @@ class AvisTestBibAbonne extends ModelTestCase {
 		$this->avis_abon2 = new Class_AvisNotice();
 		$this->avis_abon2->setAbonOuBib(0)->setNote(3);
 
-		$this->all_avis = array($this->avis_bib1, 
+		$this->all_avis = array($this->avis_bib1,
 														$this->avis_bib2,
 														$this->avis_abon1,
 														$this->avis_abon2);
@@ -103,12 +103,12 @@ class AvisTestBibAbonne extends ModelTestCase {
 		$this->assertEquals(0, Class_AvisNotice::getNoteAverage(null));
 		$this->assertEquals(0, Class_AvisNotice::getNoteAverage(array()));
 		$this->assertEquals(3, Class_AvisNotice::getNoteAverage(array($this->avis_abon2)));
-		$this->assertEquals(2.5, Class_AvisNotice::getNoteAverage(array($this->avis_abon2, 
+		$this->assertEquals(2.5, Class_AvisNotice::getNoteAverage(array($this->avis_abon2,
 																																		$this->avis_abon1)));
 		$this->assertEquals(3.5, Class_AvisNotice::getNoteAverage(array($this->avis_abon2,
 																																		$this->avis_abon1,
 																																		$this->avis_bib2)));
-		
+
 	}
 }
 
@@ -166,7 +166,7 @@ class AvisNoticeTestFindAll extends ModelTestCase {
 		$this->assertEquals(4, $first->getNote());
 	}
 
-	public function testLastIsSteveOnPotter() {		
+	public function testLastIsSteveOnPotter() {
 		$last = $this->avis[3];
 		$this->assertEquals('Vive potter', $last->getEntete());
 	}
@@ -206,13 +206,13 @@ class AvisNoticeTestBelongsToUserRelation extends ModelTestCase {
 			->with(5)
 			->will($this->returnValue($this->steve));
 
-		$this->assertEquals($this->steve, 
+		$this->assertEquals($this->steve,
 												$this->avis_millenium->getUser());
 	}
 
 
 	public function testAvisGetUserNotFoundReturnsNil() {
-		$this->assertEquals(null, 
+		$this->assertEquals(null,
 												$this->avis_millenium->getUser());
 	}
 
@@ -234,7 +234,7 @@ class AvisNoticeTestBelongsToUserRelation extends ModelTestCase {
 			->will($this->returnValue(array($this->avis_millenium)));
 
 		$this->steve->getAvis();
-		$this->assertEquals(array($this->avis_millenium), 
+		$this->assertEquals(array($this->avis_millenium),
 												$this->steve->getAvis());
 	}
 
@@ -254,7 +254,7 @@ class AvisNoticeTestBelongsToUserRelation extends ModelTestCase {
 			->will($this->returnValue(array($this->avis_millenium)));
 
 		$this->steve->addAvis($avis_potter);
-		$this->assertEquals($this->steve, 
+		$this->assertEquals($this->steve,
 												$avis_potter->getUser());
 	}
 }
@@ -274,14 +274,14 @@ abstract class AvisTestFindAllTestCase extends ModelTestCase {
 																							 'ID_USER' => 34,
 																							 'CLEF_OEUVRE' => 'POTTER')));
 
-		$tbl_avis = $this->_buildTableMock('Class_AvisNotice', 
+		$tbl_avis = $this->_buildTableMock('Class_AvisNotice',
 																			 array('fetchAll', 'select'));
 
 		$tbl_avis
 			->expects($this->once())
 			->method('select')
 			->will($this->returnValue($this->select));
-			
+
 		$tbl_avis
 			->expects($this->once())
 			->method('fetchAll')
@@ -395,10 +395,10 @@ class NoticeTestHasManyAvisTest extends Storm_Test_ModelTestCase {
 	/** @test */
 	public function noticeMilleniumGetAvisForUserSteveShouldReturnAvisSteve() {
 		$this->avis_loader
-		->whenCalled('findAllBy')
-		->with(['clef_oeuvre' => 'MILLENIUM--LARSSON',
-						'id_user' => 5])
-		->answers([$this->avis_millenium_steve]);
+			->whenCalled('findAllBy')
+			->with(['clef_oeuvre' => 'MILLENIUM--LARSSON',
+							'id_user' => 5])
+			->answers([$this->avis_millenium_steve]);
 
 		$found_avis = $this->millenium->getAvisByUser($this->steve);
 		$this->assertEquals([$this->avis_millenium_steve],
@@ -411,13 +411,13 @@ class NoticeTestHasManyAvisTest extends Storm_Test_ModelTestCase {
 		$avis_millenium_robert = new Class_AvisNotice();
 
 		$this->avis_loader
-		->whenCalled('findAllBy')
-		->with(['clef_oeuvre' => 'MILLENIUM--LARSSON'])
-		->answers([$this->avis_millenium_steve,	
-							 $avis_millenium_robert]);
+			->whenCalled('findAllBy')
+			->with(['clef_oeuvre' => 'MILLENIUM--LARSSON'])
+			->answers([$this->avis_millenium_steve,
+								 $avis_millenium_robert]);
 
 		$found_avis = $this->millenium->getAvis();
-		$this->assertEquals([$this->avis_millenium_steve, 
+		$this->assertEquals([$this->avis_millenium_steve,
 												 $avis_millenium_robert],
 												$found_avis);
 	}
@@ -426,9 +426,9 @@ class NoticeTestHasManyAvisTest extends Storm_Test_ModelTestCase {
 	/** @test */
 	public function avisMilleniumSteveGetNoticesShouldReturnNoticeMillenium() {
 		$this->notice_loader
-		->whenCalled('findAllBy')
-		->with(['clef_oeuvre' => 'MILLENIUM--LARSSON'])
-		->answers([$this->millenium]);
+			->whenCalled('findAllBy')
+			->with(['clef_oeuvre' => 'MILLENIUM--LARSSON'])
+			->answers([$this->millenium]);
 
 		$notices_found = $this->avis_millenium_steve->getNotices();
 		$this->assertEquals(array($this->millenium),
@@ -439,23 +439,23 @@ class NoticeTestHasManyAvisTest extends Storm_Test_ModelTestCase {
 	/** @test */
 	public function lostAvisMilleniumGetNoticesShouldSearchNoticeOnTitleClefOeuvre() {
 		$this->notice_loader
-		->whenCalled('findAllBy')
-		->with(['clef_oeuvre' => 'MILLENIUM--SLARSSON'])
-		->answers([])
+			->whenCalled('findAllBy')
+			->with(['clef_oeuvre' => 'MILLENIUM--SLARSSON'])
+			->answers([])
 
-		->whenCalled('findAllBy')
-		->with(['where' => 'clef_oeuvre like "MILLENIUM-%"'])
-		->answers([$this->millenium])
-		->beStrict();
+			->whenCalled('findAllBy')
+			->with(['where' => 'clef_oeuvre like "MILLENIUM-%"'])
+			->answers([$this->millenium])
+			->beStrict();
 
 
 		$this->assertEquals([$this->millenium],	$this->avis_millenium_lost_bryan->getNotices());
 		return $this->avis_loader->getFirstAttributeForLastCallOn('save');
 	}
 
-	
-	/** 
-	 * @test 
+
+	/**
+	 * @test
 	 * @depends lostAvisMilleniumGetNoticesShouldSearchNoticeOnTitleClefOeuvre
 	 */
 	public function avisLostShouldBeSaved($saved_avis) {
@@ -463,8 +463,8 @@ class NoticeTestHasManyAvisTest extends Storm_Test_ModelTestCase {
 	}
 
 
-	/** 
-	 * @test 
+	/**
+	 * @test
 	 * @depends lostAvisMilleniumGetNoticesShouldSearchNoticeOnTitleClefOeuvre
 	 */
 	public function avisLostShouldGoThroughModeration($saved_avis) {
@@ -491,7 +491,7 @@ class AvisValidationsTest  extends ModelTestCase {
 			->cacheInstance($this->avis_min_saisie)
 			->cacheInstance($this->avis_max_saisie);
 
-		$this->avis_loader = $this->_generateLoaderFor('Class_AvisNotice', 
+		$this->avis_loader = $this->_generateLoaderFor('Class_AvisNotice',
 																									 array('save'));
 
 
@@ -545,7 +545,7 @@ class AvisSetAbonOuBibTest extends ModelTestCase {
 			->with($this->avis)
 			->will($this->returnValue(true));
 	}
-	
+
 	public function testSaveWithAdminSetAbonOuBibToOne() {
 		$this->avis->setUser($this->admin);
 		$this->avis->save();
@@ -558,7 +558,7 @@ class AvisSetAbonOuBibTest extends ModelTestCase {
 		$this->assertEquals(0, $this->avis->getAbonOuBib());
 	}
 
-	public function testSaveWithNoUserSetAbonOuBibToZero() {		
+	public function testSaveWithNoUserSetAbonOuBibToZero() {
 		$this->avis->setUser(null);
 		$this->avis->save();
 		$this->assertEquals(0, $this->avis->getAbonOuBib());
@@ -587,9 +587,9 @@ class AvisLoaderGetAvisFromPreferencesTest extends AvisTestFindAllTestCase {
 			->cacheInstance($this->modo_avis_biblio);
 
 		$this->preferences = array( 'id_panier' => null,
-																'id_catalogue' => null,
-																'abon_ou_bib' => '',
-																'only_img' => 0);
+															 'id_catalogue' => null,
+															 'abon_ou_bib' => '',
+															 'only_img' => 0);
 	}
 
 	protected function assertQueryIs($expected) {
@@ -605,7 +605,7 @@ class AvisLoaderGetAvisFromPreferencesTest extends AvisTestFindAllTestCase {
 												 "ORDER BY `DATE_AVIS` DESC");
 	}
 
-	public function testWithAllAndModoAPosteriori() { 		
+	public function testWithAllAndModoAPosteriori() {
 		$this->preferences['abon_ou_bib'] = 'all';
  		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
@@ -613,27 +613,27 @@ class AvisLoaderGetAvisFromPreferencesTest extends AvisTestFindAllTestCase {
 	}
 
 
-	public function testWithAllAndModoAPrioriForReaders() { 		
+	public function testWithAllAndModoAPrioriForReaders() {
 		$this->modo_avis->setValeur(1);
 		$this->preferences['abon_ou_bib'] = 'all';
 		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
-												 "WHERE (STATUT=1 OR ABON_OU_BIB=1) ".
+												 "WHERE ((STATUT=1 OR ABON_OU_BIB=1)) ".
 												 "ORDER BY `DATE_AVIS` DESC");
 	}
 
 
-	public function testWithAllAndModoAPrioriForBiblio() { 		
+	public function testWithAllAndModoAPrioriForBiblio() {
 		$this->modo_avis_biblio->setValeur(1);
 		$this->preferences['abon_ou_bib'] = 'all';
 		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
-												 "WHERE (STATUT=1 OR ABON_OU_BIB=0) ".
+												 "WHERE ((STATUT=1 OR ABON_OU_BIB=0)) ".
 												 "ORDER BY `DATE_AVIS` DESC");
 	}
 
 
-	public function testWithAllAndModoAPrioriForBiblioAndReaders() { 		
+	public function testWithAllAndModoAPrioriForBiblioAndReaders() {
 		$this->modo_avis->setValeur(1);
 		$this->modo_avis_biblio->setValeur(1);
 
@@ -641,13 +641,13 @@ class AvisLoaderGetAvisFromPreferencesTest extends AvisTestFindAllTestCase {
 
 		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
-												 "WHERE (STATUT=1 OR ABON_OU_BIB=1) ".
-												 "AND (STATUT=1 OR ABON_OU_BIB=0) ".
+												 "WHERE ((STATUT=1 OR ABON_OU_BIB=1) ".
+												 "AND (STATUT=1 OR ABON_OU_BIB=0)) ".
 												 "ORDER BY `DATE_AVIS` DESC");
 	}
 
 
-	public function testWithReadersAndModoAPosteriori() { 		
+	public function testWithReadersAndModoAPosteriori() {
 		$this->preferences['abon_ou_bib'] = '0';
 		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
@@ -656,14 +656,14 @@ class AvisLoaderGetAvisFromPreferencesTest extends AvisTestFindAllTestCase {
 	}
 
 
-	public function testWithReadersAndModoAPrioriForReaders() { 		
+	public function testWithReadersAndModoAPrioriForReaders() {
 		$this->modo_avis->setValeur(1);
 
 		$this->preferences['abon_ou_bib'] = '0';
 		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
 												 "WHERE (ABON_OU_BIB='0') ".
-												 "AND (STATUT=1 OR ABON_OU_BIB=1) ".
+												 "AND ((STATUT=1 OR ABON_OU_BIB=1)) ".
 												 "ORDER BY `DATE_AVIS` DESC");
 	}
 
@@ -683,7 +683,7 @@ class AvisLoaderGetAvisFromPreferencesTest extends AvisTestFindAllTestCase {
 		$this->assertQueryIs("SELECT `notices_avis`.* ".
 												 "FROM `notices_avis` ".
 												 "WHERE (ABON_OU_BIB='1') ".
-												 "AND (STATUT=1 OR ABON_OU_BIB=0) ".
+												 "AND ((STATUT=1 OR ABON_OU_BIB=0)) ".
 												 "ORDER BY `DATE_AVIS` DESC");
 	}
 }
@@ -712,12 +712,12 @@ class AvisVisibilityTest extends ModelTestCase {
 			->setStatut(0);
 		$this->assertFalse($this->avis_reader_invalid->isModerationOK());
 		$this->assertTrue($this->avis_reader_invalid->isWrittenByAbonne());
-			
+
 		$this->avis_reader_valid = new Class_AvisNotice();
 		$this->avis_reader_valid
 			->setAbonOuBib(0)
 			->setUser($this->user_reader)
-			->setStatut(1);		
+			->setStatut(1);
 
 		$this->avis_biblio_invalid = new Class_AvisNotice();
 		$this->avis_biblio_invalid
@@ -759,53 +759,222 @@ class AvisVisibilityTest extends ModelTestCase {
 	public function testWithModoReaderAPriori() {
 		$this->assertVisible($this->avis_reader_valid, $this->user_reader);
 		$this->assertVisible($this->avis_reader_invalid, $this->user_reader);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);	
-		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);
+		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);
 
 		$this->assertVisible($this->avis_reader_valid, $this->user_reader_other);
 		$this->assertVisible($this->avis_reader_invalid, $this->user_reader_other);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader_other);	
-		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader_other);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader_other);
+		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader_other);
 
 		$this->assertVisible($this->avis_reader_valid, $this->user_bib);
 		$this->assertVisible($this->avis_reader_invalid, $this->user_bib);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_bib_other);	
-		$this->assertVisible($this->avis_biblio_invalid, $this->user_bib_other);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_bib_other);
+		$this->assertVisible($this->avis_biblio_invalid, $this->user_bib_other);
 	}
 
 	public function testWithModoReaderAPosteriori() {
 		$this->modo_avis->setValeur(1);
 		$this->assertVisible($this->avis_reader_valid, $this->user_reader);
-		$this->assertVisible($this->avis_reader_invalid, $this->user_reader);	
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);	
-		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);	
+		$this->assertVisible($this->avis_reader_invalid, $this->user_reader);
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);
+		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);
 
 		$this->assertVisible($this->avis_reader_valid, $this->user_reader_other);
 		$this->assertNotVisible($this->avis_reader_invalid, $this->user_reader_other);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);	
-		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);
+		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);
 
 		$this->assertVisible($this->avis_reader_valid, $this->user_bib);
 		$this->assertNotVisible($this->avis_reader_invalid, $this->user_bib);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);	
-		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);
+		$this->assertVisible($this->avis_biblio_invalid, $this->user_reader);
 	}
 
 	public function testWithModoBibrAPosteriori() {
 		$this->modo_avis_biblio->setValeur(1);
 		$this->assertVisible($this->avis_reader_valid, $this->user_reader);
-		$this->assertVisible($this->avis_reader_invalid, $this->user_reader);	
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);	
-		$this->assertNotVisible($this->avis_biblio_invalid, $this->user_reader);	
+		$this->assertVisible($this->avis_reader_invalid, $this->user_reader);
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader);
+		$this->assertNotVisible($this->avis_biblio_invalid, $this->user_reader);
 
 		$this->assertVisible($this->avis_reader_valid, $this->user_reader_other);
 		$this->assertVisible($this->avis_reader_invalid, $this->user_reader_other);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_reader_other);	
-		$this->assertNotVisible($this->avis_biblio_invalid, $this->user_reader_other);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_reader_other);
+		$this->assertNotVisible($this->avis_biblio_invalid, $this->user_reader_other);
 
 		$this->assertVisible($this->avis_reader_valid, $this->user_bib);
 		$this->assertVisible($this->avis_reader_invalid, $this->user_bib);
-		$this->assertVisible($this->avis_biblio_valid, $this->user_bib_other);	
-		$this->assertNotVisible($this->avis_biblio_invalid, $this->user_bib_other);	
+		$this->assertVisible($this->avis_biblio_valid, $this->user_bib_other);
+		$this->assertNotVisible($this->avis_biblio_invalid, $this->user_bib_other);
+	}
+}
+
+
+
+class AvisNoticeAvisFromPreferencesTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+		Class_Users::beVolatile();
+		Class_AdminVar::newInstanceWithId('MODO_AVIS', ['valeur' => 1]);
+		Class_AdminVar::newInstanceWithId('MODO_AVIS_BIBLIO', ['valeur' => 1]);
+
+		$notice = $this->fixture('Class_Notice',
+														 ['id' => 3,
+															'clef_oeuvre' => 'POTTER']);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
+			->whenCalled('getNoticesByPreferences')
+			->answers([$notice]);
+
+
+		$this->_avis_bib_not_moderated = $this->fixture('Class_AvisNotice',
+																										['id' => 1,
+																										 'entete' => 'rating',
+																										 'avis' => 'Hello it is a rating',
+																										 'clef_oeuvre' => 'POTTER',
+																										 'statut' => 0]);
+
+		$this->_avis_abon_not_moderated = $this->fixture('Class_AvisNotice',
+																										 ['id' => 2,
+																											'entete' => 'rating',
+																											'avis' => 'Hello it is a rating',
+																											'clef_oeuvre' => 'POTTER',
+																											'statut' => 0]);
+
+		$this->_avis_bib_moderated = $this->fixture('Class_AvisNotice',
+																								['id' => 3,
+																								 'entete' => 'rating',
+																								 'avis' => 'Hello it is a rating',
+																								 'clef_oeuvre' => 'POTTER',
+																								 'statut' => 1]);
+
+		$this->_avis_abon_moderated = $this->fixture('Class_AvisNotice',
+																								 ['id' => 4,
+																									'entete' => 'rating',
+																									'avis' => 'Hello it is a rating',
+																									'clef_oeuvre' => 'POTTER',
+																									'statut' => 1]);
+	}
+
+
+	/** @test */
+	public function withAPioriModerationAllAvisShouldReturnModeratedRatingFromAbonAndBib() {
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'clef_oeuvre' => ['POTTER'],
+							'where' => '(STATUT=1 OR ABON_OU_BIB=1) AND (STATUT=1 OR ABON_OU_BIB=0)'])
+			->answers([$this->_avis_bib_moderated, $this->_avis_abon_moderated]);
+
+		$this->assertEquals([$this->_avis_bib_moderated, $this->_avis_abon_moderated],
+												Class_AvisNotice::getAvisFromPreferences(['id_panier' => 1]));
+	}
+
+
+  /** @test */
+	public function withAPioriModerationAvisAbonShouldReturnModeratedRatingFromAbon() {
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'clef_oeuvre' => ['POTTER'],
+							'ABON_OU_BIB' => 0,
+							'where' => '(STATUT=1 OR ABON_OU_BIB=1) AND (STATUT=1 OR ABON_OU_BIB=0)'])
+			->answers([$this->_avis_abon_moderated]);
+
+		$this->assertEquals([$this->_avis_abon_moderated], Class_AvisNotice::getAvisFromPreferences(['id_panier' => 1,
+																																																 'abon_ou_bib' => 0]));
+	}
+
+
+  /** @test */
+	public function withAPioriModerationAvisBibShouldReturnModeratedRatingFromBib() {
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'clef_oeuvre' => ['POTTER'],
+							'ABON_OU_BIB' => 1,
+							'where' => '(STATUT=1 OR ABON_OU_BIB=1) AND (STATUT=1 OR ABON_OU_BIB=0)'])
+			->answers([$this->_avis_bib_moderated]);
+
+		$this->assertEquals([$this->_avis_bib_moderated], Class_AvisNotice::getAvisFromPreferences(['id_panier' => 1,
+																																																 'abon_ou_bib' => 1]));
+	}
+
+
+  /** @test */
+	public function withAPosterioriAbonModerationAvisBibShouldReturnModeratedRatingFromBib() {
+		Class_AdminVar::newInstanceWithId('MODO_AVIS', ['valeur' => 0]);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'clef_oeuvre' => ['POTTER'],
+							'ABON_OU_BIB' => 0,
+							'where' => '(STATUT=1 OR ABON_OU_BIB=0)'])
+			->answers([$this->_avis_abon_moderated, $this->_avis_abon_not_moderated]);
+
+		$this->assertEquals([$this->_avis_abon_moderated, $this->_avis_abon_not_moderated],
+												Class_AvisNotice::getAvisFromPreferences(['id_panier' => 1,
+																																	'abon_ou_bib' => 0]));
+	}
+
+
+  /** @test */
+	public function withAPosterioriAbonModerationAllAvisShouldReturnModeratedRatingFromBib() {
+		Class_AdminVar::newInstanceWithId('MODO_AVIS', ['valeur' => 0]);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'clef_oeuvre' => ['POTTER'],
+							'where' => '(STATUT=1 OR ABON_OU_BIB=0)'])
+			->answers([$this->_avis_bib_moderated, $this->_avis_abon_moderated, $this->_avis_abon_not_moderated]);
+
+		$this->assertEquals([$this->_avis_bib_moderated, $this->_avis_abon_moderated, $this->_avis_abon_not_moderated],
+												Class_AvisNotice::getAvisFromPreferences(['id_panier' => 1,
+																																	'abon_ou_bib' => 'all']));
+	}
+
+
+
+  /** @test */
+	public function withAPosterioriBibModerationAllAvisShouldReturnModeratedRatingFromAbon() {
+		Class_AdminVar::newInstanceWithId('MODO_AVIS', ['valeur' => 1]);
+		Class_AdminVar::newInstanceWithId('MODO_AVIS_BIBLIO', ['valeur' => 0]);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'clef_oeuvre' => ['POTTER'],
+							'where' => '(STATUT=1 OR ABON_OU_BIB=1)'])
+			->answers([$this->_avis_bib_moderated, $this->_avis_bib_not_moderated, $this->_avis_abon_moderated]);
+
+		$this->assertEquals([$this->_avis_bib_moderated, $this->_avis_bib_not_moderated, $this->_avis_abon_moderated],
+												Class_AvisNotice::getAvisFromPreferences(['id_panier' => 1,
+																																	'abon_ou_bib' => 'all']));
+	}
+
+
+
+  /** @test */
+	public function withNoFoundRecordShouldNotReturnAnyAvis() {
+		Class_AdminVar::newInstanceWithId('MODO_AVIS', ['valeur' => 0]);
+		Class_AdminVar::newInstanceWithId('MODO_AVIS_BIBLIO', ['valeur' => 0]);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
+			->whenCalled('getNoticesByPreferences')
+			->answers([]);
+
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
+			->whenCalled('findAllBy')
+			->with(['order' => 'DATE_AVIS DESC',
+							'id_notice' => -1])
+			->answers([$this->_avis_bib_moderated, $this->_avis_bib_not_moderated, $this->_avis_abon_moderated]);
+
+		$this->assertEquals([$this->_avis_bib_moderated, $this->_avis_bib_not_moderated, $this->_avis_abon_moderated],
+												Class_AvisNotice::getAvisFromPreferences(['id_panier' => 3,
+																																	'abon_ou_bib' => 'all']));
 	}
 }
\ No newline at end of file
diff --git a/tests/library/Class/BatchTest.php b/tests/library/Class/BatchTest.php
index 0fb348a3652c68f897c0c86a503fda324926b6c7..5eb95b5923b9161c18e9d3ed4293de78d4bf5021 100644
--- a/tests/library/Class/BatchTest.php
+++ b/tests/library/Class/BatchTest.php
@@ -18,7 +18,8 @@
  * along with BOKEH; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-
+include_once('tests/fixtures/HarvestOrpheaFixtures.php');
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
 
 class BatchModelTest extends Storm_Test_ModelTestCase {
 	public function setUp(){
@@ -37,6 +38,12 @@ class BatchModelTest extends Storm_Test_ModelTestCase {
 																					['id' => 3,
 																					 'type' => 'INDEX_RESSOURCES_NUMERIQUES',
 																					 'last_run' => '2014-04-02 17:11:00']);
+
+		$this->batch_orphea = $this->fixture('Class_Batch',
+																				 ['id' => 4,
+																					 'type' => 'MOISSONNAGE_ORPHEA',
+																					'last_run' => '2012-05-01 10:23:00']);
+
 	}
 
 
@@ -60,6 +67,7 @@ class BatchModelTest extends Storm_Test_ModelTestCase {
 		$this->assertTrue($mock->methodHasBeenCalled('run'));
 	}
 
+
 	/** @test */
 	public function batchIndexRessoucesNumeriquesRunShouldCallRun(){
 		$mock = Storm_Test_ObjectWrapper::mock()
@@ -72,6 +80,20 @@ class BatchModelTest extends Storm_Test_ModelTestCase {
 		$this->batch_IndexRessourcesNumeriques->run();
 		$this->assertTrue($mock->methodHasBeenCalled('run'));
 	}
+
+
+	/** @test */
+	public function batchOrpheaHarvestShouldCallHarvest(){
+		$mock = Storm_Test_ObjectWrapper::mock()
+			->whenCalled('run')->answers(true);
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Batch')
+			->whenCalled('getKnownType')->with('MOISSONNAGE_ORPHEA')
+			->answers($mock);
+
+		$this->batch_orphea->run();
+		$this->assertTrue($mock->methodHasBeenCalled('run'));
+	}
 }
 
 
@@ -120,7 +142,9 @@ class BatchLoaderWithRessourcesNumeriquesTest extends Storm_Test_ModelTestCase {
 
 class BatchIndexRessourcesNumeriquesTest extends Storm_Test_ModelTestCase {
 	public function setUp() {
-		$album = $this->fixture('Class_Album', ['id' => 1, 'libelle' => 'Mon Album']);
+		$album = $this->fixture('Class_Album', ['id' => 1,
+																						'libelle' => 'Mon Album',
+																						'status' => Class_Album::STATUS_VALIDATED]);
 		Class_Notice::beVolatile();
 
 		$mock = Storm_Test_ObjectWrapper::mock();
diff --git a/tests/library/Class/CatalogueTest.php b/tests/library/Class/CatalogueTest.php
index 2750dfb485477a71e80e683a4d217dee2b300174..298b5c7dcb4a056d21af2d2f23d5a72df63e7de4 100644
--- a/tests/library/Class/CatalogueTest.php
+++ b/tests/library/Class/CatalogueTest.php
@@ -497,6 +497,8 @@ class CatalogueTestOAISpec extends ModelTestCase {
 }
 
 
+
+
 class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -517,30 +519,34 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 			->whenCalled('save')->answers(true)
 			->whenCalled('load')->answers(false);
 
+		$dvd_jeune_fille = $this->fixture('Class_Notice', ['id' => 23,
+																											 'type_doc' => 2,
+																											 'facettes' => 'T2',
+																											 'isbn' => '123456789',
+																											 'ean' => '',
+																											 'annee' => 1975,
+																											 'tome_alpha' => '',
+																											 'editeur' => 'dargaud',
+																											 'date_creation' => '2011-02-23',
+																											 'clef_alpha' => 'DOU-TEST',
+																											 'clef_oeuvre' => 'JEUNE FILLE',
+																											 'unimarc' => "01328ngm0 2200265   450 0010007000001000041000071010013000481020007000611150025000682000071000932100022001642150053001863000035002393000045002743300454003193450027007735100018008006060027008186060039008457000042008847020043009267020033009697020032010028010028010342247456  a20021213i20041975u  y0frey0103    ba0 abamjfre  aFR  ac086baz|zba    zz  c1 aLa jeune fillebDVDdDen MusofSouleymane Cisse, réal., scénario  cPathédcop. 2004  a1 DVD vidéo monoface zone 2 (1 h 26 min)ccoul.  aDate de sortie du film : 1975.  aFilm en bambara sous-titré en français  aSékou est renvoyé de l'usine parce qu'il a osé demander une augmentation. Chômeur, il sort avec Ténin, une jeune fille muette ; il ignore qu'elle est la fille de son ancien patron. Ténin, qui sera violée par Sékou lors d'une sortie entre jeunes, se retrouve enceinte et subit la colère de ses parents. Elle se trouve alors confrontée brutalement à la morale de sa famille et à la lâcheté de Sékou, qui refuse de reconnaiîre l'enfant.  b3388334509824d14.00 ?1 aDen Musozbam| 31070135aCinémayMali| 32243367aCinéma30076549yAfrique 131070144aCissébSouleymane43704690 132247457aCoulibalibDounamba Dani4590 132247458aDiabatebFanta4590 132247459aDiarrabOumou4590 0aFRbBNc20011120gAFNOR"]);
+
+
 		$this->old_sql = Zend_Registry::get('sql');
 		$this->mock_sql = Storm_Test_ObjectWrapper::mock();
 		Zend_Registry::set('sql', $this->mock_sql);
 
 		$this->mock_sql
-			->whenCalled('fetchAll')
-			->with("select notices.id_notice, notices.editeur, notices.annee, notices.date_creation, notices.date_maj, notices.facettes, notices.clef_oeuvre from notices Where type_doc=1 order by alpha_titre  LIMIT 0,25",
-						 false)
-			->answers([['id_notice' => 23, 'editeur' => 'dargaud', 'annee' => 1975, 'date_creation' => '2011-02-23',
-					'date_maj' => '2011-02-25', 'facettes' => '', 'clef_oeuvre' => 'JEUNE FILLE'],])
+			->whenCalled('fetchAllByColumn')
+			->with("select notices.id_notice from notices Where type_doc=1 order by alpha_titre  LIMIT 0,25")
+			->answers([23])
+
 			->whenCalled('query')
 			->with([0 => 'update notices set facettes = clean_spaces(replace(facettes,"HCCCC0030","")) where type_doc not in (8,9,10) and match(facettes) against("+HCCCC0030" in boolean mode)'])
 			->answers(true)
 			->beStrict();
 
-		$this->fixture('Class_Notice', ['id' => 23,
-																		'type_doc' => 2,
-																		'facettes' => 'T2',
-																		'isbn' => '123456789',
-																		'ean' => '',
-																		'annee' => 1974,
-																		'tome_alpha' => '',
-																		'clef_alpha' => 'DOU-TEST',
-																		'unimarc' => "01328ngm0 2200265   450 0010007000001000041000071010013000481020007000611150025000682000071000932100022001642150053001863000035002393000045002743300454003193450027007735100018008006060027008186060039008457000042008847020043009267020033009697020032010028010028010342247456  a20021213i20041975u  y0frey0103    ba0 abamjfre  aFR  ac086baz|zba    zz  c1 aLa jeune fillebDVDdDen MusofSouleymane Cisse, réal., scénario  cPathédcop. 2004  a1 DVD vidéo monoface zone 2 (1 h 26 min)ccoul.  aDate de sortie du film : 1975.  aFilm en bambara sous-titré en français  aSékou est renvoyé de l'usine parce qu'il a osé demander une augmentation. Chômeur, il sort avec Ténin, une jeune fille muette ; il ignore qu'elle est la fille de son ancien patron. Ténin, qui sera violée par Sékou lors d'une sortie entre jeunes, se retrouve enceinte et subit la colère de ses parents. Elle se trouve alors confrontée brutalement à la morale de sa famille et à la lâcheté de Sékou, qui refuse de reconnaiîre l'enfant.  b3388334509824d14.00 ?1 aDen Musozbam| 31070135aCinémayMali| 32243367aCinéma30076549yAfrique 131070144aCissébSouleymane43704690 132247457aCoulibalibDounamba Dani4590 132247458aDiabatebFanta4590 132247459aDiarrabOumou4590 0aFRbBNc20011120gAFNOR"]);
 
 		$this->_notices = Class_Catalogue::getLoader()->getNoticesByPreferences(['id_catalogue' => 666,
 																																						 'aleatoire' => '1',
@@ -557,19 +563,19 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 
 	/** @test */
 	public function firstNoticeIdShouldBe23() {
-		$this->assertEquals(23, $this->_notices[0]["id_notice"]);
+		$this->assertEquals(23, $this->_notices[0]->getId());
 	}
 
 
 	/** @test */
 	public function firstTitleShouldBeLaJeuneFille() {
-		$this->assertEquals('La jeune fille', $this->_notices[0]['titre']);
+		$this->assertEquals('La jeune fille', $this->_notices[0]->getTitrePrincipal());
 	}
 
 
 	/** @test */
 	public function firstAuthorShouldBe() {
-		$this->assertEquals('Souleymane Cissé', $this->_notices[0]['auteur']);
+		$this->assertEquals('Souleymane Cissé', $this->_notices[0]->getAuteurPrincipal());
 	}
 
 
@@ -586,17 +592,16 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 										'nb_analyse' => 25,
 										'nb_notices' => 40];
 
-
 		/* this test will fail when Class_Catalogue::_default_attribute_values change */
 		$this->mock_cache
 			->whenCalled('load')
-			->with('274bd8a6a2b9f86411a728fbf579b26e')
+			->with('36487efac62b2214513f49148cecdaeb')
 			->answers(serialize(['test']))
 			->beStrict();
 
-		$notices = Class_Catalogue::getLoader()->getNoticesByPreferences($preferences);
+		$notices = Class_Catalogue::getNoticesByPreferences($preferences);
 
-		$this->assertEquals(array('test'), $notices);
+		$this->assertEquals(['test'], $notices);
 	}
 
 
@@ -612,11 +617,11 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 		ZendAfi_Auth::getInstance()->getStorage()->write($account);
 
 		Class_Users::getLoader()->newInstanceWithId($account->ID_USER)->setRoleLevel($account->ROLE_LEVEL);
-		$notices = Class_Catalogue::getLoader()->getNoticesByPreferences(array('id_catalogue' => 666,
-																																'aleatoire' => 1,
-																																'nb_analyse' => 25,
-																																'nb_notices' => 40));
-		$this->assertEquals(23, $notices[0]["id_notice"]);
+		$notices = Class_Catalogue::getLoader()->getNoticesByPreferences(['id_catalogue' => 666,
+																																			'aleatoire' => 1,
+																																			'nb_analyse' => 25,
+																																			'nb_notices' => 40]);
+		$this->assertEquals(23, $notices[0]->getId());
 	}
 }
 
diff --git a/tests/library/Class/Cosmogramme/Integration/PhaseReservationTest.php b/tests/library/Class/Cosmogramme/Integration/PhaseReservationTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..639bcbd81a7e76c91ba1eaa0e40ea27f080fd0b0
--- /dev/null
+++ b/tests/library/Class/Cosmogramme/Integration/PhaseReservationTest.php
@@ -0,0 +1,331 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+abstract class PhaseReservationTestCase extends Storm_Test_ModelTestCase {
+	protected $_log, $_phase, $_log_content, $_printer, $_printer_content;
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+
+		$this->fixture('Class_CosmoVar',
+									 ['id' => 'traitement_phase', 'valeur' => 'Base bloquée']);
+
+		$this->fixture('Class_CosmoVar',
+									 ['id' => 'integration_path', 'valeur' => realpath(dirname(__FILE__)) . '/']);
+
+
+		$this->fixture('Class_CosmoVar', ['id' => 'import_type_operation', 'liste' => '']);
+		Class_CosmoVar::addLabelInList('import_type_operation',
+																	 Class_Cosmogramme_Integration::TYPE_OPERATION_TOTAL,
+																	 'Import total');
+
+		$this->fixture('Class_CosmoVar', ['id' => 'import_format', 'liste' => '']);
+		Class_CosmoVar::addLabelInList('import_format', 3, 'Ascii séparé par des "|"');
+
+		$bib = $this->fixture('Class_IntBib',
+													['id' => 2,
+													 'nom_court' => 'Annexe 2',
+													 'sigb' => 1]);
+
+		$profil = $this->fixture('Class_Cosmogramme_ProfilDonnees',
+														 ['id' => 102,
+															'libelle' => 'Réservations Pergame',
+															'accents' => 2,
+															'type_fichier' => Class_Cosmogramme_ProfilDonnees::FILE_TYPE_HOLDS,
+															'format' => 3,
+															'attributs' => 'a:4:{i:0;a:6:{s:8:"type_doc";a:11:{i:0;a:3:{s:4:"code";s:1:"0";s:5:"label";s:0:"";s:8:"zone_995";s:0:"";}i:1;a:3:{s:4:"code";s:1:"1";s:5:"label";s:5:"am;na";s:8:"zone_995";s:6:"LIV;MS";}i:2;a:3:{s:4:"code";s:1:"2";s:5:"label";s:2:"as";s:8:"zone_995";s:3:"PER";}i:3;a:3:{s:4:"code";s:1:"3";s:5:"label";s:3:"i;j";s:8:"zone_995";s:17:"CD;LIVCD;LIVK7;K7";}i:4;a:3:{s:4:"code";s:1:"4";s:5:"label";s:1:"g";s:8:"zone_995";s:20:"DIAPO;DVD;VHS;VHD;VD";}i:5;a:3:{s:4:"code";s:1:"5";s:5:"label";s:3:"l;m";s:8:"zone_995";s:3:"CDR";}i:6;a:3:{s:4:"code";s:1:"6";s:5:"label";s:3:"c;d";s:8:"zone_995";s:3:"MM;";}i:7;a:3:{s:4:"code";s:1:"7";s:5:"label";s:3:"f;k";s:8:"zone_995";s:21:"PHOTO;EST;EKTA;CPL;CP";}i:8;a:3:{s:4:"code";s:1:"8";s:5:"label";s:0:"";s:8:"zone_995";s:3:"DOS";}i:9;a:3:{s:4:"code";s:1:"9";s:5:"label";s:0:"";s:8:"zone_995";s:0:"";}i:10;a:3:{s:4:"code";s:2:"10";s:5:"label";s:0:"";s:8:"zone_995";s:6:"WEB;MF";}}s:17:"champ_code_barres";s:1:"f";s:11:"champ_genre";s:0:"";s:13:"champ_section";s:1:"q";s:17:"champ_emplacement";s:1:"u";s:12:"champ_annexe";s:1:"a";}i:1;a:1:{s:6:"champs";s:63:"ID_PERGAME;IDABON;ORDREABON;SUPPORT;ID_NOTICE_ORIGINE;DATE_RESA";}i:2;a:1:{s:6:"champs";s:63:"ID_PERGAME;IDABON;ORDREABON;SUPPORT;ID_NOTICE_ORIGINE;DATE_RESA";}i:3;a:1:{s:6:"champs";s:63:"ID_PERGAME;IDABON;ORDREABON;SUPPORT;ID_NOTICE_ORIGINE;DATE_RESA";}}']);
+
+		$this->_log = $this->mock()
+											 ->whenCalled('ecrire')
+											 ->willDo(function($content) { $this->_log_content .= $content; });
+
+		$this->_chrono = new Class_Cosmogramme_Integration_Chronometre();
+		$this->_printer = $this->mock()
+													 ->whenCalled('nextPutAll')
+													 ->willDo(function($content) { $this->_printer_content .= $content; });
+
+		$this->_prepareFixtures();
+
+		$this->_phase = (new Class_Cosmogramme_Integration_PhaseReservation($this->_getPreviousPhase(),
+																																				$this->_log,
+																																				$this->_chrono))
+			->setPrinter($this->_printer)
+			->run();
+	}
+
+
+	protected function _getPreviousPhase() {
+		return null;
+	}
+
+
+	protected function _prepareFixtures() {
+	}
+
+
+	protected function assertLogContains($value) {
+		$this->assertContains($value, $this->_log_content);
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function traitementPhaseShouldBeIntegrationReservation() {
+		$this->assertContains('fichiers de réservations',
+													Class_CosmoVar::getValueOf('traitement_phase'));
+	}
+}
+
+
+
+class PhaseReservationBadPreviousPhaseCronFirstRunTest extends PhaseReservationTestCase {
+	protected function _getPreviousPhase() {
+		return (new Class_Cosmogramme_Integration_Phase(1))->beCron();
+	}
+
+
+	/** @test */
+	public function logShouldNotHaveBeenCalled() {
+		$this->assertFalse($this->_log->methodHasBeenCalled('ecrire'));
+	}
+
+
+	/** @test */
+	public function resultPhaseShouldNotHaveChanged() {
+		$this->assertTrue($this->_phase->isId(1));
+	}
+}
+
+
+class PhaseReservationCallBackBeforeLastTest
+	extends PhaseReservationTestCase {
+
+	protected function _getPreviousPhase() {
+		return (new Class_Cosmogramme_Integration_Phase(13))
+			->beCallBack()
+			->setData('nombre', 24)
+			->setData('timeStart', mktime(0, 0, 0, 2, 4, 2015));
+	}
+
+
+	protected function _prepareFixtures() {
+		$this->_time_source = $this
+			->mock(new Class_TimeSource())
+			->whenCalled('time')->answers(mktime(0, 0, 13, 2, 4, 2015))
+			->whenCalled('dateYmd')->answers('2015-02-04');
+
+		Class_Cosmogramme_Chronometre::setTimeSource($this->_time_source);
+		Class_Cosmogramme_Integration_PhaseReservation::setTimeSource($this->_time_source);
+
+		$this->_chrono->start(mktime(0, 0, 0, 2, 4, 2015));
+
+		$this->_integration = $this->fixture('Class_Cosmogramme_Integration',
+																				 ['id' => 22331,
+																					'bib' => Class_IntBib::find(2),
+																					'profil_donnees' => Class_Cosmogramme_ProfilDonnees::find(102),
+																					'type_operation' => Class_Cosmogramme_Integration::TYPE_OPERATION_TOTAL,
+																					'traite' => 'non',
+																					'fichier' => 'holds.txt',
+																					'pointeur_reprise' => 983]);
+
+		$this->fixture('Class_Reservation',
+									 ['id' => 4455, 'id_site' => 2]);
+	}
+
+
+	/** @test */
+	public function phaseShouldCount25Processed() {
+		$this->assertEquals(25, $this->_phase->getData('nombre'));
+	}
+
+
+	/** @test */
+	public function shouldHaveSavedLastHold() {
+		$this->assertEquals(26905,
+												Class_Reservation::findFirstBy(['order' => 'id desc'])
+												->getIdPergame());
+	}
+
+
+	/** @test */
+	public function shouldNotDeletePreviousHold() {
+		$this->assertNotNull(Class_Reservation::find(4455));
+	}
+
+
+	/** @test */
+	public function souldHaveProcessedOneFile() {
+		$this->assertEquals(1, $this->_phase->getData('nb_fic'));
+	}
+
+
+	/** @test */
+	public function integrationShouldBeFlaggedAsProcessed() {
+		$this->assertEquals('2015-02-04', $this->_integration->getTraite());
+	}
+
+
+	/** @test */
+	public function integrationPointerShouldProcessedRecordsCount() {
+		$this->assertEquals(25, $this->_integration->getPointeurReprise());
+	}
+}
+
+
+class PhaseReservationValidCronFirstRunTest extends PhaseReservationTestCase {
+	protected function _getPreviousPhase() {
+		return (new Class_Cosmogramme_Integration_Phase(12))->beCron();
+	}
+
+
+	protected function _prepareFixtures() {
+		$this->fixture('Class_Cosmogramme_Integration',
+									 ['id' => 22331,
+										'bib' => Class_IntBib::find(2),
+										'profil_donnees' => Class_Cosmogramme_ProfilDonnees::find(102),
+										'type_operation' => Class_Cosmogramme_Integration::TYPE_OPERATION_TOTAL,
+										'traite' => 'non',
+										'fichier' => 'holds.txt',
+										'pointeur_reprise' => 0]);
+
+		$this->fixture('Class_Reservation',
+									 ['id' => 4455, 'id_site' => 2]);
+	}
+
+
+	/** @test */
+	public function logShouldContainsPhaseLabel() {
+		$this->assertLogContains('<h4>Intégration des fichiers de réservations</h4>');
+	}
+
+
+	/** @test */
+	public function logShouldContainsLibraryName() {
+		$this->assertLogContains('Annexe 2');
+	}
+
+
+	/** @test */
+	public function logShouldContainsOperationName() {
+		$this->assertLogContains('(Import total)');
+	}
+
+
+	/** @test */
+	public function logShouldContainsFileName() {
+		$this->assertLogContains('holds.txt');
+	}
+
+
+	/** @test */
+	public function logShouldContainsProfilName() {
+		$this->assertLogContains('Réservations Pergame');
+	}
+
+
+	/** @test */
+	public function logShouldContainsFormatName() {
+		$this->assertLogContains('Ascii séparé par des "|"');
+	}
+
+
+	/** @test */
+	public function resultPhaseShouldBe13() {
+		$this->assertTrue($this->_phase->isId(13));
+	}
+
+
+	/** @test */
+	public function existingHoldShouldHaveBeenDeleted() {
+		$this->assertNull(Class_Reservation::find(4455));
+	}
+
+
+	/** @test */
+	public function shouldHave25Holds() {
+		$this->assertEquals(25, Class_Reservation::count());
+	}
+
+
+	/** @test */
+	public function shouldNotImportPergameHeader() {
+		$this->assertNull(Class_Reservation::findFirstBy(['id_pergame' => 'BIB_T_RESERVE']));
+	}
+
+
+	/** @test */
+	public function shouldHaveImportedFirstHold() {
+		$this->assertNotNull($hold = Class_Reservation::findFirstBy(['id_pergame' => '26798']));
+		return $hold;
+	}
+
+
+	/**
+	 * @test
+	 * @depends shouldHaveImportedFirstHold
+	 */
+	public function firstHoldUserShouldBe3429($hold) {
+		$this->assertEquals(3429, $hold->getIdabon());
+	}
+
+
+	/**
+	 * @test
+	 * @depends shouldHaveImportedFirstHold
+	 */
+	public function firstHoldOrderShouldBe1($hold) {
+		$this->assertEquals(1, $hold->getOrdreabon());
+	}
+
+
+	/**
+	 * @test
+	 * @depends shouldHaveImportedFirstHold
+	 */
+	public function firstHoldSupportShouldBe1($hold) {
+		$this->assertEquals(1, $hold->getSupport());
+	}
+
+
+	/**
+	 * @test
+	 * @depends shouldHaveImportedFirstHold
+	 */
+	public function firstHoldNoticeShouldBe190003($hold) {
+		$this->assertEquals(190003, $hold->getIdNoticeOrigine());
+	}
+
+
+	/**
+	 * @test
+	 * @depends shouldHaveImportedFirstHold
+	 */
+	public function firstHoldDateShouldBeFebruary032015($hold) {
+		$this->assertEquals('2015-02-03', $hold->getDateResa());
+	}
+}
diff --git a/tests/library/Class/Cosmogramme/Integration/holds.txt b/tests/library/Class/Cosmogramme/Integration/holds.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0cdb57847ee9b6f58f1f4f6102a1d9e24dea3bfb
--- /dev/null
+++ b/tests/library/Class/Cosmogramme/Integration/holds.txt
@@ -0,0 +1,26 @@
+BIB_T_RESERVE|ID_RESERVE|ID_ABON|ORDRE_ABON|SUPPORT|ID_NOTICE|DATE_RESERVE|ANNEXE|RANG
+26798|3429|1|1|190003|2015-02-03|1|1
+26799|9459|1|1|189582|2015-02-03|1|1
+26830|9993|1|1|115891|2015-02-04|1|1
+26831|10647|1|1|188281|2015-02-04|1|7
+26837|15476|1|1|190154|2015-02-04|1|2
+26842|12317|1|1|190279|2015-02-05|1|5
+26844|3912|1|1|189471|2015-02-05|1|1
+26845|9808|1|1|193546|2015-02-05|1|1
+26851|10647|1|1|117175|2015-02-05|1|1
+26860|17379|1|1|160501|2015-02-06|1|1
+26864|16960|1|1|193225|2015-02-06|1|1
+26867|9690|1|1|190280|2015-02-06|1|5
+26871|9138|1|1|188251|2015-02-06|1|1
+26874|17233|1|1|168485|2015-02-07|1|1
+26876|17301|1|1|154561|2015-02-07|1|1
+26879|55|1|1|184963|2015-02-07|1|2
+26881|15386|1|1|188749|2015-02-07|1|1
+26884|7256|1|1|160496|2015-02-07|1|1
+26886|16877|1|1|80170|2015-02-07|1|1
+26891|15476|1|1|192825|2015-02-07|1|1
+26893|8764|1|1|145243|2015-02-09|1|1
+26897|1353|1|1|193175|2015-02-09|1|1
+26900|9037|1|1|140832|2015-02-09|1|1
+26904|13642|1|1|92429|2015-02-09|1|1
+26905|13642|1|1|152208|2015-02-09|1|1
diff --git a/tests/library/Class/EADTest.php b/tests/library/Class/EADTest.php
index 10f4a09a139cd6f11645bd08975924c0633eaf90..0e215f24189a17ae185d09f0909d151c0715b332 100644
--- a/tests/library/Class/EADTest.php
+++ b/tests/library/Class/EADTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class EADFolioMoulinsTest extends PHPUnit_Framework_TestCase {
@@ -123,7 +123,7 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 								->newInstanceWithId(98)
 								->setCodeAlpha('PURGATOIRE'));
 
-		
+
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Album')
 			->whenCalled('findFirstBy')
 			->with(array('id_origine' => 'D09030001'))
@@ -201,7 +201,7 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 		$this->assertEquals(null, $this->_souvigny->getAnnee());
 	}
 
- 
+
 	/** @test */
 	public function firstAlbumIDOrigineShouldBeD09030001() {
 		$this->assertEquals($this->_souvigny->getIdOrigine(), 'D09030001');
@@ -254,77 +254,77 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 
 	/** @test */
 	public function firstAlbumNote316ShouldContainsDescriptionReliure() {
-		$notes = $this->_souvigny->getNotesAsArray();
+		$notes = $this->_souvigny->getMarc()->getDatas();
 		$this->assertContains('Reliure en bois recouverte de cuir', $notes['316$a']);
 	}
 
 
 	/** @test */
 	public function matiereSouvignyShouldHaveLibelleBibleDeSouvigny() {
-		$this->assertEquals('Bible de Souvigny', 
+		$this->assertEquals('Bible de Souvigny',
 												Class_Matiere::getLoader()->find(99)->getLibelle());
 	}
 
 
 	/** @test */
 	public function dateCreationShouldBeTodayYYYY_MM_DD() {
-		$this->assertEquals(date('Y-m-d'), 
+		$this->assertEquals(date('Y-m-d'),
 												Class_Matiere::getLoader()->find(99)->getDateCreation());
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 99
-	 * @test 
+	 * @test
 	 */
 	public function ninetyFourthAlbumTitleShouldBeBibliographieDuBerry() {
-		$this->assertEquals('Bibliographie du Berry, du Nivernais, de la Marche et du Forez', 
+		$this->assertEquals('Bibliographie du Berry, du Nivernais, de la Marche et du Forez',
 												array_at(93, $this->_ead->getAlbums())->getTitre());
-		
+
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function eightyNinethAlbumIdLangShouldBeFre() {
 		$this->assertEquals('fre', $this->_eglise_izeure->getIdLangue());
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function eightyNinethAlbumNote305ShouldBeXVIIIe_siecle() {
 		$this->assertEquals('XVIIIe siècle', $this->_eglise_izeure->getNote('305$a'));
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function eightyNinethAlbumIdShouldBeNull() {
 		$this->assertEquals(null, $this->_eglise_izeure->getId());
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function eightyNinethAlbumShouldHaveBeenSaved() {
 		$this->assertTrue(Class_Album::getLoader()
-											->methodHasBeenCalledWithParams('save', 
+											->methodHasBeenCalledWithParams('save',
 																											array($this->_eglise_izeure)));
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function eightyNinethAlbumCategorieShouldImportCurrDate() {
 		$this->assertEquals(sprintf('import du %s', date('d M Y')),
@@ -332,9 +332,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function eightyNinethAlbumTypeDocShouldBeLivreNumerique() {
 		$this->assertEquals(Class_TypeDoc::LIVRE_NUM,
@@ -342,13 +342,13 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 95
-	 * @test 
+	 * @test
 	 */
 	public function categorieImportShouldHaveBeenSaved() {
 		$this->assertTrue(Class_AlbumCategorie::getLoader()
-											->methodHasBeenCalledWithParams('save', 
+											->methodHasBeenCalledWithParams('save',
 																											array($this->_eglise_izeure->getCategorie())));
 	}
 
@@ -358,11 +358,11 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * test non régression
 	 * @expectedException Storm_Model_Exception
 	 * @expectedExceptionMessage Tried to call unknown method Class_Album::getCat
-	 * @test 
+	 * @test
 	 */
 	public function albumGetCatShouldRaiseError() {
 		$this->_eglise_izeure->getCat();
@@ -387,9 +387,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 2, avec controlaccess / title
-	 * @test 
+	 * @test
 	 */
 	public function secondAlbumTitleShouldBeCodeAvecGloses() {
 		$this->assertEquals('Code avec gloses',
@@ -397,18 +397,18 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 2, avec controlaccess / title
-	 * @test 
+	 * @test
 	 */
 	public function secondAlbumAuteurShouldBeJustinien() {
 		$this->assertContains('Justinien', $this->_ead->getAlbums()[1]->getAuthorsNames());
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 17, avec auteur sur plusieurs lignes
-	 * @test 
+	 * @test
 	 */
 	public function albumSeventiethAuteurShouldBeFaure() {
 		$this->assertContains('Faure, François, trésorier et receveur général du duché de Bourbonnais',
@@ -416,9 +416,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 17, avec auteur sur plusieurs lignes
-	 * @test 
+	 * @test
 	 */
 	public function albumSeventiethCoteShouldBeMS017() {
 		$this->assertEquals('MS017',
@@ -426,9 +426,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 8, avec matiere / sujet
-	 * @test 
+	 * @test
 	 */
 	public function albumEighthMatiereShouldBe158() {
 		$this->assertEquals('158',
@@ -436,9 +436,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 49, avec matiere / sujet
-	 * @test 
+	 * @test
 	 */
 	public function albumFourtyFifthMatiereShouldBe234colon98() {
 		$this->assertEquals('234;98',
@@ -446,9 +446,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 18, avec annee, pas siecle
-	 * @test 
+	 * @test
 	 */
 	public function albumSixteenthAnneeShouldBe1844() {
 		$this->assertEquals('1844',
@@ -456,19 +456,19 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 18, avec annee, pas siecle
-	 * @test 
+	 * @test
 	 */
 	public function albumSixteenthSiecle305_a_ShouldBeEmpty() {
-		$notes = array_at(16, $this->_ead->getAlbums())->getNotesAsArray();
+		$notes = array_at(16, $this->_ead->getAlbums())->getMarc()->getDatas();
 		$this->assertFalse(array_key_exists('305$a', $notes));
 	}
 
 
-	/** 
+	/**
 	 * numéro_de_notice: 72, avec deux title, ne prends que le premier
-	 * @test 
+	 * @test
 	 */
 	public function albumSeventyTwoTitreShouldBeLeJardinOuParterrreSpirituel() {
 		$album = array_at(66, $this->_ead->getAlbums());
@@ -477,9 +477,9 @@ class EADMoulinsTest extends PHPUnit_Framework_TestCase {
 	}
 
 
-	/** 
+	/**
 	 * @depends albumSeventyTwoTitreShouldBeLeJardinOuParterrreSpirituel
-	 * @test 
+	 * @test
 	 */
 	public function albumSeventyTwoNote200DollarBSupportShouldBePapier($album) {
 		$this->assertEquals('Papier', $album->getNote('200$b'));
@@ -500,20 +500,20 @@ class EADIndexationParDefautTest extends Storm_Test_ModelTestCase {
 																												 'bibliotheques' => '1;8',
 																												 'annexes' => '10;12',
 																												 'sections' => '18;19']);
-		
+
 		self::fixture('Class_TypeDoc', ['id'=>Class_TypeDoc::LIVRE_NUM,
 																		'codif_type_doc' => $codif_type_doc,
 																		'label'=> 'Livre Numérique'
  										 ]);
-		
+
 		$this->_ead = new Class_EAD();
 		$this->_ead->loadFile('./tests/fixtures/ead_moulins.xml');
-	
+
 	}
 
 
 	/**
-	 * @test 
+	 * @test
 	 **/
 	public function albumShouldHaveBibSelected() {
 		$album = array_at(66, $this->_ead->getAlbums());
@@ -522,7 +522,7 @@ class EADIndexationParDefautTest extends Storm_Test_ModelTestCase {
 
 
 	/**
-	 * @test 
+	 * @test
 	 **/
 	public function albumShouldHaveAnnexesSelected() {
 		$album = array_at(66, $this->_ead->getAlbums());
@@ -530,7 +530,7 @@ class EADIndexationParDefautTest extends Storm_Test_ModelTestCase {
 	}
 
 	/**
-	 * @test 
+	 * @test
 	 **/
 	public function albumShouldHaveSectionsSelected() {
 		$album = array_at(66, $this->_ead->getAlbums());
diff --git a/tests/library/Class/Import/Typo3Fixture.php b/tests/library/Class/Import/Typo3Fixture.php
index 7c2e00d7bbda184c800d844dbf99f1243c1a69e1..b6b630390af0bd4b41fd77eef6d9a461b7f54b71 100644
--- a/tests/library/Class/Import/Typo3Fixture.php
+++ b/tests/library/Class/Import/Typo3Fixture.php
@@ -186,6 +186,7 @@ class MockTypo3DB {
 		return [ [
 							'uid' => 14474,
 							'crdate' => 141277461,
+							'datetime' => 141277461,
 							'cruser_id' => 43,
 							'starttime' => 1415110980,
 							'endtime' => 1422973380,
@@ -223,8 +224,10 @@ class MockTypo3DB {
 						[ 'uid' => 14476,
 						 'starttime' => 0,
 						 'endtime' => 0,
-						 'deleted' => 0,'hidden' => 0,
+						 'deleted' => 0,
+						 'hidden' => 0,
 						 'crdate' => 1359562198,
+						 'datetime' => 1359562198,
 						 'cruser_id' => 22,
 						 'short' => null,
 						 'category' => 1,
@@ -266,6 +269,7 @@ La collection<span style="text-decoration: none"><span style="font-style: normal
 						 'deleted' => 0,'hidden' => 0,
 						 'image' => 'onyx.png',
 						 'crdate' => 1359562208,
+						 'datetime' => 1359562208,
 						 'cruser_id' => 22,
 						 'short' => null,
 						 'category' => 1,
@@ -290,6 +294,7 @@ La collection<span style="text-decoration: none"><span style="font-style: normal
 						 'endtime' => 0,
 						 'deleted' => 0,'hidden' => 0,
 						 'crdate' => 1357562208,
+						 'datetime' => 1357562208,
 						 'cruser_id' => 22,
 						 'short' => null,
 						 'category' => 1,
@@ -303,6 +308,7 @@ La collection<span style="text-decoration: none"><span style="font-style: normal
 						 'deleted' => 0,'hidden' => 0,
 						 'image' => '',
 						 'crdate' => 1357592208,
+						 'datetime' => 1357592208,
 						 'cruser_id' => 22,
 						 'short' => null,
 						 'category' => 1,
@@ -316,6 +322,7 @@ La collection<span style="text-decoration: none"><span style="font-style: normal
 						 'endtime' => 0,
 						 'deleted' => 0,'hidden' => 0,
 						 'crdate' => 1357592258,
+						 'datetime' => 1357592258,
 						 'cruser_id' => 22,
 						 'short' => null,
 						 'image' => '',
@@ -329,6 +336,7 @@ La collection<span style="text-decoration: none"><span style="font-style: normal
 						 'endtime' => 0,
 						 'deleted' => 0,'hidden' => 0,
 						 'crdate' => 1357592258,
+						 'datetime' => 1357592258,
 						 'cruser_id' => 22,
 						 'short' => null,
 	 					 'image' => '',
diff --git a/tests/library/Class/Import/Typo3Test.php b/tests/library/Class/Import/Typo3Test.php
index 5eb12398020729f53a9b9597921ab434ec368feb..781eab29075ba3aa103ad3dd76b50a2197749b65 100644
--- a/tests/library/Class/Import/Typo3Test.php
+++ b/tests/library/Class/Import/Typo3Test.php
@@ -26,20 +26,10 @@ include_once("Typo3Fixture.php");
 abstract class Import_Typo3TestCase extends ModelTestCase {
 	protected $migration;
 
-
 	public function setUp() {
 		parent::setUp();
 		Class_Import_Typo3_Logs::getInstance()->cleans();
 		Storm_Model_Loader::defaultToVolatile();
-		Class_CustomField_Model::registerAll([
-																					new Class_CustomField_ModelConfiguration_Article(),
- 																					new Class_CustomField_ModelConfiguration_Sitotheque(),
- 																					new Class_CustomField_ModelConfiguration_SitothequeCategorie(),
- 																					new Class_CustomField_ModelConfiguration_Catalogue(),
-																					new Class_CustomField_ModelConfiguration_ArticleCategorie()
-
-																					])
-			;
 
 		$this->mock_sql = Storm_Test_ObjectWrapper::mock();
 		$this->old_sql = Zend_Registry::get('sql');
@@ -614,7 +604,7 @@ class Import_Typo3UpdateArticleTest extends Import_Typo3TestCase {
 		$this->migration->importArticlesPages();
 		Class_Article::setTimeSource(new TimeSourceForTest('2015-02-03 10:00:00'));
 
-		$this->article_voix=Class_Article::findFirstBy(['titre' => 'A haute voix... le roman se fait entendre...']);
+		$this->article_voix = Class_Article::findFirstBy(['titre' => 'A haute voix... le roman se fait entendre...']);
 		$this->migration->updateCategories(888);
 
 		Class_CustomField_Value::clearCache();
@@ -626,7 +616,7 @@ class Import_Typo3UpdateArticleTest extends Import_Typo3TestCase {
 	}
 
 	public function expectedUpdateArticle() {
-		$articles=MockTypo3DB::findAllArticles();
+		$articles = MockTypo3DB::findAllArticles();
 		return [
 						[
 						 'title' => 'Tous à bord du bateau pirate',
@@ -640,7 +630,7 @@ class Import_Typo3UpdateArticleTest extends Import_Typo3TestCase {
 							 'events_fin' => null,
 							 'indexation' => 1,
 							 'cacher_titre' => 0,
-							 'date_maj' => '2015-02-03 10:00:00',
+							 'date_maj' => '1974-06-24 04:44:21',
 							 'date_creation' => '1974-06-24 04:44:21',
 							 'status' => 3,
 							 'id_lieu' => 0,
@@ -785,6 +775,7 @@ class Import_Typo3CustomFieldTest extends Import_Typo3TestCase {
 	}
 }
 
+
 class Import_Typo3ContentTest extends Import_Typo3TestCase {
 	public function setUp() {
 		parent::setUp();
@@ -933,3 +924,126 @@ class Import_Typo3LogsTest extends Import_Typo3TestCase {
 		$this->assertContains('Article 14888  can not be saved', Class_Import_Typo3_Logs::getInstance()->getErrors());
 	}
 }
+
+
+
+class Import_Typo3AdvicesWithoutThemeCategoryTest extends Import_Typo3TestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->migration->importAdvices();
+		$this->logs = Class_Import_Typo3_Logs::getInstance();
+	}
+
+
+	/** @test */
+	public function logShouldContainsError() {
+		$this->assertContains('Catégorie "THÈME" non trouvée', $this->logs->getErrors());
+	}
+}
+
+
+
+class Import_Typo3AdvicesTest extends Import_Typo3TestCase {
+	public function setUp() {
+		parent::setUp();
+		$user = $this->fixture('Class_Users',
+													 ['id' => 20,
+														'login' => 'test_user',
+														'password' => 'test_pass']);
+		$user->beAdminPortail()->save();
+
+		$this->fixture('Class_ArticleCategorie',
+									 ['id' => 21, 'libelle' => 'THÈME']);
+		$this->fixture('Class_ArticleCategorie',
+									 ['id' => 130, 'id_cat_mere'=> 21, 'libelle' => 'ACTUALITÉS, PRESSE EN LIGNE']);
+		$this->fixture('Class_ArticleCategorie',
+									 ['id' => 70, 'id_cat_mere'=> 130, 'libelle' => 'Société']);
+
+		$this->fixture('Class_Article',
+									 ['id' => 1787,
+										'ID_CAT' => 70,
+										'PARENT_ID' => 0,
+										'ID_NOTICE' => 2233042,
+										'ID_LIEU' => 0,
+										'titre' => 'E. MERCIER / Je suis complètement battue [Livre]',
+										'DESCRIPTION' => '<img src="http://www.mediathequeouestprovence.fr/uploads/pics/Je_suis_completement_battue.jpg" alt=""/><p>Liste hallucinante de ces premières phrases d\'entretiens que l\'on imagine être arrivées, hélas toujours après le pire. Le livre d\'Eléonore Mercier est bouleversant, inouï. Chacune des phrases ouvre un destin, esquisse en quelques mots une situation, une douleur, une biographie. À cet égard, la forme qu\'a trouvée l\'auteur pour aborder ce sujet difficile est éminemment parlante. </p>',
+										'CONTENU' => '<img src="http://www.mediathequeouestprovence.fr/uploads/pics/Je_suis_completement_battue.jpg" alt=""/><span style="font-weight: bold;">Titre :</span>&nbsp; Je suis complètement battue<br /><span style="font-weight: bold;">Auteur :</span> Eléonore MERCIER<br /><span style="font-weight: bold;">Éditeur :</span> P.O.L<br /><span style="font-weight: bold;">Date d’édition&nbsp;:</span> 2010 <br /><span style="font-weight: bold;">Support&nbsp;:</span> Livre<br /><span style="font-weight: bold;">Public concerné :</span> ados, adultes<br /><a href="/miop-test.net/recherche/viewnotice/clef/JESUISCOMPLETEMENTBATTUE--MERCIERE--POL-2010-1"><span style="font-weight: bold;">Lien direct au catalogue</span></a><br /><span style="font-weight: bold;">La synthèse</span>&nbsp; <br />«&nbsp;Cela fait des années que je note les toutes premières phrases entendues lors de mes entretiens avec les femmes en situation de violence conjugale. J\'ai découvert combien elles contenaient à elles seules des vies tout entières. Je vous en livre ici 1653. J\'aurais pu en retranscrire moins, ou plus... je ne sais pas&nbsp;»<br />(<span style="font-style: italic;">Extrait du 4ème de couverture, éditions POL</span>)<br /><br /><span style="font-weight: bold;">Notre avis </span><br />Liste hallucinante de ces premières phrases d\'entretiens que l\'on imagine être arrivées, hélas toujours après le pire. Le livre d\'Eléonore Mercier est bouleversant, inouï. Chacune des phrases ouvre un destin, esquisse en quelques mots une situation, une douleur, une biographie. À cet égard, la forme qu\'a trouvée l\'auteur pour aborder ce sujet difficile est éminemment parlante. Phrase après phrase, un récit se construit, celui de la «raison» interne de la violence conjugale, où apparaissent les protagonistes et les postures innombrables qui en expliquent la complexité.&nbsp; Pour autant, ce ne sont pas seulement les clichés de la violence domestique qui sont appelés à comparaître ; c\'est aussi tout le maillage des soutiens discrets, aimants, compassionnels tissés autour des victimes, lorsqu\'une mère, un frère, une amie, viennent témoigner pour elles et prendre acte de l\'irréparable qui a été commis. Un texte puissant aux confins de la réalité et de la poèsie.<br /><br /><span style="font-weight: bold;">A propos de l\'auteur et/ou du sujet : </span><br /><ul><li><a href="http://la-marche-aux-pages.blogspot.com/2010/06/les-plates-coutures-deleonore-mercier.html">Une critique fouillée sur le blog La Marche aux pages</a></li><li><a href="http://www.elle.fr/elle/Societe/La-parole-aux-femmes/Rendez-vous-avec/Eleonore-Mercier-C-est-important-que-les-gens-prennent-conscience-que-la-violence-conjugale-est-une-realite/(gid)/1171965">Un entretien sur Elle.fr </a></li></ul><br /><br /><span style="font-weight: bold;">Si vous avez aimé, vous aimerez aussi :</span><br /><ul><li><a href="/miop-test.net/recherche/viewnotice/clef/CHRONIQUESDELAVIOLENCEORDINAIRE--NICKC--FRANCETELEVISIONSDISTRIBUTIONEDDISTRIB-2005-18">Chroniques de la violence ordinaire</a></li><li><a href="/miop-test.net/recherche/viewnotice/clef/LAVIOLENCE-ESSAISURLHOMOVIOLEN-DADOUNR--HATIER-1993-1">La violence</a></li><li><a href="http://koha.mediathequeouestprovence.fr/cgi-bin/koha/opac-detail.pl?biblionumber=23365">Les mots sont des fenêtres (ou bien ils sont des murs)</a></li></ul>',
+										'DEBUT' => '2011-03-09',
+										'FIN' => null,
+										'AVIS' => 0,
+										'TAGS' => 'Femmes;Violence',
+										'DATE_CREATION' => '2011-03-01 15:53:25',
+										'DATE_MAJ' => '2015-02-12 11:03:24',
+										'INDEXATION' => 1,
+										'STATUS' => 3,
+										'DOMAINE_IDS' => '1;2;74',
+										'ID_USER' => 20]);
+
+		$this->migration->importAdvices();
+		$this->logs = Class_Import_Typo3_Logs::getInstance();
+		$this->advice = Class_AvisNotice::findFirstBy([]);
+	}
+
+
+	/** @test */
+	public function adviceShouldBeCreated() {
+		$this->assertNotNull($this->advice);
+	}
+
+
+	/** @test */
+	public function userShouldBeTestUser() {
+		$this->assertEquals(Class_Users::find(20), $this->advice->getUser());
+	}
+
+
+	/** @test */
+	public function workKeyShouldBeAsExpected() {
+		$this->assertEquals('JESUISCOMPLETEMENTBATTUE--MERCIERE-',
+												$this->advice->getClefOeuvre());
+	}
+
+
+	/** @test */
+	public function noteShouldBe5() {
+		$this->assertEquals(5, $this->advice->getNote());
+	}
+
+
+	/** @test */
+	public function adviceShouldContainsArticleContent() {
+		$this->assertContains('Liste hallucinante de ces premières phrases',
+													$this->advice->getAvis());
+	}
+
+
+	/** @test */
+	public function headerShouldContainsArticleDescription() {
+		$this->assertContains('Liste hallucinante de ces premières phrases',
+													$this->advice->getEntete());
+	}
+
+
+	/** @test */
+	public function statusShouldBeValidated() {
+		$this->assertEquals(1, $this->advice->getStatut());
+	}
+
+
+	/** @test */
+	public function dateShouldBeArticleUpdateDate() {
+		$this->assertEquals('2011-03-01 15:53:25', $this->advice->getDateAvis());
+	}
+
+
+	/** @test */
+	public function shouldBeBibliothecaire() {
+		$this->assertEquals(1, $this->advice->getAbonOuBib());
+	}
+
+
+	/** @test */
+	public function userKeyShouldBeTestUser() {
+		$this->assertEquals('--0--test_user', $this->advice->getUserKey());
+	}
+}
\ No newline at end of file
diff --git a/tests/library/Class/Indexation/PseudoNoticeTest.php b/tests/library/Class/Indexation/PseudoNoticeTest.php
index 8f1c5d0059101f975fa93a8a3798c7c470a94ee9..a91721a629436f165cd23562f278f26931ccf6c3 100644
--- a/tests/library/Class/Indexation/PseudoNoticeTest.php
+++ b/tests/library/Class/Indexation/PseudoNoticeTest.php
@@ -36,7 +36,8 @@ class Class_Indexation_PseudoNoticeAlbumTest extends Class_Indexation_PseudoNoti
 									 'fichier' => '123_file.png',
 									 'notes' => 'a:3:{i:1;a:2:{s:5:"field";s:3:"856";s:4:"data";a:2:{s:1:"x";s:12:"external_uri";s:1:"a";N;}}s:5:"215$a";s:0:"";i:2;a:2:{s:5:"field";s:3:"701";s:4:"data";a:2:{s:1:"a";s:16:"Gustave Flaubert";i:4;s:0:"";}}}',
 									 'id_origine' => '778997987',
-									 'annee' => 2012])
+									 'annee' => 2012,
+									 'status' => Class_Album::STATUS_VALIDATED])
 			->index();
 		$this->_notice = Class_Notice::find(1);
 	}
@@ -165,7 +166,7 @@ class Class_Indexation_PseudoNoticeArticleTest extends Storm_Test_ModelTestCase
 		$this->fixture('Class_NoticeDomain',
 									 ['id' => 189,
 										'domain_id' => 17,
-										'record_alpha_key' => 'MYARTCILE------8']);
+										'record_alpha_key' => 'MYARTCILE-1-----8']);
 
 		$this->fixture('Class_Catalogue',
 									 ['id' => 17,
diff --git a/tests/library/Class/KidilanguesLinkTest.php b/tests/library/Class/KidilanguesLinkTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..464042f5437c8b0e2a61b24184912c109634965f
--- /dev/null
+++ b/tests/library/Class/KidilanguesLinkTest.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
+
+
+abstract class KidilanguesLinkTestCase extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		RessourcesNumeriquesFixtures::activateKidilangues();
+		$group = $this->fixture('Class_UserGroup', ['id' => 1])
+									->addRight(Class_UserGroup::RIGHT_ACCES_KIDILANGUES);
+		$group->save();
+
+		ZendAfi_Auth::getInstance()->logUser($this->fixture('Class_Users',
+																												['id' => 1,
+																												 'login' => 'admin',
+																												 'password' => 'pwd']));
+		$user = Class_Users::getIdentity();
+		$user->setUserGroups([$group])
+				 ->beAbonneSIGB()
+				 ->save();
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		RessourcesNumeriquesFixtures::deactivateKidilangues();
+		ZendAfi_Auth::getInstance()->clearIdentity();
+		parent::tearDown();
+	}
+}
+
+
+
+class KidilanguesLinkUrlForUserTest extends KidilanguesLinkTestCase {
+	protected $_link;
+
+	public function setUp() {
+		parent::setUp();
+		$this->_link = $link = Class_KidilanguesLink::forUser(Class_Users::find(1));
+	}
+
+
+	/** @test */
+	public function encryptedPasswordShouldBeHasExpected() {
+		$this->assertEquals('Ud4x5rY2DddxHOL9AuC3pNGbnlKua8e4HK2SiO8JwWc=', base64_encode($this->_link->kidilanguesEncrypt(Class_AdminVar::get('KIDILANGUES_PWD'))));
+	}
+
+
+	/** @test */
+	public function base64EncryptedPasswordShouldBeHasExpected() {
+		$encrypted_pwd = $this->_link->kidilanguesEncrypt(Class_AdminVar::get('KIDILANGUES_PWD'));
+		$this->assertEquals('WWqQeIopvisfbLvlYNuHjUop7JHZXizJ35aRYOu_eOQ', $this->_link->kidilanguesEncode($encrypted_pwd));
+	}
+
+}
\ No newline at end of file
diff --git a/tests/library/Class/Multimedia/DeviceTest.php b/tests/library/Class/Multimedia/DeviceTest.php
index e05d37b29980521744bd04bcfcd777a13c548c4f..9f15bd401c740ee6da04da8d8dfbc883a6180ec4 100644
--- a/tests/library/Class/Multimedia/DeviceTest.php
+++ b/tests/library/Class/Multimedia/DeviceTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'ModelTestCase.php';
 require_once 'TimeSourceForTest.php';
@@ -41,21 +41,31 @@ abstract class Multimedia_DeviceCurrentHoldTestCase extends ModelTestCase {
 	public function setUp() {
 		parent::setUp();
 
-		$this->_bib_antibes = Class_Bib::newInstanceWithId(5)->setLibelle('Antibes');
+		$this->_bib_antibes = $this->fixture('Class_Bib',
+																				 ['id' => 5, 'libelle' => 'Antibes']);
 
-		$this->_location = Class_Multimedia_Location::newInstanceWithId(2)
-			->setBib($this->_bib_antibes)
-			->setOuvertures([]);
+		$this->_location = $this->fixture('Class_Multimedia_Location',
+																			['id' => 2,
+																			 'bib' => $this->_bib_antibes,
+																			 'ouvertures' => []]);
 
-		$this->_group = Class_Multimedia_DeviceGroup::newInstanceWithId(2)
-				->setLocation($this->_location);
+		$this->_group = $this->fixture('Class_Multimedia_DeviceGroup',
+																	 ['id' => 2, 'location' => $this->_location]);
 
-		$this->_device = Class_Multimedia_Device::newInstanceWithId(2)
-				->setGroup($this->_group);
+		$this->_device = $this->fixture('Class_Multimedia_Device',
+																		['id' => 2, 'group' => $this->_group]);
+
+		Class_Multimedia_DeviceHold::beVolatile();
 
 		$time = strtotime('today');
 		$this->_time_source = (new TimeSourceForTest())->setTime($time);
 
+
+		$this->fixture('Class_Users',
+									 ['id' => 7, 'login' => 'test_user',
+										'password' => 'test_password']);
+
+
 		Class_Multimedia_Device::setTimeSource($this->_time_source);
 		Class_Multimedia_Location::setTimeSource($this->_time_source);
 	}
@@ -71,101 +81,113 @@ abstract class Multimedia_DeviceCurrentHoldTestCase extends ModelTestCase {
 
 
 
-
-class Multimedia_DeviceCurrentHoldForUserHavingHoldTest extends Multimedia_DeviceCurrentHoldTestCase {
+abstract class Multimedia_DeviceCurrentHoldForUserTestCase extends Multimedia_DeviceCurrentHoldTestCase {
 	public function setUp() {
 		parent::setUp();
-		$this->_location->setAutohold(0);
-		
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
-				->whenCalled('getHoldOnDeviceAtTime')
-			  ->with($this->_device, $this->_time_source->time())
-				->answers(Class_Multimedia_DeviceHold::getLoader()->newInstanceWithId(123)
-					->setIdUser(7));
-
-		$this->_hold = $this->_device->getCurrentHoldForUser(Class_Users::getLoader()->newInstanceWithId(7));
-	}
+		$this->_prepareLocation();
 
+		$user = Class_Users::find(7);
+		$this->onLoaderOfModel('Class_Multimedia_DeviceHold')
+				 ->whenCalled('getHoldOnDeviceAtTime')
+				 ->with($this->_device, $this->_time_source->time())
+				 ->answers($this->_getUserHold($user));
 
-	/** @test */
-	public function shouldHaveHold() {
-		$this->assertNotNull($this->_hold);
+		$this->_prepareLoaders();
+
+		$this->_hold = $this->_device->getCurrentHoldForUser($user);
 	}
-}
 
 
+	protected function _prepareLocation() {
+		$this->_location
+			->setAutohold(0)
+			->save();
+	}
 
 
-class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndNoAutoholdTest extends Multimedia_DeviceCurrentHoldTestCase {
-	public function setUp() {
-		parent::setUp();
-		$this->_location->setAutohold(0);
-		
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
-			->whenCalled('getHoldOnDeviceAtTime')
-			->with($this->_device, $this->_time_source->time())
-			->answers(null);
-
-		$this->_hold = $this->_device->getCurrentHoldForUser(Class_Users::getLoader()->newInstanceWithId(7));
+	protected function _getUserHold($user) {
+		return null;
 	}
 
 
-	/** @test */
-	public function shouldNotHaveHold() {
-		$this->assertNull($this->_hold);
+	protected function _prepareLoaders() {
 	}
 }
 
 
 
 
-class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndAnotherValidHoldTest extends Multimedia_DeviceCurrentHoldTestCase {
-	public function setUp() {
-		parent::setUp();
+class Multimedia_DeviceCurrentHoldForUserHavingHoldTest extends Multimedia_DeviceCurrentHoldForUserTestCase {
+	protected function _getUserHold($user) {
+		return $this->fixture('Class_Multimedia_DeviceHold',
+													['id' => 123, 'user' => $user]);
+	}
+
+
+	 /** @test */
+	 public function shouldHaveHold() {
+		 $this->assertNotNull($this->_hold);
+	 }
+ }
+
+
+
+
+class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndNoAutoholdTest extends Multimedia_DeviceCurrentHoldForUserTestCase {
+	 /** @test */
+	 public function shouldNotHaveHold() {
+		 $this->assertNull($this->_hold);
+	 }
+ }
+
 
-		$this->_location
-				->setAuthDelay(10)
-				->setAutohold(1)
-				->setSlotSize(15);
-		
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
-			->whenCalled('getHoldOnDeviceAtTime')
-			->with($this->_device, $this->_time_source->time())
-			->answers(Class_Multimedia_DeviceHold::getLoader()->newInstanceWithId(123)
-								->setIdUser(5)
-								->setStart($this->_time_source->time() - 60));
 
-		$this->_hold = $this->_device->getCurrentHoldForUser(Class_Users::getLoader()->newInstanceWithId(7));
+
+class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndAnotherValidHoldTest extends Multimedia_DeviceCurrentHoldForUserTestCase {
+	protected function _prepareLocation() {
+		$this->_location
+			->setAuthDelay(10)
+			->setAutohold(1)
+			->setSlotSize(15)
+			->save();
 	}
 
 
-	/** @test */
-	public function shouldNotHaveHold() {
-		$this->assertNull($this->_hold);
+	protected function _getUserHold($user) {
+		return $this->fixture('Class_Multimedia_DeviceHold',
+													['id' => 123,
+													 'start' => $this->_time_source->time() - 60,
+													 'user' => $this->fixture('Class_Users',
+																										['id' => 5,
+																										 'login' => 'test2',
+																										 'password' => 'test2'])]);
 	}
-}
 
 
+	 /** @test */
+	 public function shouldNotHaveHold() {
+		 $this->assertNull($this->_hold);
+	 }
+ }
 
 
-class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndNoStartTimeTest extends Multimedia_DeviceCurrentHoldTestCase {
-	public function setUp() {
-		parent::setUp();
+
+
+ class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndNoStartTimeTest extends Multimedia_DeviceCurrentHoldForUserTestCase {
+	protected function _prepareLocation() {
 		$this->_location
-				->setAuthDelay(10)
-				->setAutohold(1)
-				->setSlotSize(15);
-		
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
-			->whenCalled('getHoldOnDeviceAtTime')
-			->with($this->_device, $this->_time_source->time())
-			->answers(null);
+			->setAuthDelay(10)
+			->setAutohold(1)
+			->setSlotSize(15)
+			->setAutoholdForClosingDays(1)
+			->save();
+	}
 
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_Location')
-				->whenCalled('getPossibleTimes')
-				->answers(array());
 
-		$this->_hold = $this->_device->getCurrentHoldForUser(Class_Users::getLoader()->newInstanceWithId(7));
+	protected function _prepareLoaders() {
+		$this->onLoaderOfModel('Class_Multimedia_Location')
+				 ->whenCalled('getPossibleTimes')
+				 ->answers([]);
 	}
 
 
@@ -178,7 +200,8 @@ class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndNoStartTimeTest extends M
 
 
 
-class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndMaxSlotsAfterCloseHoursTest extends Multimedia_DeviceCurrentHoldTestCase {
+class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndMaxSlotsAfterCloseHoursTest
+	extends Multimedia_DeviceCurrentHoldTestCase {
 	public function setUp() {
 		parent::setUp();
 
@@ -188,31 +211,29 @@ class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndMaxSlotsAfterCloseHoursTe
 			->setSlotSize(15)
 			->setAutoholdSlotsMax(600)
 			->addOuverture(Class_Ouverture::chaqueLundi('08:00', '12:00', '14:00', '18:00'))
-			->addOuverture(Class_Ouverture::chaqueMardi('08:00', '12:00', '12:00', '16:00'));
+			->addOuverture(Class_Ouverture::chaqueMardi('08:00', '12:00', '12:00', '16:00'))
+			->save();
+
+		$this
+			->onLoaderOfModel('Class_Multimedia_DeviceHold')
+			->whenCalled('getFirstHoldOnDeviceBetweenTimes')
+			->answers(null);
 	}
 
 
 	public function hold() {
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
-			->whenCalled('getHoldOnDeviceAtTime')
+		Class_Multimedia_DeviceHold::whenCalled('getHoldOnDeviceAtTime')
 			->with($this->_device, $this->_time_source->time())
-			->answers(null)
-
-			->whenCalled('getFirstHoldOnDeviceBetweenTimes')
-			->answers(null)
-
-			->whenCalled('save')
-			->answers(true);
-
+			->answers(null);
 
-		return $this->_device->getCurrentHoldForUser(Class_Users::getLoader()->newInstanceWithId(7));
+		return $this->_device->getCurrentHoldForUser(Class_Users::newInstanceWithId(7));
 	}
 
 
 	/** @test */
 	public function withHoldLundiAt1500holdEndShouldBeFinApresMidi() {
 		$this->_time_source->setTime(strtotime('2012-09-10 15:00:00'));
-		$this->assertTimeStampEquals(strtotime('2012-09-10 18:00:00'), 
+		$this->assertTimeStampEquals(strtotime('2012-09-10 18:00:00'),
 												$this->hold()->getEnd());
 	}
 
@@ -220,17 +241,17 @@ class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndMaxSlotsAfterCloseHoursTe
 	/** @test */
 	public function withHoldLundiAt1000holdEndShouldBeFinMatin() {
 		$this->_time_source->setTime(strtotime('2012-09-10 10:00:00'));
-		$this->assertTimeStampEquals(strtotime('2012-09-10 12:00:00'), 
+		$this->assertTimeStampEquals(strtotime('2012-09-10 12:00:00'),
 																 $this->hold()->getEnd());
-	}	
+	}
 
 
 	/** @test */
 	public function withHoldMardiAt1000holdEndShouldBeFinApresMidi() {
 		$this->_time_source->setTime(strtotime('2012-09-11 10:00:00'));
-		$this->assertTimeStampEquals(strtotime('2012-09-11 16:00:00'), 
+		$this->assertTimeStampEquals(strtotime('2012-09-11 16:00:00'),
 																 $this->hold()->getEnd());
-	}	
+	}
 }
 
 
@@ -248,25 +269,26 @@ abstract class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndMaxSlotsAfterNex
 			->setSlotSize(15)
 			->setAutoholdSlotsMax(600)
 			->setAutoholdMinTime(5)
-			->addOuverture(Class_Ouverture::newInstanceWithId(5)
-										 ->setBib($this->_bib_antibes)
-										 ->setJourSemaine(date('w'))
-										 ->setHoraires(['08:00', '12:00', '14:00', '23:00']));
-		$this->_nextStartTime = $this->getNextStartTime();
+			->addOuverture($this->fixture('Class_Ouverture',
+																		['id' => 5,
+																		 'bib' => $this->_bib_antibes,
+																		 'jour_semaine' => date('w'),
+																		 'horaires' => ['08:00', '12:00', '14:00', '23:00']]))
+			->save();
 
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Multimedia_DeviceHold')
-				->whenCalled('getHoldOnDeviceAtTime')
-				->answers(null)
+		$this->_nextStartTime = $this->getNextStartTime();
 
-				->whenCalled('getFirstHoldOnDeviceBetweenTimes')
-				->answers(Class_Multimedia_DeviceHold::getLoader()->newInstanceWithId(333)
-									->setIdUser($this->getNextHoldUserId())
-									->setStart($this->_nextStartTime))
+		$this->onLoaderOfModel('Class_Multimedia_DeviceHold')
+				 ->whenCalled('getHoldOnDeviceAtTime')
+				 ->answers(null)
 
-				->whenCalled('save')
-				->answers(true);
+				 ->whenCalled('getFirstHoldOnDeviceBetweenTimes')
+				 ->answers($this->fixture('Class_Multimedia_DeviceHold',
+																	['id' => 333,
+																	 'id_user' => $this->getNextHoldUserId(),
+																	 'start' => $this->_nextStartTime]));
 
-		$this->_hold = $this->_device->getCurrentHoldForUser(Class_Users::getLoader()->newInstanceWithId(7));
+		$this->_hold = $this->_device->getCurrentHoldForUser(Class_Users::find(7));
 	}
 }
 
@@ -277,7 +299,7 @@ class Multimedia_DeviceCurrentHoldForUserWithoutHoldAndMaxSlotsAfterNextHoldStar
 	public function getNextStartTime() {
 		return $this->_time_source->time() + (60 * 60);
 	}
-	
+
 	public function getNextHoldUserId() {
 		return 234;
 	}
diff --git a/tests/library/Class/Multimedia/LocationTest.php b/tests/library/Class/Multimedia/LocationTest.php
index 6ded0df170cc2a6c06f8d7cd44791d80ce4616ea..4ecc4ef33575d78f2acf4b4624aeec78b88049df 100644
--- a/tests/library/Class/Multimedia/LocationTest.php
+++ b/tests/library/Class/Multimedia/LocationTest.php
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'ModelTestCase.php';
 
@@ -26,41 +26,42 @@ abstract class Multimedia_LocationWithBibTestCase extends Storm_Test_ModelTestCa
 	protected $_time_source;
 
 	public function setUp() {
-		Class_Bib::newInstanceWithId(3)
-			->setLibelle('Bibliothèque Antibes');
-
-		$_ouverture_19_sept = Class_Ouverture::newInstanceWithId(5)
-			->setJour('2012-09-19')
-			->setHoraires(['09:00', '12:00', '12:00', '18:00']);
-
-		$_ouverture_dimanche_9_sept = Class_Ouverture::newInstanceWithId(15)
-			->setJour('2012-09-09')
-			->setHoraires(['09:00', '12:00', '12:00', '18:00']);
-
-
-		$this->_location = Class_Multimedia_Location::newInstanceWithId(123)
-			->setIdSite(3)
-			->setLibelle('Antibes')
-			->setSlotSize(30)
-			->setMaxSlots(4)
-			->setHoldDelayMin(0)
-			->setHoldDelayMax(60)
-			->setOuvertures([Class_Ouverture::chaqueMercredi('08:30', '12:00', '12:00', '17:45')->setId(3)->cache(),
-											 Class_Ouverture::chaqueJeudi('10:00', '12:00', '14:00', '19:00')->setId(4)->cache(),
-											 $_ouverture_19_sept,
-											 $_ouverture_dimanche_9_sept]);
-
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Ouverture')
-			->whenCalled('findFirstBy')
-			->answers(null)
-
-			->whenCalled('findFirstBy')
-			->with(['jour' => '2012-09-19'])
-			->answers($_ouverture_19_sept)
-
-			->whenCalled('findFirstBy')
-			->with(['jour' => '2012-09-09'])
-			->answers($_ouverture_dimanche_9_sept);
+		$antibe = $this->fixture('Class_Bib',
+														 ['id' => 3,
+															'libelle' => 'Bibliothèque Antibes']);
+
+		$all_wednesday = $this->fixture('Class_Ouverture',
+																		['id' => 3,
+																		 'bib' => $antibe,
+																		 'jour_semaine' => Class_Ouverture::MERCREDI,
+																		 'horaires' => ['08:30', '12:00', '12:00', '17:45']]);
+
+		$all_thursday = $this->fixture('Class_Ouverture',
+																	 ['id' => 4,
+																		'bib' => $antibe,
+																		'jour_semaine' => Class_Ouverture::JEUDI,
+																		'horaires' => ['10:00', '12:00', '14:00', '19:00']]);
+
+		$_ouverture_19_sept = $this->fixture('Class_Ouverture',
+																				 ['id' => 5,
+																					'bib' => $antibe,
+																					'jour' => '2012-09-19',
+																					'horaires' => ['09:00', '12:00', '12:00', '18:0mysql0']]);
+
+		$_ouverture_dimanche_9_sept = $this->fixture('Class_Ouverture',
+																				 ['id' => 15,
+																					'bib' => $antibe,
+																					'jour' => '2012-09-09',
+																					'horaires' => ['09:00', '12:00', '12:00', '18:00']]);
+
+		$this->_location = $this->fixture('Class_Multimedia_Location',
+																			['id' => 123,
+																			 'bib' => $antibe,
+																			 'libelle' => 'Antibes',
+																			 'slot_size' => 30,
+																			 'max_slots' => 4,
+																			 'hold_delay_min' => 0,
+																			 'hold_delay_max' => 60]);
 
 		$this->_time_source = (new TimeSourceForTest())->setTime(strtotime('2012-01-01'));
 
@@ -82,16 +83,22 @@ abstract class Multimedia_LocationWithBibTestCase extends Storm_Test_ModelTestCa
 class Multimedia_LocationWithBibTest extends Multimedia_LocationWithBibTestCase {
 	/** @test */
 	public function bibShouldHaveOuvertureForMercredi() {
-		Class_Bib::find(3)->getOuvertures();
-		$this->assertEquals(Class_Ouverture::MERCREDI, 
-												Class_Bib::find(3)->getOuvertures()[0]->getJourSemaine());
+		$this->_assertDayOpening(Class_Bib::find(3)->getOuvertures(), Class_Ouverture::MERCREDI);
 	}
 
 
 	/** @test */
 	public function bibShouldHaveOuvertureForJeudi() {
-		$this->assertEquals(Class_Ouverture::JEUDI, 
-												Class_Bib::find(3)->getOuvertures()[1]->getJourSemaine());
+		$this->_assertDayOpening(Class_Bib::find(3)->getOuvertures(), Class_Ouverture::JEUDI);
+	}
+
+
+	protected function _assertDayOpening($openings, $day) {
+		foreach($openings as $opening)
+			if ($opening->getJourSemaine() == $day)
+				return;
+
+		$this->fail('Aucune ouverture pour ' . $day);
 	}
 
 
@@ -104,7 +111,7 @@ class Multimedia_LocationWithBibTest extends Multimedia_LocationWithBibTestCase
 
 	/** @test */
 	public function getMinTimeFor8Aug2012ShouldReturnDebutMatinOfMercredi() {
-		$this->assertEquals(strtotime('2012-08-08 08:30:00'), 
+		$this->assertEquals(strtotime('2012-08-08 08:30:00'),
 												$this->_location->getMinTimeForDate('2012-08-08'),
 												'getMinTimeForDate => '.strftime('%Y-%m-%d %H:%M:%S',
 																												 $this->_location->getMinTimeForDate('2012-08-08')));
@@ -113,33 +120,33 @@ class Multimedia_LocationWithBibTest extends Multimedia_LocationWithBibTestCase
 
 	/** @test */
 	public function getMaxTimeFor8Aug2012ShouldReturnFinApresMidiOfMercredi() {
-		$this->assertEquals(strtotime('2012-08-08 17:45:00'), 
+		$this->assertEquals(strtotime('2012-08-08 17:45:00'),
 												$this->_location->getMaxTimeForDate('2012-08-08'));
 	}
 
 
 	/** @test */
 	public function getMinTimeFor9Aug2012ShouldReturnDebutMatinOfJeudi() {
-		$this->assertEquals(strtotime('2012-08-09 10:00:00'), 
+		$this->assertEquals(strtotime('2012-08-09 10:00:00'),
 												$this->_location->getMinTimeForDate('2012-08-09'));
 	}
 
 
 	/** @test */
 	public function getMinTimeFor19Sept2012ShouldReturn0900() {
-		$this->assertTimeStampEquals('2012-09-19 09:00:00', 
+		$this->assertTimeStampEquals('2012-09-19 09:00:00',
 																 $this->_location->getMinTimeForDate('2012-09-19'));
 	}
 
 
 	/** @test */
 	public function getStartTimesFor8AugShouldReturnAllHalfHoursFrom_0830_to_1730() {
-		$this->assertEquals(['08:30' => '08h30', '09:00' => '09h00', '09:30' => '09h30', '10:00' => '10h00', '10:30' => '10h30', 
-												 '11:00' => '11h00', '11:30' => '11h30', '12:00' => '12h00', '12:30' => '12h30', '13:00' => '13h00', 
-												 '13:30' => '13h30', '14:00' => '14h00', '14:30' => '14h30', '15:00' => '15h00', '15:30' => '15h30', 
-												 '16:00' => '16h00', '16:30' => '16h30', '17:00' => '17h00', '17:30' => '17h30'], 
+		$this->assertEquals(['08:30' => '08h30', '09:00' => '09h00', '09:30' => '09h30', '10:00' => '10h00', '10:30' => '10h30',
+												 '11:00' => '11h00', '11:30' => '11h30', '12:00' => '12h00', '12:30' => '12h30', '13:00' => '13h00',
+												 '13:30' => '13h30', '14:00' => '14h00', '14:30' => '14h30', '15:00' => '15h00', '15:30' => '15h30',
+												 '16:00' => '16h00', '16:30' => '16h30', '17:00' => '17h00', '17:30' => '17h30'],
 												$this->_location->getStartTimesForDate('2012-08-08'));
-		
+
 	}
 
 
@@ -147,20 +154,20 @@ class Multimedia_LocationWithBibTest extends Multimedia_LocationWithBibTestCase
 	/** @test */
 	public function getStartTimesFor8AugAt8Aug1543ShouldReturnAllHalfHoursFrom_1600_to_1730() {
 		$this->_time_source->setTime(strtotime('2012-08-08 15:45'));
-		$this->assertEquals(['16:00' => '16h00', '16:30' => '16h30', '17:00' => '17h00', '17:30' => '17h30'], 
+		$this->assertEquals(['16:00' => '16h00', '16:30' => '16h30', '17:00' => '17h00', '17:30' => '17h30'],
 												$this->_location->getStartTimesForDate('2012-08-08'));
-		
+
 	}
 
 
 	/** @test */
 	public function getStartTimesFor9AugShouldReturnAllHalfHoursFrom_1000_to_1130_then_1400_to_1830() {
-		$this->assertEquals(['10:00' => '10h00', '10:30' => '10h30', '11:00' => '11h00', '11:30' => '11h30', 
-												 '14:00' => '14h00', '14:30' => '14h30', '15:00' => '15h00', '15:30' => '15h30', 
+		$this->assertEquals(['10:00' => '10h00', '10:30' => '10h30', '11:00' => '11h00', '11:30' => '11h30',
+												 '14:00' => '14h00', '14:30' => '14h30', '15:00' => '15h00', '15:30' => '15h30',
 												 '16:00' => '16h00', '16:30' => '16h30', '17:00' => '17h00', '17:30' => '17h30',
-												 '18:00' => '18h00', '18:30' => '18h30'], 
+												 '18:00' => '18h00', '18:30' => '18h30'],
 												$this->_location->getStartTimesForDate('2012-08-09'));
-		
+
 	}
 
 
@@ -174,8 +181,9 @@ class Multimedia_LocationWithBibTest extends Multimedia_LocationWithBibTestCase
 	/** @test */
 	public function getDatesOuvertureShouldAnswersAllMercrediJeudiForNextTwoMonthsWith9and19Sept() {
 		$this->_time_source->setTime(strtotime('2012-08-05'));
-		$this->_location->setHoldDelayMax(60);
-		$this->assertEquals(['2012-08-08', '2012-08-09', 
+		$this->_location->setHoldDelayMax(60)
+										->setAutoholdForClosingDays(false);
+		$this->assertEquals(['2012-08-08', '2012-08-09',
 												 '2012-08-15', '2012-08-16',
 												 '2012-08-22', '2012-08-23',
 												 '2012-08-29', '2012-08-30',
@@ -187,6 +195,28 @@ class Multimedia_LocationWithBibTest extends Multimedia_LocationWithBibTestCase
 												 '2012-10-03', '2012-10-04'],
 												$this->_location->getHoldableDays());
 	}
+
+	/** @test */
+	public function getDatesOuvertureMardiClosingDayShouldAnswersOpenHour0800() {
+		$this->_time_source->setTime(strtotime('2012-12-04'));
+		$this->_location->setAutoholdForClosingDays(true)
+										->setOpenHour('08:00')
+										->setCloseHour('17:00');
+		$this->_autohold = 1;
+		$this->assertEquals('08:00', $this->_location->getOuvertureForDate($this->_time_source->time(), $this->_autohold)->getDebutMatin());
+
+	}
+
+	/** @test */
+	public function getDatesOuvertureMardiClosingDayShouldAnswersCloseHour1700() {
+		$this->_time_source->setTime(strtotime('2012-12-04'));
+		$this->_location->setAutoholdForClosingDays(true)
+										->setOpenHour('08:00')
+										->setCloseHour('17:00');
+		$this->_autohold = 1;
+		$this->assertEquals('17:00', $this->_location->getOuvertureForDate($this->_time_source->time(),$this->_autohold)->getFinApresMidi());
+
+	}
 }
 
 
diff --git a/tests/library/Class/Notice/ClefAlphaTest.php b/tests/library/Class/Notice/ClefAlphaTest.php
index 91118a5c271f430ac64f846eca7e8b44f7e60d52..5e541511da7d14dffc0894252b8b88a32ce9ce4d 100644
--- a/tests/library/Class/Notice/ClefAlphaTest.php
+++ b/tests/library/Class/Notice/ClefAlphaTest.php
@@ -85,7 +85,7 @@ class Notice_ClefAlphaOnPseudoNoticeTest extends Storm_Test_ModelTestCase {
 	public function expectedAlphaKeysForModels() {
 		return
 			[
-			 ['ILNEIGE------8',
+			 ['ILNEIGE-1-----8',
 
 				'Class_Article',
 
diff --git a/tests/library/Class/NoticeTest.php b/tests/library/Class/NoticeTest.php
index 746c64c21d408c087cace50b6745ca853ff4611f..76469df673c799dcc25da1082adfba059c2c16d1 100644
--- a/tests/library/Class/NoticeTest.php
+++ b/tests/library/Class/NoticeTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'Class/Notice.php';
 require_once 'ModelTestCase.php';
@@ -34,6 +34,232 @@ class NoticeFixtures extends TestFixtures {
 
 
 
+class NoticeVignetteTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->_http_client = Storm_Test_ObjectWrapper::mock();
+		$this->_http_client
+			->whenCalled('open_url')
+			->answers(json_encode(['vignette' => 'from_cache_small.jpg',
+														 'image' => 'from_cache_big.jpg',
+														 'statut_recherche' => 2]));
+		Class_WebService_AllServices::setHttpClient($this->_http_client);
+
+		Class_WebService_Vignette::setDefaultHttpClient($this->_http_client);
+
+		$this->_filesystem = new Storm_FileSystem_Volatile();
+		$thumbnail_paths = PATH_TEMP .'vignettes_titre/';
+		$this->_filesystem
+			->mkdir($thumbnail_paths)
+			->cd($thumbnail_paths)
+			->touch('notice_2.png');
+
+		Class_WebService_Vignette::setFileSystem($this->_filesystem);
+
+
+		$this->_notice_without_thumbnails = $this->fixture('Class_Notice',
+																											 ['id' => 1,
+																												'type_doc' => Class_TypeDoc::LIVRE,
+																												'url_vignette' => '',
+																												'url_image' => '']);
+
+
+		$this->_notice_inexisting_thumbnails = $this->fixture('Class_Notice',
+																													['id' => 2,
+																													 'type_doc' => Class_TypeDoc::LIVRE,
+																													 'url_vignette' => 'NO',
+																													 'url_image' => 'NO']);
+
+
+		$this->_notice_with_thumbnails = $this->fixture('Class_Notice',
+																										['id' => 3,
+																										 'type_doc' => Class_TypeDoc::LIVRE,
+																										 'url_vignette' => 'tintin_small.jpg',
+																										 'url_image' => 'tintin.jpg']);
+
+
+		$this->_notice_article_without_thumbnails = $this->fixture('Class_Notice',
+																															 ['id' => 4,
+																																'type_doc' => Class_TypeDoc::ARTICLE,
+																																'clef_alpha' => 'SPIROU',
+																																'url_vignette' => '',
+																																'url_image' => '']);
+		$this->_notice_article_without_thumbnails->set_subfield('856', 'b', '5');
+
+
+		$this->fixture('Class_Article',
+									 ['id' => 5,
+										'titre' => 'Je suis Spirou',
+										'contenu' => 'avec mon copain le <img src="marsu.jpg"> marsupilami']);
+
+
+
+		$this->_notice_site_without_thumbnails = $this->fixture('Class_Notice',
+																														['id' => 5,
+																														 'type_doc' => Class_TypeDoc::SITE,
+																														 'clef_alpha' => 'LINUXFR',
+																														 'url_vignette' => '',
+																														 'url_image' => '']);
+		$this->fixture('Class_Sitotheque',
+									 ['id' => 2,
+										'id_notice' => 5,
+										'titre' => 'LinuxFR',
+										'url' => 'http://www.linuxfr.org']);
+	}
+
+
+	public function tearDown() {
+		Class_WebService_AllServices::setHttpClient(null);
+		Class_WebService_Vignette::setDefaultHttpClient(null);
+		Class_WebService_Vignette::setFileSystem(null);
+		parent::tearDown();
+	}
+
+	/** @test */
+	public function withoutThumbnailFetchUrlVignetteShouldAnswerVignetteActionForAjax() {
+		$this->assertContains('/recherche/vignette?clef=',
+												$this->_notice_without_thumbnails->fetchUrlVignette());
+		$this->assertFalse($this->_http_client->methodHasBeenCalled('open_url'));
+	}
+
+
+	/** @test */
+	public function withThumbnailFetchUrlVignetteShouldAnswerIt() {
+		$this->assertFalse($this->_http_client->methodHasBeenCalled('open_url'));
+
+		$this->assertEquals('tintin_small.jpg',
+												$this->_notice_with_thumbnails->fetchUrlVignette());
+	}
+
+
+	/** @test */
+	public function withInexistingThumbnailFetchUrlVignetteShouldAnswerLocalUrl() {
+		$this->assertFalse($this->_http_client->methodHasBeenCalled('open_url'));
+
+		$this->assertEquals('/temp/vignettes_titre/notice_2.png',
+												$this->_notice_inexisting_thumbnails->fetchUrlVignette());
+	}
+
+
+	/** @test */
+	public function withoutThumbnailFetchUrlLocalVignetteFoundShouldAnswerLocalUrl() {
+		$this->_http_client
+			->whenCalled('open_url')
+			->with('from_cache_small.jpg')
+			->answers('some data');
+
+		$this->assertEquals('/temp/vignettes_titre/notice_1.jpg',
+												$this->_notice_without_thumbnails->fetchUrlLocalVignette());
+
+		$this->assertContains('some data',
+													$this->_filesystem->fileGetContents(PATH_TEMP.'vignettes_titre/notice_1.jpg'));
+
+		Class_Notice::clearCache();
+		$this->assertEquals('from_cache_small.jpg', Class_Notice::find(1)->getUrlVignette());
+	}
+
+
+	/** @test */
+	public function withoutThumbnailFetchUrlLocalVignetteNotFoundShouldAnswerLocalUrl() {
+		$this->_http_client
+			->whenCalled('open_url')
+			->answers('');
+
+		$this->assertEquals('/temp/vignettes_titre/notice_1.png',
+												$this->_notice_without_thumbnails->fetchUrlLocalVignette());
+
+		Class_Notice::clearCache();
+		$this->assertEquals('NO', Class_Notice::find(1)->getUrlVignette());
+	}
+
+
+	/** @test */
+	public function withThumbnailFetchUrlLocalVignetteShouldAnswerIt() {
+		$this->_http_client
+			->whenCalled('open_url')
+			->with('tintin_small.jpg')
+			->answers('some data');
+
+		$this->assertEquals('/temp/vignettes_titre/notice_3.jpg',
+												$this->_notice_with_thumbnails->fetchUrlLocalVignette());
+
+		$this->assertContains('some data',
+													$this->_filesystem->fileGetContents(PATH_TEMP.'vignettes_titre/notice_3.jpg'));
+	}
+
+
+	/** @test */
+	public function withInexistingThumbnailFetchUrlLocalVignetteShouldAnswerLocalFile() {
+		$this->assertFalse($this->_http_client->methodHasBeenCalled('open_url'));
+
+		$this->assertEquals('/temp/vignettes_titre/notice_2.png',
+												$this->_notice_inexisting_thumbnails->fetchUrlLocalVignette());
+	}
+
+
+	/** @test */
+	public function noticeForArticleWithoutThumbnailShouldGenerateItInTempDir() {
+		$image = Storm_Test_ObjectWrapper::mock();
+		Class_WebService_Thumbnail_Provider_Article::setDefaultImageFactory(
+																																				Storm_Test_ObjectWrapper::mock()
+																																				->whenCalled('newImage')
+																																				->with(Class_Url::absolute('marsu.jpg'))
+																																				->answers($image)
+																																				->beStrict());
+
+		$image
+			->whenCalled('thumbnailImage')
+			->with(160, 220, true, true)
+			->answers(null)
+			->whenCalled('writeImage')
+			->with(PATH_TEMP . 'vignettes_titre/SPIROU.jpg')
+			->answers(null)
+			->beStrict();
+
+		$this->assertEquals('/temp/vignettes_titre/SPIROU.jpg',
+												$this->_notice_article_without_thumbnails->fetchUrlLocalVignette());
+
+		Class_Notice::clearCache();
+
+		$this->assertEquals('/temp/vignettes_titre/SPIROU.jpg',
+												Class_Notice::find(4)->getUrlVignette());
+
+		$this->assertEquals('/temp/vignettes_titre/SPIROU.jpg',
+												Class_Notice::find(4)->getUrlImage());
+
+		$this->assertTrue($image->methodHasBeenCalled('thumbnailImage'));
+		$this->assertTrue($image->methodHasBeenCalled('writeImage'));
+	}
+
+
+	/** @test */
+	public function noticeForSiteWithoutThumbnailShouldGetThumbnailFromWebThumbnailHelper() {
+		$file_writer = Storm_Test_ObjectWrapper::mock()
+			->whenCalled('dirExists')
+			->answers(true)
+			->whenCalled('fileExists')
+			->answers(true);
+
+		ZendAfi_View_Helper_WebThumbnail::setFileWriter($file_writer);
+
+
+		$this->assertEquals('/userfiles/web_thumbnails/www_linuxfr_org.jpg',
+												$this->_notice_site_without_thumbnails->fetchUrlLocalVignette());
+
+		Class_Notice::clearCache();
+
+		$this->assertEquals('/userfiles/web_thumbnails/www_linuxfr_org.jpg',
+												Class_Notice::find(5)->getUrlVignette());
+
+		$this->assertEquals('/userfiles/web_thumbnails/www_linuxfr_org.jpg',
+												Class_Notice::find(5)->getUrlImage());
+
+	}
+}
+
+
+
 
 class NoticeTestFindAll extends ModelTestCase {
 	public function setUp() {
@@ -49,7 +275,7 @@ class NoticeTestFindAll extends ModelTestCase {
 		$this->assertEquals('MILLENIUM', $millenium->getTitres());
 	}
 
-	public function testSecondPotter() {		
+	public function testSecondPotter() {
 		$potter = $this->notices[1];
 		$this->assertEquals(48, $potter->getIdNotice());
 		$this->assertEquals(48, $potter->getId());
@@ -77,7 +303,7 @@ class NoticeTestTypeDoc extends ModelTestCase {
 		$this->assertFalse($this->periodique->isLivre());
 	}
 
-	
+
 	/** @test */
 	public function isPeriodiqueShouldBeCorrect() {
 		$this->assertFalse($this->livre->isPeriodique());
@@ -94,7 +320,7 @@ class NoticeTestGetAvis extends ModelTestCase {
 		$base_properties = ['avis' => 'Testing comment',
 												'entete' => 'Testing comment'];
 
-		$user_bib = $this->fixture('Class_Users', 
+		$user_bib = $this->fixture('Class_Users',
 															 ['id' => 1,
 																'login' => 'admin',
 																'password' => 'pass',
@@ -106,13 +332,13 @@ class NoticeTestGetAvis extends ModelTestCase {
 																									 'user' => $user_bib,
 																									 'note' => 4]));
 
-		$this->avis_bib2 = $this->fixture('Class_AvisNotice', 
+		$this->avis_bib2 = $this->fixture('Class_AvisNotice',
 																			array_merge($base_properties,
 																									['id' => 2,
 																									 'user' => $user_bib,
 																									 'note' => 5]));
 
-		$this->avis_abon1 = $this->fixture('Class_AvisNotice', 
+		$this->avis_abon1 = $this->fixture('Class_AvisNotice',
 																			 array_merge($base_properties,
 																									 ['id' => 3,
 																										'abon_ou_bib' => 0,
@@ -130,7 +356,7 @@ class NoticeTestGetAvis extends ModelTestCase {
 								 $this->avis_abon1, $this->avis_abon2])
 			->beStrict();
 
-		$this->notice = $this->fixture('Class_Notice', 
+		$this->notice = $this->fixture('Class_Notice',
 																	 ['id' => 12,
 																		'clef_oeuvre' => 'TESTING-RECORD--']);
 	}
@@ -145,28 +371,28 @@ class NoticeTestGetAvis extends ModelTestCase {
 
 
 	/** @test */
-	public function getAvisBibliothecairesShouldReturnExpected() {	
+	public function getAvisBibliothecairesShouldReturnExpected() {
 		$this->assertEquals([$this->avis_bib1, $this->avis_bib2],
 												$this->notice->getAvisBibliothecaires());
 	}
 
 
 	/** @test */
-	public function noteMoyenneAvisBibliothecairesShouldBe4Dot5() {	
+	public function noteMoyenneAvisBibliothecairesShouldBe4Dot5() {
 		$this->assertEquals(4.5,
 												$this->notice->getNoteMoyenneAvisBibliothecaires());
 	}
 
 
 	/** @test */
-	public function getAvisAbonnesShouldBeAsExpected() {	
+	public function getAvisAbonnesShouldBeAsExpected() {
 		$this->assertEquals([$this->avis_abon1, $this->avis_abon2],
 												$this->notice->getAvisAbonnes());
 	}
 
 
 	/** @test */
-	public function noteMoyenneAvisAbonnesShouldBe2Dot5() {	
+	public function noteMoyenneAvisAbonnesShouldBe2Dot5() {
 		$this->assertEquals(2.5,
 												$this->notice->getNoteMoyenneAvisAbonnes());
 	}
@@ -223,7 +449,7 @@ abstract class NoticeThirdPartyTracksTestCase extends Storm_Test_ModelTestCase {
 				['clef' => 'h', 'valeur' => '00510172'],
 				['clef' => '2', 'valeur' => '[AA][Adulte CEC][0][1][Disponible][0][0][0][0]']]);
 
-		$exemplaire = $this->fixture('Class_Exemplaire', 
+		$exemplaire = $this->fixture('Class_Exemplaire',
 																 ['id' => 234,
 																	'zone995' => $zone_995]);
 
@@ -285,7 +511,7 @@ class NoticeCvsTest extends NoticeThirdPartyTracksTestCase {
 
 	/** @test */
 	public function secondTrackUrlShouldBeAsExpected() {
-		$this->assertEquals('http://www.cvs-mediatheques.com/home/songex/0/251/861251/861251_1_1_x.mp3', 
+		$this->assertEquals('http://www.cvs-mediatheques.com/home/songex/0/251/861251/861251_1_1_x.mp3',
 												$this->trackAt(2)['url_ecoute']);
 	}
 }
@@ -316,7 +542,7 @@ class NoticeGamTest extends NoticeThirdPartyTracksTestCase {
 
 	/** @test */
 	public function firstTrackUrlShouldNotBePresent() {
-		$this->assertEquals('http://www.gamannecy.com/polysson/201203/01-5099973054320.mp3', 
+		$this->assertEquals('http://www.gamannecy.com/polysson/201203/01-5099973054320.mp3',
 												$this->trackAt(1)['url_ecoute']);
 	}
 
@@ -329,7 +555,7 @@ class NoticeGamTest extends NoticeThirdPartyTracksTestCase {
 
 	/** @test */
 	public function secondTrackUrlShouldBeAsExpected() {
-		$this->assertEquals('http://www.gamannecy.com/polysson/201203/02-5099973054320.mp3', 
+		$this->assertEquals('http://www.gamannecy.com/polysson/201203/02-5099973054320.mp3',
 												$this->trackAt(2)['url_ecoute']);
 	}
 
@@ -358,7 +584,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 				['clef' => 'h', 'valeur' => '00510172'],
 				['clef' => '2', 'valeur' => '[AA][Adulte CEC][0][1][Disponible][0][0][0][0]']]);
 
-		$exemplaire = $this->fixture('Class_Exemplaire', 
+		$exemplaire = $this->fixture('Class_Exemplaire',
 																 ['id' => 234,
 																	'zone995' => $zone_995]);
 
@@ -367,7 +593,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 															 'type_doc' => Class_TypeDoc::DISQUE,
 															 'exemplaires' => [$exemplaire],
 															 'unimarc' => '02077njm0 2200661   450 001000700000010001200007071002100019073001800040100004100058126001800099200001900117200001600136210003700152210000300189215003100192327030600223327000300529330030600532345000800838345002200846349002700868464000300895464000300898464000300901464000300904464000300907464000300910464000300913464000300916464000300919464000300922464000300925464000300928464000300931464001300934464001400947464001200961464001600973464002000989464001601009464001801025464001101043464002001054464001801074464001201092464001001104464003901114686003401153700001201187700000301199701000301202701000301205702001601208702001201224801002201236902000901258992014801267160553  d19,29 E01a3747987bMosaert  a0602537479870  a20130916d2013    m  y0frea0103    ba  abxhx       cd1 aRacine carrée1 bCDfStromae  cUniversal Music France S.ad2013 1 1a1 disque compacte1 Livret  aAprès son premier album \'\'Cheese\'\' paru en 2010, Stromae est de retour avec \'\'Racine carrée\'\', un album actuel, nomade et universel, écrit et composé aux quatre coins du monde sur un ordinateur portable. Stromae y applique sa recette singulière : poser des mots forts sur des beats irésistibles.1   aAprès son premier album \'\'Cheese\'\' paru en 2010, Stromae est de retour avec \'\'Racine carrée\'\', un album actuel, nomade et universel, écrit et composé aux quatre coins du monde sur un ordinateur portable. Stromae y applique sa recette singulière : poser des mots forts sur des beats irésistibles.  aCVS  b0602537479870cCD  b3747987c06025374798701 1 1 1 1 1 1 1 1 1 1 1 1   tTa fête  tPapaoutai  tBâtard  tAve Cesaria  tTous les mêmes  tFormidables  tMoules frites  tCarmen  tHumain à l\'eau  tQuand c\'est ?  tSommeil  tMerci  fStromaegMaitre GimsgOrelsantAvf  a8tChanson francophone2PCDM4 1aStromae 1 1 1 1aMaitre Gims 1aOrelsan 1aFRbCVSc20130916  a0997  uhttp://websvc.pergame.net/afi_opac_services/images/jaquettes/2/4/4/3/thumbs/2443329.jpegvhttp://ecx.images-amazon.com/images/I/51dXO1x36GL.jpg']);
-		
+
 		$this->_tracks = $stromae->getMorceaux()['morceaux'];
 
 		$unimarc = Class_Exemplaire::find(234)->toUnimarcIso2709();
@@ -375,7 +601,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 
 		file_put_contents($this->_temp_file, $unimarc);
 		exec('yaz-marcdump ' . $this->_temp_file, $this->output);
-		
+
 		$this->_995s = $this->getFieldsFromMarcDump('995', $this->output);
 		$this->_direcrectory_definition_length = 3 + 4  + 5;
 	}
@@ -392,7 +618,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 		$this->assertEquals(673, $this->getBaseAdresseLength());
 	}
 
-	
+
 	/** @test */
 	public function fullLengthShouldBe2150() {
 		$this->assertEquals(2150, $this->getFullLength());
@@ -403,7 +629,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 	public function adressOfField5ShouldBe100() {
 		$this->assertEquals(99, $this->getFieldAdress(5));
 	}
-	
+
 
 	/** @test */
 	public function tracksShouldContainsTaFete() {
@@ -431,7 +657,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 
 	/** @test */
 	public function field995Dollar2ShouldBeAsExpected() {
-		$this->assertSame('[AA][Adulte CEC][0][1][Disponible][0][0][0][0]', 
+		$this->assertSame('[AA][Adulte CEC][0][1][Disponible][0][0][0][0]',
 											$this->getSubfieldFromLine('2', $this->_995s[0]));
 	}
 
@@ -459,7 +685,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 		return (int) $datas;
 	}
 
-	
+
 	protected function getDirectory() {
 		$directory_with_first_data = substr_replace(explode(' ', file_get_contents($this->_temp_file))[4], "", -2);
 		return  explode('', $directory_with_first_data)[0];
@@ -479,7 +705,7 @@ class NoticeStromaeTest extends Storm_Test_ModelTestCase {
 	protected function getFieldAdress($field_directory_position) {
 		$directory = $this->getDirectory();
 		$directory_elements = str_split($directory, 12);
-		
+
 		return (int) substr($directory_elements[$field_directory_position], 7,12);
 	}
 }
diff --git a/tests/library/Class/RemoteClientTest.php b/tests/library/Class/RemoteClientTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ad9bf1a129f27e254afedf08ab7db16c0e1d787
--- /dev/null
+++ b/tests/library/Class/RemoteClientTest.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+class RemoteClientIpAddressTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->_SERVER_BAK = $_SERVER;
+	}
+
+
+	public function tearDown() {
+		$_SERVER = $this->_SERVER_BAK;
+		parent::tearDown();
+	}
+
+
+	public function  serverValues() {
+		return
+			[
+
+			 [ '10.23.45.67',
+				[ 'HTTP_X_FORWARDED_FOR' =>  '10.23.45.67' ]
+			 ],
+
+
+			 [ '10.23.45.67',
+				[ 'REMOTE_ADDR' =>  '10.23.45.67' ]
+			 ],
+
+
+			 [ '10.23.45.67',
+				[
+				 'REMOTE_ADDR' =>  '10.23.45.66',
+				 'HTTP_X_FORWARDED_FOR' =>  '10.23.45.67',
+				]
+			 ],
+
+
+			 [ '10.23.45.67',
+				[
+				 'REMOTE_ADDR' =>  '10.23.45.66',
+				 'HTTP_CLIENT_IP' =>  '10.23.45.67',
+				]
+			 ],
+
+
+			 [ '10.23.45.67',
+				[ 'HTTP_X_FORWARDED_FOR' =>  '10.23.45.67, 192.34.45.34' ]
+			 ],
+
+
+			 [ '10.23.45.67',
+				[
+				 'REMOTE_ADDR' =>  '10.23.45.67',
+				 'HTTP_X_FORWARDED_FOR' =>  ' ',
+				]
+			 ],
+
+			];
+	}
+
+	/**
+	 * @dataProvider serverValues
+	 * @test
+	 */
+	public function ipShouldBeExtractedFromGlobalServer($expected_ip, $server) {
+		$_SERVER = $server;
+		$request = new Zend_Controller_Request_Http();
+		$this->assertEquals($expected_ip,
+												(new Class_RemoteClient($request))->getIpAddress());
+	}
+
+}
+
+?>
\ No newline at end of file
diff --git a/tests/library/Class/Systeme/ModulesMenuTest.php b/tests/library/Class/Systeme/ModulesMenuTest.php
index 328fee6aab4fc464110e8698a15d50cc0e6d90f8..0754b956b209c79bb5adf386fbac809d726a6619 100644
--- a/tests/library/Class/Systeme/ModulesMenuTest.php
+++ b/tests/library/Class/Systeme/ModulesMenuTest.php
@@ -16,20 +16,24 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
 
 
 abstract class ModulesMenuBibNumeriqueTestCase extends Storm_Test_ModelTestCase {
 	public function availableServices() {
 		return [
-			['VODECLIC', 'Vodeclic'],
-			['MUSICME', 'MusicMe'],
-			['LEKIOSK', 'LeKiosk'],
-			['TOUTAPPRENDRE', 'Tout Apprendre'],
-			['NUMILOG', 'Numilog'],
-			['ARTEVOD', 'ArteVod'],
-			['CVS', 'CVS']
+						['VODECLIC', 'Vodeclic'],
+						['MUSICME', 'MusicMe'],
+						['LEKIOSK', 'LeKiosk'],
+						['TOUTAPPRENDRE', 'Tout Apprendre'],
+						['NUMILOG', 'Numilog'],
+						['ARTEVOD', 'ArteVod'],
+						['CVS', 'CVS'],
+						['MYCOW', 'MyCOW.EU'],
+						['PLANETNEMO', 'planetnemo.fr'],
+						['KIDILANGUES', 'Kidilangues'],
 		];
 	}
 }
@@ -44,8 +48,8 @@ class ModulesMenuBibNumeriqueActivatedComboTest extends ModulesMenuBibNumeriqueT
 	}
 
 
-	/** 
-	 * @test 
+	/**
+	 * @test
 	 * @dataProvider availableServices
 	 */
 	public function shouldContainsLinkToService($type, $label) {
@@ -64,24 +68,24 @@ class ModulesMenuBibNumeriqueActivatedUrlsTest extends ModulesMenuBibNumeriqueTe
 	}
 
 
-	/** 
-	 * @test 
+	/**
+	 * @test
 	 * @dataProvider availableServices
 	 */
 	public function viaFunctionShouldLinkGenericUrl($type, $label) {
 		$this->assertContains(
-			'/modules/' . strtolower($type), 
+			'/modules/' . strtolower($type),
 			$this->module_menu->getFonction($type)->getUrl());
 	}
 
 
-	/** 
-	 * @test 
+	/**
+	 * @test
 	 * @dataProvider availableServices
 	 */
 	public function directCallShouldLinkGenericUrl($type, $label) {
 		$this->assertContains(
-			'/modules/' . strtolower($type), 
+			'/modules/' . strtolower($type),
 			$this->module_menu->getUrl($type, [])['url']);
 	}
 }
@@ -96,8 +100,8 @@ class ModulesMenuBibNumeriqueDeactivatedComboTest extends ModulesMenuBibNumeriqu
 	}
 
 
-	/** 
-	 * @test 
+	/**
+	 * @test
 	 * @dataProvider availableServices
 	 */
 	public function shouldNotContainsLinkToService($type, $label) {
diff --git a/tests/library/Class/UserGroupTest.php b/tests/library/Class/UserGroupTest.php
index 81f3ee78c1fe159c7ecacc6505a95c5489e452b8..48ec694431bc1cd9fe88ba0a03fdfc198b46e377 100644
--- a/tests/library/Class/UserGroupTest.php
+++ b/tests/library/Class/UserGroupTest.php
@@ -23,7 +23,7 @@ abstract class UserGroupsTestCase extends Storm_Test_ModelTestCase {
 	public function setUp() {
 		parent::setUp();
 
-		Class_SessionFormation::beVolatile();
+		Storm_Model_Loader::defaultToVolatile();
 
 		$this->_florence = $this->fixture('Class_Users',
 																			['id' => 1,
@@ -54,9 +54,19 @@ abstract class UserGroupsTestCase extends Storm_Test_ModelTestCase {
 																														 'user' => $this->_florence,
 																														 'user_group'=> $this->_stagiaires]);
 
-		$this->_stagiaires->setUsers([$this->_florence, $this->_agnes])->save();
+		$this->_agnes_stagiaires_membership = $this->fixture('Class_UserGroupMembership',
+																														['id' => 124,
+																														 'user' => $this->_agnes,
+																														 'user_group'=> $this->_stagiaires]);
+
 		$this->_florence->setUserGroupMemberships([$this->_florence_stagiaires_membership])->save();
 	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
 }
 
 
@@ -285,4 +295,52 @@ class UserGroupPermissionDeletionTest extends UserGroupsTestCase {
 }
 
 
+
+/** @see http://forge.afi-sa.fr/issues/21534 */
+class UserGroupDeletionTest extends UserGroupsTestCase {
+	protected $_jeanleguin;
+	protected $_humoristes;
+
+	public function setUp() {
+		parent::setUp();
+
+		$this->_humoristes = $this->fixture('Class_UserGroup', ['id' => 54,
+																														'libelle' => 'Humoristes',
+																														'rights_token' => 0x01,
+																														'role_level' => 'user',
+																														'group_type' => Class_UserGroup::TYPE_MANUAL]);
+
+		$this->_jeanleguin = $this->fixture('Class_Users', ['id' => 67,
+																												'login' => 'jeanleguin',
+																												'prenom' => 'Jean',
+																												'nom' => 'Leguin',
+																												'password' => 'lol',
+																												'role_lovel' => 'user']);
+
+		$this->fixture('Class_UserGroupMembership', ['id' => 1232,
+																								 'user' => $this->_jeanleguin,
+																								 'user_group'=> $this->_humoristes]);
+
+		$this->_humoristes->delete();
+	}
+
+
+	/** @test */
+	public function groupHumoristesShouldBeDeleted() {
+		$this->assertNull(Class_UserGroup::find(54));
+	}
+
+
+	/** @test */
+	public function relatedMembershipShouldBeDeleted() {
+		$this->assertNull(Class_UserGroupMembership::find(1232));
+	}
+
+
+	/** @test */
+	public function userJeanLeguinShouldNotBeDeleted() {
+		$this->assertNotNull(Class_Users::find(67));
+	}
+}
+
 ?>
\ No newline at end of file
diff --git a/tests/library/Class/WebService/CyberlibrisTest.php b/tests/library/Class/WebService/CyberlibrisTest.php
index 7bcd79c6188df9d0c91bccc77e6e52e5280c731d..77350004243bdfbcfca834b0259ba3a02c8394a2 100644
--- a/tests/library/Class/WebService/CyberlibrisTest.php
+++ b/tests/library/Class/WebService/CyberlibrisTest.php
@@ -18,7 +18,7 @@
  * along with BOKEH; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
-
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
 
 class CyberlibrisHarvestSaveTest extends  Storm_Test_ModelTestCase {
 	public function setUp() {
@@ -42,11 +42,9 @@ class CyberlibrisHarvestSaveTest extends  Storm_Test_ModelTestCase {
 			->answers($catalogue_xml_fin)
 			->beStrict();
 
-		$this->onLoaderOfModel('Class_Album')->whenCalled('deleteBy')->answers(true);
-
 		$this->_service = new Class_WebService_BibNumerique_Cyberlibris();
 		Class_WebService_BibNumerique_Cyberlibris::setDefaultHttpClient($this->_http_client);
-		$this->_service->harvest('');
+		$this->_service->harvest();
 	}
 
 
@@ -96,15 +94,64 @@ class CyberlibrisHarvestSaveTest extends  Storm_Test_ModelTestCase {
 	public function firstAlbumExternalURIShouldBeSet() {
 		$this->assertEquals('http://www.bibliovox.com/bookdetails.aspx?docID=10177808', Class_Album::find(1)->getExternalUri());
 	}
+}
+
+
+
+class CyberlibrisIncTest extends Storm_Test_ModelTestCase {
+  public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+    parent::tearDown();
+  }
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+    RessourcesNumeriquesFixtures::activateCyberlibris();
+
+		$catalogue_xml = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/cyberlibris_oai.xml');
+		$catalogue_xml_fin = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/cyberlibris_oai_fin.xml');
+
+
+		$this->_http_client = $this->mock();
+		$this->_http_client
+			->whenCalled('open_url')
+			->with('http://oai-bibliovox.cyberlibris.fr/oai.aspx?verb=ListRecords&metadataPrefix=oai_dc&from=2015-02-01')
+			->answers($catalogue_xml)
+			->whenCalled('open_url')
+			->with('http://oai-bibliovox.cyberlibris.fr/oai.aspx?verb=ListRecords&resumptionToken=f0a442d7-b9fc-4b02-881a-318b573cef60')
+			->answers($catalogue_xml_fin)
+			->beStrict();
+
+		$this->fixture('Class_WebService_HarvestLog',
+									 ['id' => 1,
+										'end_date' => '2015-02-01',
+										'type_doc' => Class_TypeDoc::CYBERLIBRIS]);
+
+		$this->fixture('Class_Album',
+									 ['id' => 1,
+										'type_doc_id' => Class_TypeDoc::CYBERLIBRIS,
+										'titre' => 'Cyber res']);
+
+
+		$this->onLoaderOfModel('Class_Album')->whenCalled('deleteBy')->answers(true);
+		$this->_service = new Class_WebService_BibNumerique_Cyberlibris();
+		$this->_service->setTimeSource(new TimeSourceForTest('2015-03-18 10:00:00'));
+		Class_WebService_BibNumerique_Cyberlibris::setDefaultHttpClient($this->_http_client);
+		$this->_service->harvest();
+    Class_Album::clearCache();
+	}
 
 
 	/** @test */
-	public function shouldAttemptToDeleteNonHarvested() {
-		$this->assertEquals(
-			"url_origine=\"http://oai-bibliovox.cyberlibris.fr/oai.aspx\" and id_origine not in ('10177808', '10177809', '10177811', '10185250')",
-			Class_Album::getLoader()->getAttributesForLastCallOn('deleteBy')[0]['where']);
+	public function shouldHave5Albums() {
+		$this->assertEquals(5, count(Class_Album::findAll()));
 	}
-}
 
 
-?>
\ No newline at end of file
+	/** @test */
+ 	public function harvestLogShouldContainsExpectedDate() {
+		$this->assertNotNull(Class_WebService_HarvestLog::findFirstBy(['type_doc' => Class_TypeDoc::CYBERLIBRIS,
+																																	 'end_date' => '2015-03-18']));
+	}
+}
diff --git a/tests/library/Class/WebService/Dilicom/HubTest.php b/tests/library/Class/WebService/Dilicom/HubTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..2655ed4186e58f105fb6035b851df45e1f7718d3
--- /dev/null
+++ b/tests/library/Class/WebService/Dilicom/HubTest.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+abstract class Class_Webservice_Dilicom_HubTestCase extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		RessourcesNumeriquesFixtures::activateDilicom();
+
+		$this->_http = Storm_Test_ObjectWrapper::mock();
+		Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient($this->_http);
+
+		$this->_response = json_encode(['requestId' => 'xxx',
+																		'returnStatus' => 'OK',
+																		'returnMessage' => []]);
+	}
+
+	public function tearDown() {
+		Class_WebService_BibNumerique_Dilicom_Hub::setDefaultHttpClient(null);
+		RessourcesNumeriquesFixtures::deactivateDilicom();
+		parent::tearDown();
+	}
+}
+
+
+
+class Class_Webservice_Dilicom_HubDeclareIpTest extends Class_Webservice_Dilicom_HubTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$this->_http->whenCalled('setAuth')
+								->with('afi-bib', 'secretPassword')
+								->answers(null)
+								->beStrict();
+
+	}
+
+	/** @test */
+	public function savingDilicomPnbIPAddressShouldCallWebserviceDeclareIP() {
+		$this->_http->whenCalled('open_url')
+								->with('https://pnb-test.centprod.com/v2/pnb-numerique/json/declareIp?'
+											 .'glnContractor=123456789&ips[0]=10.12.13.24')
+								->answers($this->_response);
+
+		$this->fixture('Class_AdminVar',
+									 ['id' => 'DILICOM_PNB_IP_ADRESSES',
+										'valeur' => '10.12.13.24']);
+
+		$this->assertTrue($this->_http->methodHasBeenCalled('open_url'));
+		$this->assertTrue($this->_http->methodHasBeenCalled('setAuth'));
+	}
+
+
+	/** @test */
+	public function savingDilicomPnbIpAdressWithMultipleIpsShouldCallWebServiceDeclareIp() {
+		$this->_http->whenCalled('open_url')
+								->with('https://pnb-test.centprod.com/v2/pnb-numerique/json/declareIp?'
+											 .'glnContractor=123456789&ips[0]=10.12.13.24&ips[1]=11.128.16.87')
+								->answers($this->_response);
+
+		$this->fixture('Class_AdminVar',
+									 ['id' => 'DILICOM_PNB_IP_ADRESSES',
+										'valeur' => '10.12.13.24;11.128.16.87']);
+
+		$this->assertTrue($this->_http->methodHasBeenCalled('open_url'));
+	}
+}
+?>
\ No newline at end of file
diff --git a/tests/library/Class/WebService/Dilicom/ONIXParserTest.php b/tests/library/Class/WebService/Dilicom/ONIXParserTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..4753b37e68bcc31cef5fce538e619270aa6e7c38
--- /dev/null
+++ b/tests/library/Class/WebService/Dilicom/ONIXParserTest.php
@@ -0,0 +1,140 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class DilicomONIXParserTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+		$xmlpath = realpath(dirname(__FILE__)) . '/fixtures/la_mer.xml';
+		$xml = file_get_contents($xmlpath);
+
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_book = Class_WebService_BibNumerique_Dilicom_ONIXFile::bookFromXML($xml);
+	}
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function bookShouldNotBeNull() {
+		$this->assertNotNull($this->_book);
+	}
+
+
+	/** @test */
+	public function titleShouldBeCertainesNAvaientJamaisVuLaMer() {
+		$this->assertEquals('Certaines n\'avaient jamais vu la mer', $this->_book->getTitle());
+	}
+
+
+	/** @test */
+	public function isbnShouldBe9782752908643() {
+		$this->assertEquals('9782752908643', $this->_book->getIsbn());
+	}
+
+
+	/** @test */
+	public function mainAuthorShouldBeJulieOtsuka() {
+		$this->assertEquals('Julie Otsuka', $this->_book->getAuthors()[0]);
+	}
+
+
+	/** @test */
+	public function publisherShouldBePhebus() {
+		$this->assertEquals('Phébus', $this->_book->getEditeur());
+	}
+
+
+	/** @test */
+	public function publishingDateShouldBe2012() {
+		$this->assertEquals(2012, $this->_book->getYear());
+	}
+
+
+	/** @test */
+	public function descriptionShouldContainsPrixFemina() {
+		$this->assertContains('Prix Femina étranger 2012', $this->_book->getDescription());
+	}
+
+
+	/** @test */
+	public function languageShouldBeFRE() {
+		$this->assertEquals('fre', $this->_book->getIdLangue());
+	}
+
+
+	/** @test */
+	public function importAlbumTypeDocShouldBeDILICOM() {
+		$album = $this->_book->import();
+		$this->assertEquals(Class_TypeDoc::DILICOM, $album->getTypeDocId());
+		return $album;
+	}
+
+
+	/**
+	 * @depends importAlbumTypeDocShouldBeDILICOM
+	 * @test
+	 */
+	public function albumFieldTenDollarAShouldBeISBN9782752908643($album) {
+		$this->assertEquals('9782752908643', $album->getMarc()->getSubfield('10', 'a')[0]);
+	}
+
+
+	/**
+	 * @depends importAlbumTypeDocShouldBeDILICOM
+	 * @test
+	 */
+	public function albumMainAuthorShouldBeJulieOtsuka($album) {
+		$this->assertEquals('Julie Otsuka', $album->getMainAuthorName());
+	}
+
+
+	/**
+	 * @depends importAlbumTypeDocShouldBeDILICOM
+	 * @test
+	 */
+	public function albumPublisherShouldContainsPhebus($album) {
+		$this->assertContains('Phébus', $album->getEditors());
+	}
+
+
+	/**
+	 * @depends importAlbumTypeDocShouldBeDILICOM
+	 * @test
+	 */
+	public function albumCollectionShouldContainsLitteratureEtrangere($album) {
+		$this->assertContains('Littérature étrangère', $album->getCollections());
+	}
+
+
+	/**
+	 * @depends importAlbumTypeDocShouldBeDILICOM
+	 * @test
+	 */
+	public function albumCategoryShouldBeLivreNumeriquePNB($album) {
+		$this->assertEquals('Livre numérique (PNB)', $album->getCategorie()->getLibelle());
+	}
+
+}
+?>
\ No newline at end of file
diff --git a/tests/library/Class/WebService/Dilicom/PNBOffersParserTest.php b/tests/library/Class/WebService/Dilicom/PNBOffersParserTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..cba6a0806fc2957a2cc592ef2db454152f8fefda
--- /dev/null
+++ b/tests/library/Class/WebService/Dilicom/PNBOffersParserTest.php
@@ -0,0 +1,198 @@
+<?php
+/**
+ * Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class DilicomPNBOfferParserTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+		$xmlpath = realpath(dirname(__FILE__)) . '/fixtures/full_pnb_666_20150220T150017Z.xml';
+		$xml = file_get_contents($xmlpath);
+
+		$this->_http_client = Storm_Test_ObjectWrapper::mock()
+																										->whenCalled('open_url')
+																										->answers('');
+		Class_WebService_Abstract::setDefaultHttpClient($this->_http_client);
+
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_books = Class_WebService_BibNumerique_Dilicom_PNBOffersFile::booksFromXML($xml);
+	}
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		Class_WebService_Abstract::setDefaultHttpClient(null);
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function numberOfBooksShouldBeThree() {
+		$this->assertEquals(3, count($this->_books));
+	}
+
+
+	/** @test */
+	public function firstAlbumShouldBePlusJamaisSansElle() {
+		$album = $this->_books[0]->import();
+		$this->assertEquals('Plus jamais sans elle', $album->getTitre());
+		return $album;
+	}
+
+
+	/** @test */
+	public function firstBookExternalURIShouldBeEdenLivres() {
+		$this->assertEquals('http://www.edenlivres.fr/p/23416', $this->_books[0]->getExternalUri());
+	}
+
+
+	/** @test */
+	public function firstBookPostersShouldContainsFrontCoverDotJpg() {
+		$this->assertContains('https://assets.edenlivres.fr/assets/publications/23416/medias/front_cover.jpg',
+													$this->_books[0]->getPosters());
+	}
+
+
+	/** @test */
+	public function firstBookPostersShouldContainsFrontCoverSmallDotJpg() {
+		$this->assertContains('http://assets.edenlivres.fr/assets/publications/23416/cover/small.jpg',
+													$this->_books[0]->getPosters());
+	}
+
+
+	/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumThumbnailShouldBeSmallDotJpg($album) {
+		$this->assertEquals('http://assets.edenlivres.fr/assets/publications/23416/cover/small.jpg',
+												$album->getPoster());
+	}
+
+
+	/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumShouldHaveSixUsageConstraints($album) {
+		$this->assertCount(6, $album->getUsageConstraints());
+	}
+
+
+	/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumLoanDurationShouldBe59($album) {
+		$this->assertEquals(59, $album->getUsageConstraints()->getLoanDuration());
+	}
+
+
+	/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumLoanOrderLineIdShouldBe54e748d8975a2fa6aa4d3e25($album) {
+		$this->assertEquals('54e7473f975a2fa6aa4d3e17',
+												$album->getUsageConstraints()->getLoanOrderLineId());
+	}
+
+	/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumLoanQuantityShouldBe40($album) {
+		$this->assertEquals(40, $album->getUsageConstraints()->getLoanQuantity());
+	}
+
+
+	/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumAvailabilityDurationShouldBe1825($album) {
+		$this->assertEquals(1825, $album->getUsageConstraints()->getAvailabilityDuration());
+	}
+
+
+		/**
+	 * @depends firstAlbumShouldBePlusJamaisSansElle
+	 * @test
+	 */
+	public function firstAlbumLoanMaxNumberOfUsersShouldBe15($album) {
+		$this->assertEquals(15,
+												$album->getUsageConstraints()->getLoanMaxNumberOfUsers());
+	}
+
+
+	/** @test */
+	public function secondAlbumShouldBeJournalDunDegonfle() {
+		$album = $this->_books[1]->import();
+		$this->assertEquals('Journal d\'un dégonflé, t.1', $album->getTitre());
+		return $album;
+	}
+
+
+	/**
+	 * @depends secondAlbumShouldBeJournalDunDegonfle
+	 * @test
+	 */
+	public function secondAlbumSubtitleShouldBeCarnetDeBordDeGregHeffley($album) {
+		$this->assertEquals('Carnet de bord de Greg Heffley', $album->getSousTitre());
+	}
+
+
+	/**
+	 * @test
+	 */
+	public function secondBookIdShouldBeDilicom9791023501735() {
+		$this->assertEquals('Dilicom-9791023501735', $this->_books[1]->getId());
+	}
+
+
+	/**
+	 * @depends secondAlbumShouldBeJournalDunDegonfle
+	 * @test
+	 */
+	public function secondAlbumUrlOriginShouldBeDilicom($album) {
+		$this->assertEquals('http://www.dilicom.net', $album->getUrlOrigine());
+	}
+
+
+	/** @test */
+	public function thirdAlbumShouldBeHomerEtLeChienFormidable() {
+		$album = $this->_books[2]->import();
+		$this->assertEquals('Homer et le chien formidable', $album->getTitre());
+		return $album;
+	}
+
+
+
+	/**
+	 * @depends thirdAlbumShouldBeHomerEtLeChienFormidable
+	 * @test
+	 */
+	public function thirdAlbumISBNShouldBe9791023504149($album) {
+		$this->assertEquals('9791023504149', $album->getIsbn());
+	}
+
+
+}
+
+?>
\ No newline at end of file
diff --git a/tests/library/Class/WebService/Dilicom/fixtures/full_pnb_666_20150220T150017Z.xml b/tests/library/Class/WebService/Dilicom/fixtures/full_pnb_666_20150220T150017Z.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4acdece34718191b938261431133d8b6d77f0c55
--- /dev/null
+++ b/tests/library/Class/WebService/Dilicom/fixtures/full_pnb_666_20150220T150017Z.xml
@@ -0,0 +1,1398 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pnbOffers
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="
+http://www.editeur.org/onix/3.0/reference 
+http://pnb-recette.dilicom.net/notices_onix/schema_onix/ONIX_BookProduct_3.0_reference.xsd
+http://pnb.dilicom.net/definitions
+http://pnb-recette.dilicom.net/notices_onix/schema/pnb_diffusion_offre_collectivite.xsd">
+<offer>
+    <notice>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ONIXMessage release="3.0" xmlns="http://www.editeur.org/onix/3.0/reference"&gt;
+&lt;Header&gt;
+&lt;Sender&gt;
+&lt;SenderIdentifier&gt;&lt;SenderIDType&gt;06&lt;/SenderIDType&gt;&lt;IDValue&gt;3025599000108&lt;/IDValue&gt;&lt;/SenderIdentifier&gt;
+&lt;SenderName&gt;SERVEUR DILICOM - PNB NUMERIQUE&lt;/SenderName&gt;&lt;/Sender&gt;
+&lt;Addressee&gt;&lt;AddresseeIdentifier&gt;&lt;AddresseeIDType&gt;06&lt;/AddresseeIDType&gt;&lt;IDValue&gt;3056000302801&lt;/IDValue&gt;&lt;/AddresseeIdentifier&gt;&lt;/Addressee&gt;
+&lt;SentDateTime&gt;20150220T0400Z&lt;/SentDateTime&gt;
+&lt;/Header&gt;
+&lt;Product&gt;
+&lt;RecordReference&gt;EDEN-23416-3828-LIBRARIES&lt;/RecordReference&gt;
+&lt;NotificationType&gt;03&lt;/NotificationType&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9791023501766&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDTypeName&gt;internal_key&lt;/IDTypeName&gt;
+&lt;IDValue&gt;eden-23416-3828-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;DescriptiveDetail&gt;
+&lt;ProductComposition&gt;00&lt;/ProductComposition&gt;
+&lt;ProductForm&gt;EB&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E200&lt;/ProductFormDetail&gt;
+&lt;ProductFormFeature&gt;
+&lt;ProductFormFeatureType&gt;07&lt;/ProductFormFeatureType&gt;
+&lt;ProductFormFeatureValue&gt;on-site&lt;/ProductFormFeatureValue&gt;
+&lt;ProductFormFeatureDescription&gt;PNBONLINE04&lt;/ProductFormFeatureDescription&gt;
+&lt;/ProductFormFeature&gt;
+&lt;EpubTechnicalProtection&gt;03&lt;/EpubTechnicalProtection&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;02&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;03&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;6&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;06&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;06&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;59&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;40&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;10&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;15&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;07&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;1825&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;9999&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;Collection&gt;
+&lt;CollectionType&gt;10&lt;/CollectionType&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;02&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Fiction hors collection&lt;/TitleText&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;/Collection&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;01&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Plus jamais sans elle&lt;/TitleText&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;Contributor&gt;
+&lt;SequenceNumber&gt;1&lt;/SequenceNumber&gt;
+&lt;ContributorRole&gt;A01&lt;/ContributorRole&gt;
+&lt;PersonName&gt;Mikaël Ollivier&lt;/PersonName&gt;
+&lt;PersonNameInverted&gt;Ollivier Mikaël&lt;/PersonNameInverted&gt;
+&lt;NamesBeforeKey&gt;Mikaël&lt;/NamesBeforeKey&gt;
+&lt;KeyNames&gt;Ollivier&lt;/KeyNames&gt;
+&lt;BiographicalNote&gt;Fasciné par le cinéma en général et par Hitchcock en particulier, Mikaël Ollivier a travaillé pour Canal + avant de se lancer dans la littérature et l’écriture de scénarios. Il a publié une trentaine de romans.
+Pour la jeunesse, Mikaël Ollivier a notamment écrit La Vie en gros (Thierry Magnier, 2001), récompensé par 18 prix (dont le Prix des Incorruptibles), traduit dans 8 langues et adapté à la télévision. Aux éditions de La Martinière Jeunesse, il est l’auteur de Celui qui n’aimait pas lire (coll. Confessions, 18 000 ex. vendus).
+
+www.mikaelollivier.com&lt;/BiographicalNote&gt;
+&lt;ContributorPlace&gt;
+&lt;ContributorPlaceRelator&gt;08&lt;/ContributorPlaceRelator&gt;
+&lt;CountryCode&gt;FR&lt;/CountryCode&gt;
+&lt;/ContributorPlace&gt;
+&lt;/Contributor&gt;
+&lt;NoEdition/&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;01&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;fre&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;02&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;fre&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;22&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;2.00&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;19&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;00&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;303&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;03&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM20&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;2500&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;JEUNESSE&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;10&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;JNF000000&lt;/SubjectCode&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;3722&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;JEUNESSE&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM10&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;3744&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;Fiction Jeunesse&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Audience&gt;
+&lt;AudienceCodeType&gt;02&lt;/AudienceCodeType&gt;
+&lt;AudienceCodeTypeName&gt;age-group&lt;/AudienceCodeTypeName&gt;
+&lt;AudienceCodeValue&gt;13-99&lt;/AudienceCodeValue&gt;
+&lt;/Audience&gt;
+&lt;AudienceRange&gt;
+&lt;AudienceRangeQualifier&gt;17&lt;/AudienceRangeQualifier&gt;
+&lt;AudienceRangePrecision&gt;03&lt;/AudienceRangePrecision&gt;
+&lt;AudienceRangeValue&gt;13&lt;/AudienceRangeValue&gt;
+&lt;AudienceRangePrecision&gt;04&lt;/AudienceRangePrecision&gt;
+&lt;AudienceRangeValue&gt;99&lt;/AudienceRangeValue&gt;
+&lt;/AudienceRange&gt;
+&lt;/DescriptiveDetail&gt;
+&lt;CollateralDetail&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;03&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;Le jour de ses 18 ans, Alan n’a qu’un seul souhait : rencontrer celle qu’il n’a jamais vue, dont il ne sait rien, pas même le nom : sa mère.
+Un vœu qui va faire basculer sa vie.
+Car pour rejoindre Ellen, cette femme armée, rebelle et solitaire qui ne semble pas disposée à jouer les mamans, il lui faudra devenir un autre.
+Lui qui n’a jamais voyagé va parcourir l’Europe de Londres jusqu’à Sofia, en passant par Prague et le grand Nord. Lui qui a toujours obéi va maintenant transgresser les règles… Lui que son père a toujours protégé apprendra à n’avoir peur de rien… Sauf de perdre celle qu’il a eu tant de mal à retrouver.&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;02&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;Le jour de ses 18 ans, Alan n’a qu’un seul souhait : rencontrer celle qu’il n’a jamais vue, dont il ne sait rien, pas même le nom : sa mère.
+Un vœu qui va faire basculer sa vie.
+Car pour rejoindre Ellen, cette femme armée, rebelle et solitaire qui ne semble pas disposée à jouer les mamans, il lui faudra devenir un autre.
+Lui qui n’a jamais voyagé va parcourir l’Europe de Londres jusqu’à Sofia, en passant par Prague et le grand Nord. Lui qui a toujours obéi va maintenant transgresser les règles… Lui que son père a toujours protégé apprendra à n’avoir peur de rien… Sauf de perdre celle qu’il a eu tant de mal à retrouver.&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;Couverture&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;front_cover.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1713&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;02&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;2539&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/23416/medias/front_cover.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20121109T182919+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;15&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;04&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;extrait&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;extrait.epub&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;E101&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/23416/medias/extrait.epub&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20121109T183103+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;15&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;04&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;excerpt.pdf&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D401&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/23416/medias/excerpt.pdf&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20140617T221653+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_small&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/23416/cover/small.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;65&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/23416/cover/small.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T133739+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_medium&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/23416/cover/medium.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;200&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/23416/cover/medium.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T133738+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_large&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/23416/cover/large.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1000&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/23416/cover/large.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T133738+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;16&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;06&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceLink&gt;http://www.edenlivres.fr/p/23416&lt;/ResourceLink&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;/CollateralDetail&gt;
+&lt;PublishingDetail&gt;
+&lt;Imprint&gt;
+&lt;ImprintName&gt;Seuil&lt;/ImprintName&gt;
+&lt;/Imprint&gt;
+&lt;Publisher&gt;
+&lt;PublishingRole&gt;01&lt;/PublishingRole&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;06&lt;/PublisherIDType&gt;
+&lt;IDValue&gt;3052020010016&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;01&lt;/PublisherIDType&gt;
+&lt;IDTypeName&gt;DM_GLOBAL_ID&lt;/IDTypeName&gt;
+&lt;IDValue&gt;EDEN4&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherName&gt;Seuil&lt;/PublisherName&gt;
+&lt;Website&gt;
+&lt;WebsiteRole&gt;01&lt;/WebsiteRole&gt;
+&lt;WebsiteLink&gt;http://www.editionsduseuil.fr/&lt;/WebsiteLink&gt;
+&lt;/Website&gt;
+&lt;/Publisher&gt;
+&lt;PublishingStatus&gt;04&lt;/PublishingStatus&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;01&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20121011T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;19&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20121011T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;09&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20121213T121753+0100&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;SalesRights&gt;
+&lt;SalesRightsType&gt;01&lt;/SalesRightsType&gt;
+&lt;Territory&gt;
+&lt;CountriesIncluded&gt;DE AD AT BE CY ES EE FI FR GR GP GF IE IT LU MT MQ YT MC NL PT RE SK SI CH&lt;/CountriesIncluded&gt;
+&lt;/Territory&gt;
+&lt;/SalesRights&gt;
+&lt;SalesRestriction&gt;
+&lt;SalesRestrictionType&gt;06&lt;/SalesRestrictionType&gt;
+&lt;/SalesRestriction&gt;
+&lt;/PublishingDetail&gt;
+&lt;RelatedMaterial&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;13&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;03&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782021076387&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;BA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;31&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782021093063&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E200&lt;/ProductFormDetail&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDValue&gt;eden-23416-5225-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDValue&gt;eden-23416-5226-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;/RelatedMaterial&gt;
+&lt;/Product&gt;
+&lt;/ONIXMessage&gt;</notice>
+    <orderLine>
+        <orderId>TESTVBAFI001</orderId>
+        <orderIdColl>TESTBIBVBAFI001</orderIdColl>
+        <orderLineId>54e7473f975a2fa6aa4d3e17</orderLineId>
+        <orderDate>2015-02-20T15:40:01.866+01:00</orderDate>
+        <ean13>9791023501766</ean13>
+        <quantity>1</quantity>
+        <usage>
+            <loanTerms>
+                <loanMaxDuration>
+                    <value>59</value>
+                    <unit>DAY</unit>
+                </loanMaxDuration>
+                <nbLoans>40</nbLoans>
+                <loanNbSimultaneousUsers>15</loanNbSimultaneousUsers>
+                <consultNbSimultaneousUsersInSitu>9999</consultNbSimultaneousUsersInSitu>
+                <consultNbSimultaneousUsersExSitu>0</consultNbSimultaneousUsersExSitu>
+            </loanTerms>
+            <userRights>
+                <printing>PROHIBITED</printing>
+                <copyAndPaste>PROHIBITED</copyAndPaste>
+                <nbAllowedDevices>6</nbAllowedDevices>
+            </userRights>
+            <collRights>
+                <offerValidity>
+                    <value>1825</value>
+                    <unit>DAY</unit>
+                </offerValidity>
+            </collRights>
+        </usage>
+        <returnStatus>OK</returnStatus>
+    </orderLine>
+</offer>
+<offer>
+    <notice>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ONIXMessage release="3.0" xmlns="http://www.editeur.org/onix/3.0/reference"&gt;
+&lt;Header&gt;
+&lt;Sender&gt;
+&lt;SenderIdentifier&gt;&lt;SenderIDType&gt;06&lt;/SenderIDType&gt;&lt;IDValue&gt;3025599000108&lt;/IDValue&gt;&lt;/SenderIdentifier&gt;
+&lt;SenderName&gt;SERVEUR DILICOM - PNB NUMERIQUE&lt;/SenderName&gt;&lt;/Sender&gt;
+&lt;Addressee&gt;&lt;AddresseeIdentifier&gt;&lt;AddresseeIDType&gt;06&lt;/AddresseeIDType&gt;&lt;IDValue&gt;3056000302801&lt;/IDValue&gt;&lt;/AddresseeIdentifier&gt;&lt;/Addressee&gt;
+&lt;SentDateTime&gt;20150220T0400Z&lt;/SentDateTime&gt;
+&lt;/Header&gt;
+&lt;Product&gt;
+&lt;RecordReference&gt;EDEN-25366-3597-LIBRARIES&lt;/RecordReference&gt;
+&lt;NotificationType&gt;03&lt;/NotificationType&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9791023501735&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDTypeName&gt;internal_key&lt;/IDTypeName&gt;
+&lt;IDValue&gt;eden-25366-3597-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;DescriptiveDetail&gt;
+&lt;ProductComposition&gt;00&lt;/ProductComposition&gt;
+&lt;ProductForm&gt;EB&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E201&lt;/ProductFormDetail&gt;
+&lt;ProductFormFeature&gt;
+&lt;ProductFormFeatureType&gt;07&lt;/ProductFormFeatureType&gt;
+&lt;ProductFormFeatureValue&gt;on-site&lt;/ProductFormFeatureValue&gt;
+&lt;ProductFormFeatureDescription&gt;PNBONLINE04&lt;/ProductFormFeatureDescription&gt;
+&lt;/ProductFormFeature&gt;
+&lt;EpubTechnicalProtection&gt;03&lt;/EpubTechnicalProtection&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;02&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;03&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;6&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;06&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;06&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;59&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;40&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;10&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;15&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;07&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;1825&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;9999&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;Collection&gt;
+&lt;CollectionType&gt;10&lt;/CollectionType&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;02&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Journal d'un dégonflé&lt;/TitleText&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;/Collection&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;01&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Journal d'un dégonflé, t.1&lt;/TitleText&gt;
+&lt;Subtitle&gt;Carnet de bord de Greg Heffley&lt;/Subtitle&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;Contributor&gt;
+&lt;SequenceNumber&gt;1&lt;/SequenceNumber&gt;
+&lt;ContributorRole&gt;A01&lt;/ContributorRole&gt;
+&lt;PersonName&gt;Jeff Kinney&lt;/PersonName&gt;
+&lt;PersonNameInverted&gt;Kinney Jeff&lt;/PersonNameInverted&gt;
+&lt;NamesBeforeKey&gt;Jeff&lt;/NamesBeforeKey&gt;
+&lt;KeyNames&gt;Kinney&lt;/KeyNames&gt;
+&lt;BiographicalNote&gt;Jeff Kinney est concepteur et réalisateur de jeux en ligne. Il a 37 ans. En 1998, il commence à crayonner un personnage qui verra le jour sur le web, 6 ans plus tard. Quelques 50 millions de visiteurs après (100 000 connexions par jour), l’éditeur Abrams décide de le publier en ouvrage, avec grand succès.
+(site : www.wimpykid.com)&lt;/BiographicalNote&gt;
+&lt;Website&gt;
+&lt;WebsiteRole&gt;01&lt;/WebsiteRole&gt;
+&lt;WebsiteLink&gt;http://www.wimpykid.com&lt;/WebsiteLink&gt;
+&lt;/Website&gt;
+&lt;ContributorPlace&gt;
+&lt;ContributorPlaceRelator&gt;08&lt;/ContributorPlaceRelator&gt;
+&lt;CountryCode&gt;US&lt;/CountryCode&gt;
+&lt;/ContributorPlace&gt;
+&lt;/Contributor&gt;
+&lt;NoEdition/&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;01&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;fre&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;02&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;eng&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;22&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;9.84&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;19&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;00&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;228&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;03&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM20&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;2500&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;JEUNESSE&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;10&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;JUV000000&lt;/SubjectCode&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;3722&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;JEUNESSE&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;20&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectHeadingText&gt;Diary of a wimpy kid&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM10&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;3744&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;Fiction Jeunesse&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Audience&gt;
+&lt;AudienceCodeType&gt;02&lt;/AudienceCodeType&gt;
+&lt;AudienceCodeTypeName&gt;age-group&lt;/AudienceCodeTypeName&gt;
+&lt;AudienceCodeValue&gt;9-12&lt;/AudienceCodeValue&gt;
+&lt;/Audience&gt;
+&lt;AudienceRange&gt;
+&lt;AudienceRangeQualifier&gt;17&lt;/AudienceRangeQualifier&gt;
+&lt;AudienceRangePrecision&gt;03&lt;/AudienceRangePrecision&gt;
+&lt;AudienceRangeValue&gt;9&lt;/AudienceRangeValue&gt;
+&lt;AudienceRangePrecision&gt;04&lt;/AudienceRangePrecision&gt;
+&lt;AudienceRangeValue&gt;12&lt;/AudienceRangeValue&gt;
+&lt;/AudienceRange&gt;
+&lt;/DescriptiveDetail&gt;
+&lt;CollateralDetail&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;03&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;Greg Heffley, le héros improbable qui va vite en devenir un !
+
+Greg a 12 ans, un grand frère musicien qui lui fait des blagues, un petit frère qui le colle, un copain qu'il supporte histoire de ne pas être seul, des problèmes avec les filles qui pouffent à longueur de journée, des parents qui ne comprennent jamais rien à ce qu'il demande...
+Un jour sa mère lui offre un journal intime, que Greg rebaptise en carnet de bord.
+
+"Si elle croit que je vais écrire là-dedans ce que je "ressens" ou je ne sais pas trop quoi, elle se fourre le doigt dans l'oeil."
+
+Heureusement, entre ce que dit Greg et ce qu'il fait vraiment, il y a un monde...&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;02&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;Greg Heffley, le héros improbable qui va vite en devenir un !
+
+Greg a 12 ans, un grand frère musicien qui lui fait des blagues, un petit frère qui le colle, un copain qu'il supporte histoire de ne pas être seul, des problèmes avec les filles qui pouffent à longueur de journée, des parents qui ne comprennent jamais rien à ce qu'il demande...
+Un jour sa mère lui offre un journal intime, que Greg rebaptise en carnet de bord.
+
+"Si elle croit que je vais écrire là-dedans ce que je "ressens" ou je ne sais pas trop quoi, elle se fourre le doigt dans l'oeil."
+
+Heureusement, entre ce que dit Greg et ce qu'il fait vraiment, il y a un monde...&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;Couverture&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;front_cover.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1651&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;02&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;2399&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/25366/medias/front_cover.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130131T135133+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_small&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/25366/cover/small.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;65&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/25366/cover/small.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T133704+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_medium&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/25366/cover/medium.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;200&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/25366/cover/medium.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T133704+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_large&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/25366/cover/large.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1000&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/25366/cover/large.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T133704+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;/CollateralDetail&gt;
+&lt;PublishingDetail&gt;
+&lt;Imprint&gt;
+&lt;ImprintName&gt;Seuil&lt;/ImprintName&gt;
+&lt;/Imprint&gt;
+&lt;Publisher&gt;
+&lt;PublishingRole&gt;01&lt;/PublishingRole&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;06&lt;/PublisherIDType&gt;
+&lt;IDValue&gt;3052020010016&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;01&lt;/PublisherIDType&gt;
+&lt;IDTypeName&gt;DM_GLOBAL_ID&lt;/IDTypeName&gt;
+&lt;IDValue&gt;EDEN4&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherName&gt;Seuil&lt;/PublisherName&gt;
+&lt;Website&gt;
+&lt;WebsiteRole&gt;01&lt;/WebsiteRole&gt;
+&lt;WebsiteLink&gt;http://www.editionsduseuil.fr/&lt;/WebsiteLink&gt;
+&lt;/Website&gt;
+&lt;Website&gt;
+&lt;WebsiteRole&gt;02&lt;/WebsiteRole&gt;
+&lt;WebsiteLink&gt;http://www.journaldundegonfle.fr/&lt;/WebsiteLink&gt;
+&lt;/Website&gt;
+&lt;/Publisher&gt;
+&lt;PublishingStatus&gt;04&lt;/PublishingStatus&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;01&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130207T000000+0100&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;19&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20090820T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;09&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130201T121500+0100&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;SalesRights&gt;
+&lt;SalesRightsType&gt;01&lt;/SalesRightsType&gt;
+&lt;Territory&gt;
+&lt;CountriesIncluded&gt;DE AD AT BE CY ES EE FI FR GR GP GF IE IT LU MT MQ YT MC NL PT RE SK SI CH&lt;/CountriesIncluded&gt;
+&lt;/Territory&gt;
+&lt;/SalesRights&gt;
+&lt;SalesRestriction&gt;
+&lt;SalesRestrictionType&gt;06&lt;/SalesRestrictionType&gt;
+&lt;/SalesRestriction&gt;
+&lt;/PublishingDetail&gt;
+&lt;RelatedMaterial&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;13&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;03&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782021011968&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;BA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;31&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9791023500059&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E201&lt;/ProductFormDetail&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDValue&gt;eden-25366-5295-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDValue&gt;eden-25366-11894-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;/RelatedMaterial&gt;
+&lt;/Product&gt;
+&lt;/ONIXMessage&gt;</notice>
+    <orderLine>
+        <orderId>TESTVBAFI001</orderId>
+        <orderIdColl>TESTBIBVBAFI001</orderIdColl>
+        <orderLineId>54e7473f975a2fa6aa4d3e18</orderLineId>
+        <orderDate>2015-02-20T15:40:01.866+01:00</orderDate>
+        <ean13>9791023501735</ean13>
+        <quantity>1</quantity>
+        <usage>
+            <loanTerms>
+                <loanMaxDuration>
+                    <value>59</value>
+                    <unit>DAY</unit>
+                </loanMaxDuration>
+                <nbLoans>40</nbLoans>
+                <loanNbSimultaneousUsers>15</loanNbSimultaneousUsers>
+                <consultNbSimultaneousUsersInSitu>9999</consultNbSimultaneousUsersInSitu>
+                <consultNbSimultaneousUsersExSitu>0</consultNbSimultaneousUsersExSitu>
+            </loanTerms>
+            <userRights>
+                <printing>PROHIBITED</printing>
+                <copyAndPaste>PROHIBITED</copyAndPaste>
+                <nbAllowedDevices>6</nbAllowedDevices>
+            </userRights>
+            <collRights>
+                <offerValidity>
+                    <value>1825</value>
+                    <unit>DAY</unit>
+                </offerValidity>
+            </collRights>
+        </usage>
+        <returnStatus>OK</returnStatus>
+    </orderLine>
+</offer>
+<offer>
+    <notice>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ONIXMessage release="3.0" xmlns="http://www.editeur.org/onix/3.0/reference"&gt;
+&lt;Header&gt;
+&lt;Sender&gt;
+&lt;SenderIdentifier&gt;&lt;SenderIDType&gt;06&lt;/SenderIDType&gt;&lt;IDValue&gt;3025599000108&lt;/IDValue&gt;&lt;/SenderIdentifier&gt;
+&lt;SenderName&gt;SERVEUR DILICOM - PNB NUMERIQUE&lt;/SenderName&gt;&lt;/Sender&gt;
+&lt;Addressee&gt;&lt;AddresseeIdentifier&gt;&lt;AddresseeIDType&gt;06&lt;/AddresseeIDType&gt;&lt;IDValue&gt;3056000302801&lt;/IDValue&gt;&lt;/AddresseeIdentifier&gt;&lt;/Addressee&gt;
+&lt;SentDateTime&gt;20150220T0400Z&lt;/SentDateTime&gt;
+&lt;/Header&gt;
+&lt;Product&gt;
+&lt;RecordReference&gt;EDEN-30152-51441-LIBRARIES&lt;/RecordReference&gt;
+&lt;NotificationType&gt;04&lt;/NotificationType&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9791023504148&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDTypeName&gt;internal_key&lt;/IDTypeName&gt;
+&lt;IDValue&gt;eden-30152-51441-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;DescriptiveDetail&gt;
+&lt;ProductComposition&gt;00&lt;/ProductComposition&gt;
+&lt;ProductForm&gt;EB&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E200&lt;/ProductFormDetail&gt;
+&lt;ProductFormFeature&gt;
+&lt;ProductFormFeatureType&gt;07&lt;/ProductFormFeatureType&gt;
+&lt;ProductFormFeatureValue&gt;on-site&lt;/ProductFormFeatureValue&gt;
+&lt;ProductFormFeatureDescription&gt;PNBONLINE04&lt;/ProductFormFeatureDescription&gt;
+&lt;/ProductFormFeature&gt;
+&lt;EpubTechnicalProtection&gt;03&lt;/EpubTechnicalProtection&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;02&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;03&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;6&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;06&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;06&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;59&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;40&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;10&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;15&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;07&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;1825&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;9999&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;Collection&gt;
+&lt;CollectionType&gt;10&lt;/CollectionType&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;02&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Fiction hors collection&lt;/TitleText&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;/Collection&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;01&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Homer et le chien formidable&lt;/TitleText&gt;
+&lt;Subtitle&gt;Tome 1&lt;/Subtitle&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;Contributor&gt;
+&lt;SequenceNumber&gt;1&lt;/SequenceNumber&gt;
+&lt;ContributorRole&gt;A01&lt;/ContributorRole&gt;
+&lt;PersonName&gt;Suzanne Selfors&lt;/PersonName&gt;
+&lt;PersonNameInverted&gt;Selfors Suzanne&lt;/PersonNameInverted&gt;
+&lt;NamesBeforeKey&gt;Suzanne&lt;/NamesBeforeKey&gt;
+&lt;KeyNames&gt;Selfors&lt;/KeyNames&gt;
+&lt;BiographicalNote/&gt;
+&lt;/Contributor&gt;
+&lt;NoEdition/&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;01&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;fre&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;22&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;3.19&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;19&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;00&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;360&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;03&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM20&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;2500&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;JEUNESSE&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;10&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;JNF000000&lt;/SubjectCode&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;3722&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;JEUNESSE&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM10&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;3744&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;Fiction Jeunesse&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;/DescriptiveDetail&gt;
+&lt;CollateralDetail&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;03&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;Homer Pudding, 12 ans, rêve d'aventures et de trésors cachés. Mais personne ne le prend au sérieux. Surtout pas ses parents... Quand son oncle Drake -authentique chercheur de trésors- disparaît, Homer hérite de son chien, un basset sans flair doté d'une mystérieuse médaille. Et si cette médaille était la clé qui conduisait au trésor de Rumpold Le Puant, qu'oncle Drake a cherché toute sa vie ? Homer, bien décidé à percer ce mystère, se met en chasse aux côtés de son nouveau compagnon, qui pourrait bien être lui-même un sacré... trésor !Un roman d'aventures merveilleux et hors du temps, bourré d'humour, de tendresse et de surprises.&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;02&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;Homer Pudding, 12 ans, rêve d'aventures et de trésors cachés. Mais personne ne le prend au sérieux. Surtout pas ses parents... Quand son oncle Drake -authentique chercheur de trésors- disparaît, Homer hérite de son chien, un basset sans flair doté d'une mystérieuse médaille. Et si cette médaille était la clé qui conduisait au trésor de Rumpold Le Puant, qu'oncle Drake a cherché toute sa vie ? Homer, bien décidé à percer ce mystère, se met en chasse aux côtés de son nouveau compagnon, qui pourrait bien être lui-même un sacré... trésor !Un roman d'aventures merveilleux et hors du temps, bourré d'humour, de tendresse et de surprises.&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;Couverture&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;front_cover.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1653&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;02&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;2421&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/30152/medias/front_cover.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130919T013731+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;15&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;04&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;Extrait&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;extrait.epub&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;E101&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/30152/medias/extrait.epub&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130919T013732+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;15&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;04&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;excerpt.pdf&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D401&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/assets/publications/30152/medias/excerpt.pdf&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20140617T222049+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_small&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/30152/cover/small.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;65&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/30152/cover/small.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T132639+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_medium&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/30152/cover/medium.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;200&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/30152/cover/medium.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T132639+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_large&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;02&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;http://assets.edenlivres.fr/assets/publications/30152/cover/large.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1000&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;http://assets.edenlivres.fr/assets/publications/30152/cover/large.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20150107T132638+0100&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;16&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;06&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceLink&gt;http://www.edenlivres.fr/p/30152&lt;/ResourceLink&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;/CollateralDetail&gt;
+&lt;PublishingDetail&gt;
+&lt;Imprint&gt;
+&lt;ImprintName&gt;Seuil&lt;/ImprintName&gt;
+&lt;/Imprint&gt;
+&lt;Publisher&gt;
+&lt;PublishingRole&gt;01&lt;/PublishingRole&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;06&lt;/PublisherIDType&gt;
+&lt;IDValue&gt;3052020010016&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;01&lt;/PublisherIDType&gt;
+&lt;IDTypeName&gt;DM_GLOBAL_ID&lt;/IDTypeName&gt;
+&lt;IDValue&gt;EDEN4&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherName&gt;Seuil&lt;/PublisherName&gt;
+&lt;Website&gt;
+&lt;WebsiteRole&gt;01&lt;/WebsiteRole&gt;
+&lt;WebsiteLink&gt;http://www.editionsduseuil.fr/&lt;/WebsiteLink&gt;
+&lt;/Website&gt;
+&lt;/Publisher&gt;
+&lt;PublishingStatus&gt;04&lt;/PublishingStatus&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;01&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130925T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;19&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130905T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;09&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20130919T013730+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;SalesRights&gt;
+&lt;SalesRightsType&gt;01&lt;/SalesRightsType&gt;
+&lt;Territory&gt;
+&lt;CountriesIncluded&gt;DE AD AT BE CY ES EE FI FR GR GP GF IE IT LU MT MQ YT MC NL PT RE SK SI&lt;/CountriesIncluded&gt;
+&lt;/Territory&gt;
+&lt;/SalesRights&gt;
+&lt;SalesRestriction&gt;
+&lt;SalesRestrictionType&gt;06&lt;/SalesRestrictionType&gt;
+&lt;/SalesRestriction&gt;
+&lt;/PublishingDetail&gt;
+&lt;RelatedMaterial&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;13&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;03&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782021096200&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;BA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;31&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9791023500271&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E200&lt;/ProductFormDetail&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDValue&gt;eden-30152-8122-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDValue&gt;eden-30152-8123-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;/RelatedMaterial&gt;
+&lt;/Product&gt;
+&lt;/ONIXMessage&gt;</notice>
+    <orderLine>
+        <orderId>TESTVBAFI002</orderId>
+        <orderIdColl>TESTBIBVBAFI002</orderIdColl>
+        <orderLineId>54e748d8975a2fa6aa4d3e25</orderLineId>
+        <orderDate>2015-02-20T15:46:49.835+01:00</orderDate>
+        <ean13>9791023504149</ean13>
+        <quantity>1</quantity>
+        <usage>
+            <loanTerms>
+                <loanMaxDuration>
+                    <value>59</value>
+                    <unit>DAY</unit>
+                </loanMaxDuration>
+                <nbLoans>40</nbLoans>
+                <loanNbSimultaneousUsers>15</loanNbSimultaneousUsers>
+                <consultNbSimultaneousUsersInSitu>9999</consultNbSimultaneousUsersInSitu>
+                <consultNbSimultaneousUsersExSitu>0</consultNbSimultaneousUsersExSitu>
+            </loanTerms>
+            <userRights>
+                <printing>PROHIBITED</printing>
+                <copyAndPaste>PROHIBITED</copyAndPaste>
+                <nbAllowedDevices>6</nbAllowedDevices>
+            </userRights>
+            <collRights>
+                <offerValidity>
+                    <value>1825</value>
+                    <unit>DAY</unit>
+                </offerValidity>
+            </collRights>
+        </usage>
+        <returnStatus>OK</returnStatus>
+    </orderLine>
+</offer>
+</pnbOffers>
diff --git a/tests/library/Class/WebService/Dilicom/fixtures/la_mer.xml b/tests/library/Class/WebService/Dilicom/fixtures/la_mer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6966e7f20e19a9a0a76be4771787a42779670276
--- /dev/null
+++ b/tests/library/Class/WebService/Dilicom/fixtures/la_mer.xml
@@ -0,0 +1,1283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ONIXMessage xmlns="http://ns.editeur.org/onix/3.0/reference" release="3.0">
+<Header>
+  <Sender>
+    <SenderName>immatériel·fr</SenderName>
+  </Sender>
+  <SentDateTime>20130802</SentDateTime>
+  <DefaultLanguageOfText>fre</DefaultLanguageOfText>
+</Header>
+<Product>
+  <RecordReference>immateriel.fr-O192530</RecordReference>
+  <NotificationType>03</NotificationType>
+  <ProductIdentifier>
+    <ProductIDType>01</ProductIDType>
+    <IDValue>O192530</IDValue>
+  </ProductIdentifier>
+  <ProductIdentifier>
+    <ProductIDType>03</ProductIDType>
+    <IDValue>9782752908643</IDValue>
+  </ProductIdentifier>
+  <ProductIdentifier>
+    <ProductIDType>15</ProductIDType>
+    <IDValue>9782752908643</IDValue>
+  </ProductIdentifier>
+  <DescriptiveDetail>
+    <ProductComposition>10</ProductComposition>
+    <ProductForm>EA</ProductForm>
+    <ProductFormDescription>Multi-format incluant Accès streaming, Mobipocket avec Tatouage et ePub avec Tatouage</ProductFormDescription>
+    <ProductPart>
+      <ProductIdentifier>
+        <ProductIDType>01</ProductIDType>
+        <IDValue>RP64120</IDValue>
+      </ProductIdentifier>
+      <ProductIdentifier>
+        <ProductIDType>03</ProductIDType>
+        <IDValue>3019002489208</IDValue>
+      </ProductIdentifier>
+      <ProductForm>EC</ProductForm>
+      <ProductFormDescription>Accès streaming : format vous permettant d'accéder en &lt;em&gt;streaming&lt;/em&gt; aux ouvrages via notre liseuse web. Pour accéder à ce format, vous devez impérativement disposer d'une connexion à l'Internet et d'une largeur d'écran supérieure à 800 pixels. Actuellement compatible avec Firefox 3 ou supérieur, Safari 4 et Internet Explorer 7 ou supérieur.
+</ProductFormDescription>
+      <ProductContentType>10</ProductContentType>
+      <NumberOfCopies>1</NumberOfCopies>
+    </ProductPart>
+    <ProductPart>
+      <ProductIdentifier>
+        <ProductIDType>01</ProductIDType>
+        <IDValue>RP64128</IDValue>
+      </ProductIdentifier>
+      <ProductIdentifier>
+        <ProductIDType>03</ProductIDType>
+        <IDValue>3019002490006</IDValue>
+      </ProductIdentifier>
+      <ProductForm>ED</ProductForm>
+      <ProductFormDetail>E127</ProductFormDetail>
+      <ProductFormDescription>Mobipocket avec Tatouage</ProductFormDescription>
+      <ProductContentType>10</ProductContentType>
+      <NumberOfCopies>1</NumberOfCopies>
+    </ProductPart>
+    <ProductPart>
+      <ProductIdentifier>
+        <ProductIDType>01</ProductIDType>
+        <IDValue>RP64127</IDValue>
+      </ProductIdentifier>
+      <ProductIdentifier>
+        <ProductIDType>03</ProductIDType>
+        <IDValue>3019002489901</IDValue>
+      </ProductIdentifier>
+      <ProductForm>ED</ProductForm>
+      <ProductFormDetail>E101</ProductFormDetail>
+      <ProductFormDescription>ePub avec Tatouage</ProductFormDescription>
+      <ProductContentType>10</ProductContentType>
+      <NumberOfCopies>1</NumberOfCopies>
+    </ProductPart>
+    <Collection>
+      <CollectionType>10</CollectionType>
+      <TitleDetail>
+        <TitleType>01</TitleType>
+        <TitleElement>
+          <TitleElementLevel>02</TitleElementLevel>
+          <TitleText>Littérature étrangère</TitleText>
+        </TitleElement>
+      </TitleDetail>
+    </Collection>
+    <TitleDetail>
+      <TitleType>01</TitleType>
+      <TitleElement>
+        <TitleElementLevel>01</TitleElementLevel>
+        <TitleText>Certaines n'avaient jamais vu la mer</TitleText>
+      </TitleElement>
+    </TitleDetail>
+    <Contributor>
+      <SequenceNumber>1</SequenceNumber>
+      <ContributorRole>A01</ContributorRole>
+      <NameIdentifier>
+        <NameIDType>01</NameIDType>
+        <IDValue>A77052</IDValue>
+      </NameIdentifier>
+      <PersonName>Julie Otsuka</PersonName>
+      <PersonNameInverted>Otsuka, Julie</PersonNameInverted>
+      <NamesBeforeKey>Julie</NamesBeforeKey>
+      <KeyNames>Otsuka</KeyNames>
+      <BiographicalNote>&lt;p&gt;Julie Otsuka est n&amp;eacute;e en 1962 en Californie. Dipl&amp;ocirc;m&amp;eacute;e en art, elle abandonne une carri&amp;egrave;re de peintre (elle a &amp;eacute;tudi&amp;eacute; cette discipline &amp;agrave; l'universit&amp;eacute; de Yale) pour l'&amp;eacute;criture. Elle publie son premier roman en 2002, &lt;em&gt;Quand l'empereur &amp;eacute;tait un dieu &lt;/em&gt;(Ph&amp;eacute;bus, 2004 ; 10/18, 2008) largement inspir&amp;eacute; de la vie de ses grands-parents. Son deuxi&amp;egrave;me roman, &lt;em&gt;Certaines n'avaient jamais vu la mer &lt;/em&gt;(Ph&amp;eacute;bus, 2012) a &amp;eacute;t&amp;eacute; consid&amp;eacute;r&amp;eacute; aux &amp;Eacute;tats-Unis, d&amp;egrave;s sa sortie, comme un chef-d'oeuvre. Julie Otsuka vit &amp;agrave; New York.&lt;/p&gt;</BiographicalNote>
+      <Website>
+        <WebsiteLink>http://www.julieotsuka.com/</WebsiteLink>
+      </Website>
+    </Contributor>
+    <EditionNumber>1</EditionNumber>
+    <Language>
+      <LanguageRole>01</LanguageRole>
+      <LanguageCode>fre</LanguageCode>
+    </Language>
+    <Extent>
+      <ExtentType>00</ExtentType>
+      <ExtentValue>144</ExtentValue>
+      <ExtentUnit>03</ExtentUnit>
+    </Extent>
+    <Subject>
+      <SubjectSchemeIdentifier>10</SubjectSchemeIdentifier>
+      <SubjectCode>FIC014000</SubjectCode>
+      <SubjectHeadingText>FICTION, Historical</SubjectHeadingText>
+    </Subject>
+    <Subject>
+      <SubjectSchemeIdentifier>10</SubjectSchemeIdentifier>
+      <SubjectCode>FIC044000</SubjectCode>
+      <SubjectHeadingText>FICTION, Contemporary Women</SubjectHeadingText>
+    </Subject> 
+   <Subject>
+      <SubjectSchemeIdentifier>29</SubjectSchemeIdentifier>
+      <SubjectCode>2312</SubjectCode>
+      <SubjectHeadingText>Romans contemporains</SubjectHeadingText>
+    </Subject>
+    <Subject>
+      <SubjectSchemeIdentifier>20</SubjectSchemeIdentifier>
+      <SubjectHeadingText>destin de femmes, États-Unis d'Amérique, Asie, Oubli, Amérique du Nord, Guerre, Prix Femina étranger 2012, Exil, Amérique, Japon, mariage forcé</SubjectHeadingText>
+    </Subject>
+  </DescriptiveDetail>
+  <CollateralDetail>
+    <TextContent>
+      <TextType>03</TextType>
+      <ContentAudience>00</ContentAudience>
+      <Text>&lt;p&gt;Japon, 1919. Un bateau quitte l’Empire du Levant avec à son bord plusieurs dizaines de jeunes femmes promises à des Japonais travaillant aux États-Unis, toutes mariées par procuration. À la façon d’un chœur antique, leurs voix s'élèvent et racontent leurs misérables vies d’exilées... leur nuit de noces, souvent brutale, leurs rudes journées de travail dans les champs, leurs combats pour apprivoiser une langue inconnue, l’humiliation des Blancs, le rejet par leur progéniture de leur patrimoine et de leur histoire... Une véritable clameur jusqu’au silence de la guerre. Et l'oubli.&lt;/p&gt;
+&lt;p&gt;
+  &lt;strong&gt;Prix Femina étranger 2012&lt;/strong&gt;
+&lt;/p&gt;</Text>
+    </TextContent>
+    <TextContent>
+      <TextType>02</TextType>
+      <ContentAudience>00</ContentAudience>
+      <Text>Japon, 1919. Un bateau quitte l’Empire du Levant avec à son bord plusieurs dizaines de jeunes femmes promises à des Japonais travaillant aux États-Unis, toutes mariées par procuration. À la façon d’un chœur antique, leurs voix s'élèvent et racontent leurs misérables vies d’exilées... leur nuit de noces, souvent brutale, ...</Text>
+    </TextContent>
+    <SupportingResource>
+      <ResourceContentType>01</ResourceContentType>
+      <ContentAudience>00</ContentAudience>
+      <ResourceMode>03</ResourceMode>
+      <ResourceVersion>
+        <ResourceForm>02</ResourceForm>
+        <ResourceLink>http://images.immateriel.fr/covers/9782752906700.png</ResourceLink>
+        <ContentDate>
+          <ContentDateRole>17</ContentDateRole>
+          <DateFormat>00</DateFormat>
+          <Date>20121105</Date>
+        </ContentDate>
+      </ResourceVersion>
+    </SupportingResource>
+    <SupportingResource>
+      <ResourceContentType>16</ResourceContentType>
+      <ContentAudience>00</ContentAudience>
+      <ResourceMode>06</ResourceMode>
+      <ResourceVersion>
+        <ResourceForm>01</ResourceForm>
+        <ResourceLink>http://livre.immateriel.fr/9782752906700?no_sign_in=true&amp;no_buy_link=true</ResourceLink>
+      </ResourceVersion>
+    </SupportingResource>
+    <SupportingResource>
+      <ResourceContentType>15</ResourceContentType>
+      <ContentAudience>00</ContentAudience>
+      <ResourceMode>04</ResourceMode>
+      <ResourceVersion>
+        <ResourceForm>02</ResourceForm>
+        <ResourceVersionFeature>
+          <ResourceVersionFeatureType>01</ResourceVersionFeatureType>
+          <FeatureValue>E101</FeatureValue>
+        </ResourceVersionFeature>
+        <ResourceLink>http://telechargement.immateriel.fr/fr/web_service/preview/12279/epub-preview.epub</ResourceLink>
+        <ContentDate>
+          <ContentDateRole>17</ContentDateRole>
+          <DateFormat>00</DateFormat>
+          <Date>20121016</Date>
+        </ContentDate>
+      </ResourceVersion>
+    </SupportingResource>
+    <SupportingResource>
+      <ResourceContentType>09</ResourceContentType>
+      <ContentAudience>00</ContentAudience>
+      <ResourceMode>03</ResourceMode>
+      <ResourceVersion>
+        <ResourceForm>02</ResourceForm>
+        <ResourceLink>http://images.immateriel.fr/publishers/455.png</ResourceLink>
+      </ResourceVersion>
+    </SupportingResource>
+  </CollateralDetail>
+  <PublishingDetail>
+    <Imprint>
+      <ImprintIdentifier>
+        <ImprintIDType>01</ImprintIDType>
+        <IDValue>P455</IDValue>
+      </ImprintIdentifier>
+      <ImprintIdentifier>
+        <ImprintIDType>06</ImprintIDType>
+        <IDValue>3052859400019</IDValue>
+      </ImprintIdentifier>
+      <ImprintName>Phébus</ImprintName>
+    </Imprint>
+    <Publisher>
+      <PublishingRole>01</PublishingRole>
+      <PublisherIdentifier>
+        <PublisherIDType>01</PublisherIDType>
+        <IDValue>P455</IDValue>
+      </PublisherIdentifier>
+      <PublisherIdentifier>
+        <PublisherIDType>06</PublisherIDType>
+        <IDValue>3052859400019</IDValue>
+      </PublisherIdentifier>
+      <PublisherName>Phébus</PublisherName>
+      <Website>
+        <WebsiteLink>http://www.libella.fr/phebus/accueil/</WebsiteLink>
+      </Website>
+    </Publisher>
+    <PublishingDate>
+      <PublishingDateRole>01</PublishingDateRole>
+      <DateFormat>00</DateFormat>
+      <Date>20120906</Date>
+    </PublishingDate>
+    <PublishingDate>
+      <PublishingDateRole>09</PublishingDateRole>
+      <DateFormat>00</DateFormat>
+      <Date>20130907</Date>
+    </PublishingDate>
+    <SalesRights>
+      <SalesRightsType>01</SalesRightsType>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </SalesRights>
+  </PublishingDetail>
+  <RelatedMaterial>
+    <RelatedProduct>
+      <ProductRelationCode>13</ProductRelationCode>
+      <ProductIdentifier>
+        <ProductIDType>03</ProductIDType>
+        <IDValue>9782752906700</IDValue>
+      </ProductIdentifier>
+      <ProductIdentifier>
+        <ProductIDType>15</ProductIDType>
+        <IDValue>9782752906700</IDValue>
+      </ProductIdentifier>
+    </RelatedProduct>
+  </RelatedMaterial>
+  <ProductSupply>
+    <Market>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </Market>
+    <MarketPublishingDetail>
+      <MarketPublishingStatus>04</MarketPublishingStatus>
+      <MarketDate>
+        <MarketDateRole>01</MarketDateRole>
+        <DateFormat>00</DateFormat>
+        <Date>20120906</Date>
+      </MarketDate>
+    </MarketPublishingDetail>
+    <SupplyDetail>
+      <Supplier>
+        <SupplierRole>03</SupplierRole>
+        <SupplierIdentifier>
+          <SupplierIDType>02</SupplierIDType>
+          <IDValue>D1</IDValue>
+        </SupplierIdentifier>
+        <SupplierIdentifier>
+          <SupplierIDType>06</SupplierIDType>
+          <IDValue>3012410001000</IDValue>
+        </SupplierIdentifier>
+        <SupplierName>immatériel·fr</SupplierName>
+      </Supplier>
+      <ProductAvailability>20</ProductAvailability>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>10.99</PriceAmount>
+        <CurrencyCode>EUR</CurrencyCode>
+        <Territory>
+          <RegionsIncluded>WORLD</RegionsIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>AUD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>AU KI NR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>30,80</PriceAmount>
+        <CurrencyCode>BRL</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>BR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>CAD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CA</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>14.0</PriceAmount>
+        <CurrencyCode>CHF</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CH LI</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>DKK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>DK GL</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>USD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>EC FJ FM HT MH PW SV UM US WS</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>9.99</PriceAmount>
+        <CurrencyCode>GBP</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>GB</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>1400.0</PriceAmount>
+        <CurrencyCode>JPY</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>JP</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>16130</PriceAmount>
+        <CurrencyCode>KRW</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>KR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>199.0</PriceAmount>
+        <CurrencyCode>MXN</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>MX</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>NOK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NO</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>NZD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NZ</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>99.0</PriceAmount>
+        <CurrencyCode>SEK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SE</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>18.99</PriceAmount>
+        <CurrencyCode>SGD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SG</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>126</PriceAmount>
+        <CurrencyCode>ZAR</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>ZA</CountriesIncluded>
+        </Territory>
+      </Price>
+    </SupplyDetail>
+  </ProductSupply>
+  <ProductSupply>
+    <Market>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </Market>
+    <MarketPublishingDetail>
+      <MarketPublishingStatus>04</MarketPublishingStatus>
+      <MarketDate>
+        <MarketDateRole>01</MarketDateRole>
+        <DateFormat>00</DateFormat>
+        <Date>20120906</Date>
+      </MarketDate>
+    </MarketPublishingDetail>
+    <SupplyDetail>
+      <Supplier>
+        <SupplierRole>04</SupplierRole>
+        <SupplierIdentifier>
+          <SupplierIDType>02</SupplierIDType>
+          <IDValue>D27</IDValue>
+        </SupplierIdentifier>
+        <SupplierName>Samsung Readers Hub</SupplierName>
+      </Supplier>
+      <ProductAvailability>20</ProductAvailability>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>10.99</PriceAmount>
+        <CurrencyCode>EUR</CurrencyCode>
+        <Territory>
+          <RegionsIncluded>WORLD</RegionsIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>AUD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>AU KI NR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>30,80</PriceAmount>
+        <CurrencyCode>BRL</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>BR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>CAD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CA</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>14.0</PriceAmount>
+        <CurrencyCode>CHF</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CH LI</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>DKK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>DK GL</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>USD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>EC FJ FM HT MH PW SV UM US WS</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>9.99</PriceAmount>
+        <CurrencyCode>GBP</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>GB</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>1400.0</PriceAmount>
+        <CurrencyCode>JPY</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>JP</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>16130</PriceAmount>
+        <CurrencyCode>KRW</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>KR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>199.0</PriceAmount>
+        <CurrencyCode>MXN</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>MX</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>NOK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NO</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>NZD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NZ</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>99.0</PriceAmount>
+        <CurrencyCode>SEK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SE</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>18.99</PriceAmount>
+        <CurrencyCode>SGD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SG</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>126</PriceAmount>
+        <CurrencyCode>ZAR</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>ZA</CountriesIncluded>
+        </Territory>
+      </Price>
+    </SupplyDetail>
+  </ProductSupply>
+  <ProductSupply>
+    <Market>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </Market>
+    <MarketPublishingDetail>
+      <MarketPublishingStatus>04</MarketPublishingStatus>
+      <MarketDate>
+        <MarketDateRole>01</MarketDateRole>
+        <DateFormat>00</DateFormat>
+        <Date>20120906</Date>
+      </MarketDate>
+    </MarketPublishingDetail>
+    <SupplyDetail>
+      <Supplier>
+        <SupplierRole>04</SupplierRole>
+        <SupplierIdentifier>
+          <SupplierIDType>02</SupplierIDType>
+          <IDValue>D11</IDValue>
+        </SupplierIdentifier>
+        <SupplierName>Apple iBookstore</SupplierName>
+      </Supplier>
+      <ProductAvailability>20</ProductAvailability>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>10.99</PriceAmount>
+        <CurrencyCode>EUR</CurrencyCode>
+        <Territory>
+          <RegionsIncluded>WORLD</RegionsIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>AUD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>AU KI NR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>30,80</PriceAmount>
+        <CurrencyCode>BRL</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>BR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>CAD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CA</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>14.0</PriceAmount>
+        <CurrencyCode>CHF</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CH LI</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>DKK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>DK GL</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>USD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>EC FJ FM HT MH PW SV UM US WS</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>9.99</PriceAmount>
+        <CurrencyCode>GBP</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>GB</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>1400.0</PriceAmount>
+        <CurrencyCode>JPY</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>JP</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>16130</PriceAmount>
+        <CurrencyCode>KRW</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>KR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>199.0</PriceAmount>
+        <CurrencyCode>MXN</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>MX</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>NOK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NO</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>NZD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NZ</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>99.0</PriceAmount>
+        <CurrencyCode>SEK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SE</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>18.99</PriceAmount>
+        <CurrencyCode>SGD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SG</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>126</PriceAmount>
+        <CurrencyCode>ZAR</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>ZA</CountriesIncluded>
+        </Territory>
+      </Price>
+    </SupplyDetail>
+  </ProductSupply>
+  <ProductSupply>
+    <Market>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </Market>
+    <MarketPublishingDetail>
+      <MarketPublishingStatus>04</MarketPublishingStatus>
+      <MarketDate>
+        <MarketDateRole>01</MarketDateRole>
+        <DateFormat>00</DateFormat>
+        <Date>20120906</Date>
+      </MarketDate>
+    </MarketPublishingDetail>
+    <SupplyDetail>
+      <Supplier>
+        <SupplierRole>04</SupplierRole>
+        <SupplierIdentifier>
+          <SupplierIDType>02</SupplierIDType>
+          <IDValue>D22</IDValue>
+        </SupplierIdentifier>
+        <SupplierName>Amazon Kindle</SupplierName>
+      </Supplier>
+      <ProductAvailability>20</ProductAvailability>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>10.99</PriceAmount>
+        <CurrencyCode>EUR</CurrencyCode>
+        <Territory>
+          <RegionsIncluded>WORLD</RegionsIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>AUD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>AU KI NR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>30,80</PriceAmount>
+        <CurrencyCode>BRL</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>BR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>CAD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CA</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>14.0</PriceAmount>
+        <CurrencyCode>CHF</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CH LI</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>DKK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>DK GL</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>USD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>EC FJ FM HT MH PW SV UM US WS</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>9.99</PriceAmount>
+        <CurrencyCode>GBP</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>GB</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>1400.0</PriceAmount>
+        <CurrencyCode>JPY</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>JP</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>16130</PriceAmount>
+        <CurrencyCode>KRW</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>KR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>199.0</PriceAmount>
+        <CurrencyCode>MXN</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>MX</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>NOK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NO</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>NZD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NZ</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>99.0</PriceAmount>
+        <CurrencyCode>SEK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SE</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>18.99</PriceAmount>
+        <CurrencyCode>SGD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SG</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>126</PriceAmount>
+        <CurrencyCode>ZAR</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>ZA</CountriesIncluded>
+        </Territory>
+      </Price>
+    </SupplyDetail>
+  </ProductSupply>
+  <ProductSupply>
+    <Market>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </Market>
+    <MarketPublishingDetail>
+      <MarketPublishingStatus>04</MarketPublishingStatus>
+      <MarketDate>
+        <MarketDateRole>01</MarketDateRole>
+        <DateFormat>00</DateFormat>
+        <Date>20120906</Date>
+      </MarketDate>
+    </MarketPublishingDetail>
+    <SupplyDetail>
+      <Supplier>
+        <SupplierRole>04</SupplierRole>
+        <SupplierIdentifier>
+          <SupplierIDType>02</SupplierIDType>
+          <IDValue>D28</IDValue>
+        </SupplierIdentifier>
+        <SupplierName>Orange Read and Go</SupplierName>
+      </Supplier>
+      <ProductAvailability>20</ProductAvailability>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>10.99</PriceAmount>
+        <CurrencyCode>EUR</CurrencyCode>
+        <Territory>
+          <RegionsIncluded>WORLD</RegionsIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>AUD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>AU KI NR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>30,80</PriceAmount>
+        <CurrencyCode>BRL</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>BR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>CAD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CA</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>14.0</PriceAmount>
+        <CurrencyCode>CHF</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CH LI</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>DKK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>DK GL</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>USD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>EC FJ FM HT MH PW SV UM US WS</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>9.99</PriceAmount>
+        <CurrencyCode>GBP</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>GB</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>1400.0</PriceAmount>
+        <CurrencyCode>JPY</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>JP</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>16130</PriceAmount>
+        <CurrencyCode>KRW</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>KR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>199.0</PriceAmount>
+        <CurrencyCode>MXN</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>MX</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>NOK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NO</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>NZD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NZ</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>99.0</PriceAmount>
+        <CurrencyCode>SEK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SE</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>18.99</PriceAmount>
+        <CurrencyCode>SGD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SG</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>126</PriceAmount>
+        <CurrencyCode>ZAR</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>ZA</CountriesIncluded>
+        </Territory>
+      </Price>
+    </SupplyDetail>
+  </ProductSupply>
+  <ProductSupply>
+    <Market>
+      <Territory>
+        <RegionsIncluded>WORLD</RegionsIncluded>
+      </Territory>
+    </Market>
+    <MarketPublishingDetail>
+      <MarketPublishingStatus>04</MarketPublishingStatus>
+      <MarketDate>
+        <MarketDateRole>01</MarketDateRole>
+        <DateFormat>00</DateFormat>
+        <Date>20120906</Date>
+      </MarketDate>
+    </MarketPublishingDetail>
+    <SupplyDetail>
+      <Supplier>
+        <SupplierRole>04</SupplierRole>
+        <SupplierIdentifier>
+          <SupplierIDType>02</SupplierIDType>
+          <IDValue>D25</IDValue>
+        </SupplierIdentifier>
+        <SupplierName>Kobo</SupplierName>
+      </Supplier>
+      <ProductAvailability>20</ProductAvailability>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>10.99</PriceAmount>
+        <CurrencyCode>EUR</CurrencyCode>
+        <Territory>
+          <RegionsIncluded>WORLD</RegionsIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>AUD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>AU KI NR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>30,80</PriceAmount>
+        <CurrencyCode>BRL</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>BR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>CAD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CA</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>14.0</PriceAmount>
+        <CurrencyCode>CHF</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>CH LI</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>DKK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>DK GL</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>03</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>USD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>EC FJ FM HT MH PW SV UM US WS</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>9.99</PriceAmount>
+        <CurrencyCode>GBP</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>GB</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>1400.0</PriceAmount>
+        <CurrencyCode>JPY</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>JP</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>16130</PriceAmount>
+        <CurrencyCode>KRW</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>KR</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>199.0</PriceAmount>
+        <CurrencyCode>MXN</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>MX</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>85.0</PriceAmount>
+        <CurrencyCode>NOK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NO</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>15.99</PriceAmount>
+        <CurrencyCode>NZD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>NZ</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>99.0</PriceAmount>
+        <CurrencyCode>SEK</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SE</CountriesIncluded>
+        </Territory>
+      </Price>
+      <Price>
+        <PriceType>04</PriceType>
+        <PriceQualifier>05</PriceQualifier>
+        <PriceAmount>18.99</PriceAmount>
+        <CurrencyCode>SGD</CurrencyCode>
+        <Territory>
+          <CountriesIncluded>SG</CountriesIncluded>
+        </Territory>
+      </Price>
+    </SupplyDetail>
+  </ProductSupply>
+</Product>
+</ONIXMessage>
+
+
+<!--
+    Local Variables:
+    nxml-section-element-name-regexp:"Product\\|ProductPart\\|Price"
+    nxml-heading-element-name-regexp:"TitleText\\|ProductFormDescription"
+    End:
+-->
diff --git a/tests/library/Class/WebService/FnacTest.php b/tests/library/Class/WebService/FnacTest.php
index 0851d6b2943ae224a996d16c27df87690786247c..0ad89d169f8d5af029faabcf8f682803503033b9 100644
--- a/tests/library/Class/WebService/FnacTest.php
+++ b/tests/library/Class/WebService/FnacTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
@@ -47,7 +47,7 @@ class FnactHarryPotterTest extends FnacTestCase {
 
 		$this->_http_client
 			->whenCalled('open_url')
-			->with('http://www3.fnac.com/advanced/book.do?isbn=2070572676')
+			->with('http://recherche.fnac.com/r/2070572676')
 			->answers(file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/fnac_harry_potter_front.html'))
 
 			->whenCalled('open_url')
@@ -74,11 +74,11 @@ class FnacMilleniumTest extends FnacTestCase {
 
 		$this->_http_client
 			->whenCalled('open_url')
-			->with('http://www3.fnac.com/advanced/book.do?isbn=9782742765010')
+			->with('http://recherche.fnac.com/r/9782742765010')
 			->answers(file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/fnac_millenium_front.html'))
 
 			->whenCalled('open_url')
-			->with('http://livre.fnac.com/a1891354/Millenium-T2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson')
+			->with('http://livre.fnac.com/a1891354/Millenium-Tome-2-La-fille-qui-revait-d-un-bidon-d-essence-et-d-une-allumette-Stieg-Larsson?NUMERICAL=Y#FORMAT=ePub')
 			->answers(file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/fnac_millenium_suite.html'))
 			->beStrict();
 	}
@@ -87,7 +87,7 @@ class FnacMilleniumTest extends FnacTestCase {
 	/** @test */
 	public function getResumeShouldFetchItFromPotterSuite() {
 		$resume = $this->_fnac->getResume('978-2-7427-6501-0');
-		$this->assertEquals('Lisbeth et Mickael sont de retour dans un roman aussi trépidant que le premier. Nos deux anti-héros sont à nouveau plongés dans une aventure passionnante. Un livre époustoufflant, plein d\'humour et d\'effroi. Vivement le tome 3. Anais, libraire à la Fnac Clermont Q',	
+		$this->assertEquals('Une enquête sur un réseau de prostitution dévoile des secrets d\'espionnage et un lourd passé familial.',
 												$resume);
 	}
 }
@@ -101,7 +101,7 @@ class FnactNoLinkFoundTest extends FnacTestCase {
 
 		$this->_http_client
 			->whenCalled('open_url')
-			->with('http://www3.fnac.com/advanced/book.do?isbn=2070572676')
+			->with('http://recherche.fnac.com/r/2070572676')
 			->answers('bla bla bla')
 			->beStrict();
 	}
diff --git a/tests/library/Class/WebService/NumilogTest.php b/tests/library/Class/WebService/NumilogTest.php
index a14dd5eaa6095422ae6dc2041bfca132924db90f..97c76f5b45c5d3f37040863f146be3355a8222d7 100644
--- a/tests/library/Class/WebService/NumilogTest.php
+++ b/tests/library/Class/WebService/NumilogTest.php
@@ -205,4 +205,4 @@ class NumilogTest extends Storm_Test_ModelTestCase{
 	public function sectionsShouldBeImportedInThirdAlbum() {
 		$this->assertEquals('18;19',$this->_third_album->getSections());
 	}
-}
\ No newline at end of file
+}
diff --git a/tests/library/Class/WebService/OneDTouchTest.php b/tests/library/Class/WebService/OneDTouchTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..7ea0928502a85732dcc18cb907032b37a206e92e
--- /dev/null
+++ b/tests/library/Class/WebService/OneDTouchTest.php
@@ -0,0 +1,222 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+include_once('tests/fixtures/RessourcesNumeriquesFixtures.php');
+
+class OneDTouchTest extends Storm_Test_ModelTestCase {
+  public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+    parent::tearDown();
+  }
+
+	public function setUp() {
+		parent::setUp();
+
+		Storm_Model_Loader::defaultToVolatile();
+
+    RessourcesNumeriquesFixtures::activate1Dtouch();
+
+		$catalogue_xml = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/onedtouch_oai.xml');
+
+		$catalogue_xml_end = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/onedtouch_oai_end.xml');
+
+		$this->_http_client = $this->mock();
+		$this->_http_client
+			->whenCalled('open_url')
+			->with('http://dev.1dtouch.com/oai?verb=ListRecords&metadataPrefix=oai1dtouch_dc')
+			->answers($catalogue_xml)
+
+			->whenCalled('open_url')
+			->with('http://dev.1dtouch.com/oai?verb=ListRecords&resumptionToken=oai1dtouch_dc.f%282015-02-09T08%3A46%3A09Z%29.u%282015-02-09T08%3A47%3A27Z%29%3A133')
+			->answers($catalogue_xml_end)
+
+			->whenCalled('open_url')
+			->with('https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181474.jpg')
+			->answers("image")
+			->whenCalled('open_url')
+			->with('https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181993.jpg')
+			->answers("image")
+			->whenCalled('open_url')
+			->with('https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159198724.jpg')
+			->answers("image")
+			->beStrict();
+
+		$this->_service = new Class_WebService_BibNumerique_OneDTouch();
+		$this->_service->setTimeSource(new TimeSourceForTest('2015-01-18 10:00:00'));
+		Class_WebService_BibNumerique_OneDTouch::setDefaultHttpClient($this->_http_client);
+		$this->_service->harvest();
+    Class_Album::clearCache();
+
+	}
+
+	/** @test */
+	public function nameShouldBeOneDTouch() {
+		$this->assertEquals('1D touch', $this->_service->getName());
+	}
+
+	/** @test */
+	public function shouldBeEnabled() {
+		$this->assertTrue($this->_service->isEnabled());
+	}
+
+	/** @test */
+	public function shouldHaveSaved4Albums() {
+		$this->assertEquals(4, count(Class_Album::findAll()));
+	}
+
+  public function getAlbums() {
+    return [
+      [
+        124,
+        'titre',
+        'WOLFEP0241',
+      ],
+      [
+        124,
+        'editeur',
+        'Wolf Music Recordings',
+      ],
+      [
+        124,
+        'authors_names',
+        ['Ishmael'],
+      ],
+      [
+        124,
+        'matiere',
+        '1;2;3'
+      ],
+      [
+        124,
+        'external_uri',
+        'http://music.1dtouch.com/albums/124',
+      ],
+    ];
+  }
+
+  /**
+   * @test
+   * @dataProvider getAlbums
+   */
+  public function albumFieldsShouldBeAsExpected($id_origine, $field, $value) {
+    $album = Class_Album::findFirstBy(['id_origine' => $id_origine]);
+    $this->assertEquals($value, $album->callGetterByAttributeName($field));
+  }
+
+
+  /** @test */
+  public function albumTracksFieldsShouldBeAsExpected() {
+    $album = Class_Album::findFirstBy(['id_origine' => '124']);
+    $ressources = $album->getRessources();
+    $this->assertEquals('PT0H7M20S', $ressources[0]->getDuration());
+    $this->assertEquals('Dejong', $ressources[0]->getTitre());
+    $this->assertEquals('https://commondatastorage.googleapis.com/music-staging/cargo/gb2sa1200088_320k.mp3', $ressources[0]->getUrl());
+    $this->assertEquals(['Ishmael'], $ressources[0]->getAuthorsNames());
+  }
+
+
+	/** @test */
+	public function harvestLogShouldContainsExpectedDate() {
+		$this->assertEquals('2015-01-18', Class_WebService_HarvestLog::find(1)->getEndDate());
+	}
+}
+
+
+
+
+class OneDTouchIncTest extends Storm_Test_ModelTestCase {
+  public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+    parent::tearDown();
+  }
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+    RessourcesNumeriquesFixtures::activate1Dtouch();
+		$catalogue_xml = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/onedtouch_oai.xml');
+
+		$catalogue_xml_end = file_get_contents(realpath(dirname(__FILE__)). '/../../../fixtures/onedtouch_oai_end.xml');
+
+
+		$this->_http_client = $this->mock();
+		$this->_http_client
+			->whenCalled('open_url')
+			->with('http://dev.1dtouch.com/oai?verb=ListRecords&metadataPrefix=oai1dtouch_dc&from=2015-02-01')
+			->answers($catalogue_xml)
+
+			->whenCalled('open_url')
+			->with('http://dev.1dtouch.com/oai?verb=ListRecords&resumptionToken=oai1dtouch_dc.f%282015-02-09T08%3A46%3A09Z%29.u%282015-02-09T08%3A47%3A27Z%29%3A133')
+			->answers($catalogue_xml_end)
+
+			->whenCalled('open_url')
+			->with('https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181474.jpg')
+			->answers("image")
+			->whenCalled('open_url')
+			->with('https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159181993.jpg')
+			->answers("image")
+			->whenCalled('open_url')
+			->with('https://commondatastorage.googleapis.com/music-staging/cargo/medium_3610159198724.jpg')
+			->answers("image")
+
+			->beStrict();
+
+		$this->fixture('Class_WebService_HarvestLog',
+									 ['id' => 1,
+										'end_date' => '2015-02-01',
+										'type_doc' => Class_TypeDoc::ONEDTOUCH]);
+
+		$this->fixture('Class_Album',
+									 ['id' => 1,
+										'type_doc_id' => Class_TypeDoc::ONEDTOUCH,
+										'titre' => '1Dtouch res',
+										'id_origine' => 128,
+										'url_origine' => 'http://dev.1dtouch.com/oai']);
+
+
+		$this->_service = new Class_WebService_BibNumerique_OneDTouch();
+		$this->_service->setTimeSource(new TimeSourceForTest('2015-03-18 10:00:00'));
+		Class_WebService_BibNumerique_OneDTouch::setDefaultHttpClient($this->_http_client);
+		$this->_service->harvest();
+    Class_Album::clearCache();
+	}
+
+
+	/** @test */
+	public function shouldHave4Albums() {
+		$this->assertEquals(4, count(Class_Album::findAll()));
+	}
+
+
+	/** @test */
+	public function harvestLogShouldContainsExpectedDate() {
+		$this->assertNotNull(Class_WebService_HarvestLog::findFirstBy(['type_doc' => Class_TypeDoc::ONEDTOUCH,
+																																	 'end_date' => '2015-03-18']));
+	}
+
+
+	/** @test */
+	public function albumShouldHaveBeenUpdated() {
+		$album = Class_Album::find(3);
+		xdebug_break();
+		$this->assertEquals(1, Class_Album::findFirstBy(['titre' => 'WOLFEP026'])->getId());
+	}
+}
+?>
diff --git a/tests/library/Class/WebService/Orphea/CatalogueParserTest.php b/tests/library/Class/WebService/Orphea/CatalogueParserTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..86867278128a78379617f634f177a5ca30f42c37
--- /dev/null
+++ b/tests/library/Class/WebService/Orphea/CatalogueParserTest.php
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+include_once('tests/fixtures/HarvestOrpheaFixtures.php');
+
+class CatalogueParserOrpheaTest extends Storm_Test_ModelTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->_parser = new Class_WebService_BibNumerique_Orphea_CatalogueParser();
+	}
+
+
+	/** @test */
+	public function parserShouldReturnTwoIds() {
+		$this->assertCount(2, $this->_parser->parseXML(HarvestOrpheaFixtures::twoRecordsXML())->getRecordsIds());
+	}
+}
+
+
+
+class CatalogueParserMetaDatasTest extends Storm_Test_ModelTestCase {
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_parser = new Class_WebService_BibNumerique_Orphea_MetaDatasParser();
+		$this->_ressource_num = $this->_parser->parseXML(HarvestOrpheaFixtures::getMetadatasPyramidale());
+	}
+
+
+	/** @test */
+	public function ressourceNumShouldNotBeNull() {
+		$this->assertNotNull($this->_ressource_num);
+	}
+}
+
+
+
+class CatalogueParserAssetsUrlTest extends Storm_Test_ModelTestCase {
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_parser = new Class_WebService_BibNumerique_Orphea_AssetsParser();
+		$this->_media = $this->_parser->parseXML(HarvestOrpheaFixtures::getAssetsUrlOrnithogale());
+	}
+
+
+  /** @test */
+  public function albumRessourceOrnithogaleTitleShouldBeOrnithogale() {
+    $this->assertEquals('Ornithogale', $this->_media->getTitre());
+  }
+
+
+  /** @test */
+  public function albumRessourceOrnithogaleUrlShouldBeAsExpected() {
+    $this->assertEquals('http://phototheque.cherbourg-octeville.fr//vignettes/00000000025/2gm_chbg428.bro', $this->_media->getUrl());
+  }
+}
+
+?>
diff --git a/tests/library/Class/WebService/SIGB/CarthameTest.php b/tests/library/Class/WebService/SIGB/CarthameTest.php
index 3f2dc89cac4e4e6eb66a537af038fd2dfe7ac6ed..c41fc3982fb56344754acb4a92bec23349ce4ecd 100644
--- a/tests/library/Class/WebService/SIGB/CarthameTest.php
+++ b/tests/library/Class/WebService/SIGB/CarthameTest.php
@@ -20,87 +20,109 @@
  */
 
 abstract class CarthameTestCase extends Storm_Test_ModelTestCase {
+	protected $mock_web_client;
+	protected $service;
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->mock_web_client = $this->mock()->beStrict();
+	}
+
+
 	public function tearDown() {
 		Class_WebService_SIGB_Carthame::reset();
+		Storm_Model_Loader::defaultToDb();
 		parent::tearDown();
 	}
-	public function setUp() {
-		parent::setUp();
+
+
+	protected function _serviceFor($params) {
+		return Class_WebService_SIGB_Carthame::getService($params);
+	}
+
+
+	protected function _carthameService() {
+		return $this->_serviceFor(['url_serveur' => 'http://server.domain/webservices/index.php',
+															 'key' => 'bibkey']);
+	}
+
+
+	protected function _karviService() {
+		return $this->_serviceFor(['url_serveur' => 'http://server.domain/webservices/index.php',
+															 'key' => 'bibkey',
+															 'sigb_field_name' => 'karvi']);
 	}
 }
 
 
+
 class CarthameGetServiceTest extends CarthameTestCase {
-	protected $service;
-	public function setUp() {
-		parent::setUp();
-		$this->service = Class_WebService_SIGB_Carthame::getService(['url_serveur' => 'http://ifr.ro/webservices/index.php', 'key' => 'bibkey', 'sigb_field_name' => 'karvi']);
+	/** @test */
+	public function shouldCreateCarthameServiceInstance() {
+		$this->assertInstanceOf('Class_WebService_SIGB_Carthame_Service',
+														$this->_carthameService());
 	}
 
 
 	/** @test */
-	public function getServiceShouldCreateAnInstanceOfCarthameService() {
-		$this->assertInstanceOf('Class_WebService_SIGB_Carthame_Service',
-														$this->service);
+	public function serverRootShouldBeProvidedUrl() {
+		$this->assertEquals('http://server.domain/webservices/index.php',
+												$this->_carthameService()->getServerRoot());
 	}
 
+
 	/** @test */
-	public function serverRootShouldBeIfrDotEU() {
-		$this->assertEquals('http://ifr.ro/webservices/index.php', $this->service->getServerRoot());
+	public function withoutSchemeShouldAddHttpScheme() {
+		$service = $this->_serviceFor(['url_serveur' => 'server.domain/webservices/index.php']);
+		$this->assertEquals('http://server.domain/webservices/index.php',
+												$service->getServerRoot());
 	}
 
+
 	/** @test */
-	public function getServiceWithoutSchemeShouldAddHttpScheme() {
-		$this->service = Class_WebService_SIGB_Carthame::getService(['url_serveur' => 'ifr.ro/webservices/index.php']);
-		$this->assertEquals('http://ifr.ro/webservices/index.php', $this->service->getServerRoot());
+	public function withSigbKarviShouldBeKarvi() {
+		$this->assertTrue($this->_karviService()->isKarvi());
 	}
-}
 
-abstract class CarthameOperationTestCase extends CarthameTestCase {
-	protected $mock_web_client;
-	protected $service;
 
-	public function setUp() {
-		parent::setUp();
-		$this->mock_web_client = Storm_Test_ObjectWrapper::on(new Class_WebService_SimpleWebClient())
-																->whenCalled('open_url')
-																->answers('')
-																->getWrapper();
+	/** @test */
+	public function withSigbKarviShouldNotBeCarthame() {
+		$this->assertFalse($this->_karviService()->isCarthame());
+	}
+
+
+	/** @test */
+	public function withSigbKtmShouldNotBeKarvi() {
+		$this->assertFalse($this->_carthameService()->isKarvi());
+	}
+
 
-		$this->service = Class_WebService_SIGB_Carthame::getService(['url_serveur' => 'http://ifr.ro/webservices/index.php', 'key' => 'bibkey', 'sigb_field_name' => 'karvi'])
-			->setWebClient($this->mock_web_client);
+	/** @test */
+	public function withSigbKtmShouldBeCarthame() {
+		$this->assertTrue($this->_carthameService()->isCarthame());
 	}
 }
 
 
 
 class CarthameKtmNoticeAlbatorTest extends CarthameTestCase {
-	protected $mock_web_client;
-	protected $service;
-
 	/** @var Class_WebService_SIGB_Notice */
 	protected $albator;
 
 	public function setUp() {
 		parent::setUp();
-		$this->mock_web_client = Storm_Test_ObjectWrapper::on(new Class_WebService_SimpleWebClient())
-																->whenCalled('open_url')
-																->answers('')
-																->getWrapper();
 
 		$this->mock_web_client
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=ktm&version=standalone&idclient=bibkey&action=copyDetails&nn=I86355')
+			->with('http://server.domain/webservices/index.php?sigb=ktm&version=standalone&idclient=bibkey&action=copyDetails&nn=I86355')
 			->answers(CarthameTestFixtures::createAnonymousNoticeXml());
 
-
-
-		$this->service = Class_WebService_SIGB_Carthame::getService(['url_serveur' => 'http://ifr.ro/webservices/index.php', 'key' => 'bibkey'])
-			->setWebClient($this->mock_web_client);
-
+		$this->service = $this->_carthameService()->setWebClient($this->mock_web_client);
 		$this->albator = $this->service->getNotice('I86355');
 	}
 
+
 	/** @test */
 	public function shouldAnswerOneNotice() {
 		$this->assertInstanceOf('Class_WebService_SIGB_Notice', $this->albator);
@@ -115,6 +137,16 @@ class CarthameKtmNoticeAlbatorTest extends CarthameTestCase {
 }
 
 
+
+abstract class CarthameOperationTestCase extends CarthameTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->service = $this->_karviService()->setWebClient($this->mock_web_client);
+	}
+}
+
+
+
 class CarthameKarviNoticeAlbatorTest extends CarthameOperationTestCase {
 	/** @var Class_WebService_SIGB_Notice */
 	protected $albator;
@@ -124,13 +156,14 @@ class CarthameKarviNoticeAlbatorTest extends CarthameOperationTestCase {
 
 		$this->mock_web_client
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=copyDetails&nn=I86355')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=copyDetails&nn=I86355')
 			->answers(CarthameTestFixtures::createAnonymousNoticeXml())
 			->beStrict();
 
 		$this->albator = $this->service->getNotice('I86355');
 	}
 
+
 	/** @test */
 	public function shouldAnswerOneNotice() {
 		$this->assertInstanceOf('Class_WebService_SIGB_Notice', $this->albator);
@@ -146,6 +179,78 @@ class CarthameKarviNoticeAlbatorTest extends CarthameOperationTestCase {
 
 
 
+class CarthameKarviPickupLocationsTest extends CarthameOperationTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->service->setWebClient($this->mock()
+																 ->whenCalled('open_url')
+																 ->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=90100000119049&password=pass')
+																 ->answers('<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <login>
+    <sigb>karvi</sigb>
+    <user>90100000119049</user>
+    <id>L0001910</id>
+    <fullname>testing test</fullname>
+    <error>0</error>
+    <code>0</code>
+  </login>
+</root>
+')
+
+																 ->whenCalled('open_url')
+																 ->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=L0001910&nn=DOC00236387')
+																 ->answers('<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <reservationInfo>
+    <sigb>karvi</sigb>
+    <user>L0001910</user>
+    <nn>DOC00236387</nn>
+    <site id="T-21" coche="1">Tournée 027 (prochain passage 14/03/2015)</site>
+    <site id="1" coche="0">MD68-Colmar</site>
+    <error>0</error>
+    <code>0</code>
+  </reservationInfo>
+</root>')
+
+																 ->beStrict());
+
+		$user = $this->fixture('Class_Users',
+													 ['id' => 34,
+														'login' => '90100000119049',
+														'password' => 'pass']);
+
+		$item = $this->fixture('Class_Exemplaire',
+													 ['id' => 123,
+														'id_origine' => 'DOC00236387']);
+
+		$this->_locations = $this->service->pickupLocationsFor($user, $item);
+
+	}
+
+
+	/** @test */
+	public function shouldBeKarvi() {
+		$this->assertTrue($this->service->isKarvi());
+	}
+
+
+	/** @test */
+	public function shouldProvidePickupLocations() {
+		$this->assertTrue($this->service->providesPickupLocations());
+	}
+
+
+	/** @test */
+	public function shouldProvide2PickupLocations() {
+		$this->assertEquals(['T-21' => 'Tournée 027 (prochain passage 14/03/2015)',
+												 '1' => 'MD68-Colmar'],
+												$this->_locations);
+	}
+}
+
+
+
 class CarthameAnonymousNoticeTest extends CarthameOperationTestCase {
 	/** @var Class_WebService_SIGB_Notice */
 	protected $anonymous;
@@ -155,7 +260,7 @@ class CarthameAnonymousNoticeTest extends CarthameOperationTestCase {
 
 		$this->mock_web_client
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=copyDetails&nn=xxx')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=copyDetails&nn=xxx')
 			->answers(CarthameTestFixtures::createAnonymousNoticeXml());
 
 		$this->anonymous = $this->service->getNotice('xxx');
@@ -173,11 +278,13 @@ class CarthameAnonymousNoticeTest extends CarthameOperationTestCase {
 		$this->assertEquals('X108', $this->anonymous->getId());
 	}
 
+
 	/** @test */
 	public function noticeShouldHaveTwoCopies() {
 		$this->assertEquals(2, count($this->anonymous->getExemplaires()));
 	}
 
+
 	/** @test */
 	public function firstCopyIdShouldBe45698() {
 		$copies = $this->anonymous->getExemplaires();
@@ -198,47 +305,51 @@ class CarthameAnonymousNoticeTest extends CarthameOperationTestCase {
 		$this->assertEquals('786516467646167', $copies[0]->getCodeBarre());
 	}
 
+
 	/** @test */
 	public function firstCopyShouldBeBeReservable() {
 		$copies = $this->anonymous->getExemplaires();
 		$this->assertTrue($copies[0]->isReservable());
 	}
 
+
 	/** @test */
 	public function firstCopyReturnDateShouldBeNull() {
 		$copies = $this->anonymous->getExemplaires();
 		$this->assertNull($copies[0]->getDateRetour());
 	}
 
+
 	/** @test */
 	public function secondCopyIdShouldBe45699() {
 		$copies = $this->anonymous->getExemplaires();
 		$this->assertEquals('45699', $copies[1]->getId());
 	}
 
+
 	/** @test */
 	public function secondCopyBarCodeShouldBe88446464646() {
 		$copies = $this->anonymous->getExemplaires();
 		$this->assertEquals('88446464646', $copies[1]->getCodeBarre());
 	}
 
+
 	/** @test */
 	public function secondCopyShoudBeReservable() {
 		$copies = $this->anonymous->getExemplaires();
 		$this->assertTrue($copies[1]->isReservable());
 	}
 
+
 	/** @test */
 	public function secondCopyReturnDateShouldBe20111111() {
 		$copies =	$this->anonymous->getExemplaires();
 		$this->assertEquals('11/11/2011', $copies[1]->getDateRetour());
 	}
-
 }
 
 
 
-
 class CarthameEmprunteurPatrickBTest extends CarthameOperationTestCase {
 	/** @var Class_WebService_SIGB_Emprunteur */
 	protected $emprunteur;
@@ -260,10 +371,10 @@ class CarthameEmprunteurPatrickBTest extends CarthameOperationTestCase {
 
 
 		$this->mock_web_client->whenCalled('open_url')
-													->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
+													->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
 													->answers(CarthameTestFixtures::createEmprunteurPatrickBLoginXml())
 													->whenCalled('open_url')
-													->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=accountDetails&userid=3')
+													->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=accountDetails&userid=3')
 													->answers(CarthameTestFixtures::createEmprunteurPatrickBXml())
 													;
 
@@ -274,76 +385,91 @@ class CarthameEmprunteurPatrickBTest extends CarthameOperationTestCase {
 
 	}
 
+
 	/** @test */
 	public function idShouldBeThree() {
 		$this->assertEquals(3, $this->emprunteur->getId());
 	}
 
+
 	/** @test */
 	public function nomShouldBeBarroca() {
 		$this->assertEquals('Barroca', $this->emprunteur->getNom());
 	}
 
+
 	/** @test */
 	public function prenomShouldBePatrick() {
 		$this->assertEquals('Patrick', $this->emprunteur->getPrenom());
 	}
 
+
 	/** @test */
 	public function nbReservationsShouldBeThree() {
 		$this->assertEquals(3, $this->emprunteur->getNbReservations());
 	}
 
+
 	/** @test */
 	public function nbEmpruntShouldBeTwo() {
 		$this->assertEquals(2, $this->emprunteur->getNbEmprunts());
 	}
 
+
 	/** @test */
 	public function returnDateOfFirstEmpruntShouldBeTwentySixOfMay2011() {
 		$this->assertEquals('26/05/2011', $this->emprunteur->getEmpruntAt(0)->getDateRetour());
 	}
 
+
 	/** @test */
 	public function nbPretEnRetardShouldBeOne() {
 		$this->assertEquals(1, $this->emprunteur->getNbPretsEnRetard());
 	}
 
+
 	/** @test */
 	public function firstEmpruntCopyIdShouldBe45699() {
 		$this->assertEquals('45699', $this->emprunteur->getEmpruntAt(0)->getExemplaire()->getId());
 	}
 
+
 	/** @test */
 	public function firstEmpruntIdShouldBe45699() {
 		$this->assertEquals('45699', $this->emprunteur->getEmpruntAt(0)->getId());
 	}
 
+
 	/** @test */
 	public function firstEmpruntCopyNoticeShouldBeX108() {
 		$this->assertEquals('X108', $this->emprunteur->getEmpruntAt(0)->getExemplaire()->getNoNotice());
 	}
 
+
 	/** @test */
 	public function secondEmpruntCopyIdShouldBe46666() {
 		$this->assertEquals('46666', $this->emprunteur->getEmpruntAt(1)->getExemplaire()->getId());
 	}
 
+
 	/** @test */
 	public function secondEmpruntCopyNoticeShouldBeZ6PO() {
 		$this->assertEquals('Z6PO', $this->emprunteur->getEmpruntAt(1)->getExemplaire()->getNoNotice());
 	}
 
+
 	/** @test */
 	public function firstReservationCopyNoticeShouldBeMillenium() {
 		$this->assertEquals('Millenium', $this->emprunteur->getReservationAt(0)->getExemplaire()->getNoNotice());
 	}
 
+
 	/** @test */
 	public function firstReservationStatusShouldBeEnAttente() {
 		$this->assertEquals('En attente', $this->emprunteur->getReservationAt(0)->getEtat());
 	}
 
+
 	/** @test */
 	public function firstReservationIdShouldBeMillRes() {
 		$this->assertEquals('MillRes', $this->emprunteur->getReservationAt(0)->getId());
@@ -355,63 +481,74 @@ class CarthameEmprunteurPatrickBTest extends CarthameOperationTestCase {
 		$this->assertEquals('L8984', $this->emprunteur->getReservationAt(1)->getExemplaire()->getNoNotice());
 	}
 
+
 	/** @test */
 	public function secondReservationTitreShouldBeHarryPotter() {
 		$this->assertEquals('Harry Potter', $this->emprunteur->getReservationAt(1)->getTitre());
 	}
 
+
 	/** @test */
 	public function secondReservationAuteurShouldBeJKRowling() {
 		$this->assertEquals('JK Rowling', $this->emprunteur->getReservationAt(1)->getAuteur());
 	}
 
+
 	/** @test */
 	public function secondReservationBibliothequeShouldBeBucarest() {
 		$this->assertEquals('Bucarest', $this->emprunteur->getReservationAt(1)->getBibliotheque());
 	}
 
+
 	/** @test */
 	public function secondReservationStatusShouldBeDisponible() {
 		$this->assertEquals('Disponible', $this->emprunteur->getReservationAt(1)->getEtat());
 	}
 
+
 	/** @test */
 	public function secondReservationIdShouldBeHarrRes() {
 		$this->assertEquals('HarrRes', $this->emprunteur->getReservationAt(1)->getId());
 	}
 
+
 	/** @test */
 	public function thirdReservationCopyNoticeShouldBeAlAmut() {
 		$this->assertEquals('Al Amut', $this->emprunteur->getReservationAt(2)->getExemplaire()->getNoNotice());
 	}
 
+
 	/** @test */
 	public function thirdReservationStatusShouldBeEnTransfert() {
 		$this->assertEquals('En transfert', $this->emprunteur->getReservationAt(2)->getEtat());
 	}
 
+
 	/** @test */
 	public function thirdReservationIdShouldBeAmutRes() {
 		$this->assertEquals('AmutRes', $this->emprunteur->getReservationAt(2)->getId());
 	}
 
+
 	/** @test */
 	public function thirdReservationTitreShouldBeEmpty() {
 		$this->assertEmpty($this->emprunteur->getReservationAt(2)->getTitre());
 	}
 
+
 	/** @test */
 	public function thirdReservationAuteurShouldBeEmpty() {
 		$this->assertEmpty($this->emprunteur->getReservationAt(2)->getAuteur());
 	}
 
+
 	/** @test */
 	public function thirdReservationBibliothequeShouldBeEmpty() {
 		$this->assertEmpty($this->emprunteur->getReservationAt(2)->getBibliotheque());
 	}
+}
 
 
-}
 
 class CarthameOperationsTest extends CarthameOperationTestCase {
 	public function setUp() {
@@ -429,25 +566,25 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 	public function reserverExemplaireShouldReturnSuccessIfNoError() {
 		$this->mock_web_client
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
 			->answers(CarthameTestFixtures::createEmprunteurPatrickBLoginXml())
 
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=3&nn=Millenium')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=3&nn=Millenium')
 			->answers('<?xml version="1.0" encoding="utf-8"?>
 					<root>
 						<reservationInfo>
 							<sigb>KARVI</sigb>
 							<user>16644</user>
 							<nn>CL16028</nn>
-							<site id="2" coche="luj-Napoca">=F</site>
+							<site id="2" coche="0">Cluj-Napoc</site>
 							<error>0</error>
 							<code>0</code>
 						</reservationInfo>
 					</root>')
 
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveDocument&userid=3&nn=Millenium&site=2')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveDocument&userid=3&nn=Millenium&site=2')
 			->answers('<?xml version="1.0"?>
 					<root>
 						<reservationDoc>
@@ -461,10 +598,10 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 					</root>');
 
 		$this->assertEquals(
-			array('statut' => true, 'erreur' => ''),
+			['statut' => true, 'erreur' => ''],
 			$this->service->reserverExemplaire($this->_user,
 																				 $this->_exemplaire_millenium,
-																				 'Cluj-Napoc'));
+																				 '2'));
 
 	}
 
@@ -473,11 +610,11 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 	public function reserverExemplaireInAnNotAllowedSiteShouldReturnAvailableSites() {
 		$this->mock_web_client
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
 			->answers(CarthameTestFixtures::createEmprunteurPatrickBLoginXml())
 
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=3&nn=Millenium')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=3&nn=Millenium')
 			->answers('<?xml version="1.0" encoding="utf-8"?>
 					<root>
 						<reservationInfo>
@@ -491,13 +628,11 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 						</reservationInfo>
 					</root>');
 
-		$this->assertEquals(
-			['statut' => false,
-			 'erreur' => 'Réservation impossible. Autorisée seulement sur Iasi,Timisoara'],
-			$this->service->reserverExemplaire($this->_user,
-																				 $this->_exemplaire_millenium,
-																				 'Cluj-Napoc'));
-
+		$this->assertEquals(['statut' => false,
+												 'erreur' => 'Réservation impossible. Autorisée seulement sur Iasi, Timisoara'],
+												$this->service->reserverExemplaire($this->_user,
+																													 $this->_exemplaire_millenium,
+																													 '999'));
 	}
 
 
@@ -511,11 +646,11 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 	public function assertReserveInfoMessageIs($code, $message) {
 		$this->mock_web_client
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=login&username=pbarroca&password=1974')
 			->answers(CarthameTestFixtures::createEmprunteurPatrickBLoginXml())
 
 			->whenCalled('open_url')
-			->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=3&nn=Millenium')
+			->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveInfo&userid=3&nn=Millenium')
 			->answers('<?xml version="1.0"?>
 											<root>
 												 <reservationInfo>
@@ -523,17 +658,16 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 													 <user>3</user>
 													 <nn>Millenium</nn>
 													 <error>1</error>
-													 <code>'.$code.'</code>
+													 <code>' . $code . '</code>
 												 </reservationInfo>
 											 </root>')
 
 			->beStrict();
 
-		$this->assertEquals(
-			['statut' => false, 'erreur' => $message],
-			$this->service->reserverExemplaire($this->_user,
-																				 $this->_exemplaire_millenium, '1')
-		);
+		$this->assertEquals(['statut' => false, 'erreur' => $message],
+												$this->service->reserverExemplaire($this->_user,
+																													 $this->_exemplaire_millenium,
+																													 '1'));
 	}
 
 
@@ -546,7 +680,7 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 	/** @test */
 	public function supprimerReservationShouldReturnSuccessIfNoError() {
 		$this->mock_web_client->whenCalled('open_url')
-													->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&action=reserveCancel&resid=MillRes')
+													->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&action=reserveCancel&resid=MillRes')
 													->answers('<?xml version="1.0"?>
 																				<root>
 																					<reservationCancel>
@@ -558,17 +692,15 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 																				</root>
 																				');
 
-		$this->assertEquals(
-			['statut' => true, 'erreur' => ''],
-			$this->service->supprimerReservation($this->_user, 'MillRes')
-		);
-
+		$this->assertEquals(['statut' => true, 'erreur' => ''],
+												$this->service->supprimerReservation($this->_user, 'MillRes'));
 	}
 
+
 	/** @test */
 	public function supprimerReservationShouldReturnErrorIfFail() {
 		$this->mock_web_client->whenCalled('open_url')
-													->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveCancel&resid=HarrRes')
+													->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=reserveCancel&resid=HarrRes')
 													->answers('<?xml version="1.0"?>
 <root>
 	<reservationCancel>
@@ -580,16 +712,15 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 </root>
 ');
 
-		$this->assertEquals(
-			['statut' => false, 'erreur' => 'Error from WS'],
-			$this->service->supprimerReservation($this->_user, 'HarrRes')
-		);
+		$this->assertEquals(['statut' => false, 'erreur' => 'Error from WS'],
+												$this->service->supprimerReservation($this->_user, 'HarrRes'));
 	}
 
+
 	/** @test */
 	public function prolongerPretShouldReturnSuccessIfNoError() {
 		$this->mock_web_client->whenCalled('open_url')
-													->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=prolongLoan&loanid=Millenium')
+													->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=prolongLoan&loanid=Millenium')
 													->answers('<?xml version="1.0"?>
 <root>
 	<prolongation>
@@ -601,17 +732,16 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 </root
 ');
 
-		$this->assertEquals(
-			['statut' => true, 'erreur' => ''],
-			$this->service->prolongerPret($this->_user, 'Millenium')
-		);
+		$this->assertEquals(['statut' => true, 'erreur' => ''],
+												$this->service->prolongerPret($this->_user, 'Millenium'));
 
 	}
 
+
 	/** @test */
 	public function prolongerPretShouldReturnErrorIfFail() {
 		$this->mock_web_client->whenCalled('open_url')
-													->with('http://ifr.ro/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=prolongLoan&loanid=095124224')
+													->with('http://server.domain/webservices/index.php?sigb=karvi&version=standalone&idclient=bibkey&action=prolongLoan&loanid=095124224')
 													->answers('<?xml version="1.0"?>
 <root>
 	<prolongation>
@@ -623,52 +753,41 @@ class CarthameOperationsTest extends CarthameOperationTestCase {
 </root
 ');
 
-		$this->assertEquals(
-			['statut' => false, 'erreur' => 'Error from WS'],
-			$this->service->prolongerPret($this->_user, '095124224')
-		);
+		$this->assertEquals(['statut' => false, 'erreur' => 'Error from WS'],
+												$this->service->prolongerPret($this->_user, '095124224'));
 
 	}
-
 }
 
 
-class CarthameKarviTest extends CarthameTestCase {
-	protected $mock_web_client;
-	protected $service;
 
+class CarthameKarviTest extends CarthameTestCase {
 	public function setUp() {
 		parent::setUp();
-		$this->mock_web_client = Storm_Test_ObjectWrapper::on(new Class_WebService_SimpleWebClient())
-			->whenCalled('open_url')
-			->answers('');
 
-		$this->service = Class_WebService_SIGB_Carthame::getService(
-			['url_serveur' => 'http://ifr.ro/webservices/index.php',
-			 'key' => 'MyClientId',
-			'sigb_field_name' => 'karvi'])
-			->setWebClient($this->mock_web_client);
+		$this->service = $this->_karviService()->setWebClient($this->mock_web_client);
 
 		$this->_user = Class_Users::newInstance()
 			->setLogin('pbarroca')
 			->setPassword('1974');
 
-		$this->_exemplaire_millenium = Class_Exemplaire::newInstanceWithId(123)
-			->setIdOrigine('Millenium');
+		$this->_exemplaire_millenium = $this->fixture('Class_Exemplaire',
+																									['id' => 123,
+																									 'id_origine' => 'Millenium']);
 	}
 
 
 	/** @test */
 	public function getNoticeRequestShouldContainMyClientId() {
 		$this->service->getNotice('I86355');
-		$this->assertQueryContains('MyClientId');
+		$this->assertQueryContains('bibkey');
 	}
 
 
 	/** @test */
 	public function getEmprunteurRequestShouldContainMyClientId() {
 		$this->service->getEmprunteur($this->_user);
-		$this->assertQueryContains('MyClientId');
+		$this->assertQueryContains('bibkey');
 	}
 
 
@@ -677,21 +796,21 @@ class CarthameKarviTest extends CarthameTestCase {
 		$this->service->reserverExemplaire($this->_user,
 																			 $this->_exemplaire_millenium,
 																			 'Institut F');
-		$this->assertQueryContains('MyClientId');
+		$this->assertQueryContains('bibkey');
 	}
 
 
 	/** @test */
 	public function supprimerReservationRequestShouldContainMyClientId() {
 		$this->service->supprimerReservation($this->_user, '42');
-		$this->assertQueryContains('MyClientId');
+		$this->assertQueryContains('bibkey');
 	}
 
 
 	/** @test */
 	public function prolongerPretRequestShouldContainMyClientId() {
 		$this->service->prolongerPret($this->_user, '42');
-		$this->assertQueryContains('MyClientId');
+		$this->assertQueryContains('bibkey');
 	}
 
 
@@ -702,6 +821,7 @@ class CarthameKarviTest extends CarthameTestCase {
 }
 
 
+
 class CarthameTestFixtures {
 	public static function createEmprunteurPatrickBXml() {
 		return '<?xml version="1.0"?>
diff --git a/tests/library/Class/WebService/SIGB/KohaTest.php b/tests/library/Class/WebService/SIGB/KohaTest.php
index 7ba56e354542c5befe7424f73c94876861eb6d87..d75b7d621b93fa7b88e034dc463714b1dad870ce 100644
--- a/tests/library/Class/WebService/SIGB/KohaTest.php
+++ b/tests/library/Class/WebService/SIGB/KohaTest.php
@@ -129,6 +129,7 @@ abstract class KohaServiceGetNoticeHarryPotterTestCase extends KohaTestCase {
 
 
 
+
 class KohaServiceGetNoticeHarryPotterTest extends KohaServiceGetNoticeHarryPotterTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -139,6 +140,7 @@ class KohaServiceGetNoticeHarryPotterTest extends KohaServiceGetNoticeHarryPotte
 	/** @test */
 	public function shouldAnswerOneNotice() {
 		$this->assertInstanceOf('Class_WebService_SIGB_Notice', $this->potter);
+		$this->assertTrue($this->potter->exemplaireAt(8)->isReservable());
 	}
 
 
@@ -346,11 +348,11 @@ class KohaGetEmprunteurLaureAfondTest extends KohaTestCase {
 			->will($this->returnValue(KohaFixtures::xmlGetPatronInfoLaure()));
 
 		$this->laurent = $this->service->getEmprunteur(
-			Class_Users::getLoader()->newInstance()
-			->setLogin('lafond')
-			->setPassword('afi')
-			->setIdabon('012345')
-			);
+																									 Class_Users::getLoader()->newInstance()
+																									 ->setLogin('lafond')
+																									 ->setPassword('afi')
+																									 ->setIdabon('012345')
+		);
 	}
 
 
@@ -494,10 +496,10 @@ class KohaGetEmprunteurJeanAndreWithIdSIGBTest extends KohaTestCase {
 			->will($this->returnValue(KohaFixtures::xmlGetPatronInfoJeanAndre()));
 
 		$this->jean = $this->service->getEmprunteur(
-			$this->fixture('Class_Users', ['id' => 43,
-																		 'login' => 'JEAN',
-																		 'password' => 'zork',
-																		 'id_sigb' => '01234']));
+																								$this->fixture('Class_Users', ['id' => 43,
+																																							 'login' => 'JEAN',
+																																							 'password' => 'zork',
+																																							 'id_sigb' => '01234']));
 
 		$this->fixture('Class_CodifAnnexe', ['id' => 33,
 																				 'libelle' => 'Testing branch',
@@ -595,9 +597,9 @@ class KohaOperationsTest extends KohaTestCase {
 		parent::setUp();
 
 		$this->_lafond = Class_Users::getLoader()->newInstance()
-			->setLogin('lafond')
-			->setPassword('afi')
-			->setIdabon('012345');
+																						 ->setLogin('lafond')
+																						 ->setPassword('afi')
+																						 ->setIdabon('012345');
 
 		$this->mock_web_client
 			->expects($this->at(0))
@@ -782,9 +784,9 @@ class KohaTestMultiSites extends KohaTestCase{
 		parent::setUp();
 		Class_AdminVar::newInstanceWithId('KOHA_MULTI_SITES', ['valeur' => '1']);
 		$this->_lafond = Class_Users::getLoader()->newInstance()
-			->setLogin('lafond')
-			->setPassword('afi')
-			->setIdabon('012345');
+																						 ->setLogin('lafond')
+																						 ->setPassword('afi')
+																						 ->setIdabon('012345');
 
 		$this->mock_web_client
 			->expects($this->at(0))
@@ -831,4 +833,53 @@ class KohaTestMultiSites extends KohaTestCase{
 												$this->service->reserverExemplaire($this->_lafond, $this->_exemplaire_mireille_abeille, ''));
 	}
 }
-?>
\ No newline at end of file
+
+
+
+class KohaServiceGetNoticeHarryPotterWithRestrictionTest extends Storm_Test_ModelTestCase {
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		Class_Profil::setCurrentProfil($this->fixture('Class_Profil',
+																									['id' => 1,
+																									 'libelle' => 'Actu']));
+
+		Class_AdminVar::newInstanceWithId('KOHA_MULTI_SITES', ['valeur' => '' ]);
+		$this->mock_web_client = $this->getMock('Class_WebService_SimpleWebClient');
+		$this->service = Class_WebService_SIGB_Koha::getService(['url_serveur' => 'http://cat-aficg55.biblibre.com/cgi-bin/koha/ilsdi.pl',
+																											 'Interdire_reservation_doc_dispo' => '1']);
+
+		$this->mock_web_client
+			->expects($this->once())
+			->method('open_url')
+			->with('http://cat-aficg55.biblibre.com/cgi-bin/koha/ilsdi.pl?service=GetRecords&id=33233')
+			->will($this->returnValue(KohaFixtures::xmlGetRecordHarryPotter()));
+
+		$this->service->setWebClient($this->mock_web_client);
+		$this->potter = $this->service->getNotice('33233');
+	}
+
+
+	/** @test */
+	public function secondItemShouldBeReservable() {
+		$this->assertTrue($this->potter->exemplaireAt(1)->isReservable());
+	}
+
+
+	/** @test */
+	public function lastItemShouldBeReservable() {
+		$this->assertTrue($this->potter->exemplaireAt(8)->isReservable());
+	}
+
+
+	/** @test */
+	public function lastItemDisponibiliteShouldBeReserve() {
+		$this->assertEquals('Réservé', $this->potter->exemplaireAt(8)->getDisponibilite());
+	}
+}
diff --git a/tests/library/Class/WebService/ToutApprendreTest.php b/tests/library/Class/WebService/ToutApprendreTest.php
index efd8f345ed19b4da1f14dc99840a527869b962c2..6099ab6f32a7848c47b344cd46960f478e29220b 100644
--- a/tests/library/Class/WebService/ToutApprendreTest.php
+++ b/tests/library/Class/WebService/ToutApprendreTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class ToutApprendreTest extends Storm_Test_ModelTestCase{
@@ -32,7 +32,7 @@ class ToutApprendreTest extends Storm_Test_ModelTestCase{
 			->with('http://biblio.toutapprendre.com/cours/catalogue.aspx?pk=2100')
 			->answers($catalogue_xml)
 			->beStrict();
-		
+
 		Class_WebService_BibNumerique_ToutApprendre::setDefaultHttpClient($http_client);
 		Class_WebService_BibNumerique_Vignette::setInstance(Storm_Test_ObjectWrapper::mock()
 																												->whenCalled('updateAlbum')
@@ -44,7 +44,7 @@ class ToutApprendreTest extends Storm_Test_ModelTestCase{
 																													'annexes' => '10;12',
 																													'sections' => '18;19']);
 
-		self::fixture('Class_TypeDoc', ['id'=>Class_TypeDoc::TOUTAPPRENDRE, 
+		self::fixture('Class_TypeDoc', ['id'=>Class_TypeDoc::TOUTAPPRENDRE,
 																		 'codif_type_doc' => $codif_type_doc,
 																		 'label'=> 'Tout apprendre'
  										 ]);
@@ -71,15 +71,21 @@ class ToutApprendreTest extends Storm_Test_ModelTestCase{
 
 	public function setUp() {
 		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
 		$this->_toutApprendre = self::$toutApprendre;
 		$this->_first_album = $this->_toutApprendre->getAlbums()[0];
 	}
 
 
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
 
-	/** 
+	/**
 	 * [[file:~/www/afi-opac/tests/fixtures/toutApprendre_catalogue.xml::<titre>Safari%202</titre][formation Safari2]]
-	 * @test 
+	 * @test
 	 */
 	public function firstAlbumTitreShouldBeLibreOffice() {
 		$this->assertEquals('LibreOffice Database - Module 1', $this->_first_album->getTitre());
@@ -123,7 +129,7 @@ class ToutApprendreTest extends Storm_Test_ModelTestCase{
 	public function firstAlbumLibreOfficeDesciptionShouldBeSet()  {
 		$this->assertEquals("Accéder aux données de LibreOffice Database et les imprimer",$this->_first_album->getDescription());
 	}
-	
+
 
  /** @test */
 	public function posterToutApprendreShouldBeURIJacketURL(){
@@ -151,4 +157,4 @@ class ToutApprendreTest extends Storm_Test_ModelTestCase{
 
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/tests/library/Class/WebService/VignetteTest.php b/tests/library/Class/WebService/VignetteTest.php
index 5ee1efb9d381d8bf928718487ea2d43f220349f0..f02d97374647e81453a6e8683f8fac1091ca2982 100644
--- a/tests/library/Class/WebService/VignetteTest.php
+++ b/tests/library/Class/WebService/VignetteTest.php
@@ -16,28 +16,30 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 class Class_WebService_VignetteTest extends Storm_Test_ModelTestCase {
 	public function setUp() {
 		parent::setUp();
-		$this->_http_client = Storm_Test_ObjectWrapper::mock();
-		$ebook=$this->fixture('Class_CodifTypeDoc', [
-										 'id' => 102,
-										 'type_doc_id'=> 102,
-										 'famille_id' => Class_CodifTypeDoc::LIVRE]);
+		$http_client = Storm_Test_ObjectWrapper::mock();
+
+		$this->fixture('Class_CodifTypeDoc',
+									 ['id' => 102,
+										'type_doc_id'=> 102,
+										'famille_id' => Class_CodifTypeDoc::LIVRE]);
 
 		$this->fixture('Class_Notice',['id'=> 10,
-																 'titre_principal' => 'Le photographe',
-																 'auteur_principal' => 'Guibert',
-																 'isbn' => '3222222',
+																	 'titre_principal' => 'Le photographe',
+																	 'auteur_principal' => 'Guibert',
+																	 'isbn' => '3222222',
 																	 'ean' => '1111111',
 																	 'type_doc' => 102]);
-		Class_WebService_AllServices::setHttpClient($this->_http_client);
+
+		Class_WebService_AllServices::setHttpClient($http_client);
 
 		Class_CosmoVar::newInstanceWithId('url_services')->setValeur('http://cache.org');
-		$this->_http_client
+		$http_client
 			->whenCalled('open_url')
 			->with('http://cache.org?'
 						 .'titre=Le+photographe'
@@ -54,22 +56,24 @@ class Class_WebService_VignetteTest extends Storm_Test_ModelTestCase {
 														 'statut_recherche' => 2]))
 			->beStrict();
 
+		(new Class_WebService_Vignette())->updateUrlsFromCacheServer(Class_Notice::find(10));
 	}
 
+
 	public function tearDown() {
 		Class_WebService_AllServices::setHttpClient(null);
 		parent::tearDown();
 	}
 
+
 	/** @test */
-	public function openUrlShouldContainsTypeDocLivre() {
-		$vignette = new Class_WebService_Vignette();
-		
-		$this->assertEquals(['vignette' => 'http://cache.org/potter_thumb.jpg',
-												 'image' => 'http://cache.org/potter.jpg'], 
-												$vignette->getUrls(Class_Notice::find(10)));
+	public function vignetShouldHaveBeenUpdatedWithPotterThumbJpg() {
+		$this->assertEquals('http://cache.org/potter_thumb.jpg', Class_Notice::find(10)->getUrlVignette());
 	}
 
-}
 
-?>
\ No newline at end of file
+	/** @test */
+	public function imageShouldHaveBeenUpdatedWithPotterJpg() {
+		$this->assertEquals('http://cache.org/potter.jpg', Class_Notice::find(10)->getUrlImage());
+	}
+}
diff --git a/tests/library/ZendAfi/View/Helper/Accueil/BibNumeriqueTest.php b/tests/library/ZendAfi/View/Helper/Accueil/BibNumeriqueTest.php
index f380a21971e7af29c46fde2b35f9060096ab3bc3..8c5a55626c72f93f71cde7dd8acc565cfab3cdca 100644
--- a/tests/library/ZendAfi/View/Helper/Accueil/BibNumeriqueTest.php
+++ b/tests/library/ZendAfi/View/Helper/Accueil/BibNumeriqueTest.php
@@ -20,7 +20,48 @@
  */
 require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php';
 
-class BibNumeriqueAllCollectionsTest extends ViewHelperTestCase {
+abstract class BibNumeriqueViewCollectionTestCase extends ViewHelperTestCase {
+	/** @var ZendAfi_View_Helper_Accueil_BibNumerique */
+	protected $_helper;
+
+	public function setUp() {
+		parent::setUp();
+
+		Class_AlbumCategorie::beVolatile();
+		Class_Album::beVolatile();
+
+		$this->fixture('Class_AlbumCategorie', ['id' => 1,
+																						'libelle' => 'Bible de Souvigny']);
+
+		$this->fixture('Class_AlbumCategorie', ['id' => 2,
+																						'libelle' => 'Les enluminures',
+																						'parent_id' => 1]);
+
+		$this->fixture('Class_AlbumCategorie', ['id' => 3,
+																						'libelle' => 'Les plus belles calligraphies',
+																						'parent_id' => 1]);
+
+		$this->fixture('Class_Album', ['id' => 1,
+																	 'titre' => 'Premier volume',
+																	 'cat_id' => 2,
+																	 'status' => Class_Album::STATUS_VALIDATED]);
+
+		$this->fixture('Class_Album', ['id' => 2,
+																	 'titre' => 'Second volume',
+																	 'cat_id' => 3,
+																	 'status' => Class_Album::STATUS_DRAFT]);
+
+		Zend_Controller_Front::getInstance()
+			->setRequest(new Zend_Controller_Request_Http())
+			->setParam('id', null);
+	}
+}
+
+
+
+
+
+class BibNumeriqueAllCollectionsTest extends BibNumeriqueViewCollectionTestCase {
 	/** @var string */
 	protected $_html;
 
@@ -28,11 +69,6 @@ class BibNumeriqueAllCollectionsTest extends ViewHelperTestCase {
 	public function setUp() {
 		parent::setUp();
 
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumCategorie')
-			->whenCalled('getCollections')
-			->answers(array(BibNumeriqueFixture::createBibleDeSouvigny()))
-			->getWrapper()->beStrict();
-
 		$helper = new ZendAfi_View_Helper_Accueil_BibNumerique(9, array(
 		  'division' => 1,
 			'type_module' => 'BIB_NUMERIQUE',
@@ -46,6 +82,7 @@ class BibNumeriqueAllCollectionsTest extends ViewHelperTestCase {
 		$helper->setView(new ZendAfi_Controller_Action_Helper_View());
 
 		$this->_html = $helper->getBoite();
+
 	}
 
 
@@ -109,7 +146,7 @@ class BibNumeriqueAllCollectionsTest extends ViewHelperTestCase {
 
 	/** @test */
 	public function secondCategorieShouldHaveNoAlbum() {
-		$this->assertNotXPath($this->_html, '//div[@class="contenu"]/div/ul/li/ul/li[2]/ul');
+		$this->assertNotXPath($this->_html, '//div[@class="contenu"]/div/ul/li/ul/li[2]/ul', $this->_html);
 	}
 }
 
@@ -117,18 +154,13 @@ class BibNumeriqueAllCollectionsTest extends ViewHelperTestCase {
 
 
 
-class BibNumeriqueBibleDeSouvignyCollectionTest extends ViewHelperTestCase {
+class BibNumeriqueBibleDeSouvignyCollectionTest extends BibNumeriqueViewCollectionTestCase {
 	/** @var string */
 	protected $_html;
 
 	public function setUp() {
 		parent::setUp();
 
-		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumCategorie')
-			->whenCalled('find')->with(1)
-			->answers(BibNumeriqueFixture::createBibleDeSouvigny())
-			->getWrapper()->beStrict();
-
 		$helper = new ZendAfi_View_Helper_Accueil_BibNumerique(9, array(
 		  'division' => 1,
 			'type_module' => 'BIB_NUMERIQUE',
@@ -196,23 +228,6 @@ class BibNumeriqueBibleDeSouvignyCollectionTest extends ViewHelperTestCase {
 
 
 
-abstract class BibNumeriqueViewCollectionTestCase extends ViewHelperTestCase {
-	/** @var ZendAfi_View_Helper_Accueil_BibNumerique */
-	protected $_helper;
-
-	public function setUp() {
-		parent::setUp();
-
-		if ($request = Zend_Controller_Front::getInstance())
-			$request->setParam('id', null);
-
-		BibNumeriqueFixture::createBibleDeSouvigny();
-	}
-}
-
-
-
-
 class BibNumeriqueBibleDeSouvignyCollectionCurrentDetectionTest extends BibNumeriqueViewCollectionTestCase {
 	/** @var ZendAfi_View_Helper_Accueil_BibNumerique */
 	protected $_helper;
@@ -597,25 +612,6 @@ class BibNumeriqueAlbumHarlockAsListeTest extends AbstractBibNumeriqueViewHelper
 
 
 class BibNumeriqueFixture {
-	/** @return Class_AlbumCategorie */
-	public static function createBibleDeSouvigny() {
-		return Class_AlbumCategorie::getLoader()
-			->newInstanceWithId(1)
-			->setLibelle('Bible de Souvigny')
-			->setSousCategories(array(Class_AlbumCategorie::getLoader()
-																->newInstanceWithId(2)
-																->setLibelle('Les enluminures')
-																->setAlbums(array(Class_Album::getLoader()
-																									->newInstanceWithId(1)
-																									->setTitre('Premier volume'))),
-																Class_AlbumCategorie::getLoader()
-																->newInstanceWithId(3)
-																->setLibelle('Les plus belles calligraphies')
-																->setAlbums(array())))
-			->setAlbums(array());
-	}
-
-	
 	/** @return array */
 	public static function createOneCategorieTreePreference() {
 		return array('boite' => '',
diff --git a/tests/library/ZendAfi/View/Helper/Accueil/TagsTest.php b/tests/library/ZendAfi/View/Helper/Accueil/TagsTest.php
index 30afcae82b38f307eb3c12780d3e67f113aaa0d9..d73e25fb0bda6ed42be2d1795b54a50266f3cedc 100644
--- a/tests/library/ZendAfi/View/Helper/Accueil/TagsTest.php
+++ b/tests/library/ZendAfi/View/Helper/Accueil/TagsTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php';
 
@@ -26,30 +26,35 @@ class TagsTest extends ViewHelperTestCase {
 	public function setUp() {
 		parent::setUp();
 		$this->_old_sql = Zend_Registry::get('sql');
-		
-		$notice_enreg = array('type_doc' => 1,
-													'facettes' => 'A777',
-													'id_notice' => 34,
-													'editeur' => '',
-													'annee' => '',
-													'date_creation' => '',
-													'date_maj' => '',
-													'clef_oeuvre' => '');
 
-		Class_Notice::newInstanceWithId(34, $notice_enreg);
+		$this->fixture('Class_Notice',
+									 ['id' => 777,
+										'type_doc' => 1,
+										'facettes' => 'A777',
+										'id_notice' => 34,
+										'editeur' => '',
+										'annee' => '',
+										'date_creation' => '',
+										'date_maj' => '',
+										'clef_oeuvre' => '']);
 
-		Class_CodifAuteur::newInstanceWithId(777,
-																				 ['libelle'=> 'Terry Pratchett']);
+		Storm_Test_ObjectWrapper::onloaderOfModel('Class_Catalogue')
+			->whenCalled('getNoticesByPreferences')
+			->answers([Class_Notice::find(777)]);
 
-		Zend_Registry::set('sql', 
+		$this->fixture('Class_CodifAuteur',
+									 ['id' => 777,
+										'libelle'=> 'Terry Pratchett']);
+
+		Zend_Registry::set('sql',
 											 Storm_Test_ObjectWrapper::mock()
 											 ->whenCalled('fetchAll')
-											 ->answers(array($notice_enreg)));
+											 ->answers([Class_Notice::find(777)]));
 
-		$helper = new ZendAfi_View_Helper_Accueil_Tags(3, array('type_module' => 'TAGS',
-																														'division' => 2,
-																														'preferences' => array('type_tags' => 'AMDPZ',
-																																									 'nombre' => 1)));
+		$helper = new ZendAfi_View_Helper_Accueil_Tags(3, ['type_module' => 'TAGS',
+																											 'division' => 2,
+																											 'preferences' => ['type_tags' => 'AMDPZ',
+																																				 'nombre' => 1]]);
 		$helper->setView(new ZendAfi_Controller_Action_Helper_View());
 		$this->_html = $helper->getBoite();
 	}
@@ -57,8 +62,8 @@ class TagsTest extends ViewHelperTestCase {
 
 	/** @test */
 	public function terryPratchetShouldBePresent() {
-		$this->assertXPathContentContains($this->_html, 
-																			'//a[contains(@href, "recherche/simple/code_rebond")]', 
+		$this->assertXPathContentContains($this->_html,
+																			'//a[contains(@href, "recherche/simple/code_rebond")]',
 																			'Terry Pratchett');
 	}
 
diff --git a/tests/library/ZendAfi/View/Helper/Admin/MenuGaucheAdminTest.php b/tests/library/ZendAfi/View/Helper/Admin/MenuGaucheAdminTest.php
index 791fe1bc0742a8c5d1b784122c194f18bc009e16..9f1c261935bb97ebd22dac6ff69b0d1a1ef983a0 100644
--- a/tests/library/ZendAfi/View/Helper/Admin/MenuGaucheAdminTest.php
+++ b/tests/library/ZendAfi/View/Helper/Admin/MenuGaucheAdminTest.php
@@ -16,9 +16,10 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php';
+require_once 'fixtures/RessourcesNumeriquesFixtures.php';
 
 
 abstract class ZendAfi_View_Helper_Admin_MenuGaucheAdminVariableBibnumDisabledTestCase extends ViewHelperTestCase {
@@ -26,8 +27,8 @@ abstract class ZendAfi_View_Helper_Admin_MenuGaucheAdminVariableBibnumDisabledTe
 
 	public function setUp() {
 		parent::setUp();
-		Class_AdminVar::newInstanceWithId('BIBNUM', ['valeur'=>0]);
-		
+		Class_AdminVar::newInstanceWithId('BIBNUM', ['valeur' => 0]);
+
 		$this->helper = new ZendAfi_View_Helper_Admin_MenuGaucheAdmin();
 	}
 }
@@ -42,6 +43,7 @@ class ZendAfi_View_Helper_Admin_MenuGaucheAdminVariableAsAdminTest extends ZendA
 		parent::setUp();
 		Zend_Registry::get('translate')->setLocale('fr');
 	  $this->login(ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL);
+    RessourcesNumeriquesFixtures::activateOrphea();
 		$this->html = $this->helper->menuGaucheAdmin();
 	}
 
@@ -76,10 +78,31 @@ class ZendAfi_View_Helper_Admin_MenuGaucheAdminVariableAsAdminTest extends ZendA
 	}
 
 
+	/** @test */
+	public function menuImportDilicomShouldNotBeVisibleWhenOptionDILICOM_PNB_isDisabled() {
+		$this->assertNotXPath($this->helper->menuGaucheAdmin(),
+													'//a[contains(@href, "/admin/album/import-dilicom")]');
+	}
+
+
+	/** @test */
+	public function menuImportDilicomShouldBeVisibleWhenOptionDILICOM_PNB_isEnabled() {
+		RessourcesNumeriquesFixtures::activateDilicom();
+		$this->assertXPath($this->helper->menuGaucheAdmin(),
+											 '//a[contains(@href, "/admin/album/import-dilicom")]');
+	}
+
+
 	/** @test */
 	public function menuCacheImagesShouldNotBePresent() {
 		$this->assertXPath($this->html, '//a[contains(@href, "/admin/systeme/cacheimages")]', $this->html);
 	}
+
+
+  /** @test */
+  public function menuGaucheAdminShouldContainsOrphea() {
+    $this->assertXPath($this->html, '//a[contains(@href, "/admin/harvest/orphea-browse")]');
+  }
 }
 
 
@@ -123,4 +146,4 @@ class ZendAfi_View_Helper_Admin_MenuGaucheAdminAsRedacBibTest extends ZendAfi_Vi
 	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/tests/library/ZendAfi/View/Helper/AvisTest.php b/tests/library/ZendAfi/View/Helper/AvisTest.php
index 30bb74f8d853df1de82a03a1030be0d755f82639..d85bfe77ca4300dd8ee27e8cf0cd622e3f1d0e89 100644
--- a/tests/library/ZendAfi/View/Helper/AvisTest.php
+++ b/tests/library/ZendAfi/View/Helper/AvisTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 require_once 'ViewHelperTestCase.php';
 require_once 'Class/AvisNotice.php';
@@ -25,6 +25,9 @@ require_once 'ZendAfi/View/Helper/Avis.php';
 
 class ViewHelperAvisTestWithAvisNotice extends ViewHelperTestCase {
 	public function setUp() {
+		parent::setup();
+		Class_Users::beVolatile();
+
 		$lolo = new Class_Users();
 		$lolo
 			->setId(91)
@@ -68,8 +71,8 @@ class ViewHelperAvisTestWithAvisNotice extends ViewHelperTestCase {
 
 
 	public function testEnteteIsJadore() {
-		$this->assertXPathContentContains($this->html, 
-																			"//div[@class='contenu_critique']//a[contains(@href,'/blog/viewavis/id/23')]", 
+		$this->assertXPathContentContains($this->html,
+																			"//div[@class='contenu_critique']//a[contains(@href,'/blog/viewavis/id/23')]",
 																			"J'adore");
 	}
 
@@ -93,8 +96,8 @@ class ViewHelperAvisTestWithAvisNotice extends ViewHelperTestCase {
 	}
 
 	public function testAuteurIsLolo() {
-		$this->assertXPathContentContains($this->html, 
-																			"//span[@class='auteur_critique']//a[contains(@href, '/blog/viewauteur/id/91')]", 
+		$this->assertXPathContentContains($this->html,
+																			"//span[@class='auteur_critique']//a[contains(@href, '/blog/viewauteur/id/91')]",
 																			'Lolo');
 	}
 
@@ -110,7 +113,7 @@ class ViewHelperAvisTestWithAvisNotice extends ViewHelperTestCase {
 	public function testVignetteLinkToNotice() {
 		$this->assertXPath($this->html,
 											 "//div[@class='vignette_notice']/a[contains(@href,'/recherche/viewnotice/id/9867')]");
-		
+
 	}
 
 	public function testVignetteLinkVoirLaNotice() {
@@ -136,7 +139,7 @@ class ViewHelperAvisTestWithoutAvisNoticeAndModeration extends ViewHelperTestCas
 		parent::setUp();
 
 		Class_Profil::getCurrentProfil()->setSkin('original');
-		
+
 		$tintin = new Class_Users();
 		$tintin
 			->setId(26)
@@ -175,8 +178,8 @@ class ViewHelperAvisTestWithoutAvisNoticeAndModeration extends ViewHelperTestCas
 
 
 	public function testEnteteIsBof() {
-		$this->assertXPathContentContains($this->html, 
-																			"//div[@class='contenu_critique']//a[contains(@href,'/blog/viewavis/id/67')]", 
+		$this->assertXPathContentContains($this->html,
+																			"//div[@class='contenu_critique']//a[contains(@href,'/blog/viewavis/id/67')]",
 																			"Bof");
 	}
 
@@ -189,7 +192,7 @@ class ViewHelperAvisTestWithoutAvisNoticeAndModeration extends ViewHelperTestCas
 	public function testNoteImgIsStarsTwoFive() {
 		$this->assertXPath($this->html,
 											 "//img[@class='note_critique note-25'][contains(@src,'stars-2-5.gif')]");
-											 
+
 	}
 
 	public function testAvisIsPasTerrible() {
@@ -202,12 +205,12 @@ class ViewHelperAvisTestWithoutAvisNoticeAndModeration extends ViewHelperTestCas
 
 	public function testAuteurIsTintin() {
 		$this->assertXPathContentContains($this->html,
-																			"//span[@class='auteur_critique']//a[contains(@href, '/blog/viewauteur/id/26')]", 
+																			"//span[@class='auteur_critique']//a[contains(@href, '/blog/viewauteur/id/26')]",
 																			'Tintin');
 	}
 
 	public function testTitreNoticeEmpty() {
-		$this->assertQueryContentContains($this->html, 'div.critique h2', 
+		$this->assertQueryContentContains($this->html, 'div.critique h2',
 																			utf8_encode('Oeuvre non trouvée'));
 	}
 
@@ -245,7 +248,7 @@ class ViewHelperAvisTestHtmlForCritiquesModule extends ViewHelperTestCase {
 		$avis_millenium
 			->setId(23)
 			->setEntete("J'adore")
-			->setAvis("Suspense intense très 
+			->setAvis("Suspense intense très
                  intéressant longue critique")
 			->setNote(5)
 			->setDateAvis('2010-03-18 13:00:00')
@@ -284,7 +287,7 @@ class ViewHelperAvisAmazonTestContenuAvisHtml extends ViewHelperTestCase {
 		$avis_millenium = new Class_AvisNotice();
 		$avis_millenium
 			->setEntete("J'adore")
-			->setAvis("Suspense intense très 
+			->setAvis("Suspense intense très
                  intéressant longue critique")
 			->setNote(5)
 			->setDateAvis('2010-03-18 13:00:00')
@@ -307,8 +310,8 @@ class ViewHelperAvisAmazonTestContenuAvisHtml extends ViewHelperTestCase {
 	}
 
 	public function testAvisLinkIsSharp() {
-		$this->assertQueryContentContains($this->html, 
-																			"div.contenu_critique a[href='#']", 
+		$this->assertQueryContentContains($this->html,
+																			"div.contenu_critique a[href='#']",
 																			"J'adore");
 	}
 }
diff --git a/tests/library/ZendAfi/View/Helper/Notice/MurTest.php b/tests/library/ZendAfi/View/Helper/Notice/MurTest.php
index 4e1df97e186daea423fe9513f99cca00334b9f88..57db974bfc6a521a9f1585370804f64224f6a91b 100644
--- a/tests/library/ZendAfi/View/Helper/Notice/MurTest.php
+++ b/tests/library/ZendAfi/View/Helper/Notice/MurTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
@@ -25,7 +25,7 @@ abstract class ZendAfi_View_Helper_Notice_MurTestCase extends ViewHelperTestCase
 
 	public function setUp() {
 		parent::setUp();
-		
+
 		defineConstant("PATH_SKIN", "./public/opac/skins/original/");
 
 		$this->_helper = new ZendAfi_View_Helper_Notice_Mur();
@@ -56,8 +56,8 @@ class ZendAfi_View_Helper_Notice_MurForNoticeTest extends ZendAfi_View_Helper_No
 
 	/** @test */
 	public function divShouldContainsVignette() {
-		$this->assertXPath($this->_html, 
-											 '//div[@class="notice"]//a[contains(@href,"/recherche/viewnotice/id/2")]//img[@src="hp.png"]', $this->_html);
+		$this->assertXPath($this->_html,
+											 '//div[@class="notice"]//a[contains(@href,"/recherche/viewnotice/id/2")]//img[contains(@src, "hp.png")]', $this->_html);
 	}
 
 	/** @test */
@@ -67,7 +67,7 @@ class ZendAfi_View_Helper_Notice_MurForNoticeTest extends ZendAfi_View_Helper_No
 
 	/** @test */
 	public function divShouldContainsTitreHarryPotter() {
-		$this->assertXPathContentContains($this->_html, 
+		$this->assertXPathContentContains($this->_html,
 																			'//div//a[contains(@href, "/viewnotice")]',
 																			'Harry Potter');
 	}
@@ -75,7 +75,7 @@ class ZendAfi_View_Helper_Notice_MurForNoticeTest extends ZendAfi_View_Helper_No
 
 	/** @test */
 	public function divShouldContainsAuteurJKRowlingWithRebond() {
-		$this->assertXPathContentContains($this->_html, 
+		$this->assertXPathContentContains($this->_html,
 																			'//div//a[contains(@href, "recherche/simple/code_rebond/A400")]',
 																			'Joanne Kathleen Rowling');
 	}
@@ -85,14 +85,17 @@ class ZendAfi_View_Helper_Notice_MurForNoticeTest extends ZendAfi_View_Helper_No
 		$this->assertXPath($this->_html, '//ul[@class="barre-de-lien"]' );
 	}
 
-	
+
 	/** @test **/
 	public function noticeInModeMurShouldDisplayNouveaute() {
-		$this->assertXPathContentContains($this->_html, 
+		$this->assertXPathContentContains($this->_html,
 																			'//div//span[@class="notice_nouveaute"]','Nouveaut',$this->_html);
 	}
 }
 
+
+
+
 class ZendAfi_View_Helper_Notice_MurForSiteTest extends ZendAfi_View_Helper_Notice_MurTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -105,18 +108,8 @@ class ZendAfi_View_Helper_Notice_MurForSiteTest extends ZendAfi_View_Helper_Noti
 		$notice = $this->fixture('Class_Notice',
 														 ['id' => 176291,
 															'clef_oeuvre' => 'ABES---',
-															'unimarc' => '00258nm30 22001451i 450 001000700000100004100007101000500048200000500053200000900058210000500067300000500072317000500077856002400082856000600106176291  a00000000a|||||||||||y0frey0103####ba0 a1 e1 aabes  d  a  a  ahttp://www.abes.fr/  b4'
-															 ]);
-
-		$notice->beSite();
-
-		$file_writer = Storm_Test_ObjectWrapper::mock()
-			->whenCalled('dirExists')
-			->answers(true)
-			->whenCalled('fileExists')
-			->answers(true);
-
-		ZendAfi_View_Helper_WebThumbnail::setFileWriter($file_writer);
+															'type_doc' => Class_TypeDoc::SITE
+														 ]);
 
 		$this->_html = $this->_helper->notice_Mur($notice);
 	}
@@ -128,20 +121,13 @@ class ZendAfi_View_Helper_Notice_MurForSiteTest extends ZendAfi_View_Helper_Noti
 
 
 	/** @test */
-	public function divShouldNotContainsWebserviceVignette() {
-		$this->assertNotXPath($this->_html, 
+	public function divShouldContainsWebserviceVignette() {
+		$this->assertXPath($this->_html,
 											 '//div[@class="notice"]//a[contains(@href, "sito/sitoview")]//img[contains(@src, "recherche/vignette")]', $this->_html);
 	}
+}
 
 
-	/** @test */
-	public function divShouldContainsThumbnailLink() {
-		$this->assertXPath($this->_html, 
-											 '//div[@class="notice"]//a[contains(@href, "sito/sitoview")]//img[contains(@src, "userfiles/web_thumbnails/www_abes_fr_.jpg")]', 
-											 $this->_html);
-		
-	}
-}
 
 
 class ZendAfi_View_Helper_Notice_MurForArticleTest extends ZendAfi_View_Helper_Notice_MurTestCase {
@@ -150,8 +136,9 @@ class ZendAfi_View_Helper_Notice_MurForArticleTest extends ZendAfi_View_Helper_N
 
 		$concert = Class_Notice::newInstanceWithId(2, ['url_vignette' => '',
 																									 'url_image' => '',
-																									 'type_doc' => Class_TypeDoc::ARTICLE, 
+																									 'type_doc' => Class_TypeDoc::ARTICLE,
 																									 'clef_oeuvre' => 'toto',
+																									 'clef_alpha' => 'TOTO',
 																									 'exemplaires' => []]);
 		$concert->set_subfield('200', 'a', 'Concert')
 						->set_subfield('856', 'b', '5');
@@ -165,8 +152,8 @@ class ZendAfi_View_Helper_Notice_MurForArticleTest extends ZendAfi_View_Helper_N
 
 	/** @test */
 	public function divShouldContainsVignette() {
-		$this->assertXPath($this->_html, 
-											 '//div[@class="notice"]//a[contains(@href, "cms/articleview/id/5")]//img[@src="concert.jpg"]', $this->_html);
+		$this->assertXPath($this->_html,
+											 '//div[@class="notice"]//a[contains(@href, "cms/articleview/id/5")]//img[contains(@src, "recherche/vignette")]', $this->_html);
 	}
 }
 
@@ -198,7 +185,7 @@ class ZendAfi_View_Helper_Notice_Mur_BarreDeLienTest extends ZendAfi_View_Helper
 																																'abon_ou_bib'=>'1'])
 			->setModerationOk();
 
-		$this->_notice = Class_Notice::newInstanceWithId(34,['titre_principal'=>'Potter', 
+		$this->_notice = Class_Notice::newInstanceWithId(34,['titre_principal'=>'Potter',
 																												 'clef_oeuvre'=>'potter',
 																												 'avis' => [$avis_de_paul, $avis_de_francois],
 																												 'url_vignette' => '',
@@ -208,7 +195,7 @@ class ZendAfi_View_Helper_Notice_Mur_BarreDeLienTest extends ZendAfi_View_Helper
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AvisNotice')
 			->whenCalled('countBy')
 			->answers(1);
-		
+
 		$this->_html = $this->_helper->notice_Mur($this->_notice);
 	}
 
@@ -242,8 +229,8 @@ class ZendAfi_View_Helper_Notice_Mur_BarreDeLienTest extends ZendAfi_View_Helper
 																											 ->whenCalled('isReservable')
 																											 ->answers(true))]);
 		$this->_html = $this->_helper->notice_Mur($this->_notice);
-		$this->assertXPath($this->_html, 
-											 '//a[contains(@onclick, "openDialogExemplaires")][contains(@onclick, "/noticeAjax/exemplaires/id_notice/34")]', 
+		$this->assertXPath($this->_html,
+											 '//a[contains(@onclick, "openDialogExemplaires")][contains(@onclick, "/noticeAjax/exemplaires/id_notice/34")]',
 											 $this->_html);
 	}
 
diff --git a/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php b/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6011654d39bf0337434d3dece985474a5b7c4cf6
--- /dev/null
+++ b/tests/library/ZendAfi/View/Helper/Notice/VignetteTest.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+ class ZendAfi_View_Helper_Notice_VignetteTest extends ViewHelperTestCase {
+	 public function setUp() {
+		 parent::setUp();
+
+		 $this->_helper = new ZendAfi_View_Helper_Notice_Vignette();
+		 $this->_helper->setView(new ZendAfi_Controller_Action_Helper_View());
+		 $this->_html = $this->_helper->notice_Vignette($this->fixture('Class_Notice',
+																																['id' => 1,
+																																 'titre' => 'Pomme et Ananas',
+																																 'clef_alpha' => 'POMMEETANANAS',
+																																 'facettes' => 'A1 Q9',
+																																 'date_maj' => '01/01/2015',
+																																 'unimarc' => '',
+																																 'url_vignette' => 'NO']));
+	 }
+
+
+	 /** @test */
+	 public function htmlShouldContainsNothumbnail() {
+		 $this->assertContains('nothumbnail', $this->_html);
+	 }
+}
diff --git a/tests/library/ZendAfi/View/Helper/RenderAlbumTest.php b/tests/library/ZendAfi/View/Helper/RenderAlbumTest.php
index cb66d30f91bfe80b45cfbabad6bbf61be1181568..0ab59c377db3edde828b8d8f733eb3d8616a584a 100644
--- a/tests/library/ZendAfi/View/Helper/RenderAlbumTest.php
+++ b/tests/library/ZendAfi/View/Helper/RenderAlbumTest.php
@@ -241,6 +241,100 @@ class ZendAfi_View_Helper_RenderAlbumCyberlibrisTest extends ZendAfi_View_Helper
 											 '//a[@href="http://www.bibliovox.com/my_lib?docid=88817216"][@target="_blank"]',
 											 $html);
 	}
+}
+
+
+
+
+abstract class ZendAfi_View_Helper_RenderAlbumDilicomPNBTestCase extends ZendAfi_View_Helper_RenderAlbumTestCase {
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->book = $this->fixture('Class_Album',
+																 ['id' => 3,
+																	'libelle' => 'Totem et Thora',
+																	'id_origine' => 'Dilicom-88817216',
+																	'external_uri' => 'http://www.edenlivres.fr/p/23416',
+																	'type_doc_id' => Class_TypeDoc::DILICOM,
+																	'usage_constraints' => [$this->fixture('Class_Album_UsageConstraint',
+																																				 ['id' => 1,
+																																					'id_album' => 3,
+																																					'usage_type' => Class_Album_UsageConstraint::LOAN_CONSTRAINT,
+																																					'order_line_id' => 'x321'])]]);
+		RessourcesNumeriquesFixtures::activateDilicom();
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		ZendAfi_Auth::getInstance()->clearIdentity();
+		parent::tearDown();
+	}
+}
 
+
+
+
+class ZendAfi_View_Helper_RenderAlbumDilicomPNBNotLoggedTest extends ZendAfi_View_Helper_RenderAlbumDilicomPNBTestCase {
+	public function setUp() {
+		parent::setUp();
+		ZendAfi_Auth::getInstance()->clearIdentity();
+		$this->_html = $this->_helper->renderAlbum($this->book);
+	}
+
+
+	/** @test */
+	public function htmlShouldNotContainsLinkToConsultBook() {
+		$this->assertNotXPathContentContains($this->_html,
+																				 '//a[contains(@href, "/bib-numerique/consult-book/id/3")]',
+																				 'Consulter le livre en ligne');
+	}
+
+
+	/** @test */
+	public function htmlShouldContainsMessageToIntroduceLogin() {
+		$this->assertXPathContentContains($this->_html, '//p', utf8_encode('Vous devez vous connecter pour accéder à la consultation en ligne.'));
+	}
 }
+
+
+
+
+class ZendAfi_View_Helper_RenderAlbumDilicomPNBTest extends ZendAfi_View_Helper_RenderAlbumDilicomPNBTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		$logged_user = $this->fixture('Class_Users',
+																	['id' => 6,
+																	 'nom'=>'Pito',
+																	 'login'=>'Chat',
+																	 'password'=>'123456',
+																	 'id_site' => 1,
+																	 'idabon' => '12345',
+																	 'user_groups' => [$this->fixture('Class_UserGroup',
+																																		['id' => '20',
+																																		 'libelle' => 'Multimedia',
+																																		 'rights' => [Class_UserGroup::RIGHT_ACCES_PNB_DILICOM]])]]);
+		$logged_user->beAbonneSIGB()->assertSave();
+		ZendAfi_Auth::getInstance()->logUser($logged_user);
+
+		$this->_html = $this->_helper->renderAlbum($this->book);
+	}
+
+
+	/** @test */
+	public function htmlShouldContainsIFrameOnEdenBook() {
+		$this->assertXPath($this->_html, '//iframe[@src="http://www.edenlivres.fr/p/23416"][@width="100%"][@height="600px"]', $this->_html);
+	}
+
+
+	/** @test */
+	public function htmlShouldContainsLinkToConsultBook() {
+		$this->assertXPathContentContains($this->_html,
+																			'//a[contains(@href, "/bib-numerique/consult-book/id/3")]',
+																			'Consulter le livre en ligne');
+	}
+}
+
+
 ?>
\ No newline at end of file
diff --git a/tests/library/ZendAfi/View/Helper/TagOrpheaRessourceTest.php b/tests/library/ZendAfi/View/Helper/TagOrpheaRessourceTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..cf1b08928e5ae7cd4fcefd0e7c551beff78a5d50
--- /dev/null
+++ b/tests/library/ZendAfi/View/Helper/TagOrpheaRessourceTest.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class ZendAfi_View_Helper_TagOrpheaRessourceTest extends ViewHelperTestCase {
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+
+		$album = $this->fixture('Class_Album',
+														['id' => 1,
+														 'titre' => 'Orphea Picture'])
+									->beOrphea();
+
+		$view = new ZendAfi_Controller_Action_Helper_View();
+		$this->_helper = new ZendAfi_View_Helper_TagOrpheaRessource();
+		$this->_helper->setView($view);
+		$this->_html = $this->_helper->tagOrpheaRessource($album);
+
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function contextShouldExpectation() {
+		$this->assertContains('<img src=', $this->_html);
+	}
+}
+?>
\ No newline at end of file
diff --git a/tests/library/ZendAfi/View/Helper/Telephone/KiosqueTest.php b/tests/library/ZendAfi/View/Helper/Telephone/KiosqueTest.php
index 5cba4a828a6f5574452f8d0e03a0a9afeb3a82fa..cb093e21fdc33319afeba6381b65507b9d644dfe 100644
--- a/tests/library/ZendAfi/View/Helper/Telephone/KiosqueTest.php
+++ b/tests/library/ZendAfi/View/Helper/Telephone/KiosqueTest.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php';
@@ -24,14 +24,30 @@ require_once 'library/ZendAfi/View/Helper/ViewHelperTestCase.php';
 class Telephone_KiosqueTest extends ViewHelperTestCase {
 	public function setUp() {
 		parent::setUp();
-		
+
+		$notice = Storm_Test_ObjectWrapper::mock();
+		$notice
+			->whenCalled('getTypeDoc')
+			->answers(8)
+			->whenCalled('getId')
+			->answers(10)
+			->whenCalled('getTitrePrincipal')
+			->answers('Programmers <br> Hell\'s "code"')
+			->whenCalled('fetchUrlVignette')
+			->with(true)
+			->answers('/img/hell_code.png');
+
+		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
+			->whenCalled('getNoticesByPreferences')
+			->answers([$notice]);
+
 		$module = new Class_Systeme_ModulesAccueil_Kiosque();
 		$options = $module->getDefaultValues();
 		$options['titre'] = 'Ze Kiosque';
 
-		$params = array('division' => '2',
-										'type_module' => 'KIOSQUE',
-										'preferences' => $options);
+		$params = ['division' => '2',
+							 'type_module' => 'KIOSQUE',
+							 'preferences' => $options];
 		$this->helper = new ZendAfi_View_Helper_Telephone_Kiosque(2, $params);
 		$this->helper->setView(new ZendAfi_Controller_Action_Helper_View());
 		$_SERVER["REQUEST_URI"] = BASE_URL;
@@ -50,7 +66,7 @@ class Telephone_KiosqueTest extends ViewHelperTestCase {
 
 	/** @test */
 	public function javascriptShouldBeLoaded() {
-		$this->assertXPath($this->scriptLoader->html(), 
+		$this->assertXPath($this->scriptLoader->html(),
 											 '//script[contains(@src, "kiosque-slideshow")]');
 	}
 
@@ -62,4 +78,9 @@ class Telephone_KiosqueTest extends ViewHelperTestCase {
 																				'$(\'#slideshow\').kiosqueSlideshow()');
 	}
 
+
+	/** @test */
+	public function imgTitleShouldBeEscaped() {
+		$this->assertXpath($this->html,'//a/img[@title=' . 'concat("Programmers <br> Hell", "\'", "s ", \'"\', \'code\', \'"\')' . ']');
+	}
 }
\ No newline at end of file
diff --git a/tests/library/ZendAfi/View/Helper/TreeSelectTest.php b/tests/library/ZendAfi/View/Helper/TreeSelectTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..05fff78c734cc1b133068f1a0b02d4f0cca06c70
--- /dev/null
+++ b/tests/library/ZendAfi/View/Helper/TreeSelectTest.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Copyright (c) 2012-2014, Agence Française Informatique (AFI). All rights reserved.
+ *
+ * BOKEH is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
+ * the Free Software Foundation.
+ *
+ * There are special exceptions to the terms and conditions of the AGPL as it
+ * is applied to this software (see README file).
+ *
+ * BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * along with BOKEH; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+
+class TreeSelectTestCase extends ViewHelperTestCase {
+
+
+	public function setUp() {
+		parent::setUp();
+		Storm_Model_Loader::defaultToVolatile();
+		$this->_helper = new ZendAfi_View_Helper_TreeSelect();
+		$this->_helper->setView(new ZendAfi_Controller_Action_Helper_View());
+		$this->_html = $this->_helper->treeSelect('1;1;1;2;3;4;5', '2;2;2;2;2;31', true, 'url', 'input');
+	}
+
+
+	public function tearDown() {
+		Storm_Model_Loader::defaultToDb();
+		parent::tearDown();
+	}
+
+
+	/** @test */
+	public function hiddenInputForItemsShouldContainsOnlyOne1() {
+		$this->assertXPath($this->_html,'//input[@name="id_items"][@type="hidden"][@value="1-2-3-4-5"]', $this->_html);
+	}
+
+
+	/** @test */
+	public function hiddenInputForDomainsShouldContainsOnlyOne2() {
+		$this->assertXPath($this->_html,'//input[@name="id_categorie"][@type="hidden"][@value="2-31"]', $this->_html);
+	}
+}
+?>
\ No newline at end of file
diff --git a/tests/library/ZendAfi/View/Helper/UrlNoticeTest.php b/tests/library/ZendAfi/View/Helper/UrlNoticeTest.php
index 3154ee4d3f67ad2436b79ae07855a6688a374e03..a77d6e19a711eb58cec833aa0cdf3df23799c992 100644
--- a/tests/library/ZendAfi/View/Helper/UrlNoticeTest.php
+++ b/tests/library/ZendAfi/View/Helper/UrlNoticeTest.php
@@ -16,25 +16,39 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
 class ZendAfi_View_Helper_UrlNoticeTest extends PHPUnit_Framework_TestCase {
 	public function Setup() {
 		parent::setup();
-		$notice= Class_Notice::newInstanceWithId(12)
-			->setClefAlpha('BULLETINYOURHEADRATM');
-		$preferences=[];
+		$this->notice= Class_Notice::newInstanceWithId(12,
+																									 ['clef_alpha' => 'BULLETINYOURHEADRATM']);
 		$this->_helper = new ZendAfi_View_Helper_UrlNotice();
 		$this->_helper->setView(new Zend_View());
-		$this->_html= $this->_helper->urlNotice($notice, $preferences);
 	}
 
-	
+
 	/** @test */
 	public function urlShouldBeReset() {
+		$this->_html= $this->_helper->urlNotice($this->notice, []);
 		$this->assertContains('/recherche/viewnotice/clef/BULLETINYOURHEADRATM/id/12', $this->_html);
 	}
+
+
+	/** @test */
+	public function withModulePreferenceShouldIncludeModule() {
+		$this->_html= $this->_helper->urlNotice($this->notice, ['module' => 'telephone']);
+		$this->assertContains('/telephone/recherche/viewnotice/clef/BULLETINYOURHEADRATM/id/12', $this->_html);
+	}
+
+
+	/** @test */
+	public function withModulePreferenceOnArticleShouldIncludeModule() {
+		$this->notice->setTypeDoc(Class_TypeDoc::ARTICLE);
+		$this->_html= $this->_helper->urlNotice($this->notice, ['module' => 'telephone']);
+		$this->assertContains('/telephone/cms/articleview', $this->_html);
+	}
 }
 ?>
\ No newline at end of file