Index: admin/_charte.php
===================================================================
--- admin/_charte.php	(revision 2760)
+++ admin/_charte.php	(revision 3355)
@@ -79,6 +79,6 @@
 	<div id="wrapper" class="clearfix">
 		<div class="hidden-if-no-js collapser-box"><a href="#" id="collapser">
-		<img class="collapse-mm" src="images/collapser-hide.png" alt="Cacher le menu" />
-		<img class="expand-mm" src="images/collapser-show.png" alt="Montrer le menu" />
+		<img class="collapse-mm visually-hidden" src="images/collapser-hide.png" alt="Cacher le menu" />
+		<img class="expand-mm visually-hidden" src="images/collapser-show.png" alt="Montrer le menu" />
 		</a></div>
 		<div id="main">
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 3270)
+++ admin/blog_pref.php	(revision 3330)
@@ -313,4 +313,9 @@
 
 $desc_editor = $core->auth->getOption('editor');
+$rte_flag = true;
+$rte_flags  = @$core->auth->user_prefs->interface->rte_flags;
+if (is_array($rte_flags) && in_array('blog_descr',$rte_flags)) {
+	$rte_flag = $rte_flags['blog_descr'];
+}
 
 dcPage::open(__('Blog settings'),
@@ -324,7 +329,6 @@
 	"</script>".
 	dcPage::jsConfirmClose('blog-form').
-	$core->callBehavior('adminPostEditor',$desc_editor['xhtml'],'blog_desc',array('#blog_desc'),'xhtml').
+	($rte_flag ? $core->callBehavior('adminPostEditor',$desc_editor['xhtml'],'blog_desc',array('#blog_desc'),'xhtml') : '').
 	dcPage::jsLoad('js/_blog_pref.js').
-
 
 	# --BEHAVIOR-- adminBlogPreferencesHeaders
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 3210)
+++ admin/categories.php	(revision 3340)
@@ -47,5 +47,5 @@
 		$mov_cat = (int) $_POST['mov_cat'][$cat_id];
 
-		$mov_cat = $mov_cat ? $mov_cat : null;
+		$mov_cat = $mov_cat ?: null;
 		if ($mov_cat !== null) {
 			$c = $core->blog->getCategory($mov_cat);
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 3209)
+++ admin/category.php	(revision 3330)
@@ -175,9 +175,14 @@
 
 $category_editor = $core->auth->getOption('editor');
+$rte_flag = true;
+$rte_flags  = @$core->auth->user_prefs->interface->rte_flags;
+if (is_array($rte_flags) && in_array('cat_descr',$rte_flags)) {
+	$rte_flag = $rte_flags['cat_descr'];
+}
 
 dcPage::open($title,
 	dcPage::jsConfirmClose('category-form').
 	dcPage::jsLoad('js/_category.js').
-	$core->callBehavior('adminPostEditor',$category_editor['xhtml'],'category',array('#cat_desc'),'xhtml'),
+	($rte_flag ? $core->callBehavior('adminPostEditor',$category_editor['xhtml'],'category',array('#cat_desc'),'xhtml') : ''),
 	dcPage::breadcrumb($elements)
 );
Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 3263)
+++ admin/comments.php	(revision 3360)
@@ -43,7 +43,14 @@
 __('Date') => 'comment_dt',
 __('Entry title') => 'post_title',
+__('Entry date') => 'post_dt',
 __('Author') => 'comment_author',
 __('Status') => 'comment_status'
 );
+
+$sortby_lex = array(
+	// key in sorty_combo (see above) => field in SQL request
+	'post_title' => 'post_title',
+	'comment_author' => 'comment_author',
+	'comment_spam_filter' => 'comment_spam_filter');
 
 $order_combo = array(
@@ -133,6 +140,11 @@
 # Sortby and order filter
 if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
+	if (array_key_exists($sortby,$sortby_lex)) {
+		$params['order'] = $core->con->lexFields($sortby_lex[$sortby]);
+	} else {
+		$params['order'] = $sortby;
+	}
 	if ($order !== '' && in_array($order,$order_combo)) {
-		$params['order'] = $sortby.' '.$order;
+		$params['order'] .= ' '.$order;
 	} else {
 		$order = 'desc';
Index: admin/csp_report.php
===================================================================
--- admin/csp_report.php	(revision 3293)
+++ admin/csp_report.php	(revision 3324)
@@ -8,6 +8,8 @@
 header('X-Content-Type-Options: "nosniff"');
 
+require dirname(__FILE__).'/../inc/admin/prepend.php';
+
 // Specify log file
-define('LOGFILE',dirname(__FILE__).'/csp_report.txt');
+define('LOGFILE',path::real(DC_TPL_CACHE).'/csp_report.txt');
 
 // Get the raw POST data
Index: admin/install/index.php
===================================================================
--- admin/install/index.php	(revision 3303)
+++ admin/install/index.php	(revision 3326)
@@ -172,4 +172,5 @@
 		# CSP directive (admin part)
 		$blog_settings->system->put('csp_admin_on',true,'boolean','Send CSP header (admin)',true,true);
+		$blog_settings->system->put('csp_admin_report_only',false,'boolean','CSP Report only violations (admin)',true,true);
 		$blog_settings->system->put('csp_admin_default',"'self'",'string','CSP default-src directive',true,true);
 		$blog_settings->system->put('csp_admin_script',"'self' 'unsafe-inline' 'unsafe-eval'",'string','CSP script-src directive',true,true);
Index: admin/js/_media.js
===================================================================
--- admin/js/_media.js	(revision 3182)
+++ admin/js/_media.js	(revision 3369)
@@ -65,5 +65,6 @@
 				downloadTemplate: template_download
 			}).bind('fileuploadadd', function(e, data) {
-				$('.button.cancel','#fileupload .fileupload-buttonbar').show();
+				$('.button.cancel').css('display','inline-block');
+				$('#fileupload .fileupload-buttonbar').show();
 				enableButton($('.button.start','#fileupload .fileupload-buttonbar'));
 			}).bind('fileuploadadded', function(e, data) {
@@ -74,5 +75,6 @@
 					$('#form-medias .hide').removeClass('hide');
 				}
-				$('.button.clean',me).show();
+				$('.button.clean').css('display','inline-block');
+				$(me).show();
 			}).bind('fileuploadalways', function(e, data) {
 				displayMessageInQueue($('.files .template-upload',me).length);
@@ -113,7 +115,10 @@
 					label = dotclear.jsUpload.msg.choose_files;
 					$('#upfile').attr('multiple', true);
-					var startButton = $('.button.start','#fileupload .fileupload-buttonbar');
+					var startButton = $('.button.start');
+					var buttonBar = $('#fileupload .fileupload-buttonbar');
 					disableButton(startButton);
-					startButton.show();
+					disableButton(buttonBar);
+					startButton.css('display','inline-block');
+					buttonBar.show();
 					$(me).fileupload({disabled:false});
 					$('.queue-message',me).show();
@@ -148,4 +153,7 @@
 	});
 
+	// Preview media
+	$('.modal-image').magnificPopup({ type:'image' });
+
 	// attach media
 	$('#form-medias').on('click', '.media-item .attach-media', function(e) {
Index: admin/js/_media_item.js
===================================================================
--- admin/js/_media_item.js	(revision 2454)
+++ admin/js/_media_item.js	(revision 3369)
@@ -7,4 +7,7 @@
 		post_dtPick.draw();
 	}
+
+	// Preview media
+	$('.modal-image').magnificPopup({ type:'image' });
 
 	// Display zip file content
Index: admin/js/_post.js
===================================================================
--- admin/js/_post.js	(revision 3241)
+++ admin/js/_post.js	(revision 3368)
@@ -63,5 +63,16 @@
 		if (window.location.protocol == $preview_url.substring(0,window.location.protocol.length)) {
 			// Open preview in a modal iframe
-			$('#post-preview').modalWeb($(window).width()-40,$(window).height()-40);
+			$('#post-preview').magnificPopup({
+				type:'iframe',
+				iframe: {
+					patterns: {
+						dotclear: {
+							index: $preview_url,
+							id: 1,
+							src: $preview_url
+						}
+					}
+				}
+			});
 		} else {
 			// Open preview on antother window
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 3294)
+++ admin/js/common.js	(revision 3332)
@@ -604,6 +604,7 @@
         });
 
-        $('#gototop').click(function() {
+        $('#gototop').click(function(e) {
             $('body,html').animate({scrollTop:0},800);
+            e.preventDefault();
         });
 });
Index: dmin/js/dragsort-tablerows.js
===================================================================
--- admin/js/dragsort-tablerows.js	(revision 2566)
+++ 	(revision )
@@ -1,30 +1,0 @@
-ToolMan._dragsortFactory.makeTableSortable = function(table) {
-	if (table == null) return;
-
-	var helpers = ToolMan.helpers();
-	var coordinates = ToolMan.coordinates();
-	var items = table.getElementsByTagName("tr");
-
-	helpers.map(items, function(item) {
-		var dragGroup = dragsort.makeSortable(item);
-		dragGroup.setThreshold(4);
-		var min, max;
-		dragGroup.addTransform(function(coordinate, dragEvent) {
-			return coordinate.constrainTo(min, max);
-		});
-		dragGroup.register('dragstart', function() {
-			var items = table.getElementsByTagName("tr");
-			min = max = coordinates.topLeftOffset(items[0]);
-			for (var i = 1, n = items.length; i < n; i++) {
-				var offset = coordinates.topLeftOffset(items[i]);
-				min = min.min(offset);
-				max = max.max(offset);
-			}
-		});
-	});
-	for (var i = 1, n = arguments.length; i < n; i++) {
-		helpers.map(items, arguments[i]);
-	}
-};
-
-ToolMan._dragsortFactory.registerOrder = function(dest) { };
Index: admin/js/jquery/jquery.magnific-popup.js
===================================================================
--- admin/js/jquery/jquery.magnific-popup.js	(revision 3368)
+++ admin/js/jquery/jquery.magnific-popup.js	(revision 3368)
@@ -0,0 +1,1860 @@
+/*! Magnific Popup - v1.1.0 - 2016-02-20
+* http://dimsemenov.com/plugins/magnific-popup/
+* Copyright (c) 2016 Dmitry Semenov; */
+;(function (factory) {
+if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ // Node/CommonJS
+ factory(require('jquery'));
+ } else {
+ // Browser globals
+ factory(window.jQuery || window.Zepto);
+ }
+ }(function($) {
+
+/*>>core*/
+/**
+ *
+ * Magnific Popup Core JS file
+ *
+ */
+
+
+/**
+ * Private static constants
+ */
+var CLOSE_EVENT = 'Close',
+	BEFORE_CLOSE_EVENT = 'BeforeClose',
+	AFTER_CLOSE_EVENT = 'AfterClose',
+	BEFORE_APPEND_EVENT = 'BeforeAppend',
+	MARKUP_PARSE_EVENT = 'MarkupParse',
+	OPEN_EVENT = 'Open',
+	CHANGE_EVENT = 'Change',
+	NS = 'mfp',
+	EVENT_NS = '.' + NS,
+	READY_CLASS = 'mfp-ready',
+	REMOVING_CLASS = 'mfp-removing',
+	PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
+
+
+/**
+ * Private vars
+ */
+/*jshint -W079 */
+var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
+	MagnificPopup = function(){},
+	_isJQ = !!(window.jQuery),
+	_prevStatus,
+	_window = $(window),
+	_document,
+	_prevContentType,
+	_wrapClasses,
+	_currPopupType;
+
+
+/**
+ * Private functions
+ */
+var _mfpOn = function(name, f) {
+		mfp.ev.on(NS + name + EVENT_NS, f);
+	},
+	_getEl = function(className, appendTo, html, raw) {
+		var el = document.createElement('div');
+		el.className = 'mfp-'+className;
+		if(html) {
+			el.innerHTML = html;
+		}
+		if(!raw) {
+			el = $(el);
+			if(appendTo) {
+				el.appendTo(appendTo);
+			}
+		} else if(appendTo) {
+			appendTo.appendChild(el);
+		}
+		return el;
+	},
+	_mfpTrigger = function(e, data) {
+		mfp.ev.triggerHandler(NS + e, data);
+
+		if(mfp.st.callbacks) {
+			// converts "mfpEventName" to "eventName" callback and triggers it if it's present
+			e = e.charAt(0).toLowerCase() + e.slice(1);
+			if(mfp.st.callbacks[e]) {
+				mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
+			}
+		}
+	},
+	_getCloseBtn = function(type) {
+		if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
+			mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
+			_currPopupType = type;
+		}
+		return mfp.currTemplate.closeBtn;
+	},
+	// Initialize Magnific Popup only when called at least once
+	_checkInstance = function() {
+		if(!$.magnificPopup.instance) {
+			/*jshint -W020 */
+			mfp = new MagnificPopup();
+			mfp.init();
+			$.magnificPopup.instance = mfp;
+		}
+	},
+	// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
+	supportsTransitions = function() {
+		var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
+			v = ['ms','O','Moz','Webkit']; // 'v' for vendor
+
+		if( s['transition'] !== undefined ) {
+			return true;
+		}
+
+		while( v.length ) {
+			if( v.pop() + 'Transition' in s ) {
+				return true;
+			}
+		}
+
+		return false;
+	};
+
+
+
+/**
+ * Public functions
+ */
+MagnificPopup.prototype = {
+
+	constructor: MagnificPopup,
+
+	/**
+	 * Initializes Magnific Popup plugin.
+	 * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
+	 */
+	init: function() {
+		var appVersion = navigator.appVersion;
+		mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
+		mfp.isAndroid = (/android/gi).test(appVersion);
+		mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
+		mfp.supportsTransition = supportsTransitions();
+
+		// We disable fixed positioned lightbox on devices that don't handle it nicely.
+		// If you know a better way of detecting this - let me know.
+		mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
+		_document = $(document);
+
+		mfp.popupsCache = {};
+	},
+
+	/**
+	 * Opens popup
+	 * @param  data [description]
+	 */
+	open: function(data) {
+
+		var i;
+
+		if(data.isObj === false) {
+			// convert jQuery collection to array to avoid conflicts later
+			mfp.items = data.items.toArray();
+
+			mfp.index = 0;
+			var items = data.items,
+				item;
+			for(i = 0; i < items.length; i++) {
+				item = items[i];
+				if(item.parsed) {
+					item = item.el[0];
+				}
+				if(item === data.el[0]) {
+					mfp.index = i;
+					break;
+				}
+			}
+		} else {
+			mfp.items = $.isArray(data.items) ? data.items : [data.items];
+			mfp.index = data.index || 0;
+		}
+
+		// if popup is already opened - we just update the content
+		if(mfp.isOpen) {
+			mfp.updateItemHTML();
+			return;
+		}
+
+		mfp.types = [];
+		_wrapClasses = '';
+		if(data.mainEl && data.mainEl.length) {
+			mfp.ev = data.mainEl.eq(0);
+		} else {
+			mfp.ev = _document;
+		}
+
+		if(data.key) {
+			if(!mfp.popupsCache[data.key]) {
+				mfp.popupsCache[data.key] = {};
+			}
+			mfp.currTemplate = mfp.popupsCache[data.key];
+		} else {
+			mfp.currTemplate = {};
+		}
+
+
+
+		mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
+		mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
+
+		if(mfp.st.modal) {
+			mfp.st.closeOnContentClick = false;
+			mfp.st.closeOnBgClick = false;
+			mfp.st.showCloseBtn = false;
+			mfp.st.enableEscapeKey = false;
+		}
+
+
+		// Building markup
+		// main containers are created only once
+		if(!mfp.bgOverlay) {
+
+			// Dark overlay
+			mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
+				mfp.close();
+			});
+
+			mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
+				if(mfp._checkIfClose(e.target)) {
+					mfp.close();
+				}
+			});
+
+			mfp.container = _getEl('container', mfp.wrap);
+		}
+
+		mfp.contentContainer = _getEl('content');
+		if(mfp.st.preloader) {
+			mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
+		}
+
+
+		// Initializing modules
+		var modules = $.magnificPopup.modules;
+		for(i = 0; i < modules.length; i++) {
+			var n = modules[i];
+			n = n.charAt(0).toUpperCase() + n.slice(1);
+			mfp['init'+n].call(mfp);
+		}
+		_mfpTrigger('BeforeOpen');
+
+
+		if(mfp.st.showCloseBtn) {
+			// Close button
+			if(!mfp.st.closeBtnInside) {
+				mfp.wrap.append( _getCloseBtn() );
+			} else {
+				_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
+					values.close_replaceWith = _getCloseBtn(item.type);
+				});
+				_wrapClasses += ' mfp-close-btn-in';
+			}
+		}
+
+		if(mfp.st.alignTop) {
+			_wrapClasses += ' mfp-align-top';
+		}
+
+
+
+		if(mfp.fixedContentPos) {
+			mfp.wrap.css({
+				overflow: mfp.st.overflowY,
+				overflowX: 'hidden',
+				overflowY: mfp.st.overflowY
+			});
+		} else {
+			mfp.wrap.css({
+				top: _window.scrollTop(),
+				position: 'absolute'
+			});
+		}
+		if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
+			mfp.bgOverlay.css({
+				height: _document.height(),
+				position: 'absolute'
+			});
+		}
+
+
+
+		if(mfp.st.enableEscapeKey) {
+			// Close on ESC key
+			_document.on('keyup' + EVENT_NS, function(e) {
+				if(e.keyCode === 27) {
+					mfp.close();
+				}
+			});
+		}
+
+		_window.on('resize' + EVENT_NS, function() {
+			mfp.updateSize();
+		});
+
+
+		if(!mfp.st.closeOnContentClick) {
+			_wrapClasses += ' mfp-auto-cursor';
+		}
+
+		if(_wrapClasses)
+			mfp.wrap.addClass(_wrapClasses);
+
+
+		// this triggers recalculation of layout, so we get it once to not to trigger twice
+		var windowHeight = mfp.wH = _window.height();
+
+
+		var windowStyles = {};
+
+		if( mfp.fixedContentPos ) {
+            if(mfp._hasScrollBar(windowHeight)){
+                var s = mfp._getScrollbarSize();
+                if(s) {
+                    windowStyles.marginRight = s;
+                }
+            }
+        }
+
+		if(mfp.fixedContentPos) {
+			if(!mfp.isIE7) {
+				windowStyles.overflow = 'hidden';
+			} else {
+				// ie7 double-scroll bug
+				$('body, html').css('overflow', 'hidden');
+			}
+		}
+
+
+
+		var classesToadd = mfp.st.mainClass;
+		if(mfp.isIE7) {
+			classesToadd += ' mfp-ie7';
+		}
+		if(classesToadd) {
+			mfp._addClassToMFP( classesToadd );
+		}
+
+		// add content
+		mfp.updateItemHTML();
+
+		_mfpTrigger('BuildControls');
+
+		// remove scrollbar, add margin e.t.c
+		$('html').css(windowStyles);
+
+		// add everything to DOM
+		mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
+
+		// Save last focused element
+		mfp._lastFocusedEl = document.activeElement;
+
+		// Wait for next cycle to allow CSS transition
+		setTimeout(function() {
+
+			if(mfp.content) {
+				mfp._addClassToMFP(READY_CLASS);
+				mfp._setFocus();
+			} else {
+				// if content is not defined (not loaded e.t.c) we add class only for BG
+				mfp.bgOverlay.addClass(READY_CLASS);
+			}
+
+			// Trap the focus in popup
+			_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
+
+		}, 16);
+
+		mfp.isOpen = true;
+		mfp.updateSize(windowHeight);
+		_mfpTrigger(OPEN_EVENT);
+
+		return data;
+	},
+
+	/**
+	 * Closes the popup
+	 */
+	close: function() {
+		if(!mfp.isOpen) return;
+		_mfpTrigger(BEFORE_CLOSE_EVENT);
+
+		mfp.isOpen = false;
+		// for CSS3 animation
+		if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition )  {
+			mfp._addClassToMFP(REMOVING_CLASS);
+			setTimeout(function() {
+				mfp._close();
+			}, mfp.st.removalDelay);
+		} else {
+			mfp._close();
+		}
+	},
+
+	/**
+	 * Helper for close() function
+	 */
+	_close: function() {
+		_mfpTrigger(CLOSE_EVENT);
+
+		var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
+
+		mfp.bgOverlay.detach();
+		mfp.wrap.detach();
+		mfp.container.empty();
+
+		if(mfp.st.mainClass) {
+			classesToRemove += mfp.st.mainClass + ' ';
+		}
+
+		mfp._removeClassFromMFP(classesToRemove);
+
+		if(mfp.fixedContentPos) {
+			var windowStyles = {marginRight: ''};
+			if(mfp.isIE7) {
+				$('body, html').css('overflow', '');
+			} else {
+				windowStyles.overflow = '';
+			}
+			$('html').css(windowStyles);
+		}
+
+		_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
+		mfp.ev.off(EVENT_NS);
+
+		// clean up DOM elements that aren't removed
+		mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
+		mfp.bgOverlay.attr('class', 'mfp-bg');
+		mfp.container.attr('class', 'mfp-container');
+
+		// remove close button from target element
+		if(mfp.st.showCloseBtn &&
+		(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
+			if(mfp.currTemplate.closeBtn)
+				mfp.currTemplate.closeBtn.detach();
+		}
+
+
+		if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
+			$(mfp._lastFocusedEl).focus(); // put tab focus back
+		}
+		mfp.currItem = null;
+		mfp.content = null;
+		mfp.currTemplate = null;
+		mfp.prevHeight = 0;
+
+		_mfpTrigger(AFTER_CLOSE_EVENT);
+	},
+
+	updateSize: function(winHeight) {
+
+		if(mfp.isIOS) {
+			// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
+			var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
+			var height = window.innerHeight * zoomLevel;
+			mfp.wrap.css('height', height);
+			mfp.wH = height;
+		} else {
+			mfp.wH = winHeight || _window.height();
+		}
+		// Fixes #84: popup incorrectly positioned with position:relative on body
+		if(!mfp.fixedContentPos) {
+			mfp.wrap.css('height', mfp.wH);
+		}
+
+		_mfpTrigger('Resize');
+
+	},
+
+	/**
+	 * Set content of popup based on current index
+	 */
+	updateItemHTML: function() {
+		var item = mfp.items[mfp.index];
+
+		// Detach and perform modifications
+		mfp.contentContainer.detach();
+
+		if(mfp.content)
+			mfp.content.detach();
+
+		if(!item.parsed) {
+			item = mfp.parseEl( mfp.index );
+		}
+
+		var type = item.type;
+
+		_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
+		// BeforeChange event works like so:
+		// _mfpOn('BeforeChange', function(e, prevType, newType) { });
+
+		mfp.currItem = item;
+
+		if(!mfp.currTemplate[type]) {
+			var markup = mfp.st[type] ? mfp.st[type].markup : false;
+
+			// allows to modify markup
+			_mfpTrigger('FirstMarkupParse', markup);
+
+			if(markup) {
+				mfp.currTemplate[type] = $(markup);
+			} else {
+				// if there is no markup found we just define that template is parsed
+				mfp.currTemplate[type] = true;
+			}
+		}
+
+		if(_prevContentType && _prevContentType !== item.type) {
+			mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
+		}
+
+		var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
+		mfp.appendContent(newContent, type);
+
+		item.preloaded = true;
+
+		_mfpTrigger(CHANGE_EVENT, item);
+		_prevContentType = item.type;
+
+		// Append container back after its content changed
+		mfp.container.prepend(mfp.contentContainer);
+
+		_mfpTrigger('AfterChange');
+	},
+
+
+	/**
+	 * Set HTML content of popup
+	 */
+	appendContent: function(newContent, type) {
+		mfp.content = newContent;
+
+		if(newContent) {
+			if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
+				mfp.currTemplate[type] === true) {
+				// if there is no markup, we just append close button element inside
+				if(!mfp.content.find('.mfp-close').length) {
+					mfp.content.append(_getCloseBtn());
+				}
+			} else {
+				mfp.content = newContent;
+			}
+		} else {
+			mfp.content = '';
+		}
+
+		_mfpTrigger(BEFORE_APPEND_EVENT);
+		mfp.container.addClass('mfp-'+type+'-holder');
+
+		mfp.contentContainer.append(mfp.content);
+	},
+
+
+	/**
+	 * Creates Magnific Popup data object based on given data
+	 * @param  {int} index Index of item to parse
+	 */
+	parseEl: function(index) {
+		var item = mfp.items[index],
+			type;
+
+		if(item.tagName) {
+			item = { el: $(item) };
+		} else {
+			type = item.type;
+			item = { data: item, src: item.src };
+		}
+
+		if(item.el) {
+			var types = mfp.types;
+
+			// check for 'mfp-TYPE' class
+			for(var i = 0; i < types.length; i++) {
+				if( item.el.hasClass('mfp-'+types[i]) ) {
+					type = types[i];
+					break;
+				}
+			}
+
+			item.src = item.el.attr('data-mfp-src');
+			if(!item.src) {
+				item.src = item.el.attr('href');
+			}
+		}
+
+		item.type = type || mfp.st.type || 'inline';
+		item.index = index;
+		item.parsed = true;
+		mfp.items[index] = item;
+		_mfpTrigger('ElementParse', item);
+
+		return mfp.items[index];
+	},
+
+
+	/**
+	 * Initializes single popup or a group of popups
+	 */
+	addGroup: function(el, options) {
+		var eHandler = function(e) {
+			e.mfpEl = this;
+			mfp._openClick(e, el, options);
+		};
+
+		if(!options) {
+			options = {};
+		}
+
+		var eName = 'click.magnificPopup';
+		options.mainEl = el;
+
+		if(options.items) {
+			options.isObj = true;
+			el.off(eName).on(eName, eHandler);
+		} else {
+			options.isObj = false;
+			if(options.delegate) {
+				el.off(eName).on(eName, options.delegate , eHandler);
+			} else {
+				options.items = el;
+				el.off(eName).on(eName, eHandler);
+			}
+		}
+	},
+	_openClick: function(e, el, options) {
+		var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
+
+
+		if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
+			return;
+		}
+
+		var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
+
+		if(disableOn) {
+			if($.isFunction(disableOn)) {
+				if( !disableOn.call(mfp) ) {
+					return true;
+				}
+			} else { // else it's number
+				if( _window.width() < disableOn ) {
+					return true;
+				}
+			}
+		}
+
+		if(e.type) {
+			e.preventDefault();
+
+			// This will prevent popup from closing if element is inside and popup is already opened
+			if(mfp.isOpen) {
+				e.stopPropagation();
+			}
+		}
+
+		options.el = $(e.mfpEl);
+		if(options.delegate) {
+			options.items = el.find(options.delegate);
+		}
+		mfp.open(options);
+	},
+
+
+	/**
+	 * Updates text on preloader
+	 */
+	updateStatus: function(status, text) {
+
+		if(mfp.preloader) {
+			if(_prevStatus !== status) {
+				mfp.container.removeClass('mfp-s-'+_prevStatus);
+			}
+
+			if(!text && status === 'loading') {
+				text = mfp.st.tLoading;
+			}
+
+			var data = {
+				status: status,
+				text: text
+			};
+			// allows to modify status
+			_mfpTrigger('UpdateStatus', data);
+
+			status = data.status;
+			text = data.text;
+
+			mfp.preloader.html(text);
+
+			mfp.preloader.find('a').on('click', function(e) {
+				e.stopImmediatePropagation();
+			});
+
+			mfp.container.addClass('mfp-s-'+status);
+			_prevStatus = status;
+		}
+	},
+
+
+	/*
+		"Private" helpers that aren't private at all
+	 */
+	// Check to close popup or not
+	// "target" is an element that was clicked
+	_checkIfClose: function(target) {
+
+		if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
+			return;
+		}
+
+		var closeOnContent = mfp.st.closeOnContentClick;
+		var closeOnBg = mfp.st.closeOnBgClick;
+
+		if(closeOnContent && closeOnBg) {
+			return true;
+		} else {
+
+			// We close the popup if click is on close button or on preloader. Or if there is no content.
+			if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
+				return true;
+			}
+
+			// if click is outside the content
+			if(  (target !== mfp.content[0] && !$.contains(mfp.content[0], target))  ) {
+				if(closeOnBg) {
+					// last check, if the clicked element is in DOM, (in case it's removed onclick)
+					if( $.contains(document, target) ) {
+						return true;
+					}
+				}
+			} else if(closeOnContent) {
+				return true;
+			}
+
+		}
+		return false;
+	},
+	_addClassToMFP: function(cName) {
+		mfp.bgOverlay.addClass(cName);
+		mfp.wrap.addClass(cName);
+	},
+	_removeClassFromMFP: function(cName) {
+		this.bgOverlay.removeClass(cName);
+		mfp.wrap.removeClass(cName);
+	},
+	_hasScrollBar: function(winHeight) {
+		return (  (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
+	},
+	_setFocus: function() {
+		(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
+	},
+	_onFocusIn: function(e) {
+		if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
+			mfp._setFocus();
+			return false;
+		}
+	},
+	_parseMarkup: function(template, values, item) {
+		var arr;
+		if(item.data) {
+			values = $.extend(item.data, values);
+		}
+		_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
+
+		$.each(values, function(key, value) {
+			if(value === undefined || value === false) {
+				return true;
+			}
+			arr = key.split('_');
+			if(arr.length > 1) {
+				var el = template.find(EVENT_NS + '-'+arr[0]);
+
+				if(el.length > 0) {
+					var attr = arr[1];
+					if(attr === 'replaceWith') {
+						if(el[0] !== value[0]) {
+							el.replaceWith(value);
+						}
+					} else if(attr === 'img') {
+						if(el.is('img')) {
+							el.attr('src', value);
+						} else {
+							el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
+						}
+					} else {
+						el.attr(arr[1], value);
+					}
+				}
+
+			} else {
+				template.find(EVENT_NS + '-'+key).html(value);
+			}
+		});
+	},
+
+	_getScrollbarSize: function() {
+		// thx David
+		if(mfp.scrollbarSize === undefined) {
+			var scrollDiv = document.createElement("div");
+			scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
+			document.body.appendChild(scrollDiv);
+			mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
+			document.body.removeChild(scrollDiv);
+		}
+		return mfp.scrollbarSize;
+	}
+
+}; /* MagnificPopup core prototype end */
+
+
+
+
+/**
+ * Public static functions
+ */
+$.magnificPopup = {
+	instance: null,
+	proto: MagnificPopup.prototype,
+	modules: [],
+
+	open: function(options, index) {
+		_checkInstance();
+
+		if(!options) {
+			options = {};
+		} else {
+			options = $.extend(true, {}, options);
+		}
+
+		options.isObj = true;
+		options.index = index || 0;
+		return this.instance.open(options);
+	},
+
+	close: function() {
+		return $.magnificPopup.instance && $.magnificPopup.instance.close();
+	},
+
+	registerModule: function(name, module) {
+		if(module.options) {
+			$.magnificPopup.defaults[name] = module.options;
+		}
+		$.extend(this.proto, module.proto);
+		this.modules.push(name);
+	},
+
+	defaults: {
+
+		// Info about options is in docs:
+		// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
+
+		disableOn: 0,
+
+		key: null,
+
+		midClick: false,
+
+		mainClass: '',
+
+		preloader: true,
+
+		focus: '', // CSS selector of input to focus after popup is opened
+
+		closeOnContentClick: false,
+
+		closeOnBgClick: true,
+
+		closeBtnInside: true,
+
+		showCloseBtn: true,
+
+		enableEscapeKey: true,
+
+		modal: false,
+
+		alignTop: false,
+
+		removalDelay: 0,
+
+		prependTo: null,
+
+		fixedContentPos: 'auto',
+
+		fixedBgPos: 'auto',
+
+		overflowY: 'auto',
+
+		closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
+
+		tClose: 'Close (Esc)',
+
+		tLoading: 'Loading...',
+
+		autoFocusLast: true
+
+	}
+};
+
+
+
+$.fn.magnificPopup = function(options) {
+	_checkInstance();
+
+	var jqEl = $(this);
+
+	// We call some API method of first param is a string
+	if (typeof options === "string" ) {
+
+		if(options === 'open') {
+			var items,
+				itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
+				index = parseInt(arguments[1], 10) || 0;
+
+			if(itemOpts.items) {
+				items = itemOpts.items[index];
+			} else {
+				items = jqEl;
+				if(itemOpts.delegate) {
+					items = items.find(itemOpts.delegate);
+				}
+				items = items.eq( index );
+			}
+			mfp._openClick({mfpEl:items}, jqEl, itemOpts);
+		} else {
+			if(mfp.isOpen)
+				mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
+		}
+
+	} else {
+		// clone options obj
+		options = $.extend(true, {}, options);
+
+		/*
+		 * As Zepto doesn't support .data() method for objects
+		 * and it works only in normal browsers
+		 * we assign "options" object directly to the DOM element. FTW!
+		 */
+		if(_isJQ) {
+			jqEl.data('magnificPopup', options);
+		} else {
+			jqEl[0].magnificPopup = options;
+		}
+
+		mfp.addGroup(jqEl, options);
+
+	}
+	return jqEl;
+};
+
+/*>>core*/
+
+/*>>inline*/
+
+var INLINE_NS = 'inline',
+	_hiddenClass,
+	_inlinePlaceholder,
+	_lastInlineElement,
+	_putInlineElementsBack = function() {
+		if(_lastInlineElement) {
+			_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
+			_lastInlineElement = null;
+		}
+	};
+
+$.magnificPopup.registerModule(INLINE_NS, {
+	options: {
+		hiddenClass: 'hide', // will be appended with `mfp-` prefix
+		markup: '',
+		tNotFound: 'Content not found'
+	},
+	proto: {
+
+		initInline: function() {
+			mfp.types.push(INLINE_NS);
+
+			_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
+				_putInlineElementsBack();
+			});
+		},
+
+		getInline: function(item, template) {
+
+			_putInlineElementsBack();
+
+			if(item.src) {
+				var inlineSt = mfp.st.inline,
+					el = $(item.src);
+
+				if(el.length) {
+
+					// If target element has parent - we replace it with placeholder and put it back after popup is closed
+					var parent = el[0].parentNode;
+					if(parent && parent.tagName) {
+						if(!_inlinePlaceholder) {
+							_hiddenClass = inlineSt.hiddenClass;
+							_inlinePlaceholder = _getEl(_hiddenClass);
+							_hiddenClass = 'mfp-'+_hiddenClass;
+						}
+						// replace target inline element with placeholder
+						_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
+					}
+
+					mfp.updateStatus('ready');
+				} else {
+					mfp.updateStatus('error', inlineSt.tNotFound);
+					el = $('<div>');
+				}
+
+				item.inlineElement = el;
+				return el;
+			}
+
+			mfp.updateStatus('ready');
+			mfp._parseMarkup(template, {}, item);
+			return template;
+		}
+	}
+});
+
+/*>>inline*/
+
+/*>>ajax*/
+var AJAX_NS = 'ajax',
+	_ajaxCur,
+	_removeAjaxCursor = function() {
+		if(_ajaxCur) {
+			$(document.body).removeClass(_ajaxCur);
+		}
+	},
+	_destroyAjaxRequest = function() {
+		_removeAjaxCursor();
+		if(mfp.req) {
+			mfp.req.abort();
+		}
+	};
+
+$.magnificPopup.registerModule(AJAX_NS, {
+
+	options: {
+		settings: null,
+		cursor: 'mfp-ajax-cur',
+		tError: '<a href="%url%">The content</a> could not be loaded.'
+	},
+
+	proto: {
+		initAjax: function() {
+			mfp.types.push(AJAX_NS);
+			_ajaxCur = mfp.st.ajax.cursor;
+
+			_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
+			_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
+		},
+		getAjax: function(item) {
+
+			if(_ajaxCur) {
+				$(document.body).addClass(_ajaxCur);
+			}
+
+			mfp.updateStatus('loading');
+
+			var opts = $.extend({
+				url: item.src,
+				success: function(data, textStatus, jqXHR) {
+					var temp = {
+						data:data,
+						xhr:jqXHR
+					};
+
+					_mfpTrigger('ParseAjax', temp);
+
+					mfp.appendContent( $(temp.data), AJAX_NS );
+
+					item.finished = true;
+
+					_removeAjaxCursor();
+
+					mfp._setFocus();
+
+					setTimeout(function() {
+						mfp.wrap.addClass(READY_CLASS);
+					}, 16);
+
+					mfp.updateStatus('ready');
+
+					_mfpTrigger('AjaxContentAdded');
+				},
+				error: function() {
+					_removeAjaxCursor();
+					item.finished = item.loadError = true;
+					mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
+				}
+			}, mfp.st.ajax.settings);
+
+			mfp.req = $.ajax(opts);
+
+			return '';
+		}
+	}
+});
+
+/*>>ajax*/
+
+/*>>image*/
+var _imgInterval,
+	_getTitle = function(item) {
+		if(item.data && item.data.title !== undefined)
+			return item.data.title;
+
+		var src = mfp.st.image.titleSrc;
+
+		if(src) {
+			if($.isFunction(src)) {
+				return src.call(mfp, item);
+			} else if(item.el) {
+				return item.el.attr(src) || '';
+			}
+		}
+		return '';
+	};
+
+$.magnificPopup.registerModule('image', {
+
+	options: {
+		markup: '<div class="mfp-figure">'+
+					'<div class="mfp-close"></div>'+
+					'<figure>'+
+						'<div class="mfp-img"></div>'+
+						'<figcaption>'+
+							'<div class="mfp-bottom-bar">'+
+								'<div class="mfp-title"></div>'+
+								'<div class="mfp-counter"></div>'+
+							'</div>'+
+						'</figcaption>'+
+					'</figure>'+
+				'</div>',
+		cursor: 'mfp-zoom-out-cur',
+		titleSrc: 'title',
+		verticalFit: true,
+		tError: '<a href="%url%">The image</a> could not be loaded.'
+	},
+
+	proto: {
+		initImage: function() {
+			var imgSt = mfp.st.image,
+				ns = '.image';
+
+			mfp.types.push('image');
+
+			_mfpOn(OPEN_EVENT+ns, function() {
+				if(mfp.currItem.type === 'image' && imgSt.cursor) {
+					$(document.body).addClass(imgSt.cursor);
+				}
+			});
+
+			_mfpOn(CLOSE_EVENT+ns, function() {
+				if(imgSt.cursor) {
+					$(document.body).removeClass(imgSt.cursor);
+				}
+				_window.off('resize' + EVENT_NS);
+			});
+
+			_mfpOn('Resize'+ns, mfp.resizeImage);
+			if(mfp.isLowIE) {
+				_mfpOn('AfterChange', mfp.resizeImage);
+			}
+		},
+		resizeImage: function() {
+			var item = mfp.currItem;
+			if(!item || !item.img) return;
+
+			if(mfp.st.image.verticalFit) {
+				var decr = 0;
+				// fix box-sizing in ie7/8
+				if(mfp.isLowIE) {
+					decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
+				}
+				item.img.css('max-height', mfp.wH-decr);
+			}
+		},
+		_onImageHasSize: function(item) {
+			if(item.img) {
+
+				item.hasSize = true;
+
+				if(_imgInterval) {
+					clearInterval(_imgInterval);
+				}
+
+				item.isCheckingImgSize = false;
+
+				_mfpTrigger('ImageHasSize', item);
+
+				if(item.imgHidden) {
+					if(mfp.content)
+						mfp.content.removeClass('mfp-loading');
+
+					item.imgHidden = false;
+				}
+
+			}
+		},
+
+		/**
+		 * Function that loops until the image has size to display elements that rely on it asap
+		 */
+		findImageSize: function(item) {
+
+			var counter = 0,
+				img = item.img[0],
+				mfpSetInterval = function(delay) {
+
+					if(_imgInterval) {
+						clearInterval(_imgInterval);
+					}
+					// decelerating interval that checks for size of an image
+					_imgInterval = setInterval(function() {
+						if(img.naturalWidth > 0) {
+							mfp._onImageHasSize(item);
+							return;
+						}
+
+						if(counter > 200) {
+							clearInterval(_imgInterval);
+						}
+
+						counter++;
+						if(counter === 3) {
+							mfpSetInterval(10);
+						} else if(counter === 40) {
+							mfpSetInterval(50);
+						} else if(counter === 100) {
+							mfpSetInterval(500);
+						}
+					}, delay);
+				};
+
+			mfpSetInterval(1);
+		},
+
+		getImage: function(item, template) {
+
+			var guard = 0,
+
+				// image load complete handler
+				onLoadComplete = function() {
+					if(item) {
+						if (item.img[0].complete) {
+							item.img.off('.mfploader');
+
+							if(item === mfp.currItem){
+								mfp._onImageHasSize(item);
+
+								mfp.updateStatus('ready');
+							}
+
+							item.hasSize = true;
+							item.loaded = true;
+
+							_mfpTrigger('ImageLoadComplete');
+
+						}
+						else {
+							// if image complete check fails 200 times (20 sec), we assume that there was an error.
+							guard++;
+							if(guard < 200) {
+								setTimeout(onLoadComplete,100);
+							} else {
+								onLoadError();
+							}
+						}
+					}
+				},
+
+				// image error handler
+				onLoadError = function() {
+					if(item) {
+						item.img.off('.mfploader');
+						if(item === mfp.currItem){
+							mfp._onImageHasSize(item);
+							mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
+						}
+
+						item.hasSize = true;
+						item.loaded = true;
+						item.loadError = true;
+					}
+				},
+				imgSt = mfp.st.image;
+
+
+			var el = template.find('.mfp-img');
+			if(el.length) {
+				var img = document.createElement('img');
+				img.className = 'mfp-img';
+				if(item.el && item.el.find('img').length) {
+					img.alt = item.el.find('img').attr('alt');
+				}
+				item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
+				img.src = item.src;
+
+				// without clone() "error" event is not firing when IMG is replaced by new IMG
+				// TODO: find a way to avoid such cloning
+				if(el.is('img')) {
+					item.img = item.img.clone();
+				}
+
+				img = item.img[0];
+				if(img.naturalWidth > 0) {
+					item.hasSize = true;
+				} else if(!img.width) {
+					item.hasSize = false;
+				}
+			}
+
+			mfp._parseMarkup(template, {
+				title: _getTitle(item),
+				img_replaceWith: item.img
+			}, item);
+
+			mfp.resizeImage();
+
+			if(item.hasSize) {
+				if(_imgInterval) clearInterval(_imgInterval);
+
+				if(item.loadError) {
+					template.addClass('mfp-loading');
+					mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
+				} else {
+					template.removeClass('mfp-loading');
+					mfp.updateStatus('ready');
+				}
+				return template;
+			}
+
+			mfp.updateStatus('loading');
+			item.loading = true;
+
+			if(!item.hasSize) {
+				item.imgHidden = true;
+				template.addClass('mfp-loading');
+				mfp.findImageSize(item);
+			}
+
+			return template;
+		}
+	}
+});
+
+/*>>image*/
+
+/*>>zoom*/
+var hasMozTransform,
+	getHasMozTransform = function() {
+		if(hasMozTransform === undefined) {
+			hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
+		}
+		return hasMozTransform;
+	};
+
+$.magnificPopup.registerModule('zoom', {
+
+	options: {
+		enabled: false,
+		easing: 'ease-in-out',
+		duration: 300,
+		opener: function(element) {
+			return element.is('img') ? element : element.find('img');
+		}
+	},
+
+	proto: {
+
+		initZoom: function() {
+			var zoomSt = mfp.st.zoom,
+				ns = '.zoom',
+				image;
+
+			if(!zoomSt.enabled || !mfp.supportsTransition) {
+				return;
+			}
+
+			var duration = zoomSt.duration,
+				getElToAnimate = function(image) {
+					var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
+						transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
+						cssObj = {
+							position: 'fixed',
+							zIndex: 9999,
+							left: 0,
+							top: 0,
+							'-webkit-backface-visibility': 'hidden'
+						},
+						t = 'transition';
+
+					cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
+
+					newImg.css(cssObj);
+					return newImg;
+				},
+				showMainContent = function() {
+					mfp.content.css('visibility', 'visible');
+				},
+				openTimeout,
+				animatedImg;
+
+			_mfpOn('BuildControls'+ns, function() {
+				if(mfp._allowZoom()) {
+
+					clearTimeout(openTimeout);
+					mfp.content.css('visibility', 'hidden');
+
+					// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
+
+					image = mfp._getItemToZoom();
+
+					if(!image) {
+						showMainContent();
+						return;
+					}
+
+					animatedImg = getElToAnimate(image);
+
+					animatedImg.css( mfp._getOffset() );
+
+					mfp.wrap.append(animatedImg);
+
+					openTimeout = setTimeout(function() {
+						animatedImg.css( mfp._getOffset( true ) );
+						openTimeout = setTimeout(function() {
+
+							showMainContent();
+
+							setTimeout(function() {
+								animatedImg.remove();
+								image = animatedImg = null;
+								_mfpTrigger('ZoomAnimationEnded');
+							}, 16); // avoid blink when switching images
+
+						}, duration); // this timeout equals animation duration
+
+					}, 16); // by adding this timeout we avoid short glitch at the beginning of animation
+
+
+					// Lots of timeouts...
+				}
+			});
+			_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
+				if(mfp._allowZoom()) {
+
+					clearTimeout(openTimeout);
+
+					mfp.st.removalDelay = duration;
+
+					if(!image) {
+						image = mfp._getItemToZoom();
+						if(!image) {
+							return;
+						}
+						animatedImg = getElToAnimate(image);
+					}
+
+					animatedImg.css( mfp._getOffset(true) );
+					mfp.wrap.append(animatedImg);
+					mfp.content.css('visibility', 'hidden');
+
+					setTimeout(function() {
+						animatedImg.css( mfp._getOffset() );
+					}, 16);
+				}
+
+			});
+
+			_mfpOn(CLOSE_EVENT+ns, function() {
+				if(mfp._allowZoom()) {
+					showMainContent();
+					if(animatedImg) {
+						animatedImg.remove();
+					}
+					image = null;
+				}
+			});
+		},
+
+		_allowZoom: function() {
+			return mfp.currItem.type === 'image';
+		},
+
+		_getItemToZoom: function() {
+			if(mfp.currItem.hasSize) {
+				return mfp.currItem.img;
+			} else {
+				return false;
+			}
+		},
+
+		// Get element postion relative to viewport
+		_getOffset: function(isLarge) {
+			var el;
+			if(isLarge) {
+				el = mfp.currItem.img;
+			} else {
+				el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
+			}
+
+			var offset = el.offset();
+			var paddingTop = parseInt(el.css('padding-top'),10);
+			var paddingBottom = parseInt(el.css('padding-bottom'),10);
+			offset.top -= ( $(window).scrollTop() - paddingTop );
+
+
+			/*
+
+			Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
+
+			 */
+			var obj = {
+				width: el.width(),
+				// fix Zepto height+padding issue
+				height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
+			};
+
+			// I hate to do this, but there is no another option
+			if( getHasMozTransform() ) {
+				obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
+			} else {
+				obj.left = offset.left;
+				obj.top = offset.top;
+			}
+			return obj;
+		}
+
+	}
+});
+
+
+
+/*>>zoom*/
+
+/*>>iframe*/
+
+var IFRAME_NS = 'iframe',
+	_emptyPage = '//about:blank',
+
+	_fixIframeBugs = function(isShowing) {
+		if(mfp.currTemplate[IFRAME_NS]) {
+			var el = mfp.currTemplate[IFRAME_NS].find('iframe');
+			if(el.length) {
+				// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
+				if(!isShowing) {
+					el[0].src = _emptyPage;
+				}
+
+				// IE8 black screen bug fix
+				if(mfp.isIE8) {
+					el.css('display', isShowing ? 'block' : 'none');
+				}
+			}
+		}
+	};
+
+$.magnificPopup.registerModule(IFRAME_NS, {
+
+	options: {
+		markup: '<div class="mfp-iframe-scaler">'+
+					'<div class="mfp-close"></div>'+
+					'<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>'+
+				'</div>',
+
+		srcAction: 'iframe_src',
+
+		// we don't care and support only one default type of URL by default
+		patterns: {
+			youtube: {
+				index: 'youtube.com',
+				id: 'v=',
+				src: '//www.youtube.com/embed/%id%?autoplay=1'
+			},
+			vimeo: {
+				index: 'vimeo.com/',
+				id: '/',
+				src: '//player.vimeo.com/video/%id%?autoplay=1'
+			},
+			gmaps: {
+				index: '//maps.google.',
+				src: '%id%&output=embed'
+			}
+		}
+	},
+
+	proto: {
+		initIframe: function() {
+			mfp.types.push(IFRAME_NS);
+
+			_mfpOn('BeforeChange', function(e, prevType, newType) {
+				if(prevType !== newType) {
+					if(prevType === IFRAME_NS) {
+						_fixIframeBugs(); // iframe if removed
+					} else if(newType === IFRAME_NS) {
+						_fixIframeBugs(true); // iframe is showing
+					}
+				}// else {
+					// iframe source is switched, don't do anything
+				//}
+			});
+
+			_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
+				_fixIframeBugs();
+			});
+		},
+
+		getIframe: function(item, template) {
+			var embedSrc = item.src;
+			var iframeSt = mfp.st.iframe;
+
+			$.each(iframeSt.patterns, function() {
+				if(embedSrc.indexOf( this.index ) > -1) {
+					if(this.id) {
+						if(typeof this.id === 'string') {
+							embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
+						} else {
+							embedSrc = this.id.call( this, embedSrc );
+						}
+					}
+					embedSrc = this.src.replace('%id%', embedSrc );
+					return false; // break;
+				}
+			});
+
+			var dataObj = {};
+			if(iframeSt.srcAction) {
+				dataObj[iframeSt.srcAction] = embedSrc;
+			}
+			mfp._parseMarkup(template, dataObj, item);
+
+			mfp.updateStatus('ready');
+
+			return template;
+		}
+	}
+});
+
+
+
+/*>>iframe*/
+
+/*>>gallery*/
+/**
+ * Get looped index depending on number of slides
+ */
+var _getLoopedId = function(index) {
+		var numSlides = mfp.items.length;
+		if(index > numSlides - 1) {
+			return index - numSlides;
+		} else  if(index < 0) {
+			return numSlides + index;
+		}
+		return index;
+	},
+	_replaceCurrTotal = function(text, curr, total) {
+		return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
+	};
+
+$.magnificPopup.registerModule('gallery', {
+
+	options: {
+		enabled: false,
+		arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
+		preload: [0,2],
+		navigateByImgClick: true,
+		arrows: true,
+
+		tPrev: 'Previous (Left arrow key)',
+		tNext: 'Next (Right arrow key)',
+		tCounter: '%curr% of %total%'
+	},
+
+	proto: {
+		initGallery: function() {
+
+			var gSt = mfp.st.gallery,
+				ns = '.mfp-gallery';
+
+			mfp.direction = true; // true - next, false - prev
+
+			if(!gSt || !gSt.enabled ) return false;
+
+			_wrapClasses += ' mfp-gallery';
+
+			_mfpOn(OPEN_EVENT+ns, function() {
+
+				if(gSt.navigateByImgClick) {
+					mfp.wrap.on('click'+ns, '.mfp-img', function() {
+						if(mfp.items.length > 1) {
+							mfp.next();
+							return false;
+						}
+					});
+				}
+
+				_document.on('keydown'+ns, function(e) {
+					if (e.keyCode === 37) {
+						mfp.prev();
+					} else if (e.keyCode === 39) {
+						mfp.next();
+					}
+				});
+			});
+
+			_mfpOn('UpdateStatus'+ns, function(e, data) {
+				if(data.text) {
+					data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
+				}
+			});
+
+			_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
+				var l = mfp.items.length;
+				values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
+			});
+
+			_mfpOn('BuildControls' + ns, function() {
+				if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
+					var markup = gSt.arrowMarkup,
+						arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
+						arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
+
+					arrowLeft.click(function() {
+						mfp.prev();
+					});
+					arrowRight.click(function() {
+						mfp.next();
+					});
+
+					mfp.container.append(arrowLeft.add(arrowRight));
+				}
+			});
+
+			_mfpOn(CHANGE_EVENT+ns, function() {
+				if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
+
+				mfp._preloadTimeout = setTimeout(function() {
+					mfp.preloadNearbyImages();
+					mfp._preloadTimeout = null;
+				}, 16);
+			});
+
+
+			_mfpOn(CLOSE_EVENT+ns, function() {
+				_document.off(ns);
+				mfp.wrap.off('click'+ns);
+				mfp.arrowRight = mfp.arrowLeft = null;
+			});
+
+		},
+		next: function() {
+			mfp.direction = true;
+			mfp.index = _getLoopedId(mfp.index + 1);
+			mfp.updateItemHTML();
+		},
+		prev: function() {
+			mfp.direction = false;
+			mfp.index = _getLoopedId(mfp.index - 1);
+			mfp.updateItemHTML();
+		},
+		goTo: function(newIndex) {
+			mfp.direction = (newIndex >= mfp.index);
+			mfp.index = newIndex;
+			mfp.updateItemHTML();
+		},
+		preloadNearbyImages: function() {
+			var p = mfp.st.gallery.preload,
+				preloadBefore = Math.min(p[0], mfp.items.length),
+				preloadAfter = Math.min(p[1], mfp.items.length),
+				i;
+
+			for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
+				mfp._preloadItem(mfp.index+i);
+			}
+			for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
+				mfp._preloadItem(mfp.index-i);
+			}
+		},
+		_preloadItem: function(index) {
+			index = _getLoopedId(index);
+
+			if(mfp.items[index].preloaded) {
+				return;
+			}
+
+			var item = mfp.items[index];
+			if(!item.parsed) {
+				item = mfp.parseEl( index );
+			}
+
+			_mfpTrigger('LazyLoad', item);
+
+			if(item.type === 'image') {
+				item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
+					item.hasSize = true;
+				}).on('error.mfploader', function() {
+					item.hasSize = true;
+					item.loadError = true;
+					_mfpTrigger('LazyLoadError', item);
+				}).attr('src', item.src);
+			}
+
+
+			item.preloaded = true;
+		}
+	}
+});
+
+/*>>gallery*/
+
+/*>>retina*/
+
+var RETINA_NS = 'retina';
+
+$.magnificPopup.registerModule(RETINA_NS, {
+	options: {
+		replaceSrc: function(item) {
+			return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
+		},
+		ratio: 1 // Function or number.  Set to 1 to disable.
+	},
+	proto: {
+		initRetina: function() {
+			if(window.devicePixelRatio > 1) {
+
+				var st = mfp.st.retina,
+					ratio = st.ratio;
+
+				ratio = !isNaN(ratio) ? ratio : ratio();
+
+				if(ratio > 1) {
+					_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
+						item.img.css({
+							'max-width': item.img[0].naturalWidth / ratio,
+							'width': '100%'
+						});
+					});
+					_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
+						item.src = st.replaceSrc(item, ratio);
+					});
+				}
+			}
+
+		}
+	}
+});
+
+/*>>retina*/
+ _checkInstance(); }));
Index: dmin/js/jquery/jquery.modal.js
===================================================================
--- admin/js/jquery/jquery.modal.js	(revision 0)
+++ 	(revision )
@@ -1,324 +1,0 @@
-(function($) {
-	if (/^1\.(0|1)\./.test($.fn.jquery) || /^1\.2\.(0|1|2|3|4|5)/.test($.fn.jquery)) {
-		throw('Modal requieres jQuery v1.2.6 or later. You are using v'+$.fn.jquery);
-		return;
-	}
-	
-	$.modal = function(data,params) {
-		this.params = $.extend(this.params,params);
-		return this.build(data);
-	};
-	$.modal.version = '1.0';
-	
-	$.modal.prototype = {
-		params: {
-			width: null,
-			height: null,
-			speed: 300,
-			opacity: 0.9,
-			loader_img: 'loader.gif',
-			loader_txt: 'loading...',
-			close_img: 'close.png',
-			close_txt: 'close',
-			on_close: function() {}
-		},
-		ctrl: {
-			box: $(),
-			loader: $(),
-			overlay: $('<div id="jq-modal-overlay"></div>'),
-			hidden: $()
-		},
-		
-		build: function(data) {
-			this.ctrl.loader = $('<div class="jq-modal-load"><img src="' + this.params.loader_img + '" alt="' + this.params.loader_txt + '" /></div>');
-			this.addOverlay();
-			var size = this.getBoxSize(this.ctrl.loading);
-			
-			this.ctrl.box = this.getBox(this.ctrl.loading,{
-				top: Math.round($(window).height()/2 + $(window).scrollTop() - size.h/2),
-				left: Math.round($(window).width()/2 + $(window).scrollLeft() - size.w/2),
-				visibility: 'hidden'
-			});
-			this.ctrl.overlay.after(this.ctrl.box);
-			if (data != undefined) {
-				this.updateBox(data);
-				this.data = data;
-			}
-			return this;
-		},
-		updateBox: function(data,fn) {
-			var This = this;
-			this.hideCloser();
-			fn = $.isFunction(fn) ? fn : function() {};
-			var content = $('div.jq-modal-content',this.ctrl.box);
-			content.empty().append(this.ctrl.loader);
-			var size = this.getBoxSize(data,this.params.width,this.params.height);
-			
-			var top = Math.round($(window).height()/2 + $(window).scrollTop() - size.h/2);
-			var left = Math.round($(window).width()/2 + $(window).scrollLeft() - size.w/2);
-			
-			this.ctrl.box.css('visibility','visible').animate({
-				top: top < 0 ? 0 : top,
-				left: left < 0 ? 0 : left,
-				width: size.w,
-				height: size.h
-			},this.params.speed,function() {
-				This.setContentSize(content,This.params.width,This.params.height);
-				content.empty().append(data).css('opacity',0)
-				.fadeTo(This.params.speed,1,function() {
-					fn.call(This,content);
-				});
-				This.showCloser();
-			});
-		},
-		getBox: function(data,css,content_w,content_h) {
-			var box = $(
-				'<div class="jq-modal">'+
-				'<div class="jq-modal-container"><div class="jq-modal-content">'+
-				'</div></div></div>'
-				).css($.extend({
-					position: 'absolute',
-					top: 0,
-					left: 0,
-					zIndex: 100
-				},css));
-			
-			if (data != undefined) {
-				$('div.jq-modal-content',box).append(data);
-			}
-			
-			this.setContentSize($('div.jq-modal-content',box),content_w,content_h);
-			return box;
-		},
-		getBoxSize: function(data,content_w,content_h) {
-			var box = this.getBox(data,{ visibility: 'hidden' },content_w,content_h);
-			this.ctrl.overlay.after(box);
-			var size = { w: box.width(), h: box.height() };
-			box.remove();
-			box = null;
-			return size;
-		},
-		setContentSize: function(content,w,h) {
-			content.css({
-				width: w > 0 ? w : 'auto',
-				height: h > 0 ? h : 'auto'
-			});
-		},
-		showCloser: function() {
-			if ($('div.jq-modal-closer',this.ctrl.box).length > 0) {
-				$('div.jq-modal-closer',this.ctrl.box).show();
-				return;
-			}
-			
-			$('div.jq-modal-container',this.ctrl.box).append(
-				'<div class="jq-modal-closer"><a href="#">' + this.params.close_txt + '</a></div>'
-			);
-			var This = this;
-			var close = $('div.jq-modal-closer a',this.ctrl.box)
-			close.css({
-				background: 'transparent url(' + this.params.close_img + ') no-repeat'
-			})
-			.click(function() {
-				This.removeOverlay();
-				return false;
-			});
-			
-			if (document.all) {
-				close[0].runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.params.close_img + '", sizingMethod="crop")';
-				close[0].runtimeStyle.backgroundImage = "none"
-			}
-		},
-		hideCloser: function() {
-			$('div.jq-modal-closer',this.ctrl.box).hide();
-		},
-		
-		addOverlay: function() {
-			var This = this;
-			if (document.all) {
-				this.ctrl.hidden = $('select:visible, object:visible, embed:visible').
-				css('visibility','hidden');
-			}
-			this.ctrl.overlay.css({
-				backgroundColor: '#000',
-				position: 'absolute',
-				top: 0,
-				left: 0,
-				zIndex: 90,
-				opacity: this.params.opacity
-			})
-			.appendTo('body')
-			.dblclick(function() { This.removeOverlay(); });
-			
-			this.resizeOverlay({data:this.ctrl});
-			
-			$(window).bind('resize.modal',this.ctrl,this.resizeOverlay);
-			$(document).bind('keypress.modal',this,this.keyRemove);
-		},
-		resizeOverlay: function(e) {
-			e.data.overlay.css({
-				width: $(window).width(),
-				height: $(document).height()
-			});
-			if (e.data.box.parents('body').length > 0) {
-				var top = Math.round($(window).height()/2 + $(window).scrollTop() - e.data.box.height()/2);
-				var left = Math.round($(window).width()/2 + $(window).scrollLeft() - e.data.box.width()/2);
-				e.data.box.css({
-					top: top < 0 ? 0 : top,
-					left: left < 0 ? 0 : left
-				});
-			}
-		},
-		keyRemove: function(e) {
-			if (e.keyCode == 27) {
-				e.data.removeOverlay();
-			}
-			return true;
-		},
-		removeOverlay: function() {
-			$(window).unbind('resize.modal');
-			$(document).unbind('keypress');
-			this.params.on_close.apply(this);
-			this.ctrl.overlay.remove();
-			this.ctrl.hidden.css('visibility','visible');
-			this.ctrl.box.remove();
-			this.ctrl.box = $();
-		}
-	};
-})(jQuery);
-
-(function($) {
-	$.fn.modalImages = function(params) {
-		params = $.extend(this.params,params);
-		var links = new Array();
-		this.each(function() {
-			if ($(this).attr('href') == '' || $(this).attr('href') == undefined || $(this).attr('href') == '#') {
-				return false;
-			}
-			var index = links.length;
-			links.push($(this));
-			$(this).click(function() {
-				new $.modalImages(index,links,params);
-				return false;
-			});
-			return true;
-		});
-		
-		return this;
-	};
-	
-	$.modalImages = function(index,links,params) {
-		this.links = links;
-		this.modal = new $.modal(null,params);
-		this.showImage(index);
-	};
-	
-	$.modalImages.prototype = {
-		params: {
-			prev_txt: 'previous',
-			next_txt: 'next',
-			prev_img: 'prev.png',
-			next_img: 'next.png',
-			blank_img: 'blank.gif'
-		},
-		showImage: function(index) {
-			var This = this;
-			$(document).unbind('keypress.modalImage');
-			if (this.links[index] == undefined) {
-				this.modal.removeOverlay();
-			}
-			var link = this.links[index];
-			var modal = this.modal;
-			
-			var res = $('<div></div>');
-			res.append('<img src="' + link.attr('href') + '" alt="" />');
-			
-			var thumb = $('img:first',link);
-			if (thumb.length > 0 && thumb.attr('title')) {
-				res.append('<span class="jq-modal-legend">' + thumb.attr('title') + '</span>');
-			} else if (link.attr('title')) {
-				res.append('<span class="jq-modal-legend">' + link.attr('title') + '</span>');
-			}
-			
-			// Add prev/next buttons
-			if (index != 0) {
-				$('<a class="jq-modal-prev" href="#">prev</a>').appendTo(res);
-			}
-			if (index+1 < this.links.length) {
-				$('<a class="jq-modal-next" href="#">next</a>').appendTo(res);
-			}
-			
-			var img = new Image();
-			
-			// Display loader while loading image
-			if (this.modal.ctrl.box.css('visibility') == 'visible') {
-				$('div.jq-modal-content',this.modal.ctrl.box)
-				.empty().append(this.modal.ctrl.loader);
-			} else {
-				this.modal.updateBox(this.modal.ctrl.loader);
-			}
-			
-			img.onload = function() {
-				modal.updateBox(res,function() {
-					var Img = $('div.jq-modal-content img',this.ctrl.box);
-					This.navBtnStyle($('a.jq-modal-next',this.ctrl.box),true).css('height',Img.height()).bind('click',index+1,navClick);
-					This.navBtnStyle($('a.jq-modal-prev',this.ctrl.box),false).css('height',Img.height()).bind('click',index-1,navClick);
-					Img.click(function() {
-						This.modal.removeOverlay();
-					});
-					$(document).bind('keypress.modalImage',navKey);
-				});
-				this.onload = function() {};
-			};
-			img.src = link.attr('href');
-			
-			var navClick = function(e) {
-				This.showImage(e.data);
-				return false;
-			};
-			var navKey = function(e) {
-				var key = String.fromCharCode(e.which).toLowerCase();
-				if ((key == 'n' || e.keyCode == 39) && index+1 < This.links.length) { // Press "n"
-					This.showImage(index+1);
-				}
-				if ((key == 'p' || e.keyCode == 37) && index != 0) { // Press "p"
-					This.showImage(index-1);
-				}
-			};
-		},
-		navBtnStyle: function(btn,next) {
-			var default_bg = 'transparent url(' + this.modal.params.blank_img + ') repeat';
-			var over_bg_i = next ? this.modal.params.next_img : this.modal.params.prev_img;
-			var over_bg_p = next ? 'right' : 'left';
-			
-			btn.css('background',default_bg)
-			.bind('mouseenter',function() {
-				$(this).css('background','transparent url(' + over_bg_i + ') no-repeat center ' + over_bg_p).css('z-index',110);
-			})
-			.bind('mouseleave',function() {
-				$(this).css('background',default_bg);
-			});
-			
-			return btn;
-		}
-	};
-})(jQuery);
-
-(function($) {
-	$.modalWeb = function(url,w,h) {
-		iframe = $('<iframe src="' + url + '" frameborder="0">').css({
-			border: 'none',
-			width: w,
-			height: h
-		});
-		return new $.modal(iframe);
-	};
-	
-	$.fn.modalWeb = function(w,h) {
-		this.click(function() {
-			if (this.href != undefined) {
-				$.modalWeb(this.href,w,h);
-			}
-			return false;
-		});
-	};
-})(jQuery);
Index: admin/js/jquery/jquery.pageTabs.js
===================================================================
--- admin/js/jquery/jquery.pageTabs.js	(revision 2479)
+++ admin/js/jquery/jquery.pageTabs.js	(revision 3333)
@@ -1,5 +1,5 @@
 (function($) {
 	'use strict';
-    
+
 	$.pageTabs = function(start_tab, opts) {
 		var defaults = {
@@ -10,8 +10,9 @@
 			idTabPrefix: 'part-tabs-'
 		};
-		
+
 		$.pageTabs.options = $.extend({}, defaults, opts);
 		var active_tab = start_tab || '';
 		var hash = $.pageTabs.getLocationHash();
+		var subhash = $.pageTabs.getLocationSubhash();
 
 		if (hash !== undefined && hash) {
@@ -23,5 +24,5 @@
 
 		createTabs();
-		
+
 		$('ul li', '.'+$.pageTabs.options.containerClass).click(function(e) {
 			if ($(this).hasClass($.pageTabs.options.activeClass)) {
@@ -40,5 +41,5 @@
 				part_to_activate.addClass('loaded');
 			}
-			
+
 			part_to_activate.tabload();
 		});
@@ -49,11 +50,16 @@
 
 		$.pageTabs.clickTab(active_tab);
-		
+
+		if (subhash !== undefined) {
+			// Tab displayed, now scroll to the sub-part if defined in original document.location (#tab.sub-part)
+			document.getElementById(subhash).scrollIntoView();
+		}
+
 		return this;
 	};
-	
+
 	var createTabs = function createTabs() {
 		var lis = [], li_class = '';
-		
+
 		$('.'+$.pageTabs.options.contentClass).each(function() {
 			$(this).hide();
@@ -62,9 +68,9 @@
 			$(this).attr('id', $.pageTabs.options.partPrefix + $(this).attr('id')).prop('title','');
 		});
-		
+
 		$('<div class="'+$.pageTabs.options.containerClass+'"><ul>'+lis.join('')+'</ul></div>')
 			.insertBefore($('.'+$.pageTabs.options.contentClass).get(0));
 	};
-	
+
 	var getHash = function getHash(href) {
 		var href = href || '';
@@ -72,5 +78,5 @@
 		return href.replace(/.*#/, '');
 	};
-	
+
 	$.pageTabs.clickTab = function(tab) {
 		if (tab=='') {
@@ -96,5 +102,12 @@
 
 	$.pageTabs.getLocationHash = function() {
-		return getHash(document.location.hash);
+		// Return the URL hash (without subhash — #hash[.subhash])
+		var h = getHash(document.location.hash).split('.');
+		return h[0];
+	};
+	$.pageTabs.getLocationSubhash = function() {
+		// Return the URL subhash if present (without hash — #hash[.subhash])
+		var sh = getHash(document.location.hash).split('.');
+		return sh[1];
 	};
 })(jQuery);
Index: dmin/js/tool-man/cookies.js
===================================================================
--- admin/js/tool-man/cookies.js	(revision 0)
+++ 	(revision )
@@ -1,34 +1,0 @@
-/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt)
-
-based on http://www.quirksmode.org/js/cookies.html
-*/
-
-ToolMan._cookieOven = {
-	
-	set : function(name, value, expirationInDays) {
-		if (expirationInDays) {
-			var date = new Date()
-			date.setTime(date.getTime() + (expirationInDays * 24 * 60 * 60 * 1000))
-			var expires = "; expires=" + date.toGMTString()
-		} else {
-			var expires = ""
-		}
-		document.cookie = name + "=" + value + expires + "; path=/"
-	},
-	
-	get : function(name) {
-		var namePattern = name + "="
-		var cookies = document.cookie.split(';')
-		for(var i = 0, n = cookies.length; i < n; i++) {
-			var c = cookies[i]
-			while (c.charAt(0) == ' ') c = c.substring(1, c.length)
-			if (c.indexOf(namePattern) == 0)
-				return c.substring(namePattern.length, c.length)
-		}
-		return null
-	},
-	
-	eraseCookie : function(name) {
-		createCookie(name, "", -1)
-	}
-};
Index: dmin/js/tool-man/coordinates.js
===================================================================
--- admin/js/tool-man/coordinates.js	(revision 0)
+++ 	(revision )
@@ -1,154 +1,0 @@
-/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
-
-/* FIXME: assumes position styles are specified in 'px' */
-
-ToolMan._coordinatesFactory = {
-	
-	create : function(x, y) {
-		// FIXME: Safari won't parse 'throw' and aborts trying to do anything with this file
-		//if (isNaN(x) || isNaN(y)) throw "invalid x,y: " + x + "," + y
-		return new _ToolManCoordinate(this, x, y)
-	},
-	
-	origin : function() {
-		return this.create(0, 0)
-	},
-	
-	/*
-	 * FIXME: Safari 1.2, returns (0,0) on absolutely positioned elements
-	 */
-	topLeftPosition : function(element) {
-		var left = parseInt(ToolMan.css().readStyle(element, "left"))
-		var left = isNaN(left) ? 0 : left
-		var top = parseInt(ToolMan.css().readStyle(element, "top"))
-		var top = isNaN(top) ? 0 : top
-		
-		return this.create(left, top)
-	},
-	
-	bottomRightPosition : function(element) {
-		return this.topLeftPosition(element).plus(this._size(element))
-	},
-	
-	topLeftOffset : function(element) {
-		var offset = this._offset(element) 
-		
-		var parent = element.offsetParent
-		while (parent) {
-			offset = offset.plus(this._offset(parent))
-			parent = parent.offsetParent
-		}
-		return offset
-	},
-	
-	bottomRightOffset : function(element) {
-		return this.topLeftOffset(element).plus(
-				this.create(element.offsetWidth, element.offsetHeight))
-	},
-	
-	scrollOffset : function() {
-		if (window.pageXOffset) {
-			return this.create(window.pageXOffset, window.pageYOffset)
-		} else if (document.documentElement) {
-			return this.create(
-					document.body.scrollLeft + document.documentElement.scrollLeft, 
-					document.body.scrollTop + document.documentElement.scrollTop)
-		} else if (document.body.scrollLeft >= 0) {
-			return this.create(document.body.scrollLeft, document.body.scrollTop)
-		} else {
-			return this.create(0, 0)
-		}
-	},
-	
-	clientSize : function() {
-		if (window.innerHeight >= 0) {
-			return this.create(window.innerWidth, window.innerHeight)
-		} else if (document.documentElement) {
-			return this.create(document.documentElement.clientWidth,
-					document.documentElement.clientHeight)
-		} else if (document.body.clientHeight >= 0) {
-			return this.create(document.body.clientWidth,
-					document.body.clientHeight)
-		} else {
-			return this.create(0, 0)
-		}
-	},
-	
-	/**
-	 * mouse coordinate relative to the window (technically the
-	 * browser client area) i.e. the part showing your page
-	 *
-	 * NOTE: in Safari the coordinate is relative to the document
-	 */
-	mousePosition : function(event) {
-		event = ToolMan.events().fix(event)
-		return this.create(event.clientX, event.clientY)
-	},
-	
-	/**
-	 * mouse coordinate relative to the document
-	 */
-	mouseOffset : function(event) {
-		event = ToolMan.events().fix(event)
-		if (event.pageX >= 0 || event.pageX < 0) {
-			return this.create(event.pageX, event.pageY)
-		} else if (event.clientX >= 0 || event.clientX < 0) {
-			return this.mousePosition(event).plus(this.scrollOffset())
-		}
-	},
-	
-	_size : function(element) {
-	/* TODO: move to a Dimension class */
-		return this.create(element.offsetWidth, element.offsetHeight)
-	},
-	
-	_offset : function(element) {
-		return this.create(element.offsetLeft, element.offsetTop)
-	}
-}
-
-function _ToolManCoordinate(factory, x, y) {
-	this.factory = factory
-	this.x = isNaN(x) ? 0 : x
-	this.y = isNaN(y) ? 0 : y
-}
-
-_ToolManCoordinate.prototype = {
-	toString : function() {
-		return "(" + this.x + "," + this.y + ")"
-	},
-	
-	plus : function(that) {
-		return this.factory.create(this.x + that.x, this.y + that.y)
-	},
-	
-	minus : function(that) {
-		return this.factory.create(this.x - that.x, this.y - that.y)
-	},
-	
-	min : function(that) {
-		return this.factory.create(
-				Math.min(this.x , that.x), Math.min(this.y , that.y))
-	},
-	
-	max : function(that) {
-		return this.factory.create(
-				Math.max(this.x , that.x), Math.max(this.y , that.y))
-	},
-	
-	constrainTo : function (one, two) {
-		var min = one.min(two)
-		var max = one.max(two)
-		
-		return this.max(min).min(max)
-	},
-	
-	distance : function (that) {
-		return Math.sqrt(Math.pow(this.x - that.x, 2) + Math.pow(this.y - that.y, 2))
-	},
-	
-	reposition : function(element) {
-		element.style["top"] = this.y + "px"
-		element.style["left"] = this.x + "px"
-	}
-}
Index: dmin/js/tool-man/core.js
===================================================================
--- admin/js/tool-man/core.js	(revision 0)
+++ 	(revision )
@@ -1,170 +1,0 @@
-/*
-Copyright (c) 2005 Tim Taylor Consulting <http://tool-man.org/>
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-*/
-
-var ToolMan = {
-	events : function() {
-		if (!ToolMan._eventsFactory) throw "ToolMan Events module isn't loaded";
-		return ToolMan._eventsFactory
-	},
-	
-	css : function() {
-		if (!ToolMan._cssFactory) throw "ToolMan CSS module isn't loaded";
-		return ToolMan._cssFactory
-	},
-	
-	coordinates : function() {
-		if (!ToolMan._coordinatesFactory) throw "ToolMan Coordinates module isn't loaded";
-		return ToolMan._coordinatesFactory
-	},
-	
-	drag : function() {
-		if (!ToolMan._dragFactory) throw "ToolMan Drag module isn't loaded";
-		return ToolMan._dragFactory
-	},
-	
-	dragsort : function() {
-		if (!ToolMan._dragsortFactory) throw "ToolMan DragSort module isn't loaded";
-		return ToolMan._dragsortFactory
-	},
-	
-	helpers : function() {
-		return ToolMan._helpers
-	},
-	
-	cookies : function() {
-		if (!ToolMan._cookieOven) throw "ToolMan Cookie module isn't loaded";
-		return ToolMan._cookieOven
-	},
-	
-	junkdrawer : function() {
-		return ToolMan._junkdrawer
-	}
-	
-}
-
-ToolMan._helpers = {
-	map : function(array, func) {
-		for (var i = 0, n = array.length; i < n; i++) func(array[i])
-	},
-	
-	nextItem : function(item, nodeName) {
-		if (item == null) return false;
-		var next = item.nextSibling
-		while (next != null) {
-			if (next.nodeName == nodeName) return next
-			next = next.nextSibling
-		}
-		return null
-	},
-	
-	previousItem : function(item, nodeName) {
-		var previous = item.previousSibling
-		while (previous != null) {
-			if (previous.nodeName == nodeName) return previous
-			previous = previous.previousSibling
-		}
-		return null
-	},
-	
-	moveBefore : function(item1, item2) {
-		var parent = item1.parentNode
-		parent.removeChild(item1)
-		parent.insertBefore(item1, item2)
-	},
-	
-	moveAfter : function(item1, item2) {
-		var parent = item1.parentNode
-		parent.removeChild(item1)
-		parent.insertBefore(item1, item2 ? item2.nextSibling : null)
-	}
-}
-
-/** 
- * scripts without a proper home
- *
- * stuff here is subject to change unapologetically and without warning
- */
-ToolMan._junkdrawer = {
-	serializeList : function(list) {
-		var items = list.getElementsByTagName("li")
-		var array = new Array()
-		for (var i = 0, n = items.length; i < n; i++) {
-			var item = items[i]
-			
-			array.push(ToolMan.junkdrawer()._identifier(item))
-		}
-		return array.join('|')
-	},
-	
-	inspectListOrder : function(id) {
-		alert(ToolMan.junkdrawer().serializeList(document.getElementById(id)))
-	},
-	
-	restoreListOrder : function(listID) {
-		var list = document.getElementById(listID)
-		if (list == null) return
-		
-		var cookie = ToolMan.cookies().get("list-" + listID)
-		if (!cookie) return;
-		
-		var IDs = cookie.split('|')
-		var items = ToolMan.junkdrawer()._itemsByID(list)
-		
-		for (var i = 0, n = IDs.length; i < n; i++) {
-			var itemID = IDs[i]
-			if (itemID in items) {
-				var item = items[itemID]
-				list.removeChild(item)
-				list.insertBefore(item, null)
-			}
-		}
-	},
-	
-	_identifier : function(item) {
-		var trim = ToolMan.junkdrawer().trim
-		var identifier
-		
-		identifier = trim(item.getAttribute("id"))
-		if (identifier != null && identifier.length > 0) return identifier;
-		
-		identifier = trim(item.getAttribute("itemID"))
-		if (identifier != null && identifier.length > 0) return identifier;
-		
-		// FIXME: strip out special chars or make this an MD5 hash or something
-		return trim(item.innerHTML)
-	},
-	
-	_itemsByID : function(list) {
-		var array = new Array()
-		var items = list.getElementsByTagName('li')
-		for (var i = 0, n = items.length; i < n; i++) {
-			var item = items[i]
-			array[ToolMan.junkdrawer()._identifier(item)] = item
-		}
-		return array
-	},
-	
-	trim : function(text) {
-		if (text == null) return null
-		return text.replace(/^(\s+)?(.*\S)(\s+)?$/, '$2')
-	}
-}
Index: dmin/js/tool-man/css.js
===================================================================
--- admin/js/tool-man/css.js	(revision 0)
+++ 	(revision )
@@ -1,17 +1,0 @@
-/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
-
-// TODO: write unit tests
-ToolMan._cssFactory = {
-	readStyle : function(element, property) {
-		if (element.style[property]) {
-			return element.style[property]
-		} else if (element.currentStyle) {
-			return element.currentStyle[property]
-		} else if (document.defaultView && document.defaultView.getComputedStyle) {
-			var style = document.defaultView.getComputedStyle(element, null)
-			return style.getPropertyValue(property)
-		} else {
-			return null
-		}
-	}
-}
Index: dmin/js/tool-man/drag.js
===================================================================
--- admin/js/tool-man/drag.js	(revision 0)
+++ 	(revision )
@@ -1,249 +1,0 @@
-/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
-
-ToolMan._dragFactory = {
-	createSimpleGroup : function(element, handle) {
-		handle = handle ? handle : element
-		var group = this.createGroup(element)
-		group.setHandle(handle)
-		//group.transparentDrag()
-		group.onTopWhileDragging()
-		return group
-	},
-	
-	createGroup : function(element) {
-		var group = new _ToolManDragGroup(this, element)
-		
-		var position = ToolMan.css().readStyle(element, 'position')
-		if (position == 'static') {
-			element.style["position"] = 'relative'
-		} else if (position == 'absolute') {
-			/* for Safari 1.2 */
-			ToolMan.coordinates().topLeftOffset(element).reposition(element)
-		}
-		
-		// TODO: only if ToolMan.isDebugging()
-		group.register('draginit', this._showDragEventStatus)
-		group.register('dragmove', this._showDragEventStatus)
-		group.register('dragend', this._showDragEventStatus)
-		
-		return group
-	},
-	
-	_showDragEventStatus : function(dragEvent) {
-		window.status = dragEvent.toString()
-	},
-	
-	constraints : function() {
-		return this._constraintFactory
-	},
-	
-	_createEvent : function(type, event, group) {
-		return new _ToolManDragEvent(type, event, group)
-	}
-}
-
-function _ToolManDragGroup(factory, element) {
-	this.factory = factory
-	this.element = element
-	this._handle = null
-	this._thresholdDistance = 0
-	this._transforms = new Array()
-	// TODO: refactor into a helper object, move into events.js
-	this._listeners = new Array()
-	this._listeners['draginit'] = new Array()
-	this._listeners['dragstart'] = new Array()
-	this._listeners['dragmove'] = new Array()
-	this._listeners['dragend'] = new Array()
-}
-
-_ToolManDragGroup.prototype = {
-	/*
-	 * TODO:
-	 *   - unregister(type, func)
-	 *   - move custom event listener stuff into Event library
-	 *   - keyboard nudging of "selected" group
-	 */
-	
-	setHandle : function(handle) {
-		var events = ToolMan.events()
-		
-		handle.toolManDragGroup = this
-		events.register(handle, 'mousedown', this._dragInit)
-		//handle.onmousedown = function() { return false }
-		
-		if (this.element != handle)
-			events.unregister(this.element, 'mousedown', this._dragInit)
-	},
-	
-	register : function(type, func) {
-		this._listeners[type].push(func)
-	},
-	
-	addTransform : function(transformFunc) {
-		this._transforms.push(transformFunc)
-	},
-	
-	verticalOnly : function() {
-		this.addTransform(this.factory.constraints().vertical())
-	},
-	
-	horizontalOnly : function() {
-		this.addTransform(this.factory.constraints().horizontal())
-	},
-	
-	setThreshold : function(thresholdDistance) {
-		this._thresholdDistance = thresholdDistance
-	},
-	
-	transparentDrag : function(opacity) {
-		if (typeof(opacity) == "undefined") {
-			opacity = 0.75;
-		}
-		var originalOpacity = ToolMan.css().readStyle(this.element, "opacity")
-		
-		this.register('dragstart', function(dragEvent) {
-			var element = dragEvent.group.element
-			element.style.opacity = opacity
-			element.style.filter = 'alpha(opacity=' + (opacity * 100) + ')'
-		})
-		this.register('dragend', function(dragEvent) {
-			var element = dragEvent.group.element
-			element.style.opacity = originalOpacity
-			element.style.filter = 'alpha(opacity=100)'
-		})
-	},
-	
-	onTopWhileDragging : function(zIndex) {
-		if (typeof(zIndex) == "undefined") {
-			zIndex = 100000;
-		}
-		
-		var originalZIndex = ToolMan.css().readStyle(this.element, "z-index")
-		
-		this.register('dragstart', function(dragEvent) {
-			dragEvent.group.element.style.zIndex = zIndex
-		})
-		this.register('dragend', function(dragEvent) {
-			if (typeof(originalZIndex) != "undefined") {
-				dragEvent.group.element.style.zIndex = originalZIndex
-			}
-			//dragEvent.group.element.style.backgroundColor = '#f00';
-		})
-	},
-	
-	_dragInit : function(event) {
-		event = ToolMan.events().fix(event)
-		var group = document.toolManDragGroup = this.toolManDragGroup
-		var dragEvent = group.factory._createEvent('draginit', event, group)
-		
-		group._isThresholdExceeded = false
-		group._initialMouseOffset = dragEvent.mouseOffset
-		group._grabOffset = dragEvent.mouseOffset.minus(dragEvent.topLeftOffset)
-		ToolMan.events().register(document, 'mousemove', group._drag)
-		document.onmousemove = function() { return false }
-		ToolMan.events().register(document, 'mouseup', group._dragEnd)
-		
-		ToolMan.events().register(document, 'mousedown',group._drag);
-		document.onmousedown = function() { return false; };
-		
-		group._notifyListeners(dragEvent)
-	},
-	
-	_drag : function(event) {
-		event = ToolMan.events().fix(event)
-		var coordinates = ToolMan.coordinates()
-		var group = this.toolManDragGroup
-		if (!group) return
-		var dragEvent = group.factory._createEvent('dragmove', event, group)
-		
-		var newTopLeftOffset = dragEvent.mouseOffset.minus(group._grabOffset)
-		
-		// TODO: replace with DragThreshold object
-		if (!group._isThresholdExceeded) {
-			var distance = 
-					dragEvent.mouseOffset.distance(group._initialMouseOffset)
-			if (distance < group._thresholdDistance) return
-			group._isThresholdExceeded = true
-			group._notifyListeners(
-					group.factory._createEvent('dragstart', event, group))
-		}
-		
-		for (i in group._transforms) {
-			var transform = group._transforms[i]
-			newTopLeftOffset = transform(newTopLeftOffset, dragEvent)
-		}
-		
-		var dragDelta = newTopLeftOffset.minus(dragEvent.topLeftOffset)
-		var newTopLeftPosition = dragEvent.topLeftPosition.plus(dragDelta)
-		newTopLeftPosition.reposition(group.element)
-		dragEvent.transformedMouseOffset = newTopLeftOffset.plus(group._grabOffset)
-		
-		group._notifyListeners(dragEvent)
-		
-		var errorDelta = newTopLeftOffset.minus(coordinates.topLeftOffset(group.element))
-		if (errorDelta.x != 0 || errorDelta.y != 0) {
-			coordinates.topLeftPosition(group.element).plus(errorDelta).reposition(group.element)
-		}
-	},
-	
-	_dragEnd : function(event) {
-		event = ToolMan.events().fix(event)
-		var group = this.toolManDragGroup
-		var dragEvent = group.factory._createEvent('dragend', event, group)
-		
-		group._notifyListeners(dragEvent)
-		
-		this.toolManDragGroup = null
-		ToolMan.events().unregister(document, 'mousemove', group._drag)
-		document.onmousemove = null
-		ToolMan.events().unregister(document, 'mouseup', group._dragEnd)
-		
-		ToolMan.events().register(document, 'mousedown', group._drag);
-		document.onmousedown = function() { return true };
-	},
-	
-	_notifyListeners : function(dragEvent) {
-		var listeners = this._listeners[dragEvent.type]
-		for (i in listeners) {
-			listeners[i](dragEvent)
-		}
-	}
-}
-
-function _ToolManDragEvent(type, event, group) {
-	this.type = type
-	this.group = group
-	this.mousePosition = ToolMan.coordinates().mousePosition(event)
-	this.mouseOffset = ToolMan.coordinates().mouseOffset(event)
-	this.transformedMouseOffset = this.mouseOffset
-	this.topLeftPosition = ToolMan.coordinates().topLeftPosition(group.element)
-	this.topLeftOffset = ToolMan.coordinates().topLeftOffset(group.element)
-}
-
-_ToolManDragEvent.prototype = {
-	toString : function() {
-		return "mouse: " + this.mousePosition + this.mouseOffset + "    " +
-				"xmouse: " + this.transformedMouseOffset + "    " +
-				"left,top: " + this.topLeftPosition + this.topLeftOffset
-	}
-}
-
-ToolMan._dragFactory._constraintFactory = {
-	vertical : function() {
-		return function(coordinate, dragEvent) {
-			var x = dragEvent.topLeftOffset.x
-			return coordinate.x != x
-					? coordinate.factory.create(x, coordinate.y) 
-					: coordinate
-		}
-	},
-	
-	horizontal : function() {
-		return function(coordinate, dragEvent) {
-			var y = dragEvent.topLeftOffset.y
-			return coordinate.y != y
-					? coordinate.factory.create(coordinate.x, y) 
-					: coordinate
-		}
-	}
-}
Index: dmin/js/tool-man/dragsort.js
===================================================================
--- admin/js/tool-man/dragsort.js	(revision 0)
+++ 	(revision )
@@ -1,87 +1,0 @@
-/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
-
-ToolMan._dragsortFactory = {
-	makeSortable : function(item) {
-		var group = ToolMan.drag().createSimpleGroup(item)
-		
-		group.register('dragstart', this._onDragStart)
-		group.register('dragmove', this._onDragMove)
-		group.register('dragend', this._onDragEnd)
-		
-		return group
-	},
-	
-	/** 
-	 * Iterates over a list's items, making them sortable, applying
-	 * optional functions to each item.
-	 *
-	 * example: makeListSortable(myList, myFunc1, myFunc2, ... , myFuncN)
-	 */
-	makeListSortable : function(list) {
-		var helpers = ToolMan.helpers()
-		var coordinates = ToolMan.coordinates()
-		var items = list.getElementsByTagName("li")
-		
-		helpers.map(items, function(item) {
-			var dragGroup = dragsort.makeSortable(item)
-			dragGroup.setThreshold(4)
-			var min, max
-			dragGroup.addTransform(function(coordinate, dragEvent) {
-				return coordinate.constrainTo(min, max)
-			})
-			dragGroup.register('dragstart', function() {
-				var items = list.getElementsByTagName("li")
-				min = max = coordinates.topLeftOffset(items[0])
-				for (var i = 1, n = items.length; i < n; i++) {
-					var offset = coordinates.topLeftOffset(items[i])
-					min = min.min(offset)
-					max = max.max(offset)
-				}
-			})
-		})
-		for (var i = 1, n = arguments.length; i < n; i++)
-			helpers.map(items, arguments[i])
-	},
-	
-	_onDragStart : function(dragEvent) {
-	},
-	
-	_onDragMove : function(dragEvent) {
-		var helpers = ToolMan.helpers()
-		var coordinates = ToolMan.coordinates()
-		
-		var item = dragEvent.group.element
-		var xmouse = dragEvent.transformedMouseOffset
-		var moveTo = null
-		
-		var previous = helpers.previousItem(item, item.nodeName)
-		while (previous != null) {
-			var bottomRight = coordinates.bottomRightOffset(previous)
-			if (xmouse.y <= bottomRight.y && xmouse.x <= bottomRight.x) {
-				moveTo = previous
-			}
-			previous = helpers.previousItem(previous, item.nodeName)
-		}
-		if (moveTo != null) {
-			helpers.moveBefore(item, moveTo)
-			return
-		}
-		
-		var next = helpers.nextItem(item, item.nodeName)
-		while (next != null) {
-			var topLeft = coordinates.topLeftOffset(next)
-			if (topLeft.y <= xmouse.y && topLeft.x <= xmouse.x) {
-				moveTo = next
-			}
-			next = helpers.nextItem(next, item.nodeName)
-		}
-		if (moveTo != null) {
-			helpers.moveBefore(item, helpers.nextItem(moveTo, item.nodeName))
-			return
-		}
-	},
-	
-	_onDragEnd : function(dragEvent) {
-		ToolMan.coordinates().create(0, 0).reposition(dragEvent.group.element)
-	}
-}
Index: dmin/js/tool-man/events.js
===================================================================
--- admin/js/tool-man/events.js	(revision 0)
+++ 	(revision )
@@ -1,43 +1,0 @@
-/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */
-
-ToolMan._eventsFactory = {
-	fix : function(event) {
-		if (!event) event = window.event
-		
-		if (event.target) {
-			if (event.target.nodeType == 3) event.target = event.target.parentNode
-		} else if (event.srcElement) {
-			event.target = event.srcElement
-		}
-		
-		return event
-	},
-	
-	register : function(element, type, func) {
-		if (element.addEventListener) {
-			element.addEventListener(type, func, false)
-		} else if (element.attachEvent) {
-			if (!element._listeners) element._listeners = new Array()
-			if (!element._listeners[type]) element._listeners[type] = new Array()
-			var workaroundFunc = function() {
-				func.apply(element, new Array())
-			}
-			element._listeners[type][func] = workaroundFunc
-			element.attachEvent('on' + type, workaroundFunc)
-		}
-	},
-	
-	unregister : function(element, type, func) {
-		if (element.removeEventListener) {
-			element.removeEventListener(type, func, false)
-		} else if (element.detachEvent) {
-			if (element._listeners 
-					&& element._listeners[type] 
-					&& element._listeners[type][func]) {
-						
-				element.detachEvent('on' + type, 
-						element._listeners[type][func])
-			}
-		}
-	}
-}
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 3295)
+++ admin/media.php	(revision 3369)
@@ -35,5 +35,5 @@
 
 $page = !empty($_GET['page']) ? max(1,(integer) $_GET['page']) : 1;
-$nb_per_page = ((integer) $core->auth->user_prefs->interface->media_by_page ? (integer) $core->auth->user_prefs->interface->media_by_page : 30);
+$nb_per_page = ((integer) $core->auth->user_prefs->interface->media_by_page ?: 30);
 
 # We are on home not comming from media manager
@@ -75,8 +75,14 @@
 $file_mode = !empty($_SESSION['media_file_mode']) ? $_SESSION['media_file_mode'] : 'grid';
 
-if (!empty($_GET['file_sort']) && in_array($_GET['file_sort'],$sort_combo)) {
-	$_SESSION['media_file_sort'] = $_GET['file_sort'];
-}
-$file_sort = !empty($_SESSION['media_file_sort']) ? $_SESSION['media_file_sort'] : null;
+$file_sort = null;
+if (!empty($_GET['file_sort'])) {
+	$file_sort = $_SESSION['media_file_sort'] = $_GET['file_sort'];
+	setcookie('dc_media_sort',json_encode($file_sort));
+} elseif (isset($_COOKIE['dc_media_sort'])) {
+	$file_sort = json_decode($_COOKIE['dc_media_sort']);
+} elseif (!empty($_SESSION['media_file_sort'])) {
+	$file_sort = $_SESSION['media_file_sort'];
+}
+$file_sort =  in_array($file_sort,$sort_combo) ? $file_sort : null;
 
 $nb_per_page = !empty($_SESSION['nb_per_page']) ? (integer)$_SESSION['nb_per_page'] : $nb_per_page;
@@ -155,5 +161,5 @@
 			$zip->addDirectory($core->media->root.'/'.$d,'',true);
 
-			header('Content-Disposition: attachment;filename='.date('Y-m-d').'-'.$core->blog->id.'-'.($d ? $d : 'media').'.zip');
+			header('Content-Disposition: attachment;filename='.date('Y-m-d').'-'.$core->blog->id.'-'.($d ?: 'media').'.zip');
 			header('Content-Type: application/x-zip');
 			$zip->write();
@@ -510,4 +516,5 @@
 
 call_user_func($open_f,__('Media manager'),
+	dcPage::jsModal().
 	dcPage::jsLoad('js/_media.js').
 	($core_media_writable ? dcPage::jsUpload(array('d='.$d)) : ''),
@@ -960,4 +967,7 @@
 	}
 
+	$file_type = explode('/',$f->type);
+	$class_open = 'class="modal-'.$file_type[0].'" ';
+
 	// Render markup
 	if (!$table) {
@@ -973,5 +983,5 @@
 			$f->media_dtstr.' - '.
 			files::size($f->size).' - '.
-			'<a href="'.$f->file_url.'">'.__('open').'</a>'.
+			'<a '.$class_open.'href="'.$f->file_url.'">'.__('open').'</a>'.
 			'</li>';
 		}
@@ -979,5 +989,4 @@
 
 		// Show player if relevant
-		$file_type = explode('/',$f->type);
 		if ($file_type[0] == 'audio')
 		{
@@ -994,5 +1003,6 @@
 				'<br />'.($f->d ? '' : $f->media_title).'</td>';
 		$res .= '<td class="nowrap count">'.($f->d ? '' : $f->media_dtstr).'</td>';
-		$res .= '<td class="nowrap count">'.($f->d ? '' : files::size($f->size).' - '.'<a href="'.$f->file_url.'">'.__('open').'</a>').'</td>';
+		$res .= '<td class="nowrap count">'.($f->d ? '' : files::size($f->size).' - '.
+			'<a '.$class_open.'href="'.$f->file_url.'">'.__('open').'</a>').'</td>';
 		$res .= '</tr>';
 	}
Index: admin/media_item.php
===================================================================
--- admin/media_item.php	(revision 3167)
+++ admin/media_item.php	(revision 3369)
@@ -185,5 +185,5 @@
 
 # Function to get image title based on meta
-function dcGetImageTitle($file,$pattern,$dto_first=false,$no_date_alone=false)
+$get_img_title = function ($file,$pattern,$dto_first=false,$no_date_alone=false)
 {
 	$res = array();
@@ -225,5 +225,5 @@
 	}
 	return implode($sep,$res);
-}
+};
 
 /* DISPLAY Main page
@@ -235,4 +235,5 @@
 	"//]]>".
 	"</script>".
+	dcPage::jsModal().
 	dcPage::jsLoad('js/_media_item.js');
 if ($popup && !empty($plugin_id)) {
@@ -307,5 +308,5 @@
 	{
 		$media_type = 'image';
-		$media_desc = dcGetImageTitle($file,
+		$media_desc = $get_img_title($file,
 			$core->blog->settings->system->media_img_title_pattern,
 			$core->blog->settings->system->media_img_use_dto_first,
@@ -376,5 +377,5 @@
 	{
 		$media_type = 'image';
-		$media_desc = dcGetImageTitle($file,
+		$media_desc = $get_img_title($file,
 			$core->blog->settings->system->media_img_title_pattern,
 			$core->blog->settings->system->media_img_use_dto_first,
@@ -554,10 +555,14 @@
 
 	if (isset($file->media_thumb[$thumb_size])) {
-		echo '<p><img src="'.$file->media_thumb[$thumb_size].'?'.time()*rand().'" alt="" /></p>';
+		echo '<p><a class="modal-image" href="'.$file->file_url.'">'.
+			'<img src="'.$file->media_thumb[$thumb_size].'?'.time()*rand().'" alt="" />'.
+			'</a></p>';
 	} elseif ($thumb_size == 'o') {
 		$S = getimagesize($file->file);
 		$class = ($S[1] > 500) ? ' class="overheight"' : '';
 		unset($S);
-		echo '<p id="media-original-image"'.$class.'><img src="'.$file->file_url.'?'.time()*rand().'" alt="" /></p>';
+		echo '<p id="media-original-image"'.$class.'><a class="modal-image" href="'.$file->file_url.'">'.
+			'<img src="'.$file->file_url.'?'.time()*rand().'" alt="" />'.
+			'</a></p>';
 	}
 
Index: admin/plugin.php
===================================================================
--- admin/plugin.php	(revision 2708)
+++ admin/plugin.php	(revision 3333)
@@ -78,4 +78,11 @@
 	call_user_func($open_f,$p_title,$p_head);
 	echo $p_content;
+	if (!$popup) {
+		// Add direct links to plugin settings if any
+		$settings = adminModulesList::getSettingsUrls($core,$p,true,false);
+		if (!empty($settings)) {
+			echo '<hr class="clear"/><p class="right modules">'.implode(' - ',$settings).'</p>';
+		}
+	}
 	call_user_func($close_f);
 }
Index: admin/popup_posts.php
===================================================================
--- admin/popup_posts.php	(revision 2971)
+++ admin/popup_posts.php	(revision 3375)
@@ -50,5 +50,5 @@
 echo '<h2 class="page-title">'.__('Add a link to an entry').'</h2>';
 
-echo '<form action="popup_posts.php" method="get">'.
+echo '<form action="'.$core->adminurl->get('admin.popup_posts').'" method="get">'.
 	'<p><label for="type" class="classic">'.__('Entry type:').'</label> '.form::combo('type',$type_combo,$type).''.
 	'<noscript><div><input type="submit" value="'.__('Ok').'" /></div></noscript>'.
@@ -56,5 +56,5 @@
 	'</form>';
 
-echo '<form action="popup_posts.php" method="get">'.
+echo '<form action="'.$core->adminurl->get('admin.popup_posts').'" method="get">'.
 	'<p><label for="q" class="classic">'.__('Search entry:').'</label> '.form::field('q',30,255,html::escapeHTML($q)).
 	' <input type="submit" value="'.__('Search').'" />'.
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 3209)
+++ admin/post.php	(revision 3340)
@@ -272,5 +272,5 @@
 
 	$cur->post_title = $post_title;
-	$cur->cat_id = ($cat_id ? $cat_id : null);
+	$cur->cat_id = ($cat_id ?: null);
 	$cur->post_dt = $post_dt ? date('Y-m-d H:i:00',strtotime($post_dt)) : '';
 	$cur->post_format = $post_format;
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 3209)
+++ admin/posts.php	(revision 3360)
@@ -136,4 +136,10 @@
 	__('Number of trackbacks') => 'nb_trackback'
 	);
+
+	$sortby_lex = array(
+		// key in sorty_combo (see above) => field in SQL request
+		'post_title' => 'post_title',
+		'cat_title' => 'cat_title',
+		'user_id' => 'P.user_id');
 
 	$order_combo = array(
@@ -275,6 +281,11 @@
 # - Sortby and order filter
 if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
+	if (array_key_exists($sortby,$sortby_lex)) {
+		$params['order'] = $core->con->lexFields($sortby_lex[$sortby]);
+	} else {
+		$params['order'] = $sortby;
+	}
 	if ($order !== '' && in_array($order,$order_combo)) {
-		$params['order'] = $sortby.' '.$order;
+		$params['order'] .= ' '.$order;
 	} else {
 		$order='desc';
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 3265)
+++ admin/preferences.php	(revision 3340)
@@ -47,5 +47,5 @@
 $user_ui_iconset = @$core->auth->user_prefs->interface->iconset;
 $user_ui_nofavmenu = $core->auth->user_prefs->interface->nofavmenu;
-$user_ui_media_by_page = ($core->auth->user_prefs->interface->media_by_page ? $core->auth->user_prefs->interface->media_by_page : 30);
+$user_ui_media_by_page = ($core->auth->user_prefs->interface->media_by_page ?: 30);
 $user_ui_media_nb_last_dirs = $core->auth->user_prefs->interface->media_nb_last_dirs;
 
@@ -98,4 +98,21 @@
 # Language codes
 $lang_combo = dcAdminCombos::getAdminLangsCombo();
+
+# Get 3rd parts xhtml editor flags
+$rte = array(
+	'blog_descr' => array(true,__('Blog description (in blog parameters)')),
+	'cat_descr' => array(true,__('Category description'))
+);
+$rte = new ArrayObject($rte);
+$core->callBehavior('adminRteFlags',$core,$rte);
+# Load user settings
+$rte_flags = @$core->auth->user_prefs->interface->rte_flags;
+if (is_array($rte_flags)) {
+	foreach ($rte_flags as $fk => $fv) {
+		if (isset($rte[$fk])) {
+			$rte[$fk][0] = $fv;
+		}
+	}
+}
 
 # Get default colums (admin lists)
@@ -233,4 +250,11 @@
 		}
 		$core->auth->user_prefs->interface->put('cols',$cu,'array');
+
+		# Update user xhtml editor flags
+		$rf = array();
+		foreach ($rte as $rk => $rv) {
+			$rf[$rk] = isset($_POST['rte_flags']) && in_array($rk,$_POST['rte_flags'],true) ? true : false;
+		}
+		$core->auth->user_prefs->interface->put('rte_flags',$rf,'array');
 
 		# Update user
@@ -466,5 +490,5 @@
 echo
 '<div class="fieldset">'.
-'<h4>'.__('Interface').'</h4>'.
+'<h4 id="user_options_interface">'.__('Interface').'</h4>'.
 
 '<p><label for="user_ui_enhanceduploader" class="classic">'.
@@ -500,12 +524,16 @@
 echo
 '<div class="fieldset">'.
-'<h4>'.__('Optional columns displayed in lists').'</h4>';
+'<h4 id="user_options_columns">'.__('Optional columns displayed in lists').'</h4>';
+$odd = true;
 foreach ($cols as $col_type => $col_list) {
+	echo '<div class="two-boxes '.($odd ? 'odd' : 'even').'">';
 	echo '<h5>'.$col_list[0].'</h5>';
 	foreach ($col_list[1] as $col_name => $col_data) {
 		echo
-		'<p><label for="cols_'.$col_type.'-"'.$col_name.'" class="classic">'.
+		'<p><label for="cols_'.$col_type.'-'.$col_name.'" class="classic">'.
 		form::checkbox(array('cols_'.$col_type.'[]','cols_'.$col_type.'-'.$col_name),$col_name,$col_data[0]).$col_data[1].'</label>';
 	}
+	echo '</div>';
+	$odd = !$odd;
 }
 echo '</div>';
@@ -513,6 +541,7 @@
 echo
 '<div class="fieldset">'.
-'<h4>'.__('Edition').'</h4>';
-
+'<h4 id="user_options_edition">'.__('Edition').'</h4>';
+
+echo '<div class="two-boxes odd">';
 foreach ($format_by_editors as $format => $editors) {
 	echo
@@ -544,4 +573,15 @@
 
 '</div>';
+
+echo '<div class="two-boxes even">';
+echo '<h5>'.__('Use xhtml editor for:').'</h5>';
+foreach ($rte as $rk => $rv) {
+	echo
+		'<p><label for="rte_'.$rk.'" class="classic">'.
+		form::checkbox(array('rte_flags[]','rte_'.$rk),$rk,$rv[0]).$rv[1].'</label>';
+}
+echo '</div>';
+
+echo '</div>';	// fieldset
 
 echo
Index: admin/style/config.rb
===================================================================
--- admin/style/config.rb	(revision 3355)
+++ admin/style/config.rb	(revision 3355)
@@ -0,0 +1,19 @@
+# Require any additional compass plugins here.
+
+# Set this to the root of your project when deployed:
+http_path = "./"
+css_dir = "./"
+sass_dir = "scss"
+images_dir = "img"
+javascripts_dir = "scripts"
+
+# You can select your preferred output style here (can be overridden via the command line):
+# output_style = :expanded or :nested or :compact or :compressed
+# To enable relative paths to assets via compass helper functions. Uncomment:
+# relative_assets = true
+# To disable debugging comments that display the original location of your selectors. Uncomment:
+output_style = :nested
+environment = :development
+line_comments = false
+
+Sass::Script::Number.precision = 7
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 3294)
+++ admin/style/default.css	(revision 3370)
@@ -1,2 +1,3 @@
+@charset "UTF-8";
 /*
 # -- BEGIN LICENSE BLOCK --------------------------------------------------
@@ -6,260 +7,487 @@
 # See LICENSE file or http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 # -- END LICENSE BLOCK ----------------------------------------------------
-			LAYOUTS
-			HTML TAGS
-			FORMULAIRES
-			BOUTONS
-			MESSAGES
-			ELEMENTS PRINCIPAUX
-			REGLES SPECIFIQUES
-			MEDIA QUERIES
 */
-/* ---------------------------------------------------------------------------
-																		START
----------------------------------------------------------------------------- */
+/** --------------------------------------------------
+    Start
+--------------------------------------------------- */
+/* largeur des paddings et border compris dans "width" */
+*,
+*:before,
+*:after {
+  box-sizing: border-box; }
+
 html {
-	font-size: 62.5%;
-	}
+  font-size: 100%;
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+  margin: 0;
+  padding: 0; }
+
 body {
-	font-size: 12px; /* ie < 9 sucks */
-	font-size: 1.2rem;
-	line-height: 1.5;
-	font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
-	margin: 0;
-	padding: 0;
-	}
-/* ---------------------------------------------------------------------------
-																	LAYOUTS
----------------------------------------------------------------------------- */
-*, *:before, *:after {
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-	}
+  margin: 0;
+  padding: 0; }
+
+a {
+  background: transparent; }
+
+a:focus {
+  outline: thin dotted; }
+
+a:active, a:hover {
+  outline: none; }
+
+a img {
+  border: none; }
+
+q, cite {
+  font-style: italic; }
+
+q:before, q:after {
+  content: ""; }
+
+sup, sub {
+  font-size: .75em;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline; }
+
+sup {
+  top: -0.5em; }
+
+sub {
+  bottom: -0.25em; }
+
+abbr[title] {
+  border-bottom: 1px dotted;
+  cursor: help; }
+
+b, strong {
+  font-weight: bold;
+  font-size: 0.9375em; }
+
+small {
+  font-size: 80%; }
+
+dfn {
+  font-style: italic; }
+
+hr {
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+  height: 0; }
+
+mark {
+  background: #ff0;
+  color: #000; }
+
+code, kbd, pre, samp {
+  font-family: monospace, serif;
+  font-size: 1em; }
+
+pre {
+  white-space: pre-wrap; }
+
+fieldset {
+  margin: 0;
+  padding: 0;
+  border: none; }
+
+input, button, select {
+  vertical-align: middle; }
+
+button, input, select, textarea {
+  font-family: inherit;
+  font-size: 100%;
+  margin: 0; }
+
+button, input {
+  line-height: normal; }
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  cursor: pointer; }
+
+button[disabled],
+html input[disabled] {
+  cursor: default; }
+
+input[type="checkbox"],
+input[type="radio"] {
+  padding: 0;
+  border: none; }
+
+input[type="search"] {
+  -webkit-appearance: textfield; }
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none; }
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0; }
+
+textarea {
+  overflow: auto;
+  vertical-align: top; }
+
+table {
+  border-collapse: collapse;
+  margin-bottom: 1.5em; }
+
+td, th {
+  padding: 1px;
+  vertical-align: top;
+  text-align: left; }
+
+td:first-child, th:first-child {
+  empty-cells: hide; }
+
+/* scripts */
+body > script {
+  display: none !important; }
+
+/* HTML5 for old browsers */
+article, aside, details, figcaption, figure, footer,
+header, hgroup, main, nav, section, summary {
+  display: block; }
+
+audio, canvas, video {
+  display: inline-block; }
+
+audio:not([controls]) {
+  display: none;
+  height: 0; }
+
+figure {
+  margin: 0; }
+
+[hidden], template {
+  display: none; }
+
+svg:not(:root) {
+  overflow: hidden; }
+
+/* Headings reset */
+h1, h2, h3, h4, h5, h6 {
+  font-size: 1em;
+  font-weight: normal;
+  margin: 0; }
+
+/* Screen-reader only */
+.visually-hidden {
+  border: 0;
+  clip: rect(0 0 0 0);
+  clip-path: inset(50%);
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  padding: 0;
+  position: absolute;
+  width: 1px;
+  white-space: nowrap; }
+  .visually-hidden:focus, .visually-hidden:active {
+    clip: auto;
+    clip-path: none;
+    height: auto;
+    overflow: visible;
+    position: static;
+    width: auto;
+    white-space: normal; }
+
+/** --------------------------------------------------
+    Common rules
+--------------------------------------------------- */
+/* Typographie */
+html {
+  font-size: 62.5%; }
+
+body {
+  font-size: 1.4rem;
+  line-height: 1.5;
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
+  @media screen and (max-width: 26.5em) {
+    body {
+      font-size: 1.2rem;
+      line-height: 1.3; } }
+  @media screen and (min-width: 120em) {
+    body {
+      font-size: 1.6rem;
+      line-height: 1.5; } }
+  @media screen and (min-width: 26.5em) and (max-width: 120em) {
+    body {
+      font-size: calc( 1.2rem + 0.4 * (100vw - 42.4rem) / (192 - 42.4) );
+      line-height: calc( 1.3em + (1.5 - 1.3) * (100vw - 42.4rem) / (192 - 42.4) ); } }
+
+@media screen and (max-width: 26.5em) {
+  #wrapper {
+    font-size: 1.4em; } }
+
+h2, h3, .as_h3, h4, .as_h4, h5, h6 {
+  margin-top: 0;
+  margin-bottom: 1em; }
+
+h2 {
+  font-size: 1.5em;
+  font-weight: normal;
+  line-height: 1.25;
+  padding: 0 0 1.5em; }
+
+h3, .as_h3 {
+  font-size: 1.34em;
+  font-weight: normal;
+  line-height: 1.5;
+  margin-top: 1em; }
+
+h4, .as_h4 {
+  font-size: 1.16em;
+  line-height: 1.5; }
+
+h5 {
+  font-size: 1em;
+  line-height: 1.5;
+  font-weight: bold; }
+
+h6 {
+  font-size: 1em;
+  line-height: 1.5; }
+
+/** --------------------------------------------------
+    Layout
+--------------------------------------------------- */
 #dotclear-admin {
-    display: flex;
-    min-height: 100vh;
-	flex-direction: column;
-}
+  display: flex;
+  min-height: 100vh;
+  flex-direction: column; }
+
 #header {
-	background: #676e78;
-	color: #FFF;
-	border-bottom: 4px solid #A2CBE9;
-	width: 99.99%;	/* Bugfix Chrome >= 49.0.2623.108 */
-	display: table;
-	position: relative;
-	}
+  width: 99.99%;
+  /* Bugfix Chrome >= 49.0.2623.108 */
+  display: table;
+  position: relative; }
+
+h1,
+#top-info-blog,
+#top-info-user {
+  display: table-cell;
+  padding: 8px 0;
+  margin: 0;
+  font-size: 1em;
+  vertical-align: top; }
+
 #wrapper {
-	position: relative;
-	padding-top: 1.5em;
-	float: left;
-	width: 100%;
-	z-index: 10;
-	background: #F7F7F7 url(bg_wrapper.png) repeat-y 15em;
-	flex: 1;
-	}
+  position: relative;
+  padding-top: 1.5em;
+  float: left;
+  width: 100%;
+  z-index: 10;
+  flex: 1; }
+
 .with-js #wrapper {
-	padding-top: 0;
-	}
+  padding-top: 0; }
+
 #main {
-	width: 100%;
-	float: right;
-	margin-left: -14em;
-	margin-top: 0;
-	}
+  width: 100%;
+  float: right;
+  margin-left: -14em;
+  margin-top: 0; }
+
 #content {
-	margin: 0 0 0 14em;
-	padding: .5em 1.5em .75em 2.5em;
-	background: #fff;
-	}
+  margin: 0 0 0 14em;
+  padding: .5em 1.5em .75em 2.5em; }
+
 #main-menu {
-	width: 14em;
-	float: left;
-	margin: 0;
-	padding-top: .5em;
-	padding-bottom: 1em;
-	overflow: hidden;
-	background: #f7f7f7;
-	}
+  width: 14em;
+  float: left;
+  margin: 0;
+  padding-top: .5em;
+  padding-bottom: 1em;
+  overflow: hidden; }
+
 #footer {
-	clear: both;
-	position: relative;
-	padding: .5em 0 .5em 1em;
-	text-align: left;
-	border-top: 1px solid #ccc;
-	background-color: #fff;
-	}
+  clear: both;
+  position: relative;
+  padding: .5em 0 .5em 1em;
+  text-align: left; }
+
 /* to hide main-menu */
 #collapser {
-	position: absolute;
-	top: 0;
-	left: 14em;
-	width: 15px;
-	height: 100%;
-	overflow: hidden;
-	display: block;
-	background: #f3f3f3 url(../images/collapser-hide.png) no-repeat center bottom;
-	border-right: double #dfdfdf;
-	z-index: 1;
-	}
+  position: absolute;
+  top: 0;
+  left: 14em;
+  width: 12px;
+  height: 100%;
+  overflow: hidden;
+  display: block;
+  border-right: 0;
+  border-bottom: 0;
+  z-index: 1;
+  transition: none; }
+
 .expand-mm {
-	display: none;
-	}
+  display: none; }
+
 /* if main-menu is hidden */
-#wrapper.hide-mm {
-	background: #fff;
-	}
 .hide-mm #main {
-	margin-left: 0;
-	}
+  margin-left: 0; }
+
 .hide-mm #content {
-	margin-left: 1em;
-	}
+  margin-left: 12px; }
+
+.hide-mm #content > h2 {
+  margin-left: calc(-1em - 12px); }
+
 .hide-mm #main-menu {
-	display: none;
-	}
+  display: none; }
+
 .hide-mm #collapser {
-	left: 0;
-	background: #e3e3e3 url(../images/collapser-show.png) no-repeat center bottom;
-	}
+  left: 0; }
+
 .hide-mm .collapse-mm {
-	display: none;
-	}
+  display: none; }
+
 .hide-mm .expand-mm {
-	display: block;
-	}
+  display: block; }
+
 /* -------------------------------------------------------------- layout: two-cols */
 .two-cols {
-	position: static;
-	}
+  position: static; }
+
 .two-cols .col {
-	width: 48%;
-	margin-left: 2%;
-	float: left;
-	}
+  width: 48%;
+  margin-left: 2%;
+  float: left; }
+
 .two-cols .col70 {
-	width: 68%;
-	margin-left: 0;
-	float: left;
-	}
+  width: 68%;
+  margin-left: 0;
+  float: left; }
+
 .col30 {
-	width: 28%;
-	margin-left: 2%;
-	float: left;
-	}
+  width: 28%;
+  margin-left: 2%;
+  float: left; }
+
 .two-cols .col:first-child,
 .two-cols .col30.first-col {
-	margin-left: 0;
-	margin-right: 2%;
-	}
+  margin-left: 0;
+  margin-right: 2%; }
+
 .two-cols .col:last-child,
 .two-cols .col70.last-col {
-	margin-left: 2%;
-	margin-right: 0;
-	}
+  margin-left: 2%;
+  margin-right: 0; }
+
 .two-cols table {
-	width: 90%;
-	}
+  width: 90%; }
+
 /* -------------------------------------------------------------- layout: three-cols */
 .three-cols {
-	position: static;
-	}
+  position: static; }
+
 .three-cols .col {
-	width: 32.3%;
-	float: left;
-	margin-left: 1%;
-	}
+  width: 32.3%;
+  float: left;
+  margin-left: 1%; }
+
 .three-cols .col:first-child {
-	margin-left: 0;
-	}
+  margin-left: 0; }
+
 /* ------------------------------------------------- layout: optionnal one/two/three-boxes */
 .one-box {
-	text-align: justify;
-	}
+  text-align: justify; }
+
 .two-boxes {
-	width: 48.5%;
-	}
+  width: 48.5%; }
+
 .three-boxes {
-	width: 30%;
-	}
-.two-boxes, .three-boxes {
-	display: inline-block;
-	vertical-align: top;
-	margin: 0 1.5% 1em;
-	text-align: left;
-	}
-.two-boxes:nth-of-type(odd), .three-boxes:nth-of-type(3n+1) {
-	margin-left: 0;
-	}
-.two-boxes:nth-of-type(even), .three-boxes:nth-of-type(3n) {
-	margin-right: 0;
-	}
+  width: 30%; }
+
+.two-boxes,
+.three-boxes {
+  display: inline-block;
+  vertical-align: top;
+  margin: 0 1.5% 1em;
+  text-align: left; }
+
+.two-boxes:nth-of-type(odd),
+.three-boxes:nth-of-type(3n+1) {
+  margin-left: 0; }
+
+.two-boxes:nth-of-type(even),
+.three-boxes:nth-of-type(3n) {
+  margin-right: 0; }
+
 /* ---------------------------------------------------------------- layout: popups */
 .popup h1 {
-	display: block;
-	width: 100%;
-	margin: 0;
-	background: #676e78;
-	font-size: 1.5em;
-	text-indent: 1em;
-	line-height: 1.5em;
-	font-weight: normal;
-	color: #fff;
-	}
+  display: block;
+  width: 100%;
+  margin: 0;
+  font-size: 1.5em;
+  text-indent: 1em;
+  line-height: 1.5em;
+  font-weight: normal; }
+
 .popup #wrapper {
-	display: block;
-	float: none;
-	width: 100%;
-	margin: 0;
-	padding: 0;
-	background-position: 0 0;
-	}
+  display: block;
+  float: none;
+  width: 100%;
+  margin: 0;
+  padding: 0;
+  background-position: 0 0; }
+
 .popup #main {
-	margin: 0;
-	padding: 0;
-	}
+  margin: 0;
+  padding: 0; }
+
 .popup #content {
-	margin: 0;
-	padding: 1em;
-	}
+  margin: 0;
+  padding: 1em; }
+
 .popup #content h2 {
-	margin: 0 0 1em 0;
-	padding: 0;
-	}
+  margin: 0 0 1em 0;
+  padding: 0; }
+
 .popup #footer p {
-	border: none;
-	}
+  border: none; }
+
 /* -------------------------------------------------------- layout: classes de complément */
 .constrained {
-	margin: 0;
-	padding: 0;
-	border: none;
-	background: transparent;
-	}
+  margin: 0;
+  padding: 0;
+  border: none;
+  background: transparent; }
+
 .table {
-	display: table;
-	}
+  display: table; }
+
 .cell {
-	display: table-cell;
-	vertical-align: top;
-	}
+  display: table-cell;
+  vertical-align: top; }
+
 .clear {
-	clear: both;
-	}
+  clear: both; }
+
 .lclear {
-	clear: left;
-	}
+  clear: left; }
+
 .clearer {
-	height: 1px;
-	font-size: 1px;
-	}
+  height: 1px;
+  font-size: 1px; }
+
 /* Micro clearfix thx to Nicolas Gallagher */
-.clearfix:before, .clearfix:after {
-	content: " ";
-	display: table;
-	}
+.clearfix:before,
 .clearfix:after {
-	clear: both;
-	}
+  content: " ";
+  display: table; }
+
+.clearfix:after {
+  clear: both; }
+
+/*
 .frame-shrink {
 	border: 1px solid #676e78;
@@ -269,357 +497,666 @@
 	overflow: auto;
 	}
+ */
 .box {
-	display: inline-block;
-	vertical-align: top;
-	margin: 0 10px 10px;
-	text-align: left;
-	}
+  display: inline-block;
+  vertical-align: top;
+  margin: 0 10px 10px;
+  text-align: left; }
+
 .box.small {
-	width: 312px;
-	}
+  width: 312px; }
+
 .box.medium {
-	width: 644px;
-	}
+  width: 644px; }
+
 .box.large {
-	width: 100%;
-	}
+  width: 100%; }
+
 .odd {
-	margin-left: 0;
-	}
+  margin-left: 0; }
+
 .even {
-	margin-right: 0;
-	}
-/* ---------------------------------------------------------------------------
-																	HTML TAGS
----------------------------------------------------------------------------- */
+  margin-right: 0; }
+
+/* ------------------------------------------------------------------------------------
+                                                            UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+@media screen and (max-width: 80em) {
+  #main {
+    margin-left: -17em; }
+
+  #content {
+    margin: 0 0 0 17em; }
+
+  #main-menu {
+    width: 17em; }
+
+  #collapser {
+    left: 17em; }
+
+  h1 {
+    width: 19.5em; }
+
+  #top-info-blog #switchblog {
+    max-width: 16em; }
+
+  #top-info-blog a {
+    margin-left: 2em; }
+
+  #header {
+    display: block;
+    width: 100%;
+    text-align: right; }
+
+  #header h1,
+  #header h1 a {
+    width: 120px;
+    margin: 0; }
+
+  h1,
+  #top-info-blog {
+    display: inline-block;
+    vertical-align: top;
+    margin-right: 1em; }
+
+  #top-info-user {
+    display: block;
+    width: 100%; }
+
+  .three-boxes,
+  .three-boxes .box,
+  .two-cols .col70,
+  .two-cols .col30 {
+    width: 100%;
+    margin-left: 0;
+    margin-right: 0; } }
+@media screen and (max-width: 48em) {
+  #dashboard-boxes .box.medium,
+  .box.medium,
+  #dashboard-boxes .box.small,
+  .box.small,
+  #dashboard-boxes .box.large,
+  .box.large {
+    width: 95%;
+    margin: 10px auto; } }
+@media screen and (max-width: 44em) {
+  #help-button {
+    height: 26px;
+    width: 26px;
+    margin: 0;
+    overflow: hidden; }
+
+  #content.with-help #help-button {
+    top: 10em; }
+
+  .one-box,
+  .two-boxes,
+  .box,
+  .two-cols .col {
+    width: 96%;
+    margin-left: 0;
+    margin-right: 0; }
+
+  #entry-wrapper {
+    float: none;
+    width: 100%;
+    margin-right: 0; }
+
+  #entry-content {
+    margin-right: 0;
+    margin-left: 0; }
+
+  #entry-sidebar {
+    width: 100%;
+    float: none; } }
+@media screen and (max-width: 38em) {
+  #header h1,
+  #header h1 a {
+    width: 42px !important;
+    height: 42px; }
+
+  #wrapper,
+  #main,
+  #main-menu {
+    display: block;
+    float: none;
+    width: 100%;
+    margin: 0; }
+
+  #main-menu a {
+    display: block;
+    width: 100%; }
+
+  #main-menu h3 a {
+    display: inline; }
+
+  #content,
+  .hide-mm #content {
+    margin: 0; }
+
+  #collapser {
+    display: none; }
+
+  #main #content > h2 {
+    margin: 0 -.25em 1em; }
+
+  #dashboard-boxes .box.medium,
+  .box.medium,
+  #dashboard-boxes .box.small,
+  .box.small,
+  #dashboard-boxes .box.large,
+  .box.large {
+    width: 95%;
+    margin: 10px auto; }
+
+  .cell,
+  #filters-form .cell {
+    display: inline-block;
+    vertical-align: bottom; }
+
+  .pseudo-tabs li {
+    display: block;
+    float: left;
+    width: 50%; } }
+@media screen and (max-width: 26.5em) {
+  #top-info-blog label,
+  .nomobile {
+    display: none; }
+
+  #top-info-blog {
+    margin-bottom: .5em;
+    max-width: 75%; }
+
+  #top-info-blog select {
+    margin-bottom: .5em; }
+
+  #content.with-help #help-button {
+    top: 10em;
+    right: 28rem; }
+
+  #content.with-help #help {
+    width: 28rem; }
+
+  p.top-add {
+    margin-bottom: .5em; }
+
+  .part-tabs ul {
+    margin: 1em 0; }
+
+  .part-tabs li a {
+    display: block;
+    width: 100%; }
+
+  #icons p {
+    width: 9em; }
+
+  .media-item {
+    width: 90%; }
+
+  #theme-new,
+  #theme-activate,
+  #theme-deactivate {
+    margin-left: 0;
+    margin-right: 0; }
+
+  .box.current-theme {
+    margin: 5px;
+    width: 100%; }
+
+  .current-theme .module-sshot img {
+    margin: 0;
+    float: none;
+    max-width: 100%; }
+
+  table .maximal {
+    min-width: 14em; }
+
+  .pseudo-tabs li {
+    display: block;
+    width: 100%;
+    float: none; } }
+/** --------------------------------------------------
+	Colors
+--------------------------------------------------- */
 body {
-	color: #333;
-	background: #fff;
-	}
+  color: #323232;
+  background: #fff; }
+
+h2 {
+  color: #676e78; }
+
+h3, .as_h3 {
+  color: #d33800; }
+
+h4, .as_h4 {
+  color: #676e78; }
+
+h5 {
+  color: #676e78; }
+
+h6 {
+  color: #676e78; }
+
+/* ---------------------------------------------------------------- layout: main */
+#header {
+  color: #fff;
+  background: #676e78;
+  border-bottom: 4px solid #a2cbe9; }
+
+#wrapper {
+  background: #f3f3f3 url(bg_wrapper.png) repeat-y 14em; }
+
+#content {
+  background: #fff; }
+
+#main-menu {
+  background: #f3f3f3; }
+
+#footer {
+  background-color: #fff;
+  border-top: 1px solid #c9c9c9; }
+
+/* to hide main-menu */
+#collapser {
+  background: #a2cbe9; }
+
+/* if main-menu is hidden */
+#wrapper.hide-mm {
+  background: #fff; }
+
+/* ---------------------------------------------------------------- layout: popups */
+.popup h1 {
+  color: #fff;
+  background: #676e78; }
+
+/* ------------------------------------------------------------------------------------
+															UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+@media screen and (max-width: 80em) {
+  #header, h1 {
+    background: #323232; }
+
+  #top-info-user {
+    background: #676e78; }
+
+  #top-info-user a.active {
+    color: #fff;
+    background: #868686; }
+
+  #wrapper {
+    background: #f3f3f3 url(bg_wrapper.png) repeat-y 17em; } }
+@media screen and (max-width: 44em) {
+  #help-button {
+    background-color: #a2cbe9; } }
+@media screen and (max-width: 38em) {
+  h1 a:link {
+    border-right: 1px solid #c9c9c9; }
+
+  h1 a:hover,
+  h1 a:focus {
+    border-right: 1px solid #a2cbe9; }
+
+  .pseudo-tabs li {
+    border-top: 1px solid #c9c9c9; } }
+@media screen and (max-width: 26.5em) {
+  h1,
+  h1 a {
+    border-right: #323232 !important; }
+
+  .pseudo-tabs li {
+    border-top: 1px solid #c9c9c9 !important; } }
+/** --------------------------------------------------
+    Elements
+--------------------------------------------------- */
 /* ------------------------------------------------------------------ titres */
-h1, h2, h3, .as_h3, h4, .as_h4, h5, h6 {
-	margin-top: 0;
-	margin-bottom: 1em;
-	}
-h2 {
-	color: #676e78;
-	font-size: 1.5em;
-	padding: 0 0 1.5em;
-	font-weight: normal;
-	line-height: 1.25;
-	}
 /* fil d'ariane */
 #content > h2 {
-	padding: 0 1em .5em 1em;
-	margin: 0 -1em 1em -1em;
-	background: #fff url(bg_h2.png) repeat-x center bottom;
-	}
-h2 a:link, h2 a:visited {
-	color: #676e78;
-	border-color: #000;
-	}
+  padding: 0 1em .5em 1em;
+  margin: 0 -1em 1em -1em;
+  background: #fff url(bg_h2.png) repeat-x center bottom; }
+
+h2 a:link,
+h2 a:visited {
+  color: #676e78;
+  border-color: #000; }
+
 /* page courante dans le fil d'ariane */
 .page-title {
-	color: #d30e60;
-	}
+  color: #d30e60; }
+
 .page-title img {
-	padding-left: .5em;
-	vertical-align: middle;
-	}
+  padding-left: .5em;
+  vertical-align: middle; }
+
 /* autres titres */
-h3, .as_h3 {
-	margin-top: 1em;
-	color: #D33800;
-	font-weight: normal;
-	font-size: 1.34em;
-	}
 #main-menu h3 {
-	font-weight: bold;
-	}
-h4, .as_h4 {
-	font-size: 1.16em;
-	color: #676e78;
-	}
-.fieldset h3, .fieldset h4, .pretty-title {
-	color: #D33800;
-	font-size: 1em;
-	font-weight: bold;
-	}
+  font-weight: bold; }
+
+.fieldset h3,
+.fieldset h4,
+.pretty-title {
+  color: #D33800;
+  font-size: 1em;
+  font-weight: bold; }
+
 .fieldset h3 {
-	font-size: 1.17em;
-	}
-.fieldset h3.smart-title, .fieldset h4.smart-title, .smart-title {
-	font-size: 1em;
-	text-transform: uppercase;
-	font-weight: bold;
-	color: #333;
-	text-shadow: 0 1px 0 rgba(200, 200, 200, 0.6)
-	}
-h5 {
-	font-size: 1em;
-	font-weight: bold;
-	color: #676e78;
-	}
+  font-size: 1.17em; }
+
+.fieldset h3.smart-title,
+.fieldset h4.smart-title,
+.smart-title {
+  font-size: 1em;
+  text-transform: uppercase;
+  font-weight: bold;
+  color: #333;
+  text-shadow: 0 1px 0 rgba(200, 200, 200, 0.6); }
+
 #entry-sidebar h5 {
-	font-weight: normal;
-	color: #333;
-	}
+  font-weight: normal;
+  color: #333; }
+
 .entry-status img.img_select_option {
-	padding-left: 4px;
-	vertical-align: text-top;
-	}
-h4 label, h5 label {
-	color: #333;
-	}
-h2:first-child, h3:first-child, h4:first-child, h5:first-child, ul:first-child, p:first-child {
-	margin-top: 0;
-	}
+  padding-left: 4px;
+  vertical-align: text-top; }
+
+h4 label,
+h5 label {
+  color: #333; }
+
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child,
+ul:first-child,
+p:first-child {
+  margin-top: 0; }
+
 /* ---------------------------------------------------------------- tableaux */
 /* 	Pour autoriser le scroll sur les petites largeurs
 	envelopper les tableaux dans une div.table-outer */
 .table-outer {
-	width: 100%;
-	overflow: auto;
-	}
+  width: 100%;
+  overflow: auto; }
+
 table {
-	font-size: 1em;
-	border-collapse: collapse;
-	margin: 0 0 1em 0;
-	width: 100%;
-	}
+  font-size: 1em;
+  border-collapse: collapse;
+  margin: 0 0 1em 0;
+  width: 100%; }
+
 caption {
-	color: #333;
-	font-weight: bold;
-	text-align: left;
-	margin-bottom: .5em;
-	}
+  color: #333;
+  font-weight: bold;
+  text-align: left;
+  margin-bottom: .5em; }
+
 th {
-	border-width: 1px 0 1px 0;
-	border-style: solid;
-	border-color: #dfdfdf;
-	background: #eef1ec;
-	padding: .4em 1em .4em .5em;
-	vertical-align: top;
-	text-align: left;
-	}
+  border-width: 1px 0 1px 0;
+  border-style: solid;
+  border-color: #dfdfdf;
+  background: #eef1ec;
+  padding: .4em 1em .4em .5em;
+  vertical-align: top;
+  text-align: left; }
+
 td {
-	border-width: 0 0 1px 0;
-	border-style: solid;
-	border-color: #e3e3e3;
-	padding: .4em 1em .4em .5em;
-	vertical-align: top;
-	}
+  border-width: 0 0 1px 0;
+  border-style: solid;
+  border-color: #e3e3e3;
+  padding: .4em 1em .4em .5em;
+  vertical-align: top; }
+
 /* ---------------------------------------------------------- autres balises */
 p {
-	margin: 0 0 1em 0;
-	}
+  margin: 0 0 1em 0; }
+
 hr {
-	height: 1px;
-	border-width: 1px 0 0;
-	border-color: #dfdfdf;
-	background: #dfdfdf;
-	border-style: solid;
-	}
+  height: 1px;
+  border-width: 1px 0 0;
+  border-color: #dfdfdf;
+  background: #dfdfdf;
+  border-style: solid; }
+
 hr.clearer {
-	clear: both;
-	}
-pre, code, #debug {
-	font: 100% "Andale Mono","Courier New",monospace;
-	}
+  clear: both; }
+
+pre,
+code,
+#debug {
+  font: 100% "Andale Mono", AndaleMono, Consolas, Monaco, "Courier New", monospace; }
+
 code {
-	background: #fefacd;
-	}
+  background: #fefacd; }
+
 pre {
-	white-space: pre;
-	white-space: -moz-pre-wrap;
-	white-space: pre-wrap;
-	white-space: pre-line;
-	word-wrap: break-word;
-	}
+  white-space: pre;
+  white-space: -moz-pre-wrap;
+  white-space: pre-wrap;
+  white-space: pre-line;
+  word-wrap: break-word; }
+
 abbr {
-	cursor: help;
-	}
-input, textarea, select, option, optgroup, legend,label {
-	font-size: 1em;
-	}
+  cursor: help; }
+
+input,
+textarea,
+select,
+option,
+optgroup,
+legend,
+label {
+  font-size: 1em; }
+
 /* ------------------------------------------------------------------ liens */
-a, a:link, a:visited {
-	color: #2373A8;
-	text-decoration: none;
-	border-bottom: 1px dotted #999;
- 	background-color: inherit;
- 	outline: 0;
-	}
-a:hover, a:active {
-	border-bottom-style: solid;
-	}
-a img, a:link img, a:visited img {
-	border: none;
-	background: inherit;
-	}
-h1 a:link, h1 a:visited {
-	border: none;
-	}
+a,
+a:link,
+a:visited {
+  color: #2373A8;
+  text-decoration: none;
+  border-bottom: 1px dotted #999;
+  background-color: inherit;
+  outline: 0; }
+
+a:hover,
+a:active {
+  border-bottom-style: solid; }
+
+a img,
+a:link img,
+a:visited img {
+  border: none;
+  background: inherit; }
+
+h1 a:link,
+h1 a:visited {
+  border: none; }
+
 .discrete a {
-	color: #333;
-	}
+  color: #333; }
+
 a:link {
-  transition: .5s;
-}
-a:focus, a:focus img {
+  transition: .5s; }
+
+a:focus,
+a:focus img {
   outline: 2px solid #bee74b;
   border-bottom: none;
-  text-decoration: none;
-}
-/* ----------------------------------------------------------------------------
-																	FORMULAIRES
----------------------------------------------------------------------------- */
-input[type=text], input[type=password], input[type=submit],
-input[type=button], input[type=reset], a.button, button, textarea, select, legend {
-	border-radius: 3px;
-	max-width: 100%;
-	}
+  text-decoration: none; }
+
+input[type=text],
+input[type=password],
+input[type=submit],
+input[type=button],
+input[type=reset],
+a.button,
+button,
+textarea,
+select,
+legend {
+  border-radius: 3px;
+  max-width: 100%; }
+
 form {
-	display: block;
-	margin: 0;
-	padding: 0;
-	}
+  display: block;
+  margin: 0;
+  padding: 0; }
+
 fieldset {
-	display: block;
-	margin: 1em 0;
-	padding: 1em 0.5em;
-	border-width: 1px 0;
-	border-style: solid;
-	border-color: #ccc;
-	background: #f7f7f7;
-	}
-input[type=text], textarea {
-	font: 100% "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
-	}
+  display: block;
+  margin: 1em 0;
+  padding: 1em 0.5em;
+  border-width: 1px 0;
+  border-style: solid;
+  border-color: #ccc;
+  background: #f7f7f7; }
+
+input[type=text],
+textarea {
+  font-family: inherit;
+  font-size: 100%; }
+
 legend {
-	padding: 0.2em 0.6em;
-	border-width: 1px;
-	border-style: solid;
-	border-color: #676e78;
-	background: #fff;
-	margin-bottom: 0.5em;
-	}
-label .maximal, textarea.maximal, input.maximal, select.maximal {
-	width: 99%;
-	}
-input[type=text], input[type=password], textarea, select {
-	background: #fcfcfc;
-	color: #000;
-	border-width: 1px;
-	border-style: solid;
-	border-color: #dfdfdf;
-	box-shadow: 1px 1px 2px #f3f3f3 inset;
-	padding: 3px;
-	vertical-align: top;
-	}
-input:focus, textarea:focus, select:focus {
-	border-color: #9bca1c;
-	}
+  padding: 0.2em 0.6em;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #676e78;
+  background: #fff;
+  margin-bottom: 0.5em; }
+
+label .maximal,
+textarea.maximal,
+input.maximal,
+select.maximal {
+  width: 99%; }
+
+input[type=text],
+input[type=password],
+textarea,
+select {
+  background: #fcfcfc;
+  color: #000;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #dfdfdf;
+  box-shadow: 1px 1px 2px #f3f3f3 inset;
+  padding: 3px;
+  vertical-align: top; }
+
+input:focus,
+textarea:focus,
+select:focus {
+  border-color: #9bca1c; }
+
 textarea {
-	padding: 2px 0;
-	}
+  padding: 2px 0; }
+
 textarea.maximal {
-	resize: vertical;
-	}
+  resize: vertical; }
+
 .area textarea {
-	display: block;
-	width: 100%;
-	resize: vertical;
-	}
+  display: block;
+  width: 100%;
+  resize: vertical; }
+
 select {
-	padding: 2px 0;
-	vertical-align: middle;
-	}
+  padding: 2px 0;
+  vertical-align: middle; }
+
 select.l10n option {
-	padding-left: 16px;
-	}
+  padding-left: 16px; }
+
 option.avail10n {
-	background: transparent url(../images/check-on.png) no-repeat 0 50%;
-	}
-input.invalid, textarea.invalid, select.invalid {
-	border: 1px solid red;
-	background: #FFBABA;
-	color: #900;
-	box-shadow: 0 0 0 3px rgba(218, 62, 90, 0.3);
-	}
-input[type=text], input[type=password], textarea {
-	margin-right: .3em;
-	}
-input[type=checkbox], input[type=radio], input[type=file] {
-	border: none;
-	margin: 0 .33em 0 0;
-	padding: 0;
-	background: transparent;
-	}
+  background: transparent url(../images/check-on.png) no-repeat 0 50%; }
+
+input.invalid,
+textarea.invalid,
+select.invalid {
+  border: 1px solid red;
+  background: #FFBABA;
+  color: #900;
+  box-shadow: 0 0 0 3px rgba(218, 62, 90, 0.3); }
+
+input[type=text],
+input[type=password],
+textarea {
+  margin-right: .3em; }
+
+input[type=checkbox],
+input[type=radio],
 input[type=file] {
-	margin-top: .3em;
-	margin-bottom: .3em;
-	}
+  border: none;
+  margin: 0 .33em 0 0;
+  padding: 0;
+  background: transparent; }
+
+input[type=file] {
+  margin-top: .3em;
+  margin-bottom: .3em; }
+
 optgroup {
-	font-weight: bold;
-	font-style: normal;
-	}
+  font-weight: bold;
+  font-style: normal; }
+
 option {
-	font-weight: normal;
-	}
-label, label span {
-	display: block;
-	}
-label.ib, input.ib {
-	display: inline-block;
-	}
+  font-weight: normal; }
+
+label,
+label span {
+  display: block; }
+
+label.ib,
+input.ib {
+  display: inline-block; }
+
 label.classic {
-	display: inline;
-	}
-label.classic input, label span input, label.classic select, label span select {
-	display: inline;
-	}
+  display: inline; }
+
+label.classic input,
+label span input,
+label.classic select,
+label span select {
+  display: inline; }
+
 label.required {
-	font-weight: bold;
-	}
+  font-weight: bold; }
+
 label.required abbr {
-	color: #900;
-	font-size: 1.3em;
-	}
+  color: #900;
+  font-size: 1.3em; }
+
 label.bold {
-	text-transform: uppercase;
-	font-weight: bold;
-	margin-top: 2em;
-	}
-label.area, p.area {
-	width: inherit !important;
-	}
+  text-transform: uppercase;
+  font-weight: bold;
+  margin-top: 2em; }
+
+label.area,
+p.area {
+  width: inherit !important; }
+
 p.field {
-	position: relative;
-	}
+  position: relative; }
+
 p.field label {
-	display: inline-block;
-	width: 14em;
-	}
+  display: inline-block;
+  width: 14em; }
+
 p.field.wide label {
-	width: 21em;
-	}
-p.field input, p.field select {
-	display: inline-block;
-	}
+  width: 21em; }
+
+p.field input,
+p.field select {
+  display: inline-block; }
+
 .form-note {
-	font-style: italic;
-	font-weight: normal;
-	color: #676e78;
-	}
+  font-style: italic;
+  font-weight: normal;
+  color: #676e78; }
+
 p.form-note {
-	margin-top: -.7em;
-	}
+  margin-top: -.7em; }
+
 span.form-note {
-	text-transform: none;
-	}
-/* ----------------------------------------------------------------------------
-																		BOUTONS
----------------------------------------------------------------------------- */
+  text-transform: none; }
+
 /* Removes inner padding and border in FF3+  - Knacss */
 button::-moz-focus-inner,
@@ -627,7 +1164,7 @@
 input[type=reset]::-moz-focus-inner,
 input[type=submit]::-moz-focus-inner {
-	border: 0;
-	padding: 0;
-	}
+  border: 0;
+  padding: 0; }
+
 /* tous les boutons */
 button,
@@ -636,589 +1173,653 @@
 input[type=reset],
 input[type=submit] {
-	border: 1px solid #ccc;
-	font-family: "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
-	padding: 3px 10px;
-	line-height: normal !important;
-	display: inline-block;
-	font-size: 100%;
-	text-align: center;
-	text-decoration: none;
-	cursor: pointer;
-	position: relative;
-	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
-	border-style: solid;
-	border-width: 1px;
-	}
+  border: 1px solid #ccc;
+  font-family: inherit;
+  padding: 3px 10px;
+  line-height: normal !important;
+  display: inline-block;
+  font-size: 100%;
+  text-align: center;
+  text-decoration: none;
+  cursor: pointer;
+  position: relative;
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
+  border-style: solid;
+  border-width: 1px; }
+
 button,
 input[type=button],
 input[type=reset],
 input[type=submit] {
-	-webkit-appearance: button;
-	}
+  -webkit-appearance: button; }
+
 /* validation */
-input[type=submit], a.button.submit, input.button.start {
-	color: #fff;
-	background-color: #25A6E1;
-	background-image: -webkit-gradient(linear,left top,left bottom, from(#25A6E1), to(#188BC0));
-	background-image: linear-gradient(#25A6E1,#188BC0);
-	border-color: #25A6E1;
-	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-	}
-input[type=submit]:hover, input[type=submit]:focus,
-	input.button.start:hover, input.button.start:focus,
-	a.button.submit:hover, a.button.submit:focus {
-	background-color: #188BC0;
-	background-image: -webkit-gradient(linear,left top,left bottom, from(#188BC0),to(#25A6E1));
-	background-image: linear-gradient(#188BC0,#25A6E1);
-	border-color: #188BC0;
-	}
+input[type=submit],
+a.button.submit,
+input.button.start {
+  color: #fff;
+  background-color: #25a6e1;
+  background-image: linear-gradient(to bottom, #25a6e1, #188bc0);
+  border-color: #25a6e1;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); }
+
+input[type=submit]:hover,
+input[type=submit]:focus,
+input.button.start:hover,
+input.button.start:focus,
+a.button.submit:hover,
+a.button.submit:focus {
+  background-color: #188bc0;
+  background-image: linear-gradient(to bottom, #188bc0, #25a6e1);
+  border-color: #188bc0; }
+
 /* suppression, reset, "neutres" fond gris */
-button, input[type=button], input.button,
-input[type=reset], input[type=submit].reset, input.reset,
-input[type=submit].delete, input.delete,
- a.button, a.button.delete, a.button.reset {
-	color: #000;
-	background-color: #EAEAEA;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#EAEAEA));
-	background-image: linear-gradient(#f9f9f9,#EAEAEA);
-	background-repeat: repeat-x;
-	border-color: #dfdfdf #dfdfdf #C5C5C5;
-	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
-	}
-button:hover, input[type=button]:hover, input.button:hover,
-	button:focus, input[type=button]:focus, input.button:focus,
-	input[type=reset]:hover, input[type=submit].reset:hover, input.reset:hover,
-	input[type=reset]:focus, input[type=submit].reset:focus, input.reset:focus,
-	input[type=submit].delete:hover, input.delete:hover,
-	input[type=submit].delete:focus, input.delete:focus,
-	a.button.delete:hover, a.button.reset:hover, a.button:hover,
-	a.button.delete:focus, a.button.reset:focus, a.button:focus {
-	background-color: #DADADA;
-	background-image: -webkit-gradient( linear, left top, left bottom, from(#EAEAEA), to(#DADADA));
-	background-image: linear-gradient(#EAEAEA, #DADADA);
-	background-repeat: repeat-x;
-	border-color: #CCCCCC #CCCCCC #B5B5B5;
-	}
+button,
+input[type=button],
+input.button,
+input[type=reset],
+input[type=submit].reset,
+input.reset,
+input[type=submit].delete,
+input.delete,
+a.button,
+a.button.delete,
+a.button.reset {
+  color: #000;
+  background-color: #eaeaea;
+  background-image: linear-gradient(to bottom, #f9f9f9, #eaeaea);
+  background-repeat: repeat-x;
+  border-color: #dfdfdf #dfdfdf #c5c5c5;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9); }
+
+button:hover,
+input[type=button]:hover,
+input.button:hover,
+button:focus,
+input[type=button]:focus,
+input.button:focus,
+input[type=reset]:hover,
+input[type=submit].reset:hover,
+input.reset:hover,
+input[type=reset]:focus,
+input[type=submit].reset:focus,
+input.reset:focus,
+input[type=submit].delete:hover,
+input.delete:hover,
+input[type=submit].delete:focus,
+input.delete:focus,
+a.button.delete:hover,
+a.button.reset:hover,
+a.button:hover,
+a.button.delete:focus,
+a.button.reset:focus,
+a.button:focus {
+  background-color: #dadada;
+  background-image: linear-gradient(to bottom, #eaeaea, #dadada);
+  background-repeat: repeat-x;
+  border-color: #cccccc #cccccc #b5b5b5; }
+
 /* suppression */
-input[type=submit].delete, input.delete, a.button.delete {
-	color: #900;
-	}
-input[type=submit].delete:hover, input.delete:hover, a.button.delete:hover,
-	input[type=submit].delete:focus, input.delete:focus, a.button.delete:focus {
-	color: #FFFFFF;
-	background-color: #B33630;
-	background-image: -webkit-gradient( linear, left top, left bottom, from(#DC5F59), to(#B33630));
-	background-image: linear-gradient(#DC5F59, #B33630);
-	background-repeat: repeat-x;
-	border-color: #CD504A;
-	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
-	}
+input[type=submit].delete,
+input.delete,
+a.button.delete {
+  color: #900; }
+
+input[type=submit].delete:hover,
+input.delete:hover,
+a.button.delete:hover,
+input[type=submit].delete:focus,
+input.delete:focus,
+a.button.delete:focus {
+  color: #ffffff;
+  background-color: #b33630;
+  background-image: linear-gradient(to bottom, #dc5f59, #b33630);
+  background-repeat: repeat-x;
+  border-color: #cd504a;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); }
+
 #info-box a.button {
-	padding: 0 .5em;
-	margin-left: 2em;
-	}
+  padding: 0 .5em;
+  margin-left: 2em; }
+
 .button.add {
-	color: #000;
-	background-color: #bee74b;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#bee74b), to(#9BCA1C));
-	background-image: linear-gradient(#bee74b, #9BCA1C);
-	border-color: #bee74b;
-	padding: .33em 1.33em .5em;
-	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
-	font-weight: normal;
-	font-size: 1.16em;
-	}
-.button.add:hover, .button.add:active, .button.add:focus {
-	background-color: #9BCA1C;
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#9BCA1C), to(#bee74b));
-	background-image: linear-gradient(#9BCA1C, #bee74b);
-	border-color: #9BCA1C;
-	}
+  color: #000;
+  background-color: #bee74b;
+  background-image: linear-gradient(to bottom, #bee74b, #9bca1c);
+  border-color: #bee74b;
+  padding: .33em 1.33em .5em;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
+
+.button.add:hover,
+.button.add:active,
+.button.add:focus {
+  background-color: #9bca1c;
+  background-image: linear-gradient(to bottom, #9bca1c, #bee74b);
+  border-color: #9bca1c; }
+
 .button-add:focus {
-	outline: dotted 1px;
-	}
+  outline: dotted 1px; }
+
 /* paragraphe pour bouton Nouveau bidule */
 p.top-add {
-	text-align: right;
-	margin: 0;
-	}
+  text-align: right;
+  margin: 0; }
+
 /* disabled */
-input.disabled, input[type=submit].disabled {
-	text-shadow: none;
-	color: #676e78;
-	background: #F5F5F5;
-	border: 1px solid #CCC;
-	}
-input.disabled:hover, input[type=submit].disabled:hover {
-	color: #676e78;
-	background: #eee;
-	border: 1px solid #CCC;
-	}
-/* ----------------------------------------------------------------------------
-																	MESSAGES
----------------------------------------------------------------------------- */
-.warn, .warning, .info {
-	font-style: normal;
-	padding: .2em .66em .2em;
-	text-indent: 24px;
-	color: #333;
-	display: inline-block;
-	line-height: 1.5em;
-	border-radius: 3px;
-	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6)
-	}
-div.warn, div.warning, div.info {
-	display: block;
-	padding: 1em 1em .33em 1em;
-	margin-bottom: 1em;
-	}
-.warn, .warning {
-	background: #FEFACD url(msg-warning.png) no-repeat .3em .3em;
-	border: 1px solid #ffd478;
-	}
+input.disabled,
+input[type=submit].disabled {
+  text-shadow: none;
+  color: #676e78;
+  background: #F5F5F5;
+  border: 1px solid #CCC; }
+
+input.disabled:hover,
+input[type=submit].disabled:hover {
+  color: #676e78;
+  background: #eee;
+  border: 1px solid #CCC; }
+
+.warn,
+.warning,
 .info {
-	background: #D9EDF7 url(msg-info.png) no-repeat .3em .3em;
-	border: 1px solid #BCE8F1;
-	}
-span.warn, span.warning, span.info {
-	padding-top: 1px;
-	padding-bottom: 1px;
-	background-position: .3em .2em;
-	}
-.error, .message, .static-msg, .success, .warning-msg {
-	padding: 1em 0.5em 0.5em 48px;
-	margin-bottom: 1em;
-	border-radius: 8px;
-	box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
-	}
-p.error, p.message, p.static-msg, p.success, p.warning-msg {
-	padding-top: 1em;
-	padding-bottom: 1em;
-	margin-top: .5em;
-	}
+  font-style: normal;
+  padding: .2em .66em .2em;
+  text-indent: 24px;
+  color: #333;
+  display: inline-block;
+  line-height: 1.5em;
+  border-radius: 3px;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
+
+div.warn,
+div.warning,
+div.info {
+  display: block;
+  padding: 1em 1em .33em 1em;
+  margin-bottom: 1em; }
+
+.warn,
+.warning {
+  background: #FEFACD url(msg-warning.png) no-repeat 0.3em 0.3em;
+  border: 1px solid #ffd478; }
+
+.info {
+  background: #D9EDF7 url(msg-info.png) no-repeat 0.3em 0.3em;
+  border: 1px solid #BCE8F1; }
+
+span.warn,
+span.warning,
+span.info {
+  padding-top: 1px;
+  padding-bottom: 1px;
+  background-position: .3em .2em; }
+
+.error,
+.message,
+.static-msg,
+.success,
+.warning-msg {
+  padding: 1em 0.5em 0.5em 48px;
+  margin-bottom: 1em;
+  border-radius: 8px;
+  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); }
+
+p.error,
+p.message,
+p.static-msg,
+p.success,
+p.warning-msg {
+  padding-top: 1em;
+  padding-bottom: 1em;
+  margin-top: .5em; }
+
 .error {
-	background: #FFBABA url(msg-error.png) no-repeat .7em .7em;
-	color: #000;
-	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
-	}
-.message, .static-msg {
-	background: #676e78 url(msg-std.png) no-repeat .7em .7em;
-	color: #fff;
-	}
-.message a, .static-msg a, .message h3, .static-msg h3 {
-	color: #fff;
-	}
-.success, .warning-msg {
-	color: #000;
-	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6)
-	}
+  background: #FFBABA url(msg-error.png) no-repeat 0.7em 0.7em;
+  color: #000;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
+
+.message,
+.static-msg {
+  background: #676e78 url(msg-std.png) no-repeat 0.7em 0.7em;
+  color: #fff; }
+
+.message a,
+.static-msg a,
+.message h3,
+.static-msg h3 {
+  color: #fff; }
+
+.success,
+.warning-msg {
+  color: #000;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6); }
+
 .success {
-	background: #9bca1c url(msg-success.png) no-repeat .7em .7em;
-	}
+  background: #9bca1c url(msg-success.png) no-repeat 0.7em 0.7em; }
+
 .warning-msg {
-	background: #ffd478 url(msg-warning.png) no-repeat .7em .7em;
-	border: 1px solid #ffd478;
-	}
-.success a, .warning-msg a, .info a {
-	color: #333;
-	}
+  background: #ffd478 url(msg-warning.png) no-repeat 0.7em 0.7em;
+  border: 1px solid #ffd478; }
+
+.success a,
+.warning-msg a,
+.info a {
+  color: #333; }
+
 .dc-update {
-	padding: 1em 48px 0.5em 48px;
-	margin-bottom: 1em;
-	border-radius: 8px;
-	background: #A2CBE9 url(msg-success.png) no-repeat .7em .7em;
-	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
-	color: #000;
-	box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1)
-	}
+  padding: 1em 48px 0.5em 48px;
+  margin-bottom: 1em;
+  border-radius: 8px;
+  background: #A2CBE9 url(msg-success.png) no-repeat 0.7em 0.7em;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
+  color: #000;
+  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); }
+
 .dc-update h3 {
-	margin-top: 0;
-	color: #000;
-	}
+  margin-top: 0;
+  color: #000; }
+
 .dc-update p {
-	display: inline-block;
-	vertical-align: middle;
-	}
+  display: inline-block;
+  vertical-align: middle; }
+
 .dc-update a {
-	color: #000;
-	margin-right: 1em;
-	}
+  color: #000;
+  margin-right: 1em; }
+
 .dc-update a.button {
-	padding: .5em 1em;
-	}
+  padding: .5em 1em; }
+
 .updt-info a {
-	margin-left: 2em;
-	border-color: #000;
-	font-weight: bold;
-	}
-/* ---------------------------------------------------------------------------------
-																ELEMENTS PRINCIPAUX
---------------------------------------------------------------------------------- */
-/* -------------------------------------------------------------- HEADER ELEMENTS */
+  margin-left: 2em;
+  border-color: #000;
+  font-weight: bold; }
+
+/** --------------------------------------------------
+    Components
+--------------------------------------------------- */
 /* prelude */
 #prelude {
-	line-height: 1.5;
-	margin: 0;
-	padding: 0;
-	overflow: hidden;
-	position: absolute;
-	top: 3em;
-	left: 0;
-	background: #A2CBE9;
-	width: 100%;
-	z-index: 100;
-	}
-#prelude li {
-	list-style-type: none;
-	margin: 0;
-	background: transparent;
-	display: inline;
-	}
-#prelude li a {
-	padding: 3px 16px 3px 8px;
-	background: #A2CBE9;
-	color: #000;
-	text-decoration: underline;
-	}
-#prelude li a:hover, #prelude li a:focus {
-	background: #FFF;
-	}
+  line-height: 1.5;
+  margin: 0;
+  padding: 0;
+  overflow: hidden;
+  position: absolute;
+  top: 3em;
+  left: 0;
+  background: #a2cbe9;
+  width: 100%;
+  z-index: 100; }
+  #prelude li {
+    list-style-type: none;
+    margin: 0;
+    background: transparent;
+    display: inline; }
+    #prelude li a {
+      padding: 3px 16px 3px 8px;
+      background: #a2cbe9;
+      color: #000;
+      text-decoration: underline; }
+      #prelude li a:hover, #prelude li a:focus {
+        background: #fff; }
+
 /* si le prélude est affiché on repousse les trucs dessous */
 #wrapper.with-prelude {
-	padding-top: 1em;
-	}
-#help-button.with-prelude, #collapser.with-prelude {
-	top: 1em;
-	}
+  padding-top: 1em; }
+
+#help-button.with-prelude,
+#collapser.with-prelude {
+  top: 1em; }
+
 /* header global h1, form#top-info-blog, ul#top-info-user */
 #header a {
-	color: #FFF;
-	}
+  color: #fff; }
+
 #header img {
-	vertical-align: middle;
-	padding-left: .5em;
-	}
-h1, #top-info-blog, #top-info-user {
-	display: table-cell;
-	padding: 8px 0;
-	margin: 0;
-	font-size: 1em;
-	vertical-align: top;
-	}
+  vertical-align: middle;
+  padding-left: .5em; }
+
 /* h1 */
 h1 {
-	text-indent: 100%;
-	width: 16.5em;
-	}
-h1 a {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 150px;
-	height: 3em;
-	color: #fff;
-	background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px;
-	transition: none;
-	}
-h1 a:hover, h1 a:focus {
-	background-position: 0 -94px;
-	background-color: transparent;
-	transition: none;
-	}
+  text-indent: 100%;
+  width: 16.5em; }
+  h1 a {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 150px;
+    height: 3em;
+    color: #fff;
+    background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px;
+    transition: none; }
+    h1 a:hover, h1 a:focus {
+      background-position: 0 -94px;
+      background-color: transparent;
+      transition: none; }
+    h1 a:link {
+      transition-timing-function: ease-in-out; }
+
 /* top-info-blog */
 #top-info-blog select {
-	max-width: 20em;
-	}
+  max-width: 20em; }
+
 #top-info-blog a {
-	margin-left: 1.5em;
-	}
+  margin-left: 1.5em; }
+
 #top-info-blog input[type=submit] {
-	background: #000;
-	border-color: #999;
-	margin-left: .33em;
-	}
+  background: #000;
+  border-color: #868686;
+  margin-left: .33em; }
+
 #top-info-blog input[type=submit]:hover {
-	background: #999;
-	}
+  background: #868686; }
+
 #top-info-blog p {
-	display: inline-block;
-	margin: 0;
-	}
+  display: inline-block;
+  margin: 0; }
+
 /* top-info-user */
 #top-info-user {
-	padding-right: 18px;
-	list-style-type: none;
-	text-align: right;
-	}
+  padding-right: 18px;
+  list-style-type: none;
+  text-align: right; }
+
 #top-info-user li {
-	display: inline-block;
-	margin-left: .5em;
-	padding-left: .5em;
-	border-left: 1px solid #999;
-	}
+  display: inline-block;
+  margin-left: .5em;
+  padding-left: .5em;
+  border-left: 1px solid #868686; }
+
 #top-info-user li:first-child {
-	border-left: none;
-	}
+  border-left: none; }
+
 #top-info-user a.active {
-	border-bottom-color: #fff;
-	margin: 0;
-	padding: 18px .5em;
-	background-color: #fff;
-	color: #333;
-	font-weight: bold;
-	}
-/* ---------------------------------------------------------- MAIN-MENU ELEMENTS */
-#favorites-menu, #blog-menu, #system-menu, #plugins-menu {
-	border-bottom: 1px dashed #A2CBE9;
-	}
+  border-bottom-color: #fff;
+  margin: 0;
+  padding: 18px .5em;
+  background-color: #fff;
+  color: #323232;
+  font-weight: bold; }
+
+/* ------------------------------------------------------------------------------------
+                                                            UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+@media screen and (max-width: 80em) {
+  #top-info-user {
+    padding-right: .5em; }
+
+  #top-info-user a.active {
+    padding: 2px 8px;
+    border-width: 0;
+    border-radius: 6px; } }
+@media screen and (max-width: 26.5em) {
+  h1,
+  h1 a {
+    padding: 0; } }
+@media screen and (max-width: 38em) {
+  h1 a:link {
+    background: transparent url(dc_logos/b-dotclear120.png) no-repeat -270px 6px; }
+
+  h1 a:hover,
+  h1 a:focus {
+    background: url(dc_logos/b-dotclear120.png) no-repeat -270px -94px; } }
+#favorites-menu,
+#blog-menu,
+#system-menu,
+#plugins-menu {
+  border-bottom: 1px dashed #A2CBE9; }
+
+#main-menu div:last-child {
+  border-bottom: none; }
+
 #main-menu h3 {
-	margin: 0;
-	padding: 10px 0 10px 8px;
-	color: #676e78;
-	font-size: 1.15em;
-	}
+  margin: 0;
+  padding: 10px 0 10px 8px;
+  color: #676e78;
+  font-size: 1.15em; }
+
 #favorites-menu h3 {
-	color: #000;
-	font-variant: small-caps;
-	padding-top: .2em;
-	}
+  color: #000;
+  font-variant: small-caps;
+  padding-top: .2em; }
+
 #main-menu a {
-	color: #333;
-	border-bottom-color: #ccc;
-	}
+  color: #333;
+  border-bottom-color: #ccc; }
+
 #main-menu ul {
-	margin: 0 0 1.5em 0;
-	padding: 0;
-	list-style: none;
-	}
+  margin: 0 0 1.5em 0;
+  padding: 0;
+  list-style: none; }
+
 #main-menu li {
-	display: block;
-	margin: 0.5em 0 0;
-	padding: 4px 0 1px 32px;
-	background-repeat: no-repeat;
-	background-position: 8px .3em;
-	}
+  display: block;
+  margin: 0.5em 0 0;
+  padding: 4px 0 1px 32px;
+  background-repeat: no-repeat;
+  background-position: 8px .3em; }
+
 #main-menu ul li:first-child {
-	margin-top: 0;
-	}
+  margin-top: 0; }
+
 #main-menu li.active {
-	background-color: #fff;
-	font-weight: bold;
-	}
+  background-color: #fff;
+  font-weight: bold; }
+
 #favorites-menu li.active {
-	background-color: transparent;
-	}
+  background-color: transparent; }
+
 #main-menu .active a {
-	border-bottom: none;
-	color: #d30e60;
-	}
+  border-bottom: none;
+  color: #d30e60; }
+
 #favorites-menu .active a {
-	color: #000;
-	}
+  color: #000; }
+
 #search-menu {
-	padding: 4px 5px 0;
-	font-size: 100%
-	}
+  padding: 4px 5px 0;
+  font-size: 100%; }
+
 #search-menu * {
-	height: 2em;
-	display: inline-block;
-	vertical-align: top;
-	line-height: 24px;
-	}
+  height: 2em;
+  display: inline-block;
+  vertical-align: top;
+  line-height: 24px; }
+
 #search-menu p {
-	border: 1px solid #999;
-	border-radius: .3em;
-	position: relative;
-	width: 95%;
-	overflow: hidden;
-	}
+  border: 1px solid #999;
+  border-radius: .3em;
+  position: relative;
+  width: 95%;
+  overflow: hidden; }
+
 #qx {
-	width: 80%;
-	border-bottom-left-radius: .3em;
-	border-top-left-radius: .3em;
-	background: transparent url(search.png) no-repeat 4px center;
-	text-indent: 18px;
-	padding: 0;
-	border: none;
-	height: 2em;
-	}
+  width: 80%;
+  border-bottom-left-radius: .3em;
+  border-top-left-radius: .3em;
+  background: transparent url(search.png) no-repeat 4px center;
+  text-indent: 18px;
+  padding: 0;
+  border: none;
+  height: 2em; }
+
 #qx:focus {
-	border: 1px solid #bee74b;
-	}
+  border: 1px solid #bee74b; }
+
 #search-menu input[type="submit"] {
-	padding: 0 .25em;
-	margin-left: .33em;
-	background: #dfdfdf;
-	border-color: #999;
-	color: #333;
-	border-bottom-right-radius: .3em;
-	border-top-right-radius: .3em;
-	border-top-left-radius: 0;
-	border-bottom-left-radius: 0;
-	text-shadow: none;
-	border: none;
-	border-left: 1px solid #999;
-	font-size: .91em;
-	float: right;
-	}
+  padding: 0 .25em;
+  margin-left: .33em;
+  background: #dfdfdf;
+  border-color: #999;
+  color: #333;
+  border-bottom-right-radius: .3em;
+  border-top-right-radius: .3em;
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+  text-shadow: none;
+  border: none;
+  border-left: 1px solid #999;
+  font-size: .91em;
+  float: right; }
+
 #search-menu input[type="submit"]:hover,
 #search-menu input[type="submit"]:focus {
-	background: #676e78;
-	color: #fff;
-	}
-/* ----------------------------------------------------------------- CONTENT ELEMENTS */
+  background: #676e78;
+  color: #fff; }
+
 .part-tabs ul {
-	padding: .5em 0 0 1em;
-	border-bottom: 1px solid #ccc;
-	line-height: 1.8;
-	}
+  padding: .5em 0 0 1em;
+  border-bottom: 1px solid #ccc;
+  line-height: 1.8; }
+
 .part-tabs li {
-	list-style: none;
-	margin: 0;
-	display: inline;
-	}
+  list-style: none;
+  margin: 0;
+  display: inline; }
+
 .part-tabs li:first-child a {
-	border-top-left-radius: 3px;
-	}
+  border-top-left-radius: 3px; }
+
 .part-tabs li:last-child a {
-	border-top-right-radius: 3px;
-	}
+  border-top-right-radius: 3px; }
+
 .part-tabs li a {
-	padding: .33em 1.5em;
-	margin-right: -1px;
-	border: 1px solid #ccc;
-	border-bottom: none;
-	text-decoration: none;
-	color: #333;
-	background-color: #ecf0f1;
-	display: inline-block;
-	}
-.part-tabs li a:hover, .part-tabs li a:focus {
-	color: #000;
-	background: #fff;
-	border-bottom-color: #fff;
-	}
+  padding: .33em 1.5em;
+  margin-right: -1px;
+  border: 1px solid #ccc;
+  border-bottom: none;
+  text-decoration: none;
+  color: #333;
+  background-color: #ecf0f1;
+  display: inline-block; }
+
+.part-tabs li a:hover,
+.part-tabs li a:focus {
+  color: #000;
+  background: #fff;
+  border-bottom-color: #fff; }
+
 .part-tabs li.part-tabs-active a {
-	background: #fff;
-	font-weight: bold;
-	border-bottom-color: #fff;
-	}
+  background: #fff;
+  font-weight: bold;
+  border-bottom-color: #fff; }
+
 .multi-part {
-	padding-left: 1em;
-	}
+  padding-left: 1em; }
+
 .pseudo-tabs {
-	margin: -.75em 0 2em 0;
-	border-bottom: 1px solid #bbb;
-	display: table;
-	width: 100%;
-	padding: 0;
-	line-height: 24px;
-	border-collapse: collapse;
-	}
+  margin: -.75em 0 2em 0;
+  border-bottom: 1px solid #bbb;
+  display: table;
+  width: 100%;
+  padding: 0;
+  line-height: 24px;
+  border-collapse: collapse; }
+
 .pseudo-tabs li {
-	display: table-cell;
-	border-width: 0 1px;
-	border-style: solid;
-	border-color: #ccc;
-	padding: 0;
-	margin: 0;
-	text-align: center;
-	}
+  display: table-cell;
+  border-width: 0 1px;
+  border-style: solid;
+  border-color: #ccc;
+  padding: 0;
+  margin: 0;
+  text-align: center; }
+
 .pseudo-tabs a {
-	display: block;
-	font-weight: bold;
-	padding: 0 24px;
-	border-bottom: none;
-	}
-.pseudo-tabs a:hover, .pseudo-tabs a:focus {
-	background-color: #ecf0f1;
-	color: #333;
-	}
+  display: block;
+  font-weight: bold;
+  padding: 0 24px;
+  border-bottom: none; }
+
+.pseudo-tabs a:hover,
+.pseudo-tabs a:focus {
+  background-color: #ecf0f1;
+  color: #333; }
+
 .pseudo-tabs a.active {
-	background-color: #ecf0f1;
-	color: #d30e60;
-	}
+  background-color: #ecf0f1;
+  color: #d30e60; }
+
 /* contextual help */
 #help {
-	margin-top: 4em;
-	background: #f5f5f5;
-	z-index: 100;
-	clear: both;
-	padding: 0 1em;
-	}
+  margin-top: 4em;
+  background: #f5f5f5;
+  z-index: 100;
+  clear: both;
+  padding: 0 1em; }
+
 #content.with-help #help {
-	display: block;
-	position: absolute;
-	top: 0;
-	right: 0;
-	width: 24em;
-	border-left: 2px solid #FFD478;
-	border-top: 2px solid #FFD478;
-	margin-top: 0;
-	padding: .5em 0 0 0;
-	overflow: auto;
-	}
+  display: block;
+  position: absolute;
+  top: 0;
+  right: 0;
+  width: 32rem;
+  border-left: 2px solid #FFD478;
+  border-top: 2px solid #FFD478;
+  margin-top: 0;
+  padding: .5em 0 0 0;
+  overflow: auto; }
+
 #help-button {
-	background: transparent url(help-mini.png) no-repeat 6px center;
-	position: absolute;
-	top: 0;
-	right: 0;
-	padding: 0 1.5em 0 30px;
-	cursor: pointer;
-	color: #2373A8;
-	line-height: 3;
-	}
+  background: transparent url(help-mini.png) no-repeat 6px center;
+  position: absolute;
+  top: 0;
+  right: 0;
+  padding: 0 1.5em 0 30px;
+  cursor: pointer;
+  color: #2373A8;
+  line-height: 3; }
+
 #help-button.floatable {
-	border-top: 2px solid #ccc;
-	border-left: 2px solid #ccc;
-	border-bottom: 2px solid #ccc;
-	border-bottom-left-radius: 1em;
-	border-top-left-radius: 1em;
-	background-color: #f5f5f5;
-	position: fixed;
-	top: 10px;
-	-webkit-transform:translateZ(0);	/* Let GPU doing his job */
-	}
+  border-top: 2px solid #ccc;
+  border-left: 2px solid #ccc;
+  border-bottom: 2px solid #ccc;
+  border-bottom-left-radius: 1em;
+  border-top-left-radius: 1em;
+  background-color: #f5f5f5;
+  position: fixed;
+  top: 10px;
+  -webkit-transform: translateZ(0);
+  /* Let GPU doing his job */ }
+
 .no-js #help-button {
-	top: 1em;
-	}
+  top: 1em; }
+
 #help-button span {
-	padding: .5em 0 .1em 0;
-	}
+  padding: .5em 0 .1em 0; }
+
 #content.with-help #help-button {
-	right: 24em;
-	background-color: #f5f5f5;
-	position: fixed;
-	top: 50px;
-	z-index: 100;
-	border-top: 2px solid #FFD478;
-	border-left: 2px solid #FFD478;
-	border-bottom: 2px solid #FFD478;
-	border-bottom-left-radius: 1em;
-	border-top-left-radius: 1em;
-	}
+  right: 32rem;
+  background-color: #f5f5f5;
+  position: fixed;
+  top: 6em;
+  z-index: 100;
+  border-top: 2px solid #FFD478;
+  border-left: 2px solid #FFD478;
+  border-bottom: 2px solid #FFD478;
+  border-bottom-left-radius: 1em;
+  border-top-left-radius: 1em; }
+
 .help-box {
-	display: none;
-	}
+  display: none; }
+
 .help-box ul {
-	padding-left: 20px;
-	margin-left: 0;
-	}
+  padding-left: 20px;
+  margin-left: 0; }
+
 #content.with-help .help-content {
-	padding: 0 1em 1em;
-	}
+  padding: 0 1em 1em; }
+
 .help-content dt {
-	font-weight: bold;
-	color: #676e78;
-	margin: 0;
-	}
+  font-weight: bold;
+  color: #676e78;
+  margin: 0; }
+
 .help-content dd {
-	margin: 0.3em 0 1.5em 0;
-	}
+  margin: 0.3em 0 1.5em 0; }
+
 /* lien d'aide générale dans le help content */
 #helplink p {
-	padding: 0 0 0 .5em;
-	}
-/* ------------------------------------------------------------------ FOOTER ELEMENTS */
+  padding: 0 0 0 .5em; }
+
 #gototop {
   display: none;
@@ -1235,456 +1836,489 @@
   font-size: .875em;
   text-align: center; }
-  #gototop a, #gototop a:link, #gototop a:hover, #gototop a:active {
-    background: transparent;
-    border: none;
-    font-weight: bold;
-    color: #636363; }
+
+#gototop a,
+#gototop a:link,
+#gototop a:hover,
+#gototop a:active {
+  background: transparent;
+  border: none;
+  font-weight: bold;
+  color: #636363; }
+
 #footer p {
-	margin: 0;
-	padding: 0 1em;
-	font-size: 1em;
-	}
+  margin: 0;
+  padding: 0 1em;
+  font-size: 1em; }
+
 span.credit {
-	font-size: 1em;
-	font-weight: normal;
-	}
+  font-size: 1em;
+  font-weight: normal; }
+
 span.tooltip {
-	position: absolute;
-	padding: 0;
-	border: 0;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-	}
+  position: absolute;
+  padding: 0;
+  border: 0;
+  height: 1px;
+  width: 1px;
+  overflow: hidden; }
+
 #footer a:hover span.tooltip {
-	padding: 10px 40px 0 10px;
-	color: #910ed3;
-	height: auto;
-	width: auto;
-	left: 0;
-	bottom: 0;
-	background: #FFF;
-	z-index: 99;
-	font-family: monospace;
-	border: none;
-	text-align: left;
-	}
-/* ---------------------------------------------------------------------------------------
-																	RÈGLES SPÉCIFIQUES
----------------------------------------------------------------------------------------- */
-/* ---------------------------------------------------------------- LISTES TABLEAUX */
-table .maximal, table.maximal {
-	width: 100%;
-	}
+  padding: 10px 40px 0 10px;
+  color: #910ed3;
+  height: auto;
+  width: auto;
+  left: 0;
+  bottom: 0;
+  background: #FFF;
+  z-index: 99;
+  font-family: monospace;
+  border: none;
+  text-align: left; }
+
+/** --------------------------------------------------
+    Tables and Filters
+--------------------------------------------------- */
+table .maximal,
+table.maximal {
+  width: 100%; }
+
 table .minimal {
-	width: 1px;
-	}
+  width: 1px; }
+
 table .nowrap {
-	white-space: nowrap;
-	vertical-align: top;
-	}
+  white-space: nowrap;
+  vertical-align: top; }
+
 table .count {
-	text-align: right;
-	padding-right: 1.5em;
-	}
+  text-align: right;
+  padding-right: 1.5em; }
+
 th.first input {
-	padding-right: 34px;
-	}
+  padding-right: 34px; }
+
 .line img {
-	vertical-align: middle;
-	}
-tr.line img.expand, th img.expand {
-	margin-right: 6px;
-	margin-bottom: -2px;
-	}
+  vertical-align: middle; }
+
+tr.line img.expand,
+th img.expand {
+  margin-right: 6px;
+  margin-bottom: -2px; }
+
 tr.line p {
-	margin: 0;
-	}
+  margin: 0; }
+
 tr.line input[type=text] {
-	background: #FFF;
-	}
-tr.line input, tr.line select {
-	vertical-align: middle;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-	}
+  background: #fff; }
+
+tr.line input,
 tr.line select {
-	width: 6em;
-	}
+  vertical-align: middle;
+  -webkit-box-shadow: none;
+  box-shadow: none; }
+
+tr.line select {
+  width: 6em; }
+
 tr.line:hover {
-	background: #f3f3f3;
-	}
+  background: #f3f3f3; }
+
 td.status {
-	vertical-align: middle;
-	}
+  vertical-align: middle; }
+
 td.status img {
-	margin-bottom: -2px;
-	}
+  margin-bottom: -2px; }
+
 td.status a {
-	border: none;
-	}
-.noborder td, td.noborder, .noborder th, th.noborder {
-	border-width: 0 0 1px 0;
-	border-color: #dfdfdf;
-	line-height: 2em;
-	padding-bottom: 0;
-	}
+  border: none; }
+
+.noborder td,
+td.noborder,
+.noborder th,
+th.noborder {
+  border-width: 0 0 1px 0;
+  border-color: #dfdfdf;
+  line-height: 2em;
+  padding-bottom: 0; }
+
 .noborder p {
-	margin-bottom: 0;
-	}
+  margin-bottom: 0; }
+
 table.posts-list {
-	min-width: 50%;
-	}
-table.settings, table.prefs {
-	margin-bottom: 3em;
-	}
-table.settings th:first-child, table.prefs th:first-child {
-	width: 20%;
-	}
-table.settings th + th, table.prefs th + th {
-	width: 30%;
-	}
-table.settings th + th + th, table.prefs th + th + th {
-	width: 10%;
-	}
-table.settings th:last-child, table.prefs th:last-child {
-	width: 40%;
-	}
+  min-width: 50%; }
+
+table.settings,
+table.prefs {
+  margin-bottom: 3em; }
+
+table.settings th:first-child,
+table.prefs th:first-child {
+  width: 20%; }
+
+table.settings th + th,
+table.prefs th + th {
+  width: 30%; }
+
+table.settings th + th + th,
+table.prefs th + th + th {
+  width: 10%; }
+
+table.settings th:last-child,
+table.prefs th:last-child {
+  width: 40%; }
+
 /* js */
 td.expand {
-	padding: 1em;
-	}
+  padding: 1em; }
+
 tr.expand td {
-	border-bottom: none;
-	}
+  border-bottom: none; }
+
 .handle {
-	padding: 0;
-	}
+  padding: 0; }
+
 .handler {
-	cursor: move;
-	background: transparent url(drag.png) no-repeat 0 50%;
-	padding-left: 15px;
-	}
-/* ----------------------------------------------------------- BOITES À FILTRES */
+  cursor: move;
+  background: transparent url(drag.png) no-repeat 0 50%;
+  padding-left: 15px; }
+
 a.form-control {
-	display: none;
-	background: url(../images/expand.png) no-repeat 4px center;
-	padding-left: 20px;
-	color: #000;
-	}
+  display: none;
+  background: url(../images/expand.png) no-repeat 4px center;
+  padding-left: 20px;
+  color: #000; }
+
 a.form-control.open {
-	background: url(../images/hide.png) no-repeat 4px center;
-	}
+  background: url(../images/hide.png) no-repeat 4px center; }
+
 #filters-form {
-	border: 1px solid rgb(162, 203, 233);
-	border-radius: .3em;
-	margin-bottom: 2em;
-	padding: .5em 1em 0;
-	}
+  border: 1px solid #a2cbe9;
+  border-radius: .3em;
+  margin-bottom: 2em;
+  padding: .5em 1em 0; }
+
 #filters-form .table {
-	width: 100%;
-	padding: 0;
-	margin-bottom: 1em;
-	margin-top: .5em;
-	}
+  width: 100%;
+  padding: 0;
+  margin-bottom: 1em;
+  margin-top: .5em; }
+
 #filters-form .cell {
-	padding: 0 2em 0 0;
-	}
+  padding: 0 2em 0 0; }
+
 #filters-form .filters-sibling-cell {
-	padding-top: 3.8em;
-	}
+  padding-top: 3.8em; }
+
 #filters-form .filters-options {
-	padding-left: 2em;
-	border-left: 1px solid #ccc;
-	}
-#filters-form label.ib, span.ib {
-	width: 7em;
-	}
-#filters-form label.ibw, span.ibw {
-	width: 9em;
-	display: inline-block;
-	}
+  padding-left: 2em;
+  border-left: 1px solid #ccc; }
+
+#filters-form label.ib,
+span.ib {
+  width: 7em; }
+
+#filters-form label.ibw,
+span.ibw {
+  width: 9em;
+  display: inline-block; }
+
 #filters-form select {
-	width: 14em;
-	vertical-align: middle;
-	}
+  width: 14em;
+  vertical-align: middle; }
+
 #filters-form h4 {
-	margin-top: 0;
-	margin-bottom: 2em;
-	}
-/* ---------------------------------------------------------------------------- SPEC PAGES */
-/* ---------------------------------------------------------------------------- auth.php */
+  margin-top: 0;
+  margin-bottom: 2em; }
+
+/** --------------------------------------------------
+    Pages
+--------------------------------------------------- */
 #login-screen {
-	display: block;
-	width: 20em;
-	margin: 1.5em auto 0;
-	font-size: 1.16em;
-	}
+  display: block;
+  width: 20em;
+  margin: 1.5em auto 0;
+  font-size: 1.16em; }
+
 #login-screen h1 {
-	text-indent: -2000px;
-	background: transparent url(dc_logos/w-dotclear240.png) no-repeat top left;
-	height: 66px;
-	width: 20em;
-	margin-bottom: .5em;
-	margin-left: 0;
-	}
+  text-indent: -2000px;
+  background: transparent url(dc_logos/w-dotclear240.png) no-repeat top left;
+  height: 66px;
+  width: 20em;
+  margin-bottom: .5em;
+  margin-left: 0; }
+
 #login-screen .fieldset {
-	border: 1px solid #9bca1c;
-	padding: 1em 1em 0 1em;
-	background: #fff;
-	margin-bottom: 0;
-	margin-top: 1em;
-	}
-#login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit],
-#login-screen input[type=text]:focus, #login-screen input[type=password]:focus, #login-screen input[type=submit]:focus {
-	width: 100%;
-	margin: 0;
-	padding: 5px 3px;
-	}
-#login-screen input.login, #login-screen input.login:focus {
-	padding-top: 6px;
-	padding-bottom: 6px;
-	font-size: 1em;
-	}
+  border: 1px solid #9bca1c;
+  padding: 1em 1em 0 1em;
+  background: #fff;
+  margin-bottom: 0;
+  margin-top: 1em; }
+
+#login-screen input[type=text],
+#login-screen input[type=password],
+#login-screen input[type=submit],
+#login-screen input[type=text]:focus,
+#login-screen input[type=password]:focus,
+#login-screen input[type=submit]:focus {
+  width: 100%;
+  margin: 0;
+  padding: 5px 3px; }
+
+#login-screen input.login,
+#login-screen input.login:focus {
+  padding-top: 6px;
+  padding-bottom: 6px;
+  font-size: 1em; }
+
 #login-screen #issue {
-	margin-left: 1.33em;
-	font-size: .91em;
-	}
+  margin-left: 1.33em;
+  font-size: .91em; }
+
 #issue p:first-child {
-	text-align: right;
-	}
+  text-align: right; }
+
 #login-screen #issue strong {
-	font-weight: normal;
-	}
-/* ------------------------------------------------------------------------- index.php */
+  font-weight: normal; }
+
 #dashboard-main {
-	padding: 1em;
-	text-align: center;
-	}
+  text-align: center; }
+
 /* raccourcis */
 #icons {
-	overflow: hidden;
-	padding-bottom: 1em;
-	text-align: center;
-	}
+  overflow: hidden;
+  text-align: center; }
+
 #icons p {
-	width: 14em;
-	text-align: center;
-	margin: 1em 0 2em;
-	padding: 1em 0;
-	display: inline-block;
-	vertical-align: top;
-	}
+  width: 13em;
+  text-align: center;
+  margin: 1em 0 2em;
+  display: inline-block;
+  vertical-align: top; }
+
 #icons a,
-	#icons a:link,
-	#icons a:visited,
-	#icons a:hover,
-	#icons a:focus {
-	border-bottom-width: 0;
-	text-decoration: none;
-	}
+#icons a:link,
+#icons a:visited,
+#icons a:hover,
+#icons a:focus {
+  border-bottom-width: 0;
+  text-decoration: none; }
+
 #icons a span {
-	border-bottom: 1px dotted #999;
-	color: #333;
-	}
+  border-bottom: 1px dotted #999;
+  color: #333; }
+
 #icons a img {
-	padding: 1.5em;
-	background-color: #f9f9f9;
-	border-radius: 8px;
-	border: 1px solid #dadada;
-	display: inline-block;
-	}
-#icons a:focus img, #icons a:hover img {
-	background: #bee74b;
-	outline: 0;
-	border-color: #dadada;
-	}
+  padding: 1.5em;
+  background-color: #f9f9f9;
+  border-radius: 8px;
+  border: 1px solid #dadada;
+  display: inline-block; }
+
+#icons a:focus img,
+#icons a:hover img {
+  background: #bee74b;
+  outline: 0;
+  border-color: #dadada; }
+
 #icons a:focus {
-	outline: 0;
-	border-color: #fff;
-	}
-#icons a:hover span, #icons a:focus span {
-	border-bottom-style: solid;
-	}
+  outline: 0;
+  border-color: #fff; }
+
+#icons a:hover span,
 #icons a:focus span {
-	border: 2px solid #bee74b;
-	}
+  border-bottom-style: solid; }
+
+#icons a:focus span {
+  border: 2px solid #bee74b; }
+
 /* billet rapide */
 #quick {
-	padding: 1em;
-	max-width: 976px;
-	margin: 0 auto;
-	background: #f5f5f5;
-	box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
-	text-align: left;
-	}
+  padding: 1em;
+  max-width: 976px;
+  margin: 0 auto;
+  background: #f5f5f5;
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+  text-align: left; }
+
 #quick h3 {
-	margin-bottom: 0.2em;
-	font-size: 1.2em;
-	}
+  margin-bottom: 0.2em;
+  font-size: 1.2em; }
+
 #quick p.qinfo {
-	margin: -.7em -1em 1em;
-	background: #D9EDF7 url(info.png) no-repeat .2em .2em;
-	border: 1px solid #BCE8F1;
-	padding: .2em 1em .1em 24px;
-	color: #000;
-	}
-#quick #new_cat, .q-cat, .q-cat label {
-	display: inline-block;
-	vertical-align: top;
-	margin-right: 1em;
-	margin-top: 0;
-	}
+  margin: -.7em -1em 1em;
+  background: #D9EDF7 url(info.png) no-repeat 0.2em 0.2em;
+  border: 1px solid #BCE8F1;
+  padding: .2em 1em .1em 24px;
+  color: #000; }
+
+#quick #new_cat,
+.q-cat,
 .q-cat label {
-	margin-right: .3em;
-	}
+  display: inline-block;
+  vertical-align: top;
+  margin-right: 1em;
+  margin-top: 0; }
+
+.q-cat label {
+  margin-right: .3em; }
+
 #quick #new_cat {
-	margin-bottom: 2em;
-	}
+  margin-bottom: 2em; }
+
 /* modules additionnels */
 #dashboard-boxes {
-	margin: 1em auto 1em;
-	padding-top: 2em;
-	}
-.db-items, .db-contents {
-	display: inline-block;
-	text-align: center;
-	}
+  margin: 1em auto 1em;
+  padding-top: 2em; }
+
+.db-items,
+.db-contents {
+  display: inline-block;
+  text-align: center; }
+
 .no-js .outgoing img {
-	display: none;
-	}
+  display: none; }
+
 #dashboard-boxes .box {
-	padding: 10px;
-	border: 1px solid #ccc;
-	border-radius: 3px;
-	min-height: 200px;
-	margin: 10px;
-	text-align: left;
-	}
+  padding: 10px;
+  border: 1px solid #ccc;
+  border-radius: 3px;
+  min-height: 200px;
+  margin: 10px;
+  text-align: left; }
+
 .dc-box {
-	background: transparent url(dc_logos/sq-logo-32.png) no-repeat top right;
-	}
-.db-items img, .db-contents img {
-	vertical-align: middle;
-	}
-.db-items ul, .db-contents ul {
-	display: block;
-	padding-left: 1.5em;
-	list-style: square;
-	}
-.db-items li, .db-contents li {
-	margin: 0.25em 0 0 0;
-	}
+  background: transparent url(dc_logos/sq-logo-32.png) no-repeat top right; }
+
+.db-items img,
+.db-contents img {
+  vertical-align: middle; }
+
+.db-items ul,
+.db-contents ul {
+  display: block;
+  padding-left: 1.5em;
+  list-style: square; }
+
+.db-items li,
+.db-contents li {
+  margin: 0.25em 0 0 0; }
+
 #news dt {
-	font-weight: bold;
-	margin: 0 0 0.4em 0;
-	}
+  font-weight: bold;
+  margin: 0 0 0.4em 0; }
+
 #news dd {
-	margin: 0 0 1em 0;
-	}
+  margin: 0 0 1em 0; }
+
 #news dd p {
-	margin: 0.2em 0 0 0;
-	}
+  margin: 0.2em 0 0 0; }
+
 /* message de mise à jour */
 #upg-notify ul {
-	padding-left: 1.5em;
-	}
+  padding-left: 1.5em; }
+
 #upg-notify li {
-	color: #fff;
-	}
-/* ------------------------------------------------------------------- blog_pref.php */
+  color: #fff; }
+
 #media_img_title_pattern {
-	margin-right: 1em;
-	}
+  margin-right: 1em; }
+
 .user-perm {
-	margin: 2em 0px;
-	background: transparent url(user.png) no-repeat left top;
-	width: 320px;
-	display: inline-block;
-	vertical-align: top;
-	}
-.user-perm h4, .user-perm h5, .user-perm p, .user-perm ul, .user-perm li {
-	margin: .5em 0 .33em;
-	padding: 0;
-	}
+  margin: 2em 0px;
+  background: transparent url(user.png) no-repeat left top;
+  width: 320px;
+  display: inline-block;
+  vertical-align: top; }
+
+.user-perm h4,
+.user-perm h5,
+.user-perm p,
+.user-perm ul,
+.user-perm li {
+  margin: .5em 0 .33em;
+  padding: 0; }
+
 .user-perm h4 {
-	padding-left: 28px;
-	}
+  padding-left: 28px; }
+
 .user-perm h5 {
-	margin: 1em 0 0 0;
-	}
+  margin: 1em 0 0 0; }
+
 .user-perm ul {
-	list-style-type: inside;
-	}
+  list-style-type: inside; }
+
 .user-perm li {
-	margin-left: 1em;
-	padding-left: 0;
-	}
-li.user_super, li.user_admin {
-	margin-left: 0;
-	padding-left: 20px;
-	list-style: none;
-	background: transparent url(../images/superadmin.png) no-repeat 0 .3em;
-	}
+  margin-left: 1em;
+  padding-left: 0; }
+
+li.user_super,
 li.user_admin {
-	background-image: url(../images/admin.png);
-	}
-/* ------------------------------------------------------------------- blog_theme.php */
+  margin-left: 0;
+  padding-left: 20px;
+  list-style: none;
+  background: transparent url(../images/superadmin.png) no-repeat 0 0.3em; }
+
+li.user_admin {
+  background-image: url(../images/admin.png); }
+
 /* pour les alignements verticaux */
-#theme-new, #theme-activate, #theme-deactivate, #theme-update {
-	margin-left: -10px;
-	margin-right: -10px;
-	}
+#theme-new,
+#theme-activate,
+#theme-deactivate,
+#theme-update {
+  margin-left: -10px;
+  margin-right: -10px; }
+
 .box.theme {
-	margin: 5px;
-	padding: 10px 10px 5px 10px;
-	border: 1px solid #dfdfdf;
-	position: relative;
-	}
+  margin: 5px;
+  padding: 10px 10px 5px 10px;
+  border: 1px solid #dfdfdf;
+  position: relative; }
+
 .box.theme:hover {
-	background: #ecf0f1 url(texture.png);
-	}
-.module-name, .module-name label {
-	margin-bottom: .5em;
-	color: #676e78;
-	}
+  background: #ecf0f1 url(texture.png); }
+
+.module-name,
+.module-name label {
+  margin-bottom: .5em;
+  color: #676e78; }
+
 .module-sshot {
-	text-align: center;
-	}
+  text-align: center; }
+
 .module-sshot img {
-	padding: 5px;
-	background: #f7f7f7;
-	box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
-	border: 3px solid #fff;
-	max-width: 100%;
-	}
+  padding: 5px;
+  background: #f7f7f7;
+  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
+  border: 3px solid #fff;
+  max-width: 100%; }
+
 .module-actions {
-	margin-top: 1em;
-	}
+  margin-top: 1em; }
+
 .bloc-toggler {
-	text-align: right;
-	}
+  text-align: right; }
+
 .bloc-toggler img {
-	opacity: .4;
-	}
+  opacity: .4; }
+
 .bloc-toggler img:hover {
-	opacity: 1;
-	}
+  opacity: 1; }
+
 .bloc-toggler a:focus img {
-	opacity: 1;
-	}
+  opacity: 1; }
+
 span.module-version:before {
-	content: "- ";
-	}
+  content: "- "; }
+
 .toggle-bloc .mod-more {
-	display: block;
-	margin-left: 0;
-	}
+  display: block;
+  margin-left: 0; }
+
 .box.theme input {
-	margin-bottom: 1em;
-	}
+  margin-bottom: 1em; }
+
 .module-name input[type="checkbox"] {
-	margin-bottom: 0;
-	}
+  margin-bottom: 0; }
+
 /**
 Les screenshots des thèmes ont deux tailles possibles :
@@ -1693,1215 +2327,1404 @@
 On adapte largeur et hauteur en fonction
 */
-#theme-new .box.theme, #theme-update .box.theme { /* Ajouter un thème */
-	width: 278px;
-	min-height: 275px;
-	}
-#theme-new .module-sshot img { /* Pour ceux qui n'ont pas de miniature on contraint l'image */
-	max-width: 240px;
-	max-height: 210px;
-	overflow: hidden;
-	}
-#theme-deactivate .box.theme { /* Thèmes désactivés */
-	width: 278px;
-	}
-#theme-activate .box.theme { /* Thèmes installés */
-	width: 318px;
-	min-height: 304px;
-	max-width: 100%;
-	}
+#theme-new .box.theme,
+#theme-update .box.theme {
+  /* Ajouter un thème */
+  width: 278px;
+  min-height: 275px; }
+
+#theme-new .module-sshot img {
+  /* Pour ceux qui n'ont pas de miniature on contraint l'image */
+  max-width: 240px;
+  max-height: 210px;
+  overflow: hidden; }
+
+#theme-deactivate .box.theme {
+  /* Thèmes désactivés */
+  width: 278px; }
+
+#theme-activate .box.theme {
+  /* Thèmes installés */
+  width: 318px;
+  min-height: 304px;
+  max-width: 100%; }
+
 #theme-deactivate .box.theme:hover {
-	background: transparent url(dc_logos/sq-logo-32.png) no-repeat top right;
-	}
+  background: transparent url(dc_logos/sq-logo-32.png) no-repeat top right; }
+
 /* si js est là, les infos viennent par dessus le screenshot */
 .with-js #theme-new .module-infos.toggle-bloc,
 .with-js #theme-new .module-actions.toggle-bloc {
-	position: absolute;
-	left: 10px;
-	width: 239px;
-	margin: 0;
-	padding: 10px;
-	background: rgba(250, 250, 250, .95);
-	}
+  position: absolute;
+  left: 10px;
+  width: 239px;
+  margin: 0;
+  padding: 10px;
+  background: rgba(250, 250, 250, 0.95); }
+
 .with-js #theme-new .module-infos.toggle-bloc {
-	top: 128px;
-	height: 80px;
-	border-top: 1px solid #e3e3e3;
-	}
+  top: 128px;
+  height: 80px;
+  border-top: 1px solid #e3e3e3; }
+
 .with-js #theme-new .module-actions.toggle-bloc {
-	top: 208px;
-	height: 40px;
-	border-bottom: 1px solid #e3e3e3;
-	}
+  top: 208px;
+  height: 40px;
+  border-bottom: 1px solid #e3e3e3; }
+
 .with-js .module-sshot:hover {
-	cursor: pointer;
-	}
+  cursor: pointer; }
+
 /* mise en forme pour la boîte du thème courant */
-.box.current-theme { /* Thème courant */
-	width: 646px;
-	margin: 5px;
-	padding: 20px 18px 6px;
-	background: #fff url(texture.png);
-	border: 1px solid #eee;
-	border-radius: .5em;
-	min-height: 326px;
-	box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
-	position: relative;
-	}
+.box.current-theme {
+  /* Thème courant */
+  width: 646px;
+  margin: 5px;
+  padding: 20px 18px 6px;
+  background: #fff url(texture.png);
+  border: 1px solid #eee;
+  border-radius: .5em;
+  min-height: 326px;
+  box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
+  position: relative; }
+
 .current-theme .module-sshot:hover {
-	cursor: auto;
-	}
+  cursor: auto; }
+
 .current-theme .module-sshot img {
-	float: left;
-	margin-right: 2em;
-	border: 9px solid #fff;
-	padding: 5px;
-	max-width: 308px;
-	max-height: 273px;
-	}
+  float: left;
+  margin-right: 2em;
+  border: 9px solid #fff;
+  padding: 5px;
+  max-width: 308px;
+  max-height: 273px; }
+
 .current-theme .module-name {
-	color: #D33800;
-	font-size: 1.5em;
-	margin-bottom: 1em;
-	}
+  color: #D33800;
+  font-size: 1.5em;
+  margin-bottom: 1em; }
+
 .current-actions {
-	width: auto;
-	overflow: hidden;
-	padding-top: 2em;
-	margin: 1.5em 0 2em;
-	background: transparent url(../images/minus-theme.png) no-repeat left top;
-	}
+  width: auto;
+  overflow: hidden;
+  padding-top: 2em;
+  margin: 1.5em 0 2em;
+  background: transparent url(../images/minus-theme.png) no-repeat left top; }
+
 .current-theme .actions-buttons {
-	position: absolute;
-	bottom: 0;
-	right: 18px;
-	}
-/* ------------------------------------------------------------------ categories.php */
+  position: absolute;
+  bottom: 0;
+  right: 18px; }
+
 #categories {
-	margin: 1em 0;
-	}
+  margin: 1em 0; }
+
 #categories ul {
-	list-style: none;
-	margin-top: 2em;
-	padding: 0;
-	}
+  list-style: none;
+  margin-top: 2em;
+  padding: 0; }
+
 .cat-line {
-	position: relative;
-	margin: .66em 0;
-	padding: .66em 1em;
-	border: 1px solid #ccc;
-	border-radius: 3px;
-	}
+  position: relative;
+  margin: .66em 0;
+  padding: .66em 1em;
+  border: 1px solid #ccc;
+  border-radius: 3px; }
+
 .cat-line label {
-	margin-right: .25em;
-	}
+  margin-right: .25em; }
+
 .cat-line label a {
-	font-weight: bold;
-	}
-.cat-line p, .cat-line label {
-	margin: 0;
-	display: inline-block;
-	}
+  font-weight: bold; }
+
+.cat-line p,
+.cat-line label {
+  margin: 0;
+  display: inline-block; }
+
 p.cat-title {
-	margin-right: 1em;
-	}
+  margin-right: 1em; }
+
 .cat-nb-posts a {
-	color: #333;
-	}
+  color: #333; }
+
 .cat-url {
-	padding-left: 1em;
-	}
+  padding-left: 1em; }
+
 #categories .placeholder {
-	outline: 1px dashed #4183C4;
-	min-height: 2.5em;
-	}
+  outline: 1px dashed #4183C4;
+  min-height: 2.5em; }
+
 .cat-buttons {
-	float: right;
-	margin-top: -.2em;
-	font-size: .91em;
-	}
+  float: right;
+  margin-top: -.2em;
+  font-size: .91em; }
+
 .cat-buttons select {
-	padding: 1px 2px 3px 2px;
-	margin-right: .25em;
-	}
+  padding: 1px 2px 3px 2px;
+  margin-right: .25em; }
+
 .cat-buttons .reset {
-	padding-left: 4px;
-	padding-right: 4px;
-	}
+  padding-left: 4px;
+  padding-right: 4px; }
+
 #categories ul ul {
-	margin-right: 2em;
-	margin-left: 2em;
-	}
+  margin-right: 2em;
+  margin-left: 2em; }
+
 .cat-line .cat-line {
-	border: 1px solid #dfdfdf;
-	}
+  border: 1px solid #dfdfdf; }
+
 .cat-actions {
-	line-height: 2;
-	}
+  line-height: 2; }
+
 #del_cat {
-	width: 100%;
-	}
-/* ------------------------------------------------------------------ media.php */
+  width: 100%; }
+
 span.media-file-mode {
-	margin-right: 1em;
-}
+  margin-right: 1em; }
+
 .media-file-mode a {
-	border-bottom: none;
-}
+  border-bottom: none; }
+
 .media-file-mode img {
-	margin-right: 1em;
-}
+  margin-right: 1em; }
+
 .media-item {
-	position: relative;
-	border: 1px solid #dfdfdf;
-	margin: 9px;
-	padding: 10px 12px 6px;
-	width: 320px;
-	display: inline-block;
-	vertical-align: top;
-	min-height: 140px;
-	word-wrap: break-word;
-	}
+  position: relative;
+  border: 1px solid #dfdfdf;
+  margin: 9px;
+  padding: 10px 12px 6px;
+  width: 320px;
+  display: inline-block;
+  vertical-align: top;
+  min-height: 140px;
+  word-wrap: break-word; }
+
 .media-item p {
-	margin: 0 0 .5em;
-	}
+  margin: 0 0 .5em; }
+
 .media-item object {
-	margin-top: .5em;
-	}
+  margin-top: .5em; }
+
 .media-item ul {
-	display: block;
-	list-style: none;
-	margin: 0;
-	padding: 0;
-	}
+  display: block;
+  list-style: none;
+  margin: 0;
+  padding: 0; }
+
 .media-item audio {
-	width: 90%;
-	margin-top: .5em;
-	}
+  width: 90%;
+  margin-top: .5em; }
+
 a.media-icon {
-	display: block;
-	border-bottom: none;
-	margin: 0 auto;
-	}
+  display: block;
+  border-bottom: none;
+  margin: 0 auto; }
+
 .media-icon img {
-	display: block;
-	}
+  display: block; }
+
 a.media-flag {
-	border-bottom: none;
-}
+  border-bottom: none; }
+
 .media-flag img {
-	float: left;
-	margin-right: .5em;
-}
+  float: left;
+  margin-right: .5em; }
+
 .media-link {
-	font-size: 1.1em;
-	}
+  font-size: 1.1em; }
+
 .media-action-box {
-	position: relative;
-	margin: 3em 3em 1em 1em;
-	display: inline-block;
-	vertical-align: top;
-	}
+  position: relative;
+  margin: 3em 3em 1em 1em;
+  display: inline-block;
+  vertical-align: top; }
+
 li.media-action {
-	display: block;
-	position: absolute;
-	bottom: 4px;
-	right: 8px;
-	height: 16px;
-	}
+  display: block;
+  position: absolute;
+  bottom: 4px;
+  right: 8px;
+  height: 16px; }
+
 li.media-action a {
-	border: none;
-	}
+  border: none; }
+
 li.media-action a.attach-media {
-	margin-right: 5px;
-	}
+  margin-right: 5px; }
+
 li.media-action form {
-	display: inline;
-	}
+  display: inline; }
+
 li.media-action input {
-	border: none;
-	}
+  border: none; }
+
 #entry-sidebar .media-item {
-	width: 100%;
-	min-height: 0;
-	padding: 4px;
-	margin: .33em 0;
-	}
+  width: 100%;
+  min-height: 0;
+  padding: 4px;
+  margin: .33em 0; }
+
 #entry-sidebar li.media-action {
-	top: 4px;
-	}
+  top: 4px; }
+
 .folders-group .media-item {
-	min-height: 70px;
-	}
+  min-height: 70px; }
+
 .folders-group .media-item p {
-	margin-bottom: 0;
-	}
+  margin-bottom: 0; }
+
 .media-folder {
-	background: transparent url(bg_menu.png) repeat-y;
-	border-color: #eee;
-	}
+  background: transparent url(bg_menu.png) repeat-y;
+  border-color: #eee; }
+
 tr.media-folder {
-	background: transparent;
-}
+  background: transparent; }
+
 .media-folder-up {
-	border-color: #fff;
-	padding-bottom: 6px;
-	}
+  border-color: #fff;
+  padding-bottom: 6px; }
+
 .media-folder .media-link {
-	font-size: 1.25em;
-	margin-left: 2em;
-	color: #676e78;
-	border-bottom: none;
-	}
-.medias-delete, .medias-select {
-	text-align: right;
-	}
+  font-size: 1.25em;
+  margin-left: 2em;
+  color: #676e78;
+  border-bottom: none; }
+
+.medias-delete,
+.medias-select {
+  text-align: right; }
+
 .media-recent {
-	float: left;
-	margin-right: 2em;
-}
+  float: left;
+  margin-right: 2em; }
+
 #media-fav-dir {
-	border-bottom: none;
-}
+  border-bottom: none; }
+
 #media-fav-dir img {
-	vertical-align: middle;
-}
+  vertical-align: middle; }
+
 /* upload multiple */
-.enhanced_uploader .choose_files, .enhanced_uploader .cancel,
-.enhanced_uploader .clean, .enhanced_uploader .start {
-	margin-right: .4em;
-	}
+.enhanced_uploader .choose_files,
+.enhanced_uploader .cancel,
+.enhanced_uploader .clean,
+.enhanced_uploader .start {
+  margin-right: .4em; }
+
 .enhanced_uploader #upfile {
-	visibility: hidden;
-	width: 0;
-	height: 0;
-	margin: 0;
-	opacity: 0;
-	filter: alpha(opacity=0);
-	cursor: pointer;
-	}
-.button.clean, .button.cancel, .button.choose_files {
-	display: none;
-	}
+  visibility: hidden;
+  width: 0;
+  height: 0;
+  margin: 0;
+  opacity: 0;
+  filter: alpha(opacity=0);
+  cursor: pointer; }
+
+.button.clean,
+.button.cancel,
+.button.choose_files {
+  display: none; }
+
 .enhanced_uploader .button.choose_files {
-	display: inline-block;
-	}
+  display: inline-block; }
+
 .enhanced_uploader .max-size {
-	display: block;
-	}
+  display: block; }
+
 .enhanced_uploader .one-file {
-	display: none;
-	}
+  display: none; }
+
 label span.one-file {
-	display: inline;
-	}
+  display: inline; }
+
 .enhanced_uploader p.clear {
-	padding-top: 1em;
-	margin-bottom: 1em;
-	}
+  padding-top: 1em;
+  margin-bottom: 1em; }
+
 #add-file-f p.clear {
-	margin-top: 1em;
-	margin-bottom: 0;
-	clear: both;
-	}
+  margin-top: 1em;
+  margin-bottom: 0;
+  clear: both; }
+
 .files {
-	list-style-type: none;
-	margin-left: 0;
-	padding-left: 0;
-	border-bottom: 1px solid #dfdfdf;
-	}
+  list-style-type: none;
+  margin-left: 0;
+  padding-left: 0;
+  border-bottom: 1px solid #dfdfdf; }
+
 .files li {
-	margin-left: 0;
-	padding-left: 0;
-	}
+  margin-left: 0;
+  padding-left: 0; }
+
 .upload-msg {
-	font-weight: bold;
-	}
+  font-weight: bold; }
+
 .upload-msg.upload-error {
-	color: #900;
-	}
+  color: #900; }
+
 .upload-files {
-	padding: 0 0.5em;
-	margin: 1em 0;
-	}
+  padding: 0 0.5em;
+  margin: 1em 0; }
+
 .upload-file {
-	margin: 0;
-	padding: .3em 0;
-	border-top: 1px solid #dfdfdf;
-	position: relative;
-	}
+  margin: 0;
+  padding: .3em 0;
+  border-top: 1px solid #dfdfdf;
+  position: relative; }
+
 .upload-fileinfo {
-	margin-left: 0;
-	}
+  margin-left: 0; }
+
 .upload-fileinfo input {
-	position: absolute;
-	top: .5em;
-	right: .5em;
-	}
+  position: absolute;
+  top: .5em;
+  right: .5em; }
+
 .upload-fileinfo span {
-	padding-right: 8px;
-	}
+  padding-right: 8px; }
+
 .upload-fileinfo .upload-filecancel {
-	display: block;
-	padding-right: 0;
-	margin-top: 3px;
-	width: 20px;
-	height: 20px;
-	background: transparent url("cancel.png") no-repeat left top;
-	text-indent: -1000px;
-	cursor: pointer;
-	float: left;
-	}
+  display: block;
+  padding-right: 0;
+  margin-top: 3px;
+  width: 20px;
+  height: 20px;
+  background: transparent url("cancel.png") no-repeat left top;
+  text-indent: -1000px;
+  cursor: pointer;
+  float: left; }
+
 .upload-filemsg {
-	font-weight: bold;
-	color: green;
-	}
+  font-weight: bold;
+  color: green; }
+
 .upload-filemsg.upload-error {
-	color: #900;
-	}
+  color: #900; }
+
 .upload-progress {
-	padding: .3em 0;
-	}
+  padding: .3em 0; }
+
 .upload-progress div {
-	width: 0;
-	height: 1.2em;
-	font-weight: bold;
-	line-height: 1.2em;
-	text-align: right;
-	background: green url(loader.png) repeat-x left top;
-	color: white;
-	border-radius: 3px;
-	}
+  width: 0;
+  height: 1.2em;
+  font-weight: bold;
+  line-height: 1.2em;
+  text-align: right;
+  background: green url(loader.png) repeat-x left top;
+  color: white;
+  border-radius: 3px; }
+
 div.template-upload {
-	clear: both;
-	}
+  clear: both; }
+
 .queue-message {
-	font-weight: bold;
-	}
-/* --------------------------------------------------------------- media-item.php */
+  font-weight: bold; }
+
 #media-icon {
-	float: left;
-	}
+  float: left; }
+
 .near-icon {
-	margin-left: 70px;
-	margin-bottom: 3em;
-	}
+  margin-left: 70px;
+  margin-bottom: 3em; }
+
 #media-details ul {
-	display: block;
-	margin-left: 0;
-	padding: 0;
-	}
+  display: block;
+  margin-left: 0;
+  padding: 0; }
+
 #media-details li {
-	list-style: square inside;
-	margin: 0;
-	padding: 0;
-	}
+  list-style: square inside;
+  margin: 0;
+  padding: 0; }
+
 #media-original-image {
-	overflow: auto;
-	}
+  overflow: auto; }
+
 #media-original-image.overheight {
-	height: 500px;
-	}
-/* -------------------------------------------------------------------- plugins.php */
-.modules td.module-actions, .modules td.module-icon {
-	vertical-align: middle;
-	}
+  height: 500px; }
+
+.modules td.module-actions,
+.modules td.module-icon {
+  vertical-align: middle; }
+
 .modules td.module-icon img:last-child {
-	width: 16px;
-	height: 16px;
-	}
+  width: 16px;
+  height: 16px; }
+
 .modules td.module-icon img.expand {
-	margin-bottom: 3px;
-	}
+  margin-bottom: 3px; }
+
 .modules td.module-distrib img {
-	display: block;
-	float: right;
-	}
+  display: block;
+  float: right; }
+
 .modules dt {
-	font-weight: bold;
-	}
+  font-weight: bold; }
+
 .modules a.module-details {
-	background: transparent url(search.png) no-repeat 2px center;
-	padding: 4px 4px 0 20px;
-	}
+  background: transparent url(search.png) no-repeat 2px center;
+  padding: 4px 4px 0 20px; }
+
 .modules a.module-support {
-	background: transparent url(help12.png) no-repeat 2px center;
-	padding: 4px 4px 0 20px;
-	}
+  background: transparent url(help12.png) no-repeat 2px center;
+  padding: 4px 4px 0 20px; }
+
 .modules a.module-config {
-	background: transparent url(settings.png) no-repeat 2px 6px;
-	padding: 4px 4px 0 18px;
-	}
+  background: transparent url(settings.png) no-repeat 2px 6px;
+  padding: 4px 4px 0 18px; }
+
 #m_search {
-	background: transparent url(search.png) no-repeat 4px center;
-	padding-left: 20px;
-	}
-.modules tr.expand, .modules td.expand {
-	background: #f7f7f7;
-	border-color: #bee74b;
-	}
+  background: transparent url(search.png) no-repeat 4px center;
+  padding-left: 20px; }
+
+.modules tr.expand,
+.modules td.expand {
+  background: #f7f7f7;
+  border-color: #bee74b; }
+
 .modules tr.expand td:first-child {
-	font-weight: bold;
-	background: #DFE5E7;
-	}
+  font-weight: bold;
+  background: #dfe5e7; }
+
 .modules td.expand {
-	padding: 0 0 1em;
-	border-top: 1px solid #eaeaea;
-	}
+  padding: 0 0 1em;
+  border-top: 1px solid #eaeaea; }
+
 .modules td.expand div {
-	display: inline-block;
-	vertical-align: top;
-	margin-right: 3em;
-	}
-.mod-more, .mod-more li {
-	margin: .25em 0 0 1em;
-	padding: 0;
-	list-style-type: none;
-	}
+  display: inline-block;
+  vertical-align: top;
+  margin-right: 3em; }
+
+.mod-more,
+.mod-more li {
+  margin: .25em 0 0 1em;
+  padding: 0;
+  list-style-type: none; }
+
 .mod-more {
-	padding-top: .5em;
-	}
+  padding-top: .5em; }
+
 #plugin-update td {
-	vertical-align: baseline;
-	}
-/* ---------------------------------------------------------- post.php, page.php */
+  vertical-align: baseline; }
+
 #entry-wrapper {
-	float: left;
-	width: 100%;
-	margin-right: -16em;
-	}
+  float: left;
+  width: 100%;
+  margin-right: -16em; }
+
 #entry-content {
-	margin-right: 18em;
-	margin-left: 0;
-	}
+  margin-right: 18em;
+  margin-left: 0; }
+
 #entry-sidebar {
-	width: 16em;
-	float: right;
-	}
+  width: 16em;
+  float: right; }
+
 #entry-sidebar h4 {
-	font-size: 1.08em;
-	margin-top: .3em;
-	}
+  font-size: 1.08em;
+  margin-top: .3em; }
+
 #entry-sidebar select {
-	width: 100%;
-	}
+  width: 100%; }
+
 #entry-sidebar input#post_position {
-	width: 4em;
-	}
+  width: 4em; }
+
 .sb-box {
-	border-bottom: 1px solid #dfdfdf;
-	margin-bottom: 1em;
-	}
+  border-bottom: 1px solid #dfdfdf;
+  margin-bottom: 1em; }
+
 #tb_excerpt {
-	width: 100%;
-	}
-/* ---------------------------------------------------------- preferences.php */
+  width: 100%; }
+
 .fav-list {
-	list-style-type: none;
-	margin-left: 0;
-	padding-left: 0;
-	}
+  list-style-type: none;
+  margin-left: 0;
+  padding-left: 0; }
+
 #my-favs .fav-list {
-	border-top: 1px solid #eee;
-	}
+  border-top: 1px solid #eee; }
+
 .fav-list li {
-	margin-left: 0;
-	padding-left: 0;
-	padding-top: 3px;
-	padding-bottom: 3px;
-	position: relative;
-	}
+  margin-left: 0;
+  padding-left: 0;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  position: relative; }
+
 #my-favs .fav-list li {
-	line-height: 2;
-	border-bottom: 1px solid #eee;
-	padding-top: 3px;
-	padding-bottom: 3px;
-	position: relative;
-	}
+  line-height: 2;
+  border-bottom: 1px solid #eee;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  position: relative; }
+
 .fav-list img {
-	vertical-align: middle;
-	margin-right: .2em;
-	}
+  vertical-align: middle;
+  margin-right: .2em; }
+
 .fav-list li span.zoom {
-	display: none;
-	}
+  display: none; }
+
 .fav-list li:hover span.zoom {
-	display: block;
-	position: absolute;
-	bottom: 0;
-	left: 10em;
-	background-color: #f7f7f7;
-	border: 1px solid #dfdfdf;
-	padding: .2em;
-	border-radius: .5em;
-	}
+  display: block;
+  position: absolute;
+  bottom: 0;
+  left: 10em;
+  background-color: #f7f7f7;
+  border: 1px solid #dfdfdf;
+  padding: .2em;
+  border-radius: .5em; }
+
 #my-favs {
-	border-color: #9bca1c;
-	}
+  border-color: #9bca1c; }
+
 #my-favs input.position {
-	margin: 0 0 .4em .2em;
-	}
-#available-favs input, #available-favs label, #available-favs label span {
-	white-space: normal;
-	display: inline;
-	}
+  margin: 0 0 .4em .2em; }
+
+#available-favs input,
+#available-favs label,
+#available-favs label span {
+  white-space: normal;
+  display: inline; }
+
 #available-favs label span.zoom {
-	display: none;
-	}
+  display: none; }
+
 #available-favs li:hover label span.zoom {
-	display: block;
-	position: absolute;
-	bottom: 0;
-	left: 10em;
-	background-color: #f7f7f7;
-	border: 1px solid #dfdfdf;
-	padding: .2em;
-	border-radius: .5em;
-	}
+  display: block;
+  position: absolute;
+  bottom: 0;
+  left: 10em;
+  background-color: #f7f7f7;
+  border: 1px solid #dfdfdf;
+  padding: .2em;
+  border-radius: .5em; }
+
 #user-options label.ib {
-	display: inline-block;
-	width: 14em;
-	padding-right: 1em;
-	}
-/* --------------------------------------------------------------------- user.php */
+  display: inline-block;
+  width: 14em;
+  padding-right: 1em; }
+
 .blog-perm {
-	padding-top: 2em;
-	}
+  padding-top: 2em; }
+
 .blog-perm {
-	margin-top: 2em;
-	font-weight: bold;
-	}
+  margin-top: 2em;
+  font-weight: bold; }
+
 .ul-perm {
-	list-style-type: square;
-	margin-left: 0;
-	padding-left: 3.5em;
-	margin-bottom: 0
-	}
+  list-style-type: square;
+  margin-left: 0;
+  padding-left: 3.5em;
+  margin-bottom: 0; }
+
 .add-perm {
-	padding-top: .5em;
-	padding-left: 2.5em;
-	margin-left: 0;
-	}
-/* --------------------------------------------------------------------- _charte.php */
+  padding-top: .5em;
+  padding-left: 2.5em;
+  margin-left: 0; }
+
 .guideline #content h2 {
-	color: #D33800;
-	padding: 2em 0 0 0;
-	margin: 1em 0;
-	font-size: 2em;
-	}
+  color: #d33800;
+  padding: 2em 0 0 0;
+  margin: 1em 0;
+  font-size: 2em; }
+
 .guideline #content h2:first-child {
-	margin-top: 0;
-	padding-top: .5em;
-	}
+  margin-top: 0;
+  padding-top: .5em; }
+
 .guideline h3 {
-	margin-top: 2em;
-	}
+  margin-top: 2em; }
+
 .guideline .dc-update h3 {
-	margin-top: 0;
-	}
+  margin-top: 0; }
+
 .guideline .one-box .box {
-	border: 1px solid #dfdfdf;
-	padding: 2px .5em;
-	}
+  border: 1px solid #dfdfdf;
+  padding: 2px .5em; }
+
 .guideline #main-menu ul {
-	margin: 0;
-	padding: 0;
-	font-weight: normal;
-	}
+  margin: 0;
+  padding: 0;
+  font-weight: normal; }
+
 .guideline #main-menu li {
-	padding-left: 1em;
-}
-/* ------------------------------------------------------------------------------------
-																				CLASSES
------------------------------------------------------------------------------------- */
+  padding-left: 1em; }
+
+/** --------------------------------------------------
+    Misc
+--------------------------------------------------- */
 /* jQuery Autocomplete plugin */
 .ac_results {
-	padding: 0px;
-	border: 1px dotted #f90;
-	background-color: white;
-	overflow: hidden;
-	z-index: 99999;
-	}
+  padding: 0px;
+  border: 1px dotted #f90;
+  background-color: white;
+  overflow: hidden;
+  z-index: 99999; }
+
 .ac_results ul {
-	width: 100%;
-	list-style-position: outside;
-	list-style: none;
-	padding: 0;
-	margin: 0;
-	}
+  width: 100%;
+  list-style-position: outside;
+  list-style: none;
+  padding: 0;
+  margin: 0; }
+
 .ac_results li {
-	margin: 0px;
-	padding: 2px 5px;
-	cursor: default;
-	display: block;
-	font-size: 1em;
-	line-height: 16px;
-	overflow: hidden;
-	}
+  margin: 0px;
+  padding: 2px 5px;
+  cursor: default;
+  display: block;
+  font-size: 1em;
+  line-height: 16px;
+  overflow: hidden; }
+
 .ac_loading {
-	background: transparent url('loader.gif') right center no-repeat;
-	}
+  background: transparent url("loader.gif") right center no-repeat; }
+
 .ac_over {
-	background-color: #2373A8;
-	color: white;
-	}
+  background-color: #2373a8;
+  color: white; }
+
 /* password indicator */
 .pw-table {
-	display: table;
-	margin-bottom: 1em;
-	}
+  display: table;
+  margin-bottom: 1em; }
+
 .pw-cell {
-	display: table-cell;
-	margin-bottom: 1em;
-	}
+  display: table-cell;
+  margin-bottom: 1em; }
+
 #pwindicator {
-	display: table-cell;
-	vertical-align: bottom;
-	padding-left: 1.5em;
-	height: 3.8em;
-	}
+  display: table-cell;
+  vertical-align: bottom;
+  padding-left: 1.5em;
+  height: 3.8em; }
+
 #pwindicator .bar {
-	height: 6px;
-	margin-bottom: 4px;
-	}
+  height: 6px;
+  margin-bottom: 4px; }
+
 .pw-very-weak .bar {
-	background: #b33630;
-	width: 30px;
-	}
+  background: #b33630;
+  width: 30px; }
+
 .pw-weak .bar {
-	background: #b33630;
-	width: 60px;
-	}
+  background: #b33630;
+  width: 60px; }
+
 .pw-mediocre .bar {
-	background: #f90;
-	width: 90px;
-	}
+  background: #f90;
+  width: 90px; }
+
 .pw-strong .bar {
-	background: #9bca1c;
-	width: 120px;
-	}
+  background: #9bca1c;
+  width: 120px; }
+
 .pw-very-strong .bar {
-	background: #9bca1c;
-	width: 150px;
-	}
+  background: #9bca1c;
+  width: 150px; }
+
 /* ------------------------------------------------------------------ navigation */
 /* selects accès rapide */
 .anchor-nav {
-	background: #ecf0f1;
-	color: #000;
-	padding: 4px 1em;
-	}
+  background: #ecf0f1;
+  color: #000;
+  padding: 4px 1em; }
+
 .anchor-nav label {
-	vertical-align: bottom;
-	}
+  vertical-align: bottom; }
+
 /* nav links */
 .nav_prevnext {
-	margin-bottom: 2em;
-	color: #fff;
-	}
-.nav_prevnext a, a.back {
-	color: #2373A8;
-	border: 1px solid #dfdfdf;
-	padding: 2px 1.5em;
-	border-radius: .75em;
-	background-color: #f3f3f3;
-	}
+  margin-bottom: 2em;
+  color: #fff; }
+
+.nav_prevnext a,
+a.back {
+  color: #2373A8;
+  border: 1px solid #dfdfdf;
+  padding: 2px 1.5em;
+  border-radius: .75em;
+  background-color: #f3f3f3; }
+
 a.back:before {
-	content: "\ab\a0";
-	}
+  content: "\ab\a0"; }
+
 a.onblog_link {
-	color: #333;
-	float: right;
-	border: 1px solid #eee;
-	padding: 2px 1.5em;
-	border-radius: .75em;
-	background-color: #ECF0F1;
-	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
-	}
+  color: #333;
+  float: right;
+  border: 1px solid #eee;
+  padding: 2px 1.5em;
+  border-radius: .75em;
+  background-color: #ECF0F1;
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); }
+
 /* Pagination */
 .pager {
-	margin: 2em 0 1em 0;
-	clear: left;
-	}
+  margin: 2em 0 1em 0;
+  clear: left; }
+
 .pager ul {
-	list-style-type: none;
-	margin: 0;
-	padding: 0;
-	}
-.pager li, .pager input {
-	display: inline-block;
-	vertical-align: middle;
-	margin: 0 .33em 0 0;
-	padding: 0;
-	text-align: center;
-	}
+  list-style-type: none;
+  margin: 0;
+  padding: 0; }
+
+.pager li,
+.pager input {
+  display: inline-block;
+  vertical-align: middle;
+  margin: 0 .33em 0 0;
+  padding: 0;
+  text-align: center; }
+
 .pager .btn {
-	border: 1px solid #dfdfdf;
-	background-color: #fcfcfc;
-	color: #676e78;
-	border-radius: 3px;
-	overflow: hidden;
-	}
+  border: 1px solid #dfdfdf;
+  background-color: #fcfcfc;
+  color: #676e78;
+  border-radius: 3px;
+  overflow: hidden; }
+
 .btn.no-link {
-	border-color: #dfdfdf;
-	background-color: #f9f9f9;
-	padding: 1px 3px 0;
-	}
+  border-color: #dfdfdf;
+  background-color: #f9f9f9;
+  padding: 1px 3px 0; }
+
 .pager .active {
-	padding: 4px 12px;
-	color: #676e78;
-	}
+  padding: 4px 12px;
+  color: #676e78; }
+
 .pager .direct-access {
-	margin-left: 2em;
-	}
+  margin-left: 2em; }
+
 .direct-access input[type=text] {
-	border: 1px solid #dfdfdf;
-	padding: 3px 8px;
-	margin-left: .25em;
-	background-color: #fff;
-	}
+  border: 1px solid #dfdfdf;
+  padding: 3px 8px;
+  margin-left: .25em;
+  background-color: #fff; }
+
 .direct-access input[type=submit] {
-	padding: 3px 6px;
-	}
+  padding: 3px 6px; }
+
 .pager a {
-	display: block;
-	padding: 1px 3px 0;
-	border: none;
-	}
-.pager a:hover, .pager a:focus {
-	background-color: #ecf0f1;
-	}
-.index .btn.no-link, .index a {
-	padding: 2px 8px 3px;
-	font-variant: small-caps;
-	}
-.index li {margin-bottom: 3px;}
+  display: block;
+  padding: 1px 3px 0;
+  border: none; }
+
+.pager a:hover,
+.pager a:focus {
+  background-color: #ecf0f1; }
+
+.index .btn.no-link,
 .index a {
-	font-weight: bold;
-	}
+  padding: 2px 8px 3px;
+  font-variant: small-caps; }
+
+.index li {
+  margin-bottom: 3px; }
+
+.index a {
+  font-weight: bold; }
+
 .index .btn.no-link {
-	color: #ccc;
-	}
+  color: #ccc; }
+
 .index .active {
-	padding: 4px 8px;
-	color: #fff;
-	background: #676e78;
-	border-radius: 3px;
-	font-variant: small-caps;
-	}
+  padding: 4px 8px;
+  color: #fff;
+  background: #676e78;
+  border-radius: 3px;
+  font-variant: small-caps; }
+
 /* Etapes */
 .step {
-	display: inline-block;
-	float: left;
-	margin: 3px 10px 2px 0;
-	padding: 5px .5em;
-	background: #ecf0f1;
-	border-radius: 3px;
-	font-weight: bold;
-	border: 1px solid #c5c5c5;
-	color: #676e78;
-	}
+  display: inline-block;
+  float: left;
+  margin: 3px 10px 2px 0;
+  padding: 5px .5em;
+  background: #ecf0f1;
+  border-radius: 3px;
+  font-weight: bold;
+  border: 1px solid #c5c5c5;
+  color: #676e78; }
+
 /* ---------------------------------------------------------------- utilisables partout  */
 .legible {
-	font-size: 1.16em;
-	max-width: 62em;
-	}
+  font-size: 1.16em;
+  max-width: 62em; }
+
 .fieldset {
-	background: #fff;
-	border: 1px solid #c5c5c5;
-	border-radius: 3px;
-	padding: 1em .7em .5em;
-	margin-bottom: 1em;
-	}
+  background: #fff;
+  border: 1px solid #c5c5c5;
+  border-radius: 3px;
+  padding: 1em .7em .5em;
+  margin-bottom: 1em; }
+
 .fieldset h3 {
-	margin-top: 0;
-	}
-.right, .txt-right {
-	text-align: right;
-	}
+  margin-top: 0; }
+
+.right,
+.txt-right {
+  text-align: right; }
+
 .txt-center {
-	text-align: center;
-	}
+  text-align: center; }
+
 .txt-left {
-	text-align: left;
-	}
-.no-margin, label.no-margin {
-	margin-top: 0;
-	margin-bottom: 0;
-	}
+  text-align: left; }
+
+.no-margin,
+label.no-margin {
+  margin-top: 0;
+  margin-bottom: 0; }
+
 .vertical-separator {
-	margin-top: 2em;
-	}
+  margin-top: 2em; }
+
 p.clear.vertical-separator {
-	padding-top: 2em;
-	}
+  padding-top: 2em; }
+
 .border-top {
-	border-top: 1px solid #999;
-	padding-top: 1em;
-	margin-top: 1em;
-	}
+  border-top: 1px solid #999;
+  padding-top: 1em;
+  margin-top: 1em; }
+
 .grid {
-	background: transparent repeat url('grid.png') 0 0;
-	}
+  background: transparent repeat url("grid.png") 0 0; }
+
 ul.nice {
-	margin: 1em 0;
-	padding: 0 0 0 2em;
-	list-style: square;
-	}
+  margin: 1em 0;
+  padding: 0 0 0 2em;
+  list-style: square; }
+
 ul.nice li {
-	margin: 0;
-	padding: 0;
-	}
+  margin: 0;
+  padding: 0; }
+
 ul.from-left {
-	list-style-type: none;
-	padding-left: 0;
-	margin: 1em 0;
-	}
+  list-style-type: none;
+  padding-left: 0;
+  margin: 1em 0; }
+
 ul.from-left > li {
-	margin-top: 1em;
-	margin-bottom: 1em;
-	}
+  margin-top: 1em;
+  margin-bottom: 1em; }
+
 ul.from-left ul {
-	list-style-type: square;
-	}
+  list-style-type: square; }
+
 .offline {
-	color: #676e78;
-	}
+  color: #676e78; }
+
 /* caché pour tout le monde */
-.hide, .button.hide {
-	display: none !important;
-	}
+.hide,
+.button.hide {
+  display: none !important; }
+
 /* Caché sauf pour les revues d'écran */
-.hidden, .with-js .out-of-screen-if-js {
-	position: absolute !important;
-	clip: rect(1px 1px 1px 1px);
-	/* IE6, IE7 */
-	clip: rect(1px, 1px, 1px, 1px);
-	padding: 0 !important;
-	border: 0 !important;
-	height: 1px !important;
-	width: 1px !important;
-	overflow: hidden;
-	}
+.hidden,
+.with-js .out-of-screen-if-js {
+  position: absolute !important;
+  clip: rect(1px 1px 1px 1px);
+  /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px);
+  padding: 0 !important;
+  border: 0 !important;
+  height: 1px !important;
+  width: 1px !important;
+  overflow: hidden; }
+
 /* caché si js est inactif */
 .no-js .hidden-if-no-js {
-	display: none;
-	}
+  display: none; }
+
 /* caché si js est actif */
 .with-js .hidden-if-js {
-	display: none;
-	}
-/* ------------------------------------------------------------------------------------
-																				UTILS
------------------------------------------------------------------------------------- */
+  display: none; }
+
 /* debug */
 #debug {
-	position: absolute;
-	top: 0;
-	width: 100%;
-	height: 4px;
-	background: #ffd478;
-	}
+  position: absolute;
+  top: 0;
+  width: 100%;
+  height: 4px;
+  background: #ffd478; }
+
 #debug div {
-	display: none;
-	padding: 3px 0.5em 2px;
-	}
+  display: none;
+  padding: 3px 0.5em 2px; }
+
 #debug p {
-	margin: 0.5em 0;
-	}
+  margin: 0.5em 0; }
+
 #debug:hover {
-	height: auto;
-	padding: 2px 1em;
-	z-index: 100;
-	}
+  height: auto;
+  padding: 2px 1em;
+  z-index: 100; }
+
 #debug:hover div {
-	display: block;
-	}
+  display: block; }
+
 .debug {
-	background: #ffd478;
-	padding: 3px 0.5em 2px;
-	}
-input[type=submit].delete.debug, a.delete.debug {
-	border-color: #ffd478;
-	}
-input[type=submit].delete.debug:hover, a.delete.debug:hover {
-	background: #ffd478;
-	color: #900;
-	border-color: #ffd478;
-	}
+  background: #ffd478;
+  padding: 3px 0.5em 2px; }
+
+input[type=submit].delete.debug,
+a.delete.debug {
+  border-color: #ffd478; }
+
+input[type=submit].delete.debug:hover,
+a.delete.debug:hover {
+  background: #ffd478;
+  color: #900;
+  border-color: #ffd478; }
+
 /* ---------------------------------------------- Couleurs ajoutées via javascript
 /* color-picker.js */
 .color-color-picker {
-	border: 1px solid #000;
-	width: 195px;
-	background: #fff;
-	}
+  border: 1px solid #000;
+  width: 195px;
+  background: #fff; }
+
 /* _media_item.js */
 .color-div {
-	border: 1px solid #ccc;
-	}
+  border: 1px solid #ccc; }
+
 /* fadings ('color' est utilisé comme variable, pas comme text color) */
 .colorBeginPassword,
 .colorBeginValidatorErr,
-.colorBeginUserMail 		{ color: #fff; }
+.colorBeginUserMail {
+  color: #fff; }
+
 .colorEndPassword,
 .colorEndError,
 .colorEndValidatorErr,
-.colorEndUserMail 			{ color: #ffbaba; }
-.colorBeginMessage 			{ color: #ccc; }
+.colorEndUserMail {
+  color: #ffbaba; }
+
+.colorBeginMessage {
+  color: #ccc; }
+
 .colorEndMessage,
-.colorBeginValidatorMsg 	{ color: #676e78; }
-.colorBeginError 			{ color: #fefacd; }
-.colorBeginSuccess 			{ color: #9BCA1C; }
-.colorEndSuccess 			{ color: #bee74b; }
-.colorEndValidatorMsg 		{ color: #ffcc00; }
+.colorBeginValidatorMsg {
+  color: #676e78; }
+
+.colorBeginError {
+  color: #fefacd; }
+
+.colorBeginSuccess {
+  color: #9BCA1C; }
+
+.colorEndSuccess {
+  color: #bee74b; }
+
+.colorEndValidatorMsg {
+  color: #ffcc00; }
+
 /* ------------------------------------------------------------------------------------
 															UN POIL DE MEDIA QUERIES
 ------------------------------------------------------------------------------------ */
-@media screen and (min-width: 80em) {
-#wrapper {
-	background: #F7F7F7 url(bg_wrapper.png) repeat-y 18em;
-	}
-#main {
-	margin-left: -17em;
-	}
-#content {
-	margin: 0 0 0 17em;
-	}
-#main-menu {
-	width: 17em;
-	}
-#collapser {
-	left: 17em;
-	}
-h1 {
-	width: 19.5em;
-	}
-}
-@media screen and (max-width: 61em) {
-#top-info-blog #switchblog {
-	max-width: 16em;
-	}
-#top-info-blog a {
-	margin-left: 2em;
-	}
-#header {
-	display: block;
-	width: 100%;
-	text-align: right;
-	background: #333;
-	}
-#header h1, #header h1 a {
-	width: 120px;
-	padding: 0;
-	margin: 0;
-	}
-h1, #top-info-blog {
-	display: inline-block;
-	vertical-align: top;
-	margin-right: 1em;
-	}
-#top-info-user {
-	display: block;
-	width: 100%;
-	background: #676e78;
-	padding-right: 0;
-	}
-#top-info-user li:last-child {
-	padding-right: 1em;
-	}
-#top-info-user a.active {
-	padding: 2px 8px;
-	background: #999;
-	color: #FFF;
-	border-width: 0;
-	border-radius: 6px;
-	}
-.three-boxes, .three-boxes .box,
-	.two-cols .col70, .two-cols .col30 {
-	width: 100%;
-	margin-left: 0;
-	margin-right: 0;
-	}
-}
-@media screen and (max-width: 48em) {
-	#dashboard-boxes .box.medium, .box.medium,
-	#dashboard-boxes .box.small, .box.small,
-	#dashboard-boxes .box.large, .box.large {
-	width: 95%;
-	margin: 10px auto;
-	}
-}
 @media screen and (max-width: 44em) {
-#help-button {
-	height: 26px;
-	width: 26px;
-	background-color: #A2CBE9;
-	padding: 0;
-	margin: 0;
-	font-size: .83em;
-	line-height: 68px;
-	overflow: hidden;
-	}
-#content.with-help #help-button {
-	top: 77px;
-	}
-.one-box, .two-boxes, .box,
-	.two-cols .col {
-	width: 96%;
-	margin-left: 0;
-	margin-right: 0;
-	}
-#entry-wrapper {
-	float: none;
-	width: 100%;
-	margin-right: 0;
-	}
-#entry-content {
-	margin-right: 0;
-	margin-left: 0;
-	}
-#entry-sidebar {
-	width: 100%;
-	float: none;
-	}
-}
+  #help-button {
+    padding: 0;
+    font-size: .83em;
+    line-height: 68px; } }
 @media screen and (max-width: 38em) {
-#header h1, #header h1 a {
-	width: 42px !important;
-	height: 42px;
-	}
-h1 a:link {
-	background: transparent url(dc_logos/b-dotclear120.png) no-repeat -270px 6px;
-	border-right: 1px solid #ccc;
-	}
-h1 a:hover, h1 a:focus {
-	background: url(dc_logos/b-dotclear120.png) no-repeat -270px -94px;
-	border-right: 1px solid #A2CBE9;
-	}
-#wrapper, #main, #main-menu {
-	display: block;
-	float: none;
-	width: 100%;
-	margin: 0;
-	}
-#dashboard-main {
-	padding: 0;
-	}
-#main-menu a {
-	display: block;
-	width: 100%;
-	}
-#main-menu h3 a {
-	display: inline;
-	}
-#content, .hide-mm #content {
-	margin: 0;
-	padding: 0 .5em !important;
-	}
-#collapser {
-	display: none;
-	}
-#main #content > h2 {
-	margin: 0 -.5em 1em;
-	padding: 6px 30px 4px .5em;
-	}
-#dashboard-boxes .box.medium, .box.medium,
-	#dashboard-boxes .box.small, .box.small,
-	#dashboard-boxes .box.large, .box.large {
-	width: 95%;
-	margin: 10px auto;
-	}
-.cell, #filters-form .cell {
-	display: inline-block;
-	border: none;
-	padding: 1em;
-	vertical-align: bottom;
-	}
-.pseudo-tabs li {
-	display: block;
-	float: left;
-	width: 50%;
-	border-top: 1px solid #ddd;
-	padding: .25em;
-	}
-.pseudo-tabs li:first-child, .pseudo-tabs li:nth-of-type(2) {
-	border-top: none;
-	}
-}
+  #dashboard-main {
+    padding: 0; }
+
+  #content,
+  .hide-mm #content {
+    padding: 0 .5em !important; }
+
+  #main #content > h2 {
+    padding: 6px 30px 4px .5em; }
+
+  .cell,
+  #filters-form .cell {
+    border: none;
+    padding: 1em; }
+
+  .pseudo-tabs li {
+    padding: .25em; }
+
+  .pseudo-tabs li:first-child,
+  .pseudo-tabs li:nth-of-type(2) {
+    border-top: none; } }
 @media screen and (max-width: 26.5em) {
-h1, h1 a {
-	padding: 0;
-	border-right: #333 !important;
-	}
-#top-info-blog label, .nomobile {
-	display: none;
-	}
-#top-info-blog {
-	margin-bottom: .5em;
-	max-width: 75%;
-	}
-#top-info-blog select {
-	margin-bottom: .5em;
-	}
-#wrapper {
-	font-size: 1.4em;
-	}
-#content.with-help #help-button {
-	top: 120px;
-	right: 20.5em;
-	}
-#content.with-help #help {
-	font-size: 12px;
-	}
-p.top-add {
-	margin-bottom: .5em;
-	text-align: center;
-	}
-.multi-part {
-	padding-left: 0;
-	}
-.part-tabs ul {
-	margin: 1em 0;
-	padding: 0 .5em;
-	}
-.part-tabs li a {
-	display: block;
-	width: 100%;
-	}
-#icons p {
-	width: 9em;
-	padding: 1em .25em;
-	}
-.media-item {
-	width: 90%;
-	}
-#theme-new, #theme-activate, #theme-deactivate {
-	margin-left: 0;
-	margin-right: 0;
-	}
-.box.current-theme {
-	margin: 5px;
-	padding: 10px;
-	width: 100%;
-	}
-.current-theme .module-sshot img {
-	margin: 0;
-	float: none;
-	max-width: 100%;
-	}
-table .maximal {
-	min-width: 14em;
-	}
-th, td {
-	padding: 0.3em 1em 0.3em 0;
-	}
-.pseudo-tabs li {
-	display: block;
-	width: 100%;
-	float: none;
-	border-top: 1px solid #ddd !important;
-	}
-.pseudo-tabs li:first-child {
-	border-top: none;
-	}
-}
+  #content.with-help #help {
+    font-size: 1.2rem; }
+
+  p.top-add {
+    text-align: center; }
+
+  .multi-part {
+    padding-left: 0; }
+
+  .part-tabs ul {
+    padding: 0 .5em; }
+
+  #icons p {
+    padding: 1em .25em; }
+
+  .box.current-theme {
+    padding: 10px; }
+
+  th,
+  td {
+    padding: 0.3em 1em 0.3em 0; }
+
+  .pseudo-tabs li:first-child {
+    border-top: none; } }
+/** --------------------------------------------------
+	3rd parties
+--------------------------------------------------- */
+/* Magnific Popup CSS */
+.mfp-bg {
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 1042;
+  overflow: hidden;
+  position: fixed;
+  background: #0b0b0b;
+  opacity: 0.8; }
+
+.mfp-wrap {
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 1043;
+  position: fixed;
+  outline: none !important;
+  -webkit-backface-visibility: hidden; }
+
+.mfp-container {
+  text-align: center;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  padding: 0 8px;
+  box-sizing: border-box; }
+
+.mfp-container:before {
+  content: '';
+  display: inline-block;
+  height: 100%;
+  vertical-align: middle; }
+
+.mfp-align-top .mfp-container:before {
+  display: none; }
+
+.mfp-content {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle;
+  margin: 0 auto;
+  text-align: left;
+  z-index: 1045; }
+
+.mfp-inline-holder .mfp-content,
+.mfp-ajax-holder .mfp-content {
+  width: 100%;
+  cursor: auto; }
+
+.mfp-ajax-cur {
+  cursor: progress; }
+
+.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
+  cursor: -moz-zoom-out;
+  cursor: -webkit-zoom-out;
+  cursor: zoom-out; }
+
+.mfp-zoom {
+  cursor: pointer;
+  cursor: -webkit-zoom-in;
+  cursor: -moz-zoom-in;
+  cursor: zoom-in; }
+
+.mfp-auto-cursor .mfp-content {
+  cursor: auto; }
+
+.mfp-close,
+.mfp-arrow,
+.mfp-preloader,
+.mfp-counter {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  user-select: none; }
+
+.mfp-loading.mfp-figure {
+  display: none; }
+
+.mfp-hide {
+  display: none !important; }
+
+.mfp-preloader {
+  color: #CCC;
+  position: absolute;
+  top: 50%;
+  width: auto;
+  text-align: center;
+  margin-top: -0.8em;
+  left: 8px;
+  right: 8px;
+  z-index: 1044; }
+  .mfp-preloader a {
+    color: #CCC; }
+    .mfp-preloader a:hover {
+      color: #FFF; }
+
+.mfp-s-ready .mfp-preloader {
+  display: none; }
+
+.mfp-s-error .mfp-content {
+  display: none; }
+
+button.mfp-close, button.mfp-arrow {
+  overflow: visible;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+  display: block;
+  outline: none;
+  padding: 0;
+  z-index: 1046;
+  box-shadow: none;
+  touch-action: manipulation; }
+button::-moz-focus-inner {
+  padding: 0;
+  border: 0; }
+
+.mfp-close {
+  width: 44px;
+  height: 44px;
+  line-height: 44px;
+  position: absolute;
+  right: 0;
+  top: 0;
+  text-decoration: none;
+  text-align: center;
+  opacity: 0.65;
+  padding: 0 0 18px 10px;
+  color: #FFF;
+  font-style: normal;
+  font-size: 28px;
+  font-family: Arial, Baskerville, monospace; }
+  .mfp-close:hover, .mfp-close:focus {
+    opacity: 1; }
+  .mfp-close:active {
+    top: 1px; }
+
+.mfp-close-btn-in .mfp-close {
+  color: #333; }
+
+.mfp-image-holder .mfp-close,
+.mfp-iframe-holder .mfp-close {
+  color: #FFF;
+  right: -6px;
+  text-align: right;
+  padding-right: 6px;
+  width: 100%; }
+
+.mfp-counter {
+  position: absolute;
+  top: 0;
+  right: 0;
+  color: #CCC;
+  font-size: 12px;
+  line-height: 18px;
+  white-space: nowrap; }
+
+.mfp-arrow {
+  position: absolute;
+  opacity: 0.65;
+  margin: 0;
+  top: 50%;
+  margin-top: -55px;
+  padding: 0;
+  width: 90px;
+  height: 110px;
+  -webkit-tap-highlight-color: transparent; }
+  .mfp-arrow:active {
+    margin-top: -54px; }
+  .mfp-arrow:hover, .mfp-arrow:focus {
+    opacity: 1; }
+  .mfp-arrow:before, .mfp-arrow:after {
+    content: '';
+    display: block;
+    width: 0;
+    height: 0;
+    position: absolute;
+    left: 0;
+    top: 0;
+    margin-top: 35px;
+    margin-left: 35px;
+    border: medium inset transparent; }
+  .mfp-arrow:after {
+    border-top-width: 13px;
+    border-bottom-width: 13px;
+    top: 8px; }
+  .mfp-arrow:before {
+    border-top-width: 21px;
+    border-bottom-width: 21px;
+    opacity: 0.7; }
+
+.mfp-arrow-left {
+  left: 0; }
+  .mfp-arrow-left:after {
+    border-right: 17px solid #FFF;
+    margin-left: 31px; }
+  .mfp-arrow-left:before {
+    margin-left: 25px;
+    border-right: 27px solid #3F3F3F; }
+
+.mfp-arrow-right {
+  right: 0; }
+  .mfp-arrow-right:after {
+    border-left: 17px solid #FFF;
+    margin-left: 39px; }
+  .mfp-arrow-right:before {
+    border-left: 27px solid #3F3F3F; }
+
+.mfp-iframe-holder {
+  padding-top: 40px;
+  padding-bottom: 40px; }
+  .mfp-iframe-holder .mfp-content {
+    line-height: 0;
+    width: 100%;
+    max-width: 98%; }
+  .mfp-iframe-holder .mfp-close {
+    top: -40px; }
+
+.mfp-iframe-scaler {
+  width: 100%;
+  height: 0;
+  overflow: hidden;
+  padding-top: 56.25%; }
+  .mfp-iframe-scaler iframe {
+    position: absolute;
+    display: block;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
+    background: #000; }
+
+/* Main image in popup */
+img.mfp-img {
+  width: auto;
+  max-width: 100%;
+  height: auto;
+  display: block;
+  line-height: 0;
+  box-sizing: border-box;
+  padding: 40px 0 40px;
+  margin: 0 auto; }
+
+/* The shadow behind the image */
+.mfp-figure {
+  line-height: 0; }
+  .mfp-figure:after {
+    content: '';
+    position: absolute;
+    left: 0;
+    top: 40px;
+    bottom: 40px;
+    display: block;
+    right: 0;
+    width: auto;
+    height: auto;
+    z-index: -1;
+    box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
+    background: #444; }
+  .mfp-figure small {
+    color: #BDBDBD;
+    display: block;
+    font-size: 12px;
+    line-height: 14px; }
+  .mfp-figure figure {
+    margin: 0; }
+
+.mfp-bottom-bar {
+  margin-top: -36px;
+  position: absolute;
+  top: 100%;
+  left: 0;
+  width: 100%;
+  cursor: auto; }
+
+.mfp-title {
+  text-align: left;
+  line-height: 18px;
+  color: #F3F3F3;
+  word-wrap: break-word;
+  padding-right: 36px; }
+
+.mfp-image-holder .mfp-content {
+  max-width: 100%; }
+
+.mfp-gallery .mfp-image-holder .mfp-figure {
+  cursor: pointer; }
+
+@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
+  /**
+   * Remove all paddings around the image on small screen
+   */
+  .mfp-img-mobile .mfp-image-holder {
+    padding-left: 0;
+    padding-right: 0; }
+  .mfp-img-mobile img.mfp-img {
+    padding: 0; }
+  .mfp-img-mobile .mfp-figure:after {
+    top: 0;
+    bottom: 0; }
+  .mfp-img-mobile .mfp-figure small {
+    display: inline;
+    margin-left: 5px; }
+  .mfp-img-mobile .mfp-bottom-bar {
+    background: rgba(0, 0, 0, 0.6);
+    bottom: 0;
+    margin: 0;
+    top: auto;
+    padding: 3px 5px;
+    position: fixed;
+    box-sizing: border-box; }
+    .mfp-img-mobile .mfp-bottom-bar:empty {
+      padding: 0; }
+  .mfp-img-mobile .mfp-counter {
+    right: 5px;
+    top: 3px; }
+  .mfp-img-mobile .mfp-close {
+    top: 0;
+    right: 0;
+    width: 35px;
+    height: 35px;
+    line-height: 35px;
+    background: rgba(0, 0, 0, 0.6);
+    position: fixed;
+    text-align: center;
+    padding: 0; } }
+@media all and (max-width: 900px) {
+  .mfp-arrow {
+    -webkit-transform: scale(0.75);
+    transform: scale(0.75); }
+
+  .mfp-arrow-left {
+    -webkit-transform-origin: 0;
+    transform-origin: 0; }
+
+  .mfp-arrow-right {
+    -webkit-transform-origin: 100%;
+    transform-origin: 100%; }
+
+  .mfp-container {
+    padding-left: 6px;
+    padding-right: 6px; } }
Index: dmin/style/modal/modal.css
===================================================================
--- admin/style/modal/modal.css	(revision 2566)
+++ 	(revision )
@@ -1,52 +1,0 @@
-div.jq-modal {
-	line-height: 1;
-	background: #fff;
-}
-div.jq-modal-container {
-	padding: 1px;
-	position: relative;
-}
-div.jq-modal-content {
-	position: relative;
-	overflow: auto;
-}
-div.jq-modal-closer {
-	position: absolute;
-	top: -12px;
-	right: -12px;
-	width: 25px;
-	height: 25px;
-}
-div.jq-modal-closer a {
-	display: block;
-	text-indent: -5000px;
-	width: 25px;
-	height: 25px;
-	outline: none;
-	border: none;
-}
-
-/* modalImage */
-div.jq-modal-content img {
-	display: block;
-}
-span.jq-modal-legend {
-	display: block;
-	padding: 3px 0;
-}
-a.jq-modal-next, a.jq-modal-prev {
-	display: block;
-	position: absolute;
-	top: 0;
-	width: 50%;
-	bottom: 0;
-	outline: none;
-	border: none;
-	text-indent: -5000px;
-}
-a.jq-modal-next {
-	right: 0;
-}
-a.jq-modal-prev {
-	left: 0;
-}
Index: admin/style/scss/default.scss
===================================================================
--- admin/style/scss/default.scss	(revision 3368)
+++ admin/style/scss/default.scss	(revision 3368)
@@ -0,0 +1,82 @@
+/*
+# -- BEGIN LICENSE BLOCK --------------------------------------------------
+# This file is part of Dotclear 2.
+# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+# -- END LICENSE BLOCK ----------------------------------------------------
+*/
+
+@charset "UTF-8";
+
+/** --------------------------------------------------
+    Start
+--------------------------------------------------- */
+@import "init/mixins-functions";    // mixins, fonctions
+@import "init/rebase";              // init html tags
+@import "init/config";              // theme variables
+
+/** --------------------------------------------------
+    Common rules
+--------------------------------------------------- */
+@import "partials/common";          // headings, links
+
+/** --------------------------------------------------
+    Layout
+--------------------------------------------------- */
+@import "partials/layout";
+
+/** --------------------------------------------------
+	Colors
+--------------------------------------------------- */
+@import "partials/colors";
+
+/** --------------------------------------------------
+    Elements
+--------------------------------------------------- */
+@import "partials/markup";
+@import "partials/forms";
+@import "partials/buttons";
+@import "partials/messages";
+
+/** --------------------------------------------------
+    Components
+--------------------------------------------------- */
+@import "partials/header";
+@import "partials/main-menu";
+@import "partials/content";
+@import "partials/footer";
+
+/** --------------------------------------------------
+    Tables and Filters
+--------------------------------------------------- */
+@import "partials/tables";
+@import "partials/filters";
+
+/** --------------------------------------------------
+    Pages
+--------------------------------------------------- */
+@import "partials/auth";
+@import "partials/index";
+@import "partials/blog_pref";
+@import "partials/blog_theme";
+@import "partials/categories";
+@import "partials/media";
+@import "partials/media_item";
+@import "partials/plugins";
+@import "partials/entry";
+@import "partials/preferences";
+@import "partials/user";
+@import "partials/charte";
+
+/** --------------------------------------------------
+    Misc
+--------------------------------------------------- */
+@import "partials/classes";
+@import "partials/utils";
+@import "partials/mediaqueries";
+
+/** --------------------------------------------------
+	3rd parties
+--------------------------------------------------- */
+@import "vendor/magnific-popup";
Index: admin/style/scss/init/_config.scss
===================================================================
--- admin/style/scss/init/_config.scss	(revision 3365)
+++ admin/style/scss/init/_config.scss	(revision 3365)
@@ -0,0 +1,92 @@
+// ----------------- LIBRAIRIES ------------------- //
+
+// ----------------- Compass config --------------- //
+// Do not support IE less than IE9
+$browser-minimum-versions: (
+  "ie": "10"
+);
+$graceful-usage-threshold: 100;
+$critical-usage-threshold: 100;
+@import "compass";                    // gem
+
+// ========================================================================== //
+// =Typographie
+// ========================================================================== //
+
+$sans-serif:		-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
+
+$sans-serif-input:	inherit;	// Use OS default font for input fields
+
+$monospace:			"Andale Mono",AndaleMono,Consolas,Monaco,"Courier New",monospace;
+
+$html-font-size:			62.5%;		// Basically 10px (16px ⁄x 0.625) — Must be in %
+
+$body-font-size-small:		1.2rem;		// For screen smaller than $small-screen (see below)
+$body-font-size:			1.4rem;
+$body-font-size-large:		1.6rem;		// For screen larger or equal than $large-screen (see below)
+
+// ========================================================================== //
+// =Couleurs
+// ========================================================================== //
+
+// Palette de base
+
+$blue: 				#137bbb;
+$green: 			#9ac123;
+$red: 				#c44d58;
+$light-blue: 		#a2cbe9;
+$orange:			#d33800;
+
+$gray: 				#b2b2b2;
+$gray-dark:			#676e78;
+
+$gray-very-dark:	shade($gray, 72%);		// #323232 (near to #333 used before)
+$gray-semi-dark:	shade($gray, 25%);		// #868686 (near to #999 used before)
+$gray-light:		tint($gray, 30%);		// #c9c9c9 (near to #ccc used before)
+$gray-very-light:	tint($gray, 85%);		// #f3f3f3 (near to #f7f7f7 used before)
+
+$white:				#fff;
+$black:				#000;
+
+// Couleurs secondaires
+
+
+
+// Application
+
+$primary-color:			$gray-very-dark;		// #323232 : Texte courant
+$secondary-color:		$orange;				// #d33800 : Titres
+$ternary-color:			$gray-dark;				// #676e78 : Titres (secondaires)
+$link: 					$blue;					// #137bbb : Liens
+$primary-background:	$white;					// #fff : Fond courant
+$secondary-background:	$gray-very-light;		// #c9c9c9 : Fond secondaire
+$ternary-background:	$gray-dark;				// #676e78 : Fond tertiaire
+
+$button-base:		$light-blue;
+$button-dark:		shade($button-base, 10%);
+$button-light:		tint($button-base, 10%);
+
+// Autres
+
+$css-img-path: 'img'; // utile pour le mixin de fallback svg
+
+// ========================================================================== //
+// =Breakpoints
+// ========================================================================== //
+
+$xxs-screen: 	26.5em;		// 424 px
+$xs-screen:  	38em;		// 608 px
+$s-screen:  	44em;		// 704 px
+$m-screen:   	48em;		// 768 px
+$l-screen:  	61em;		// 976 px
+$xl-screen:		80em;		// 1280 px
+$xxl-screen:	120em;		// 1920 px
+
+$small-screen:	$xxs-screen;
+$large-screen:	$xxl-screen;
+
+// =========================================================================== //
+// =Various dimensions
+// =========================================================================== //
+
+$collapser-width:	12px;
Index: admin/style/scss/init/_mixins-functions.scss
===================================================================
--- admin/style/scss/init/_mixins-functions.scss	(revision 3365)
+++ admin/style/scss/init/_mixins-functions.scss	(revision 3365)
@@ -0,0 +1,58 @@
+// mixin svg fallback
+@mixin svg(
+	$file-name,
+	$css-img-path: $css-img-path)
+{
+	background-image: inline-image($file-name+'.png');
+	background-image: inline-image($file-name+'.svg'), none;
+}
+
+@mixin bg-with-svg(
+	$file-name,
+	$css-img-path: $css-img-path,
+	$repeat: no-repeat,
+	$position: 50% 50%,
+	$bg-color: transparent)
+{
+	background: inline-image($file-name+'.png') $repeat, $position, $bg-color;
+	background-image: inline-image($file-name+'.svg'), none;
+}
+
+// Mix from Nico3333 (https://github.com/nico3333fr/ROCSSTI/blob/master/src/css/rocssti-fr.css#L637)
+// and ffood (http://www.ffoodd.fr/cache-cache-css/)
+@mixin visually-hidden {
+	border: 0;
+	clip: rect(0 0 0 0);
+	clip-path: inset(50%);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+	white-space: nowrap;
+}
+@mixin visually-hidden-focus {
+	clip: auto;
+	clip-path: none;
+	height: auto;
+	overflow: visible;
+	position: static;
+	width: auto;
+	white-space: normal;
+}
+
+// Remove any unit from a value
+@function strip-unit(
+	$value)
+{
+	@return $value / ($value * 0 + 1);
+}
+
+// Compute absolute value (in em or rem) depending on font-size of the html element (given in %)
+@function relative-to-screen(
+	$value,             // em or rem value
+	$html-font-size)    // in %
+{
+	@return $value / (strip-unit($html-font-size) / 100);
+}
Index: admin/style/scss/init/_rebase.scss
===================================================================
--- admin/style/scss/init/_rebase.scss	(revision 3365)
+++ admin/style/scss/init/_rebase.scss	(revision 3365)
@@ -0,0 +1,164 @@
+/* largeur des paddings et border compris dans "width" */
+*,
+*:before,
+*:after {
+    box-sizing: border-box;
+}
+html {
+	font-size: 100%;
+	-ms-text-size-adjust: 100%;
+	-webkit-text-size-adjust: 100%;
+	margin: 0;
+	padding: 0;
+}
+body {
+ 	margin: 0;
+ 	padding: 0;
+}
+a { background: transparent; }
+a:focus { outline: thin dotted; }
+a:active, a:hover { outline: none; }
+a img { border: none; }
+q, cite {
+  font-style: italic;
+}
+q:before, q:after {
+  content: "";
+}
+sup, sub {
+	font-size: .75em;
+	line-height: 0;
+	position: relative;
+	vertical-align: baseline;
+}
+sup { top: -0.5em; }
+sub { bottom: -0.25em; }
+abbr[title] {
+  border-bottom: 1px dotted;
+  cursor: help;
+}
+b, strong {
+  font-weight: bold;
+  font-size: 0.9375em;
+}
+small {
+	font-size: 80%;
+}
+dfn {
+	font-style: italic;
+}
+hr {
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+	height: 0;
+}
+mark {
+	background: #ff0;
+	color: #000;
+}
+code, kbd, pre, samp {
+	font-family: monospace, serif;
+	font-size: 1em;
+}
+pre {
+	white-space: pre-wrap;
+}
+fieldset {
+	margin: 0;
+	padding: 0;
+	border: none;
+}
+input, button, select {
+	vertical-align: middle;
+}
+button, input, select, textarea {
+	font-family: inherit;
+	font-size: 100%;
+	margin: 0;
+}
+button, input {
+	line-height: normal;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+	-webkit-appearance: button;
+	cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+	cursor: default;
+}
+input[type="checkbox"],
+input[type="radio"] {
+	padding: 0;
+	border: none;
+}
+input[type="search"] {
+	-webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+	-webkit-appearance: none;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+	border: 0;
+	padding: 0;
+}
+textarea {
+	overflow: auto;
+	vertical-align: top;
+}
+table {
+	border-collapse: collapse;
+	margin-bottom: 1.5em;
+}
+td, th {
+	padding: 1px;
+	vertical-align: top;
+	text-align: left;
+}
+td:first-child, th:first-child {
+	empty-cells: hide;
+}
+/* scripts */
+body > script {display: none !important;}
+
+/* HTML5 for old browsers */
+article, aside, details, figcaption, figure, footer,
+header, hgroup, main, nav, section, summary {
+	display: block;
+}
+audio, canvas, video {
+	display: inline-block;
+}
+audio:not([controls]) {
+	display: none;
+	height: 0;
+}
+figure {
+	margin: 0;
+}
+[hidden], template {
+	display: none;
+}
+svg:not(:root) {
+	overflow: hidden;
+}
+/* Headings reset */
+h1, h2, h3, h4, h5, h6 {
+	font-size: 1em;
+	font-weight: normal;
+	margin: 0;
+}
+
+/* Screen-reader only */
+.visually-hidden {
+	@include visually-hidden;
+	&:focus,
+	&:active {
+		@include visually-hidden-focus;
+	}
+}
Index: admin/style/scss/partials/_auth.scss
===================================================================
--- admin/style/scss/partials/_auth.scss	(revision 3355)
+++ admin/style/scss/partials/_auth.scss	(revision 3355)
@@ -0,0 +1,54 @@
+#login-screen {
+    display: block;
+    width: 20em;
+    margin: 1.5em auto 0;
+    font-size: 1.16em;
+}
+
+#login-screen h1 {
+    text-indent: -2000px;
+    background: transparent url(dc_logos/w-dotclear240.png) no-repeat top left;
+    height: 66px;
+    width: 20em;
+    margin-bottom: .5em;
+    margin-left: 0;
+}
+
+#login-screen .fieldset {
+    border: 1px solid #9bca1c;
+    padding: 1em 1em 0 1em;
+    background: #fff;
+    margin-bottom: 0;
+    margin-top: 1em;
+}
+
+#login-screen input[type=text],
+#login-screen input[type=password],
+#login-screen input[type=submit],
+#login-screen input[type=text]:focus,
+#login-screen input[type=password]:focus,
+#login-screen input[type=submit]:focus {
+    width: 100%;
+    margin: 0;
+    padding: 5px 3px;
+}
+
+#login-screen input.login,
+#login-screen input.login:focus {
+    padding-top: 6px;
+    padding-bottom: 6px;
+    font-size: 1em;
+}
+
+#login-screen #issue {
+    margin-left: 1.33em;
+    font-size: .91em;
+}
+
+#issue p:first-child {
+    text-align: right;
+}
+
+#login-screen #issue strong {
+    font-weight: normal;
+}
Index: admin/style/scss/partials/_blog_pref.scss
===================================================================
--- admin/style/scss/partials/_blog_pref.scss	(revision 3355)
+++ admin/style/scss/partials/_blog_pref.scss	(revision 3355)
@@ -0,0 +1,49 @@
+#media_img_title_pattern {
+    margin-right: 1em;
+}
+
+.user-perm {
+    margin: 2em 0px;
+    background: transparent url(user.png) no-repeat left top;
+    width: 320px;
+    display: inline-block;
+    vertical-align: top;
+}
+
+.user-perm h4,
+.user-perm h5,
+.user-perm p,
+.user-perm ul,
+.user-perm li {
+    margin: .5em 0 .33em;
+    padding: 0;
+}
+
+.user-perm h4 {
+    padding-left: 28px;
+}
+
+.user-perm h5 {
+    margin: 1em 0 0 0;
+}
+
+.user-perm ul {
+    list-style-type: inside;
+}
+
+.user-perm li {
+    margin-left: 1em;
+    padding-left: 0;
+}
+
+li.user_super,
+li.user_admin {
+    margin-left: 0;
+    padding-left: 20px;
+    list-style: none;
+    background: transparent url(../images/superadmin.png) no-repeat 0 .3em;
+}
+
+li.user_admin {
+    background-image: url(../images/admin.png);
+}
Index: admin/style/scss/partials/_blog_theme.scss
===================================================================
--- admin/style/scss/partials/_blog_theme.scss	(revision 3355)
+++ admin/style/scss/partials/_blog_theme.scss	(revision 3355)
@@ -0,0 +1,191 @@
+/* pour les alignements verticaux */
+
+#theme-new,
+#theme-activate,
+#theme-deactivate,
+#theme-update {
+    margin-left: -10px;
+    margin-right: -10px;
+}
+
+.box.theme {
+    margin: 5px;
+    padding: 10px 10px 5px 10px;
+    border: 1px solid #dfdfdf;
+    position: relative;
+}
+
+.box.theme:hover {
+    background: #ecf0f1 url(texture.png);
+}
+
+.module-name,
+.module-name label {
+    margin-bottom: .5em;
+    color: #676e78;
+}
+
+.module-sshot {
+    text-align: center;
+}
+
+.module-sshot img {
+    padding: 5px;
+    background: #f7f7f7;
+    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
+    border: 3px solid #fff;
+    max-width: 100%;
+}
+
+.module-actions {
+    margin-top: 1em;
+}
+
+.bloc-toggler {
+    text-align: right;
+}
+
+.bloc-toggler img {
+    opacity: .4;
+}
+
+.bloc-toggler img:hover {
+    opacity: 1;
+}
+
+.bloc-toggler a:focus img {
+    opacity: 1;
+}
+
+span.module-version:before {
+    content: "- ";
+}
+
+.toggle-bloc .mod-more {
+    display: block;
+    margin-left: 0;
+}
+
+.box.theme input {
+    margin-bottom: 1em;
+}
+
+.module-name input[type="checkbox"] {
+    margin-bottom: 0;
+}
+
+
+/**
+Les screenshots des thèmes ont deux tailles possibles :
+- dans Ajouter des thèmes : 240px (+ 10 padding image + 20 padding boîte + 6 bordure + 2 ombrage = 278)
+- dans Thèmes installés : 280px (+ 10 padding-image + 20 padding-boîte + 2 ombrage = 318)
+On adapte largeur et hauteur en fonction
+*/
+
+#theme-new .box.theme,
+#theme-update .box.theme {
+    /* Ajouter un thème */
+    width: 278px;
+    min-height: 275px;
+}
+
+#theme-new .module-sshot img {
+    /* Pour ceux qui n'ont pas de miniature on contraint l'image */
+    max-width: 240px;
+    max-height: 210px;
+    overflow: hidden;
+}
+
+#theme-deactivate .box.theme {
+    /* Thèmes désactivés */
+    width: 278px;
+}
+
+#theme-activate .box.theme {
+    /* Thèmes installés */
+    width: 318px;
+    min-height: 304px;
+    max-width: 100%;
+}
+
+#theme-deactivate .box.theme:hover {
+    background: transparent url(dc_logos/sq-logo-32.png) no-repeat top right;
+}
+
+
+/* si js est là, les infos viennent par dessus le screenshot */
+
+.with-js #theme-new .module-infos.toggle-bloc,
+.with-js #theme-new .module-actions.toggle-bloc {
+    position: absolute;
+    left: 10px;
+    width: 239px;
+    margin: 0;
+    padding: 10px;
+    background: rgba(250, 250, 250, .95);
+}
+
+.with-js #theme-new .module-infos.toggle-bloc {
+    top: 128px;
+    height: 80px;
+    border-top: 1px solid #e3e3e3;
+}
+
+.with-js #theme-new .module-actions.toggle-bloc {
+    top: 208px;
+    height: 40px;
+    border-bottom: 1px solid #e3e3e3;
+}
+
+.with-js .module-sshot:hover {
+    cursor: pointer;
+}
+
+
+/* mise en forme pour la boîte du thème courant */
+
+.box.current-theme {
+    /* Thème courant */
+    width: 646px;
+    margin: 5px;
+    padding: 20px 18px 6px;
+    background: #fff url(texture.png);
+    border: 1px solid #eee;
+    border-radius: .5em;
+    min-height: 326px;
+    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
+    position: relative;
+}
+
+.current-theme .module-sshot:hover {
+    cursor: auto;
+}
+
+.current-theme .module-sshot img {
+    float: left;
+    margin-right: 2em;
+    border: 9px solid #fff;
+    padding: 5px;
+    max-width: 308px;
+    max-height: 273px;
+}
+
+.current-theme .module-name {
+    color: #D33800;
+    font-size: 1.5em;
+    margin-bottom: 1em;
+}
+
+.current-actions {
+    width: auto;
+    overflow: hidden;
+    padding-top: 2em;
+    margin: 1.5em 0 2em;
+    background: transparent url(../images/minus-theme.png) no-repeat left top;
+}
+
+.current-theme .actions-buttons {
+    position: absolute;
+    bottom: 0;
+    right: 18px;
+}
Index: admin/style/scss/partials/_buttons.scss
===================================================================
--- admin/style/scss/partials/_buttons.scss	(revision 3365)
+++ admin/style/scss/partials/_buttons.scss	(revision 3365)
@@ -0,0 +1,190 @@
+/* Removes inner padding and border in FF3+  - Knacss */
+
+button::-moz-focus-inner,
+input[type=button]::-moz-focus-inner,
+input[type=reset]::-moz-focus-inner,
+input[type=submit]::-moz-focus-inner {
+    border: 0;
+    padding: 0;
+}
+
+
+/* tous les boutons */
+
+button,
+a.button,
+input[type=button],
+input[type=reset],
+input[type=submit] {
+    border: 1px solid #ccc;
+    font-family: $sans-serif-input;
+    padding: 3px 10px;
+    line-height: normal !important;
+    display: inline-block;
+    font-size: 100%;
+    text-align: center;
+    text-decoration: none;
+    cursor: pointer;
+    position: relative;
+    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
+    border-style: solid;
+    border-width: 1px;
+}
+
+button,
+input[type=button],
+input[type=reset],
+input[type=submit] {
+    -webkit-appearance: button;
+}
+
+
+/* validation */
+
+input[type=submit],
+a.button.submit,
+input.button.start {
+    color: #fff;
+    background-color: #25a6e1;
+    @include background-image(linear-gradient(to bottom, #25a6e1, #188bc0));
+    border-color: #25a6e1;
+    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+input[type=submit]:hover,
+input[type=submit]:focus,
+input.button.start:hover,
+input.button.start:focus,
+a.button.submit:hover,
+a.button.submit:focus {
+    background-color: #188bc0;
+    @include background-image(linear-gradient(to bottom, #188bc0, #25a6e1));
+    border-color: #188bc0;
+}
+
+
+/* suppression, reset, "neutres" fond gris */
+
+button,
+input[type=button],
+input.button,
+input[type=reset],
+input[type=submit].reset,
+input.reset,
+input[type=submit].delete,
+input.delete,
+a.button,
+a.button.delete,
+a.button.reset {
+    color: #000;
+    background-color: #eaeaea;
+    @include background-image(linear-gradient(to bottom, #f9f9f9, #eaeaea));
+    background-repeat: repeat-x;
+    border-color: #dfdfdf #dfdfdf #c5c5c5;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
+}
+
+button:hover,
+input[type=button]:hover,
+input.button:hover,
+button:focus,
+input[type=button]:focus,
+input.button:focus,
+input[type=reset]:hover,
+input[type=submit].reset:hover,
+input.reset:hover,
+input[type=reset]:focus,
+input[type=submit].reset:focus,
+input.reset:focus,
+input[type=submit].delete:hover,
+input.delete:hover,
+input[type=submit].delete:focus,
+input.delete:focus,
+a.button.delete:hover,
+a.button.reset:hover,
+a.button:hover,
+a.button.delete:focus,
+a.button.reset:focus,
+a.button:focus {
+    background-color: #dadada;
+    @include background-image(linear-gradient(to bottom, #eaeaea, #dadada));
+    background-repeat: repeat-x;
+    border-color: #cccccc #cccccc #b5b5b5;
+}
+
+
+/* suppression */
+
+input[type=submit].delete,
+input.delete,
+a.button.delete {
+    color: #900;
+}
+
+input[type=submit].delete:hover,
+input.delete:hover,
+a.button.delete:hover,
+input[type=submit].delete:focus,
+input.delete:focus,
+a.button.delete:focus {
+    color: #ffffff;
+    background-color: #b33630;
+    @include background-image(linear-gradient(to bottom, #dc5f59, #b33630));
+    background-repeat: repeat-x;
+    border-color: #cd504a;
+    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
+}
+
+#info-box a.button {
+    padding: 0 .5em;
+    margin-left: 2em;
+}
+
+.button.add {
+    color: #000;
+    background-color: #bee74b;
+    @include background-image(linear-gradient(to bottom, #bee74b, #9bca1c));
+    border-color: #bee74b;
+    padding: .33em 1.33em .5em;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
+//    font-weight: normal;
+//    font-size: 1.16em;
+}
+
+.button.add:hover,
+.button.add:active,
+.button.add:focus {
+    background-color: #9bca1c;
+    @include background-image(linear-gradient(to bottom, #9bca1c, #bee74b));
+    border-color: #9bca1c;
+}
+
+.button-add:focus {
+    outline: dotted 1px;
+}
+
+
+/* paragraphe pour bouton Nouveau bidule */
+
+p.top-add {
+    text-align: right;
+    margin: 0;
+}
+
+
+/* disabled */
+
+input.disabled,
+input[type=submit].disabled {
+    text-shadow: none;
+    color: #676e78;
+    background: #F5F5F5;
+    border: 1px solid #CCC;
+}
+
+input.disabled:hover,
+input[type=submit].disabled:hover {
+    color: #676e78;
+    background: #eee;
+    border: 1px solid #CCC;
+}
Index: admin/style/scss/partials/_categories.scss
===================================================================
--- admin/style/scss/partials/_categories.scss	(revision 3355)
+++ admin/style/scss/partials/_categories.scss	(revision 3355)
@@ -0,0 +1,81 @@
+#categories {
+    margin: 1em 0;
+}
+
+#categories ul {
+    list-style: none;
+    margin-top: 2em;
+    padding: 0;
+}
+
+.cat-line {
+    position: relative;
+    margin: .66em 0;
+    padding: .66em 1em;
+    border: 1px solid #ccc;
+    border-radius: 3px;
+}
+
+.cat-line label {
+    margin-right: .25em;
+}
+
+.cat-line label a {
+    font-weight: bold;
+}
+
+.cat-line p,
+.cat-line label {
+    margin: 0;
+    display: inline-block;
+}
+
+p.cat-title {
+    margin-right: 1em;
+}
+
+.cat-nb-posts a {
+    color: #333;
+}
+
+.cat-url {
+    padding-left: 1em;
+}
+
+#categories .placeholder {
+    outline: 1px dashed #4183C4;
+    min-height: 2.5em;
+}
+
+.cat-buttons {
+    float: right;
+    margin-top: -.2em;
+    font-size: .91em;
+}
+
+.cat-buttons select {
+    padding: 1px 2px 3px 2px;
+    margin-right: .25em;
+}
+
+.cat-buttons .reset {
+    padding-left: 4px;
+    padding-right: 4px;
+}
+
+#categories ul ul {
+    margin-right: 2em;
+    margin-left: 2em;
+}
+
+.cat-line .cat-line {
+    border: 1px solid #dfdfdf;
+}
+
+.cat-actions {
+    line-height: 2;
+}
+
+#del_cat {
+    width: 100%;
+}
Index: admin/style/scss/partials/_charte.scss
===================================================================
--- admin/style/scss/partials/_charte.scss	(revision 3365)
+++ admin/style/scss/partials/_charte.scss	(revision 3365)
@@ -0,0 +1,34 @@
+.guideline #content h2 {
+    color: #d33800;
+    padding: 2em 0 0 0;
+    margin: 1em 0;
+    font-size: 2em;
+}
+
+.guideline #content h2:first-child {
+    margin-top: 0;
+    padding-top: .5em;
+}
+
+.guideline h3 {
+    margin-top: 2em;
+}
+
+.guideline .dc-update h3 {
+    margin-top: 0;
+}
+
+.guideline .one-box .box {
+    border: 1px solid #dfdfdf;
+    padding: 2px .5em;
+}
+
+.guideline #main-menu ul {
+    margin: 0;
+    padding: 0;
+    font-weight: normal;
+}
+
+.guideline #main-menu li {
+    padding-left: 1em;
+}
Index: admin/style/scss/partials/_classes.scss
===================================================================
--- admin/style/scss/partials/_classes.scss	(revision 3365)
+++ admin/style/scss/partials/_classes.scss	(revision 3365)
@@ -0,0 +1,367 @@
+/* jQuery Autocomplete plugin */
+
+.ac_results {
+    padding: 0px;
+    border: 1px dotted #f90;
+    background-color: white;
+    overflow: hidden;
+    z-index: 99999;
+}
+
+.ac_results ul {
+    width: 100%;
+    list-style-position: outside;
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+
+.ac_results li {
+    margin: 0px;
+    padding: 2px 5px;
+    cursor: default;
+    display: block;
+    font-size: 1em;
+    line-height: 16px;
+    overflow: hidden;
+}
+
+.ac_loading {
+    background: transparent url('loader.gif') right center no-repeat;
+}
+
+.ac_over {
+    background-color: #2373a8;
+    color: white;
+}
+
+
+/* password indicator */
+
+.pw-table {
+    display: table;
+    margin-bottom: 1em;
+}
+
+.pw-cell {
+    display: table-cell;
+    margin-bottom: 1em;
+}
+
+#pwindicator {
+    display: table-cell;
+    vertical-align: bottom;
+    padding-left: 1.5em;
+    height: 3.8em;
+}
+
+#pwindicator .bar {
+    height: 6px;
+    margin-bottom: 4px;
+}
+
+.pw-very-weak .bar {
+    background: #b33630;
+    width: 30px;
+}
+
+.pw-weak .bar {
+    background: #b33630;
+    width: 60px;
+}
+
+.pw-mediocre .bar {
+    background: #f90;
+    width: 90px;
+}
+
+.pw-strong .bar {
+    background: #9bca1c;
+    width: 120px;
+}
+
+.pw-very-strong .bar {
+    background: #9bca1c;
+    width: 150px;
+}
+
+
+/* ------------------------------------------------------------------ navigation */
+
+
+/* selects accès rapide */
+
+.anchor-nav {
+    background: #ecf0f1;
+    color: #000;
+    padding: 4px 1em;
+}
+
+.anchor-nav label {
+    vertical-align: bottom;
+}
+
+
+/* nav links */
+
+.nav_prevnext {
+    margin-bottom: 2em;
+    color: #fff;
+}
+
+.nav_prevnext a,
+a.back {
+    color: #2373A8;
+    border: 1px solid #dfdfdf;
+    padding: 2px 1.5em;
+    border-radius: .75em;
+    background-color: #f3f3f3;
+}
+
+a.back:before {
+    content: "\ab\a0";
+}
+
+a.onblog_link {
+    color: #333;
+    float: right;
+    border: 1px solid #eee;
+    padding: 2px 1.5em;
+    border-radius: .75em;
+    background-color: #ECF0F1;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
+}
+
+
+/* Pagination */
+
+.pager {
+    margin: 2em 0 1em 0;
+    clear: left;
+}
+
+.pager ul {
+    list-style-type: none;
+    margin: 0;
+    padding: 0;
+}
+
+.pager li,
+.pager input {
+    display: inline-block;
+    vertical-align: middle;
+    margin: 0 .33em 0 0;
+    padding: 0;
+    text-align: center;
+}
+
+.pager .btn {
+    border: 1px solid #dfdfdf;
+    background-color: #fcfcfc;
+    color: #676e78;
+    border-radius: 3px;
+    overflow: hidden;
+}
+
+.btn.no-link {
+    border-color: #dfdfdf;
+    background-color: #f9f9f9;
+    padding: 1px 3px 0;
+}
+
+.pager .active {
+    padding: 4px 12px;
+    color: #676e78;
+}
+
+.pager .direct-access {
+    margin-left: 2em;
+}
+
+.direct-access input[type=text] {
+    border: 1px solid #dfdfdf;
+    padding: 3px 8px;
+    margin-left: .25em;
+    background-color: #fff;
+}
+
+.direct-access input[type=submit] {
+    padding: 3px 6px;
+}
+
+.pager a {
+    display: block;
+    padding: 1px 3px 0;
+    border: none;
+}
+
+.pager a:hover,
+.pager a:focus {
+    background-color: #ecf0f1;
+}
+
+.index .btn.no-link,
+.index a {
+    padding: 2px 8px 3px;
+    font-variant: small-caps;
+}
+
+.index li {
+    margin-bottom: 3px;
+}
+
+.index a {
+    font-weight: bold;
+}
+
+.index .btn.no-link {
+    color: #ccc;
+}
+
+.index .active {
+    padding: 4px 8px;
+    color: #fff;
+    background: #676e78;
+    border-radius: 3px;
+    font-variant: small-caps;
+}
+
+
+/* Etapes */
+
+.step {
+    display: inline-block;
+    float: left;
+    margin: 3px 10px 2px 0;
+    padding: 5px .5em;
+    background: #ecf0f1;
+    border-radius: 3px;
+    font-weight: bold;
+    border: 1px solid #c5c5c5;
+    color: #676e78;
+}
+
+
+/* ---------------------------------------------------------------- utilisables partout  */
+
+.legible {
+    font-size: 1.16em;
+    max-width: 62em;
+}
+
+.fieldset {
+    background: #fff;
+    border: 1px solid #c5c5c5;
+    border-radius: 3px;
+    padding: 1em .7em .5em;
+    margin-bottom: 1em;
+}
+
+.fieldset h3 {
+    margin-top: 0;
+}
+
+.right,
+.txt-right {
+    text-align: right;
+}
+
+.txt-center {
+    text-align: center;
+}
+
+.txt-left {
+    text-align: left;
+}
+
+.no-margin,
+label.no-margin {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+.vertical-separator {
+    margin-top: 2em;
+}
+
+p.clear.vertical-separator {
+    padding-top: 2em;
+}
+
+.border-top {
+    border-top: 1px solid #999;
+    padding-top: 1em;
+    margin-top: 1em;
+}
+
+.grid {
+    background: transparent repeat url('grid.png') 0 0;
+}
+
+ul.nice {
+    margin: 1em 0;
+    padding: 0 0 0 2em;
+    list-style: square;
+}
+
+ul.nice li {
+    margin: 0;
+    padding: 0;
+}
+
+ul.from-left {
+    list-style-type: none;
+    padding-left: 0;
+    margin: 1em 0;
+}
+
+ul.from-left > li {
+    margin-top: 1em;
+    margin-bottom: 1em;
+}
+
+ul.from-left ul {
+    list-style-type: square;
+}
+
+.offline {
+    color: #676e78;
+}
+
+
+/* caché pour tout le monde */
+
+.hide,
+.button.hide {
+    display: none !important;
+}
+
+
+/* Caché sauf pour les revues d'écran */
+
+.hidden,
+.with-js .out-of-screen-if-js {
+    position: absolute !important;
+    clip: rect(1px 1px 1px 1px);
+    /* IE6, IE7 */
+    clip: rect(1px, 1px, 1px, 1px);
+    padding: 0 !important;
+    border: 0 !important;
+    height: 1px !important;
+    width: 1px !important;
+    overflow: hidden;
+}
+
+
+/* caché si js est inactif */
+
+.no-js .hidden-if-no-js {
+    display: none;
+}
+
+
+/* caché si js est actif */
+
+.with-js .hidden-if-js {
+    display: none;
+}
Index: admin/style/scss/partials/_colors.scss
===================================================================
--- admin/style/scss/partials/_colors.scss	(revision 3365)
+++ admin/style/scss/partials/_colors.scss	(revision 3365)
@@ -0,0 +1,117 @@
+// Colors (text and border colors and backgrounds)
+
+body {
+	color: $primary-color;
+	background: $primary-background;
+}
+
+h2 {
+	color: $ternary-color;
+}
+h3, .as_h3 {
+	color: $secondary-color;
+}
+h4, .as_h4 {
+	color: $ternary-color;
+}
+h5 {
+	color: $ternary-color;
+}
+h6 {
+	color: $ternary-color;
+}
+
+/* ---------------------------------------------------------------- layout: main */
+
+#header {
+	color: $white;
+	background: $ternary-background;
+	border-bottom: 4px solid $light-blue;
+}
+
+#wrapper {
+	background: $secondary-background url(bg_wrapper.png) repeat-y 14em;
+}
+
+#content {
+	background: $white;
+}
+
+#main-menu {
+	background: $secondary-background;
+}
+
+#footer {
+	background-color: $white;
+	border-top: 1px solid $gray-light; // #ccc;
+}
+
+/* to hide main-menu */
+#collapser {
+	background: $light-blue; // #f3f3f3 url(../images/collapser-hide.png) no-repeat center bottom;
+}
+
+.hide-mm #collapser {
+    //	background: #e3e3e3 url(../images/collapser-show.png) no-repeat center bottom;
+}
+
+/* if main-menu is hidden */
+#wrapper.hide-mm {
+	background: $white;
+}
+
+/* ---------------------------------------------------------------- layout: popups */
+
+.popup h1 {
+	color: $white;
+	background: $ternary-background;
+}
+
+/* ------------------------------------------------------------------------------------
+															UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+
+@media screen and (max-width: $xl-screen) {
+	#header, h1 {
+		background: $gray-very-dark;
+	}
+	#top-info-user {
+		background: $ternary-background;
+	}
+	#top-info-user a.active {
+		color: $white;
+		background: $gray-semi-dark;
+	}
+	#wrapper {
+		background: $secondary-background url(bg_wrapper.png) repeat-y 17em;
+	}
+}
+
+@media screen and (max-width: $s-screen) {
+	#help-button {
+		background-color: $light-blue;
+	}
+}
+
+@media screen and (max-width: $xs-screen) {
+	h1 a:link {
+		border-right: 1px solid $gray-light;
+	}
+	h1 a:hover,
+	h1 a:focus {
+		border-right: 1px solid $light-blue;
+	}
+	.pseudo-tabs li {
+		border-top: 1px solid $gray-light;
+	}
+}
+
+@media screen and (max-width: $xxs-screen) {
+	h1,
+	h1 a {
+		border-right: $gray-very-dark !important;
+	}
+	.pseudo-tabs li {
+		border-top: 1px solid $gray-light !important;
+	}
+}
Index: admin/style/scss/partials/_common.scss
===================================================================
--- admin/style/scss/partials/_common.scss	(revision 3365)
+++ admin/style/scss/partials/_common.scss	(revision 3365)
@@ -0,0 +1,72 @@
+/* Typographie */
+
+// base //
+html {
+	font-size: $html-font-size;
+}
+body {
+	font-size: $body-font-size;
+	line-height: 1.5;
+	@media screen and(max-width: $small-screen) {
+		font-size: $body-font-size-small;
+		line-height: 1.3;
+	}
+	@media screen and(min-width: $large-screen) {
+		font-size: $body-font-size-large;
+		line-height: 1.5;
+	}
+	@media screen and(min-width: $small-screen) and (max-width: $large-screen) {
+		font-size: calc(
+				#{$body-font-size-small} +
+				#{strip-unit($body-font-size-large - $body-font-size-small)} *
+				(100vw - #{strip-unit(relative-to-screen($small-screen,$html-font-size))}rem) /
+				(#{strip-unit(relative-to-screen($large-screen,$html-font-size))} -
+					#{strip-unit(relative-to-screen($small-screen,$html-font-size))})
+			);
+		line-height: calc(
+				1.3em +
+				(1.5 - 1.3) *
+				(100vw - #{strip-unit(relative-to-screen($small-screen,$html-font-size))}rem) /
+				(#{strip-unit(relative-to-screen($large-screen,$html-font-size))} -
+					#{strip-unit(relative-to-screen($small-screen,$html-font-size))})
+			);
+	}
+	font-family: $sans-serif;
+}
+#wrapper {
+	@media screen and (max-width: $small-screen) {
+        font-size: 1.4em;
+	}
+}
+
+// titres //
+h2, h3, .as_h3, h4, .as_h4, h5, h6 {
+	margin-top: 0;
+	margin-bottom: 1em;
+}
+h2 {
+	font-size: 1.5em;
+	font-weight: normal;
+	line-height: 1.25;
+	padding: 0 0 1.5em;
+}
+h3, .as_h3 {
+	font-size: 1.34em;
+	font-weight: normal;
+	line-height: 1.5;
+	margin-top: 1em;
+}
+h4, .as_h4 {
+	font-size: 1.16em;
+	line-height: 1.5;
+}
+h5 {
+	font-size: 1em;
+	line-height: 1.5;
+	font-weight: bold;
+}
+h6 {
+	font-size: 1em;
+	line-height: 1.5;
+}
+
Index: admin/style/scss/partials/_content.scss
===================================================================
--- admin/style/scss/partials/_content.scss	(revision 3355)
+++ admin/style/scss/partials/_content.scss	(revision 3355)
@@ -0,0 +1,184 @@
+.part-tabs ul {
+    padding: .5em 0 0 1em;
+    border-bottom: 1px solid #ccc;
+    line-height: 1.8;
+}
+
+.part-tabs li {
+    list-style: none;
+    margin: 0;
+    display: inline;
+}
+
+.part-tabs li:first-child a {
+    border-top-left-radius: 3px;
+}
+
+.part-tabs li:last-child a {
+    border-top-right-radius: 3px;
+}
+
+.part-tabs li a {
+    padding: .33em 1.5em;
+    margin-right: -1px;
+    border: 1px solid #ccc;
+    border-bottom: none;
+    text-decoration: none;
+    color: #333;
+    background-color: #ecf0f1;
+    display: inline-block;
+}
+
+.part-tabs li a:hover,
+.part-tabs li a:focus {
+    color: #000;
+    background: #fff;
+    border-bottom-color: #fff;
+}
+
+.part-tabs li.part-tabs-active a {
+    background: #fff;
+    font-weight: bold;
+    border-bottom-color: #fff;
+}
+
+.multi-part {
+    padding-left: 1em;
+}
+
+.pseudo-tabs {
+    margin: -.75em 0 2em 0;
+    border-bottom: 1px solid #bbb;
+    display: table;
+    width: 100%;
+    padding: 0;
+    line-height: 24px;
+    border-collapse: collapse;
+}
+
+.pseudo-tabs li {
+    display: table-cell;
+    border-width: 0 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 0;
+    margin: 0;
+    text-align: center;
+}
+
+.pseudo-tabs a {
+    display: block;
+    font-weight: bold;
+    padding: 0 24px;
+    border-bottom: none;
+}
+
+.pseudo-tabs a:hover,
+.pseudo-tabs a:focus {
+    background-color: #ecf0f1;
+    color: #333;
+}
+
+.pseudo-tabs a.active {
+    background-color: #ecf0f1;
+    color: #d30e60;
+}
+
+
+/* contextual help */
+
+#help {
+    margin-top: 4em;
+    background: #f5f5f5;
+    z-index: 100;
+    clear: both;
+    padding: 0 1em;
+}
+
+#content.with-help #help {
+    display: block;
+    position: absolute;
+    top: 0;
+    right: 0;
+    width: 32rem; // 24em;
+    border-left: 2px solid #FFD478;
+    border-top: 2px solid #FFD478;
+    margin-top: 0;
+    padding: .5em 0 0 0;
+    overflow: auto;
+}
+
+#help-button {
+    background: transparent url(help-mini.png) no-repeat 6px center;
+    position: absolute;
+    top: 0;
+    right: 0;
+    padding: 0 1.5em 0 30px;
+    cursor: pointer;
+    color: #2373A8;
+    line-height: 3;
+}
+
+#help-button.floatable {
+    border-top: 2px solid #ccc;
+    border-left: 2px solid #ccc;
+    border-bottom: 2px solid #ccc;
+    border-bottom-left-radius: 1em;
+    border-top-left-radius: 1em;
+    background-color: #f5f5f5;
+    position: fixed;
+    top: 10px;
+    -webkit-transform: translateZ(0);
+    /* Let GPU doing his job */
+}
+
+.no-js #help-button {
+    top: 1em;
+}
+
+#help-button span {
+    padding: .5em 0 .1em 0;
+}
+
+#content.with-help #help-button {
+    right: 32rem; // 24em;
+    background-color: #f5f5f5;
+    position: fixed;
+    top: 6em; // 50px;
+    z-index: 100;
+    border-top: 2px solid #FFD478;
+    border-left: 2px solid #FFD478;
+    border-bottom: 2px solid #FFD478;
+    border-bottom-left-radius: 1em;
+    border-top-left-radius: 1em;
+}
+
+.help-box {
+    display: none;
+}
+
+.help-box ul {
+    padding-left: 20px;
+    margin-left: 0;
+}
+
+#content.with-help .help-content {
+    padding: 0 1em 1em;
+}
+
+.help-content dt {
+    font-weight: bold;
+    color: #676e78;
+    margin: 0;
+}
+
+.help-content dd {
+    margin: 0.3em 0 1.5em 0;
+}
+
+
+/* lien d'aide générale dans le help content */
+
+#helplink p {
+    padding: 0 0 0 .5em;
+}
Index: admin/style/scss/partials/_entry.scss
===================================================================
--- admin/style/scss/partials/_entry.scss	(revision 3355)
+++ admin/style/scss/partials/_entry.scss	(revision 3355)
@@ -0,0 +1,37 @@
+#entry-wrapper {
+    float: left;
+    width: 100%;
+    margin-right: -16em;
+}
+
+#entry-content {
+    margin-right: 18em;
+    margin-left: 0;
+}
+
+#entry-sidebar {
+    width: 16em;
+    float: right;
+}
+
+#entry-sidebar h4 {
+    font-size: 1.08em;
+    margin-top: .3em;
+}
+
+#entry-sidebar select {
+    width: 100%;
+}
+
+#entry-sidebar input#post_position {
+    width: 4em;
+}
+
+.sb-box {
+    border-bottom: 1px solid #dfdfdf;
+    margin-bottom: 1em;
+}
+
+#tb_excerpt {
+    width: 100%;
+}
Index: admin/style/scss/partials/_filters.scss
===================================================================
--- admin/style/scss/partials/_filters.scss	(revision 3355)
+++ admin/style/scss/partials/_filters.scss	(revision 3355)
@@ -0,0 +1,58 @@
+a.form-control {
+    display: none;
+    background: url(../images/expand.png) no-repeat 4px center;
+    padding-left: 20px;
+    color: #000;
+}
+
+a.form-control.open {
+    background: url(../images/hide.png) no-repeat 4px center;
+}
+
+#filters-form {
+    border: 1px solid rgb(162, 203, 233);
+    border-radius: .3em;
+    margin-bottom: 2em;
+    padding: .5em 1em 0;
+}
+
+#filters-form .table {
+    width: 100%;
+    padding: 0;
+    margin-bottom: 1em;
+    margin-top: .5em;
+}
+
+#filters-form .cell {
+    padding: 0 2em 0 0;
+}
+
+#filters-form .filters-sibling-cell {
+    padding-top: 3.8em;
+}
+
+#filters-form .filters-options {
+    padding-left: 2em;
+    border-left: 1px solid #ccc;
+}
+
+#filters-form label.ib,
+span.ib {
+    width: 7em;
+}
+
+#filters-form label.ibw,
+span.ibw {
+    width: 9em;
+    display: inline-block;
+}
+
+#filters-form select {
+    width: 14em;
+    vertical-align: middle;
+}
+
+#filters-form h4 {
+    margin-top: 0;
+    margin-bottom: 2em;
+}
Index: admin/style/scss/partials/_footer.scss
===================================================================
--- admin/style/scss/partials/_footer.scss	(revision 3355)
+++ admin/style/scss/partials/_footer.scss	(revision 3355)
@@ -0,0 +1,59 @@
+#gototop {
+    display: none;
+    z-index: 1000;
+    position: fixed;
+    bottom: 0;
+    right: .5em;
+    width: 10em;
+    padding: .25em;
+    border: 1px solid #636363;
+    border-radius: .25em;
+    background-color: #fff;
+    color: #333;
+    font-size: .875em;
+    text-align: center;
+}
+
+#gototop a,
+#gototop a:link,
+#gototop a:hover,
+#gototop a:active {
+    background: transparent;
+    border: none;
+    font-weight: bold;
+    color: #636363;
+}
+
+#footer p {
+    margin: 0;
+    padding: 0 1em;
+    font-size: 1em;
+}
+
+span.credit {
+    font-size: 1em;
+    font-weight: normal;
+}
+
+span.tooltip {
+    position: absolute;
+    padding: 0;
+    border: 0;
+    height: 1px;
+    width: 1px;
+    overflow: hidden;
+}
+
+#footer a:hover span.tooltip {
+    padding: 10px 40px 0 10px;
+    color: #910ed3;
+    height: auto;
+    width: auto;
+    left: 0;
+    bottom: 0;
+    background: #FFF;
+    z-index: 99;
+    font-family: monospace;
+    border: none;
+    text-align: left;
+}
Index: admin/style/scss/partials/_forms.scss
===================================================================
--- admin/style/scss/partials/_forms.scss	(revision 3355)
+++ admin/style/scss/partials/_forms.scss	(revision 3355)
@@ -0,0 +1,209 @@
+input[type=text],
+input[type=password],
+input[type=submit],
+input[type=button],
+input[type=reset],
+a.button,
+button,
+textarea,
+select,
+legend {
+    border-radius: 3px;
+    max-width: 100%;
+}
+
+form {
+    display: block;
+    margin: 0;
+    padding: 0;
+}
+
+fieldset {
+    display: block;
+    margin: 1em 0;
+    padding: 1em 0.5em;
+    border-width: 1px 0;
+    border-style: solid;
+    border-color: #ccc;
+    background: #f7f7f7;
+}
+
+input[type=text],
+textarea {
+    font-family: $sans-serif-input;
+    font-size: 100%;
+}
+
+legend {
+    padding: 0.2em 0.6em;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #676e78;
+    background: #fff;
+    margin-bottom: 0.5em;
+}
+
+label .maximal,
+textarea.maximal,
+input.maximal,
+select.maximal {
+    width: 99%;
+}
+
+input[type=text],
+input[type=password],
+textarea,
+select {
+    background: #fcfcfc;
+    color: #000;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #dfdfdf;
+    box-shadow: 1px 1px 2px #f3f3f3 inset;
+    padding: 3px;
+    vertical-align: top;
+}
+
+input:focus,
+textarea:focus,
+select:focus {
+    border-color: #9bca1c;
+}
+
+textarea {
+    padding: 2px 0;
+}
+
+textarea.maximal {
+    resize: vertical;
+}
+
+.area textarea {
+    display: block;
+    width: 100%;
+    resize: vertical;
+}
+
+select {
+    padding: 2px 0;
+    vertical-align: middle;
+}
+
+select.l10n option {
+    padding-left: 16px;
+}
+
+option.avail10n {
+    background: transparent url(../images/check-on.png) no-repeat 0 50%;
+}
+
+input.invalid,
+textarea.invalid,
+select.invalid {
+    border: 1px solid red;
+    background: #FFBABA;
+    color: #900;
+    box-shadow: 0 0 0 3px rgba(218, 62, 90, 0.3);
+}
+
+input[type=text],
+input[type=password],
+textarea {
+    margin-right: .3em;
+}
+
+input[type=checkbox],
+input[type=radio],
+input[type=file] {
+    border: none;
+    margin: 0 .33em 0 0;
+    padding: 0;
+    background: transparent;
+}
+
+input[type=file] {
+    margin-top: .3em;
+    margin-bottom: .3em;
+}
+
+optgroup {
+    font-weight: bold;
+    font-style: normal;
+}
+
+option {
+    font-weight: normal;
+}
+
+label,
+label span {
+    display: block;
+}
+
+label.ib,
+input.ib {
+    display: inline-block;
+}
+
+label.classic {
+    display: inline;
+}
+
+label.classic input,
+label span input,
+label.classic select,
+label span select {
+    display: inline;
+}
+
+label.required {
+    font-weight: bold;
+}
+
+label.required abbr {
+    color: #900;
+    font-size: 1.3em;
+}
+
+label.bold {
+    text-transform: uppercase;
+    font-weight: bold;
+    margin-top: 2em;
+}
+
+label.area,
+p.area {
+    width: inherit !important;
+}
+
+p.field {
+    position: relative;
+}
+
+p.field label {
+    display: inline-block;
+    width: 14em;
+}
+
+p.field.wide label {
+    width: 21em;
+}
+
+p.field input,
+p.field select {
+    display: inline-block;
+}
+
+.form-note {
+    font-style: italic;
+    font-weight: normal;
+    color: #676e78;
+}
+
+p.form-note {
+    margin-top: -.7em;
+}
+
+span.form-note {
+    text-transform: none;
+}
Index: admin/style/scss/partials/_header.scss
===================================================================
--- admin/style/scss/partials/_header.scss	(revision 3365)
+++ admin/style/scss/partials/_header.scss	(revision 3365)
@@ -0,0 +1,162 @@
+/* prelude */
+
+#prelude {
+	line-height: 1.5;
+	margin: 0;
+	padding: 0;
+	overflow: hidden;
+	position: absolute;
+	top: 3em;
+	left: 0;
+	background: $light-blue;
+	width: 100%;
+	z-index: 100;
+	li {
+		list-style-type: none;
+		margin: 0;
+		background: transparent;
+		display: inline;
+		a {
+			padding: 3px 16px 3px 8px;
+			background: $light-blue;
+			color: $black;
+			text-decoration: underline;
+			&:hover, &:focus {
+				background: $white;
+			}
+		}
+	}
+}
+
+/* si le prélude est affiché on repousse les trucs dessous */
+
+#wrapper.with-prelude {
+	padding-top: 1em;
+}
+
+#help-button.with-prelude,
+#collapser.with-prelude {
+	top: 1em;
+}
+
+/* header global h1, form#top-info-blog, ul#top-info-user */
+
+#header a {
+	color: $white;
+}
+
+#header img {
+	vertical-align: middle;
+	padding-left: .5em;
+}
+
+/* h1 */
+
+h1 {
+	text-indent: 100%;
+	width: 16.5em;
+	a {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 150px;
+		height: 3em;
+		color: $white;
+		background: transparent url(dc_logos/b-dotclear120.png) no-repeat 0 6px;
+		transition: none;
+		&:hover,
+		&:focus {
+			background-position: 0 -94px;
+			background-color: transparent;
+			transition: none;
+		}
+		&:link {
+			transition-timing-function: ease-in-out;
+		}
+	}
+}
+
+/* top-info-blog */
+
+#top-info-blog select {
+	max-width: 20em;
+}
+
+#top-info-blog a {
+	margin-left: 1.5em;
+}
+
+#top-info-blog input[type=submit] {
+	background: $black;
+	border-color: $gray-semi-dark;
+	margin-left: .33em;
+}
+
+#top-info-blog input[type=submit]:hover {
+	background: $gray-semi-dark;
+}
+
+#top-info-blog p {
+	display: inline-block;
+	margin: 0;
+}
+
+/* top-info-user */
+
+#top-info-user {
+	padding-right: 18px;
+	list-style-type: none;
+	text-align: right;
+}
+
+#top-info-user li {
+	display: inline-block;
+	margin-left: .5em;
+	padding-left: .5em;
+	border-left: 1px solid $gray-semi-dark;
+}
+
+#top-info-user li:first-child {
+	border-left: none;
+}
+
+#top-info-user a.active {
+	border-bottom-color: $white;
+	margin: 0;
+	padding: 18px .5em;
+	background-color: $white;
+	color: $primary-color;
+	font-weight: bold;
+}
+
+/* ------------------------------------------------------------------------------------
+                                                            UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+
+@media screen and (max-width: $xl-screen) {
+	#top-info-user {
+		padding-right: .5em;
+	}
+	#top-info-user a.active {
+		padding: 2px 8px;
+		border-width: 0;
+		border-radius: 6px;
+	}
+}
+
+@media screen and (max-width: $xxs-screen) {
+	h1,
+	h1 a {
+		padding: 0;
+	}
+}
+
+@media screen and (max-width: $xs-screen) {
+	h1 a:link {
+		background: transparent url(dc_logos/b-dotclear120.png) no-repeat -270px 6px;
+	}
+	h1 a:hover,
+	h1 a:focus {
+		background: url(dc_logos/b-dotclear120.png) no-repeat -270px -94px;
+	}
+}
Index: admin/style/scss/partials/_index.scss
===================================================================
--- admin/style/scss/partials/_index.scss	(revision 3355)
+++ admin/style/scss/partials/_index.scss	(revision 3355)
@@ -0,0 +1,176 @@
+#dashboard-main {
+    text-align: center;
+}
+
+
+/* raccourcis */
+
+#icons {
+    overflow: hidden;
+    text-align: center;
+}
+
+#icons p {
+    width: 13em;
+    text-align: center;
+    margin: 1em 0 2em;
+    display: inline-block;
+    vertical-align: top;
+}
+
+#icons a,
+#icons a:link,
+#icons a:visited,
+#icons a:hover,
+#icons a:focus {
+    border-bottom-width: 0;
+    text-decoration: none;
+}
+
+#icons a span {
+    border-bottom: 1px dotted #999;
+    color: #333;
+}
+
+#icons a img {
+    padding: 1.5em;
+    background-color: #f9f9f9;
+    border-radius: 8px;
+    border: 1px solid #dadada;
+    display: inline-block;
+}
+
+#icons a:focus img,
+#icons a:hover img {
+    background: #bee74b;
+    outline: 0;
+    border-color: #dadada;
+}
+
+#icons a:focus {
+    outline: 0;
+    border-color: #fff;
+}
+
+#icons a:hover span,
+#icons a:focus span {
+    border-bottom-style: solid;
+}
+
+#icons a:focus span {
+    border: 2px solid #bee74b;
+}
+
+
+/* billet rapide */
+
+#quick {
+    padding: 1em;
+    max-width: 976px;
+    margin: 0 auto;
+    background: #f5f5f5;
+    box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
+    text-align: left;
+}
+
+#quick h3 {
+    margin-bottom: 0.2em;
+    font-size: 1.2em;
+}
+
+#quick p.qinfo {
+    margin: -.7em -1em 1em;
+    background: #D9EDF7 url(info.png) no-repeat .2em .2em;
+    border: 1px solid #BCE8F1;
+    padding: .2em 1em .1em 24px;
+    color: #000;
+}
+
+#quick #new_cat,
+.q-cat,
+.q-cat label {
+    display: inline-block;
+    vertical-align: top;
+    margin-right: 1em;
+    margin-top: 0;
+}
+
+.q-cat label {
+    margin-right: .3em;
+}
+
+#quick #new_cat {
+    margin-bottom: 2em;
+}
+
+
+/* modules additionnels */
+
+#dashboard-boxes {
+    margin: 1em auto 1em;
+    padding-top: 2em;
+}
+
+.db-items,
+.db-contents {
+    display: inline-block;
+    text-align: center;
+}
+
+.no-js .outgoing img {
+    display: none;
+}
+
+#dashboard-boxes .box {
+    padding: 10px;
+    border: 1px solid #ccc;
+    border-radius: 3px;
+    min-height: 200px;
+    margin: 10px;
+    text-align: left;
+}
+
+.dc-box {
+    background: transparent url(dc_logos/sq-logo-32.png) no-repeat top right;
+}
+
+.db-items img,
+.db-contents img {
+    vertical-align: middle;
+}
+
+.db-items ul,
+.db-contents ul {
+    display: block;
+    padding-left: 1.5em;
+    list-style: square;
+}
+
+.db-items li,
+.db-contents li {
+    margin: 0.25em 0 0 0;
+}
+
+#news dt {
+    font-weight: bold;
+    margin: 0 0 0.4em 0;
+}
+
+#news dd {
+    margin: 0 0 1em 0;
+}
+
+#news dd p {
+    margin: 0.2em 0 0 0;
+}
+
+
+/* message de mise à jour */
+
+#upg-notify ul {
+    padding-left: 1.5em;
+}
+
+#upg-notify li {
+    color: #fff;
+}
Index: admin/style/scss/partials/_layout.scss
===================================================================
--- admin/style/scss/partials/_layout.scss	(revision 3365)
+++ admin/style/scss/partials/_layout.scss	(revision 3365)
@@ -0,0 +1,540 @@
+// Admin layout
+#dotclear-admin {
+    display: flex;
+    min-height: 100vh;
+    flex-direction: column;
+}
+
+#header {
+    width: 99.99%; /* Bugfix Chrome >= 49.0.2623.108 */
+    display: table;
+    position: relative;
+}
+
+h1,
+#top-info-blog,
+#top-info-user {
+    display: table-cell;
+    padding: 8px 0;
+    margin: 0;
+    font-size: 1em;
+    vertical-align: top;
+}
+
+#wrapper {
+    position: relative;
+    padding-top: 1.5em;
+    float: left;
+    width: 100%;
+    z-index: 10;
+    flex: 1;
+}
+
+.with-js #wrapper {
+    padding-top: 0;
+}
+
+#main {
+    width: 100%;
+    float: right;
+    margin-left: -14em;
+    margin-top: 0;
+}
+
+#content {
+    margin: 0 0 0 14em;
+    padding: .5em 1.5em .75em 2.5em;
+}
+
+#main-menu {
+    width: 14em;
+    float: left;
+    margin: 0;
+    padding-top: .5em;
+    padding-bottom: 1em;
+    overflow: hidden;
+}
+
+#footer {
+    clear: both;
+    position: relative;
+    padding: .5em 0 .5em 1em;
+    text-align: left;
+}
+
+
+/* to hide main-menu */
+
+#collapser {
+    position: absolute;
+    top: 0;
+    left: 14em;
+    width: $collapser-width;
+    height: 100%;
+    overflow: hidden;
+    display: block;
+    border-right: 0; // 1px solid #999;
+    border-bottom: 0;
+    z-index: 1;
+    transition: none;
+}
+
+.expand-mm {
+    display: none;
+}
+
+/* if main-menu is hidden */
+
+.hide-mm #main {
+    margin-left: 0;
+}
+
+.hide-mm #content {
+    margin-left: $collapser-width;
+}
+
+.hide-mm #content > h2 {
+    margin-left: calc(-1em - #{$collapser-width});
+}
+
+.hide-mm #main-menu {
+    display: none;
+}
+
+.hide-mm #collapser {
+    left: 0;
+}
+
+.hide-mm .collapse-mm {
+    display: none;
+}
+
+.hide-mm .expand-mm {
+    display: block;
+}
+
+/* -------------------------------------------------------------- layout: two-cols */
+
+.two-cols {
+    position: static;
+}
+
+.two-cols .col {
+    width: 48%;
+    margin-left: 2%;
+    float: left;
+}
+
+.two-cols .col70 {
+    width: 68%;
+    margin-left: 0;
+    float: left;
+}
+
+.col30 {
+    width: 28%;
+    margin-left: 2%;
+    float: left;
+}
+
+.two-cols .col:first-child,
+.two-cols .col30.first-col {
+    margin-left: 0;
+    margin-right: 2%;
+}
+
+.two-cols .col:last-child,
+.two-cols .col70.last-col {
+    margin-left: 2%;
+    margin-right: 0;
+}
+
+.two-cols table {
+    width: 90%;
+}
+
+
+/* -------------------------------------------------------------- layout: three-cols */
+
+.three-cols {
+    position: static;
+}
+
+.three-cols .col {
+    width: 32.3%;
+    float: left;
+    margin-left: 1%;
+}
+
+.three-cols .col:first-child {
+    margin-left: 0;
+}
+
+
+/* ------------------------------------------------- layout: optionnal one/two/three-boxes */
+
+.one-box {
+    text-align: justify;
+}
+
+.two-boxes {
+    width: 48.5%;
+}
+
+.three-boxes {
+    width: 30%;
+}
+
+.two-boxes,
+.three-boxes {
+    display: inline-block;
+    vertical-align: top;
+    margin: 0 1.5% 1em;
+    text-align: left;
+}
+
+.two-boxes:nth-of-type(odd),
+.three-boxes:nth-of-type(3n+1) {
+    margin-left: 0;
+}
+
+.two-boxes:nth-of-type(even),
+.three-boxes:nth-of-type(3n) {
+    margin-right: 0;
+}
+
+
+/* ---------------------------------------------------------------- layout: popups */
+
+.popup h1 {
+    display: block;
+    width: 100%;
+    margin: 0;
+    font-size: 1.5em;
+    text-indent: 1em;
+    line-height: 1.5em;
+    font-weight: normal;
+}
+
+.popup #wrapper {
+    display: block;
+    float: none;
+    width: 100%;
+    margin: 0;
+    padding: 0;
+    background-position: 0 0;
+}
+
+.popup #main {
+    margin: 0;
+    padding: 0;
+}
+
+.popup #content {
+    margin: 0;
+    padding: 1em;
+}
+
+.popup #content h2 {
+    margin: 0 0 1em 0;
+    padding: 0;
+}
+
+.popup #footer p {
+    border: none;
+}
+
+
+/* -------------------------------------------------------- layout: classes de complément */
+
+.constrained {
+    margin: 0;
+    padding: 0;
+    border: none;
+    background: transparent;
+}
+
+.table {
+    display: table;
+}
+
+.cell {
+    display: table-cell;
+    vertical-align: top;
+}
+
+.clear {
+    clear: both;
+}
+
+.lclear {
+    clear: left;
+}
+
+.clearer {
+    height: 1px;
+    font-size: 1px;
+}
+
+
+/* Micro clearfix thx to Nicolas Gallagher */
+
+.clearfix:before,
+.clearfix:after {
+    content: " ";
+    display: table;
+}
+
+.clearfix:after {
+    clear: both;
+}
+
+/*
+.frame-shrink {
+	border: 1px solid #676e78;
+	padding: 0.5em;
+	margin-bottom: 1em;
+	height: 120px;
+	overflow: auto;
+	}
+ */
+
+.box {
+    display: inline-block;
+    vertical-align: top;
+    margin: 0 10px 10px;
+    text-align: left;
+}
+
+.box.small {
+    width: 312px;
+}
+
+.box.medium {
+    width: 644px;
+}
+
+.box.large {
+    width: 100%;
+}
+
+.odd {
+    margin-left: 0;
+}
+
+.even {
+    margin-right: 0;
+}
+
+/* ------------------------------------------------------------------------------------
+                                                            UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+
+@media screen and (max-width: $xl-screen) {
+    #main {
+        margin-left: -17em;
+    }
+    #content {
+        margin: 0 0 0 17em;
+    }
+    #main-menu {
+        width: 17em;
+    }
+    #collapser {
+        left: 17em;
+    }
+    h1 {
+        width: 19.5em;
+    }
+    #top-info-blog #switchblog {
+        max-width: 16em;
+    }
+    #top-info-blog a {
+        margin-left: 2em;
+    }
+    #header {
+        display: block;
+        width: 100%;
+        text-align: right;
+    }
+    #header h1,
+    #header h1 a {
+        width: 120px;
+        margin: 0;
+    }
+    h1,
+    #top-info-blog {
+        display: inline-block;
+        vertical-align: top;
+        margin-right: 1em;
+    }
+    #top-info-user {
+        display: block;
+        width: 100%;
+    }
+    .three-boxes,
+    .three-boxes .box,
+    .two-cols .col70,
+    .two-cols .col30 {
+        width: 100%;
+        margin-left: 0;
+        margin-right: 0;
+    }
+}
+
+@media screen and (max-width: $m-screen) {
+    #dashboard-boxes .box.medium,
+    .box.medium,
+    #dashboard-boxes .box.small,
+    .box.small,
+    #dashboard-boxes .box.large,
+    .box.large {
+        width: 95%;
+        margin: 10px auto;
+    }
+}
+
+@media screen and (max-width: $s-screen) {
+    #help-button {
+        height: 26px;
+        width: 26px;
+        margin: 0;
+        overflow: hidden;
+    }
+    #content.with-help #help-button {
+        top: 10em; // 77px;
+    }
+    .one-box,
+    .two-boxes,
+    .box,
+    .two-cols .col {
+        width: 96%;
+        margin-left: 0;
+        margin-right: 0;
+    }
+    #entry-wrapper {
+        float: none;
+        width: 100%;
+        margin-right: 0;
+    }
+    #entry-content {
+        margin-right: 0;
+        margin-left: 0;
+    }
+    #entry-sidebar {
+        width: 100%;
+        float: none;
+    }
+}
+
+@media screen and (max-width: $xs-screen) {
+    #header h1,
+    #header h1 a {
+        width: 42px !important;
+        height: 42px;
+    }
+    #wrapper,
+    #main,
+    #main-menu {
+        display: block;
+        float: none;
+        width: 100%;
+        margin: 0;
+    }
+    #main-menu a {
+        display: block;
+        width: 100%;
+    }
+    #main-menu h3 a {
+        display: inline;
+    }
+    #content,
+    .hide-mm #content {
+        margin: 0;
+    }
+    #collapser {
+        display: none;
+    }
+    #main #content > h2 {
+        margin: 0 -.25em 1em;
+    }
+    #dashboard-boxes .box.medium,
+    .box.medium,
+    #dashboard-boxes .box.small,
+    .box.small,
+    #dashboard-boxes .box.large,
+    .box.large {
+        width: 95%;
+        margin: 10px auto;
+    }
+    .cell,
+    #filters-form .cell {
+        display: inline-block;
+        vertical-align: bottom;
+    }
+    .pseudo-tabs li {
+        display: block;
+        float: left;
+        width: 50%;
+    }
+}
+
+@media screen and (max-width: $xxs-screen) {
+    #top-info-blog label,
+    .nomobile {
+        display: none;
+    }
+    #top-info-blog {
+        margin-bottom: .5em;
+        max-width: 75%;
+    }
+    #top-info-blog select {
+        margin-bottom: .5em;
+    }
+    #content.with-help #help-button {
+        top: 10em; // 120px;
+        right: 28rem; // 20.5em;
+    }
+    #content.with-help #help {
+        width: 28rem;
+    }
+    p.top-add {
+        margin-bottom: .5em;
+    }
+    .part-tabs ul {
+        margin: 1em 0;
+    }
+    .part-tabs li a {
+        display: block;
+        width: 100%;
+    }
+    #icons p {
+        width: 9em;
+    }
+    .media-item {
+        width: 90%;
+    }
+    #theme-new,
+    #theme-activate,
+    #theme-deactivate {
+        margin-left: 0;
+        margin-right: 0;
+    }
+    .box.current-theme {
+        margin: 5px;
+        width: 100%;
+    }
+    .current-theme .module-sshot img {
+        margin: 0;
+        float: none;
+        max-width: 100%;
+    }
+    table .maximal {
+        min-width: 14em;
+    }
+    .pseudo-tabs li {
+        display: block;
+        width: 100%;
+        float: none;
+    }
+}
Index: admin/style/scss/partials/_main-menu.scss
===================================================================
--- admin/style/scss/partials/_main-menu.scss	(revision 3355)
+++ admin/style/scss/partials/_main-menu.scss	(revision 3355)
@@ -0,0 +1,122 @@
+#favorites-menu,
+#blog-menu,
+#system-menu,
+#plugins-menu {
+    border-bottom: 1px dashed #A2CBE9;
+}
+
+#main-menu div:last-child {
+    border-bottom: none;
+}
+
+#main-menu h3 {
+    margin: 0;
+    padding: 10px 0 10px 8px;
+    color: #676e78;
+    font-size: 1.15em;
+}
+
+#favorites-menu h3 {
+    color: #000;
+    font-variant: small-caps;
+    padding-top: .2em;
+}
+
+#main-menu a {
+    color: #333;
+    border-bottom-color: #ccc;
+}
+
+#main-menu ul {
+    margin: 0 0 1.5em 0;
+    padding: 0;
+    list-style: none;
+}
+
+#main-menu li {
+    display: block;
+    margin: 0.5em 0 0;
+    padding: 4px 0 1px 32px;
+    background-repeat: no-repeat;
+    background-position: 8px .3em;
+}
+
+#main-menu ul li:first-child {
+    margin-top: 0;
+}
+
+#main-menu li.active {
+    background-color: #fff;
+    font-weight: bold;
+}
+
+#favorites-menu li.active {
+    background-color: transparent;
+}
+
+#main-menu .active a {
+    border-bottom: none;
+    color: #d30e60;
+}
+
+#favorites-menu .active a {
+    color: #000;
+}
+
+#search-menu {
+    padding: 4px 5px 0;
+    font-size: 100%
+}
+
+#search-menu * {
+    height: 2em;
+    display: inline-block;
+    vertical-align: top;
+    line-height: 24px;
+}
+
+#search-menu p {
+    border: 1px solid #999;
+    border-radius: .3em;
+    position: relative;
+    width: 95%;
+    overflow: hidden;
+}
+
+#qx {
+    width: 80%;
+    border-bottom-left-radius: .3em;
+    border-top-left-radius: .3em;
+    background: transparent url(search.png) no-repeat 4px center;
+    text-indent: 18px;
+    padding: 0;
+    border: none;
+    height: 2em;
+}
+
+#qx:focus {
+    border: 1px solid #bee74b;
+}
+
+#search-menu input[type="submit"] {
+    padding: 0 .25em;
+    margin-left: .33em;
+    background: #dfdfdf;
+    border-color: #999;
+    color: #333;
+    border-bottom-right-radius: .3em;
+    border-top-right-radius: .3em;
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+    text-shadow: none;
+    border: none;
+    border-left: 1px solid #999;
+    font-size: .91em;
+    float: right;
+}
+
+#search-menu input[type="submit"]:hover,
+#search-menu input[type="submit"]:focus {
+    background: #676e78;
+    color: #fff;
+}
Index: admin/style/scss/partials/_markup.scss
===================================================================
--- admin/style/scss/partials/_markup.scss	(revision 3355)
+++ admin/style/scss/partials/_markup.scss	(revision 3355)
@@ -0,0 +1,221 @@
+/* ------------------------------------------------------------------ titres */
+
+
+/* fil d'ariane */
+
+#content > h2 {
+    padding: 0 1em .5em 1em;
+    margin: 0 -1em 1em -1em;
+    background: #fff url(bg_h2.png) repeat-x center bottom;
+}
+
+h2 a:link,
+h2 a:visited {
+    color: #676e78;
+    border-color: #000;
+}
+
+
+/* page courante dans le fil d'ariane */
+
+.page-title {
+    color: #d30e60;
+}
+
+.page-title img {
+    padding-left: .5em;
+    vertical-align: middle;
+}
+
+
+/* autres titres */
+
+#main-menu h3 {
+    font-weight: bold;
+}
+
+.fieldset h3,
+.fieldset h4,
+.pretty-title {
+    color: #D33800;
+    font-size: 1em;
+    font-weight: bold;
+}
+
+.fieldset h3 {
+    font-size: 1.17em;
+}
+
+.fieldset h3.smart-title,
+.fieldset h4.smart-title,
+.smart-title {
+    font-size: 1em;
+    text-transform: uppercase;
+    font-weight: bold;
+    color: #333;
+    text-shadow: 0 1px 0 rgba(200, 200, 200, 0.6)
+}
+
+#entry-sidebar h5 {
+    font-weight: normal;
+    color: #333;
+}
+
+.entry-status img.img_select_option {
+    padding-left: 4px;
+    vertical-align: text-top;
+}
+
+h4 label,
+h5 label {
+    color: #333;
+}
+
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child,
+ul:first-child,
+p:first-child {
+    margin-top: 0;
+}
+
+
+/* ---------------------------------------------------------------- tableaux */
+
+
+/* 	Pour autoriser le scroll sur les petites largeurs
+	envelopper les tableaux dans une div.table-outer */
+
+.table-outer {
+    width: 100%;
+    overflow: auto;
+}
+
+table {
+    font-size: 1em;
+    border-collapse: collapse;
+    margin: 0 0 1em 0;
+    width: 100%;
+}
+
+caption {
+    color: #333;
+    font-weight: bold;
+    text-align: left;
+    margin-bottom: .5em;
+}
+
+th {
+    border-width: 1px 0 1px 0;
+    border-style: solid;
+    border-color: #dfdfdf;
+    background: #eef1ec;
+    padding: .4em 1em .4em .5em;
+    vertical-align: top;
+    text-align: left;
+}
+
+td {
+    border-width: 0 0 1px 0;
+    border-style: solid;
+    border-color: #e3e3e3;
+    padding: .4em 1em .4em .5em;
+    vertical-align: top;
+}
+
+
+/* ---------------------------------------------------------- autres balises */
+
+p {
+    margin: 0 0 1em 0;
+}
+
+hr {
+    height: 1px;
+    border-width: 1px 0 0;
+    border-color: #dfdfdf;
+    background: #dfdfdf;
+    border-style: solid;
+}
+
+hr.clearer {
+    clear: both;
+}
+
+pre,
+code,
+#debug {
+    font: 100% $monospace;
+}
+
+code {
+    background: #fefacd;
+}
+
+pre {
+    white-space: pre;
+    white-space: -moz-pre-wrap;
+    white-space: pre-wrap;
+    white-space: pre-line;
+    word-wrap: break-word;
+}
+
+abbr {
+    cursor: help;
+}
+
+input,
+textarea,
+select,
+option,
+optgroup,
+legend,
+label {
+    font-size: 1em;
+}
+
+
+/* ------------------------------------------------------------------ liens */
+
+a,
+a:link,
+a:visited {
+    color: #2373A8;
+    text-decoration: none;
+    border-bottom: 1px dotted #999;
+    background-color: inherit;
+    outline: 0;
+}
+
+a:hover,
+a:active {
+    border-bottom-style: solid;
+}
+
+a img,
+a:link img,
+a:visited img {
+    border: none;
+    background: inherit;
+}
+
+h1 a:link,
+h1 a:visited {
+    border: none;
+}
+
+.discrete a {
+    color: #333;
+}
+
+a:link {
+    transition: .5s;
+}
+
+a:focus,
+a:focus img {
+    outline: 2px solid #bee74b;
+    border-bottom: none;
+    text-decoration: none;
+}
Index: admin/style/scss/partials/_media.scss
===================================================================
--- admin/style/scss/partials/_media.scss	(revision 3355)
+++ admin/style/scss/partials/_media.scss	(revision 3355)
@@ -0,0 +1,298 @@
+span.media-file-mode {
+    margin-right: 1em;
+}
+
+.media-file-mode a {
+    border-bottom: none;
+}
+
+.media-file-mode img {
+    margin-right: 1em;
+}
+
+.media-item {
+    position: relative;
+    border: 1px solid #dfdfdf;
+    margin: 9px;
+    padding: 10px 12px 6px;
+    width: 320px;
+    display: inline-block;
+    vertical-align: top;
+    min-height: 140px;
+    word-wrap: break-word;
+}
+
+.media-item p {
+    margin: 0 0 .5em;
+}
+
+.media-item object {
+    margin-top: .5em;
+}
+
+.media-item ul {
+    display: block;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+
+.media-item audio {
+    width: 90%;
+    margin-top: .5em;
+}
+
+a.media-icon {
+    display: block;
+    border-bottom: none;
+    margin: 0 auto;
+}
+
+.media-icon img {
+    display: block;
+}
+
+a.media-flag {
+    border-bottom: none;
+}
+
+.media-flag img {
+    float: left;
+    margin-right: .5em;
+}
+
+.media-link {
+    font-size: 1.1em;
+}
+
+.media-action-box {
+    position: relative;
+    margin: 3em 3em 1em 1em;
+    display: inline-block;
+    vertical-align: top;
+}
+
+li.media-action {
+    display: block;
+    position: absolute;
+    bottom: 4px;
+    right: 8px;
+    height: 16px;
+}
+
+li.media-action a {
+    border: none;
+}
+
+li.media-action a.attach-media {
+    margin-right: 5px;
+}
+
+li.media-action form {
+    display: inline;
+}
+
+li.media-action input {
+    border: none;
+}
+
+#entry-sidebar .media-item {
+    width: 100%;
+    min-height: 0;
+    padding: 4px;
+    margin: .33em 0;
+}
+
+#entry-sidebar li.media-action {
+    top: 4px;
+}
+
+.folders-group .media-item {
+    min-height: 70px;
+}
+
+.folders-group .media-item p {
+    margin-bottom: 0;
+}
+
+.media-folder {
+    background: transparent url(bg_menu.png) repeat-y;
+    border-color: #eee;
+}
+
+tr.media-folder {
+    background: transparent;
+}
+
+.media-folder-up {
+    border-color: #fff;
+    padding-bottom: 6px;
+}
+
+.media-folder .media-link {
+    font-size: 1.25em;
+    margin-left: 2em;
+    color: #676e78;
+    border-bottom: none;
+}
+
+.medias-delete,
+.medias-select {
+    text-align: right;
+}
+
+.media-recent {
+    float: left;
+    margin-right: 2em;
+}
+
+#media-fav-dir {
+    border-bottom: none;
+}
+
+#media-fav-dir img {
+    vertical-align: middle;
+}
+
+
+/* upload multiple */
+
+.enhanced_uploader .choose_files,
+.enhanced_uploader .cancel,
+.enhanced_uploader .clean,
+.enhanced_uploader .start {
+    margin-right: .4em;
+}
+
+.enhanced_uploader #upfile {
+    visibility: hidden;
+    width: 0;
+    height: 0;
+    margin: 0;
+    opacity: 0;
+    filter: alpha(opacity=0);
+    cursor: pointer;
+}
+
+.button.clean,
+.button.cancel,
+.button.choose_files {
+    display: none;
+}
+
+.enhanced_uploader .button.choose_files {
+    display: inline-block;
+}
+
+.enhanced_uploader .max-size {
+    display: block;
+}
+
+.enhanced_uploader .one-file {
+    display: none;
+}
+
+label span.one-file {
+    display: inline;
+}
+
+.enhanced_uploader p.clear {
+    padding-top: 1em;
+    margin-bottom: 1em;
+}
+
+#add-file-f p.clear {
+    margin-top: 1em;
+    margin-bottom: 0;
+    clear: both;
+}
+
+.files {
+    list-style-type: none;
+    margin-left: 0;
+    padding-left: 0;
+    border-bottom: 1px solid #dfdfdf;
+}
+
+.files li {
+    margin-left: 0;
+    padding-left: 0;
+}
+
+.upload-msg {
+    font-weight: bold;
+}
+
+.upload-msg.upload-error {
+    color: #900;
+}
+
+.upload-files {
+    padding: 0 0.5em;
+    margin: 1em 0;
+}
+
+.upload-file {
+    margin: 0;
+    padding: .3em 0;
+    border-top: 1px solid #dfdfdf;
+    position: relative;
+}
+
+.upload-fileinfo {
+    margin-left: 0;
+}
+
+.upload-fileinfo input {
+    position: absolute;
+    top: .5em;
+    right: .5em;
+}
+
+.upload-fileinfo span {
+    padding-right: 8px;
+}
+
+.upload-fileinfo .upload-filecancel {
+    display: block;
+    padding-right: 0;
+    margin-top: 3px;
+    width: 20px;
+    height: 20px;
+    background: transparent url("cancel.png") no-repeat left top;
+    text-indent: -1000px;
+    cursor: pointer;
+    float: left;
+}
+
+.upload-filemsg {
+    font-weight: bold;
+    color: green;
+}
+
+.upload-filemsg.upload-error {
+    color: #900;
+}
+
+.upload-progress {
+    padding: .3em 0;
+}
+
+.upload-progress div {
+    width: 0;
+    height: 1.2em;
+    font-weight: bold;
+    line-height: 1.2em;
+    text-align: right;
+    background: green url(loader.png) repeat-x left top;
+    color: white;
+    border-radius: 3px;
+}
+
+div.template-upload {
+    clear: both;
+}
+
+.queue-message {
+    font-weight: bold;
+}
Index: admin/style/scss/partials/_media_item.scss
===================================================================
--- admin/style/scss/partials/_media_item.scss	(revision 3355)
+++ admin/style/scss/partials/_media_item.scss	(revision 3355)
@@ -0,0 +1,28 @@
+#media-icon {
+    float: left;
+}
+
+.near-icon {
+    margin-left: 70px;
+    margin-bottom: 3em;
+}
+
+#media-details ul {
+    display: block;
+    margin-left: 0;
+    padding: 0;
+}
+
+#media-details li {
+    list-style: square inside;
+    margin: 0;
+    padding: 0;
+}
+
+#media-original-image {
+    overflow: auto;
+}
+
+#media-original-image.overheight {
+    height: 500px;
+}
Index: admin/style/scss/partials/_mediaqueries.scss
===================================================================
--- admin/style/scss/partials/_mediaqueries.scss	(revision 3365)
+++ admin/style/scss/partials/_mediaqueries.scss	(revision 3365)
@@ -0,0 +1,64 @@
+/* ------------------------------------------------------------------------------------
+															UN POIL DE MEDIA QUERIES
+------------------------------------------------------------------------------------ */
+
+@media screen and (max-width: $s-screen) {
+	#help-button {
+		padding: 0;
+		font-size: .83em;
+		line-height: 68px;
+	}
+}
+
+@media screen and (max-width: $xs-screen) {
+	#dashboard-main {
+		padding: 0;
+	}
+	#content,
+	.hide-mm #content {
+		padding: 0 .5em !important;
+	}
+	#main #content > h2 {
+		padding: 6px 30px 4px .5em;
+	}
+	.cell,
+	#filters-form .cell {
+		border: none;
+		padding: 1em;
+	}
+	.pseudo-tabs li {
+		padding: .25em;
+	}
+	.pseudo-tabs li:first-child,
+	.pseudo-tabs li:nth-of-type(2) {
+		border-top: none;
+	}
+}
+
+@media screen and (max-width: $xxs-screen) {
+	#content.with-help #help {
+		font-size: 1.2rem // 12px;
+	}
+	p.top-add {
+		text-align: center;
+	}
+	.multi-part {
+		padding-left: 0;
+	}
+	.part-tabs ul {
+		padding: 0 .5em;
+	}
+	#icons p {
+		padding: 1em .25em;
+	}
+	.box.current-theme {
+		padding: 10px;
+	}
+	th,
+	td {
+		padding: 0.3em 1em 0.3em 0;
+	}
+	.pseudo-tabs li:first-child {
+		border-top: none;
+	}
+}
Index: admin/style/scss/partials/_messages.scss
===================================================================
--- admin/style/scss/partials/_messages.scss	(revision 3355)
+++ admin/style/scss/partials/_messages.scss	(revision 3355)
@@ -0,0 +1,135 @@
+.warn,
+.warning,
+.info {
+    font-style: normal;
+    padding: .2em .66em .2em;
+    text-indent: 24px;
+    color: #333;
+    display: inline-block;
+    line-height: 1.5em;
+    border-radius: 3px;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6)
+}
+
+div.warn,
+div.warning,
+div.info {
+    display: block;
+    padding: 1em 1em .33em 1em;
+    margin-bottom: 1em;
+}
+
+.warn,
+.warning {
+    background: #FEFACD url(msg-warning.png) no-repeat .3em .3em;
+    border: 1px solid #ffd478;
+}
+
+.info {
+    background: #D9EDF7 url(msg-info.png) no-repeat .3em .3em;
+    border: 1px solid #BCE8F1;
+}
+
+span.warn,
+span.warning,
+span.info {
+    padding-top: 1px;
+    padding-bottom: 1px;
+    background-position: .3em .2em;
+}
+
+.error,
+.message,
+.static-msg,
+.success,
+.warning-msg {
+    padding: 1em 0.5em 0.5em 48px;
+    margin-bottom: 1em;
+    border-radius: 8px;
+    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+p.error,
+p.message,
+p.static-msg,
+p.success,
+p.warning-msg {
+    padding-top: 1em;
+    padding-bottom: 1em;
+    margin-top: .5em;
+}
+
+.error {
+    background: #FFBABA url(msg-error.png) no-repeat .7em .7em;
+    color: #000;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
+}
+
+.message,
+.static-msg {
+    background: #676e78 url(msg-std.png) no-repeat .7em .7em;
+    color: #fff;
+}
+
+.message a,
+.static-msg a,
+.message h3,
+.static-msg h3 {
+    color: #fff;
+}
+
+.success,
+.warning-msg {
+    color: #000;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6)
+}
+
+.success {
+    background: #9bca1c url(msg-success.png) no-repeat .7em .7em;
+}
+
+.warning-msg {
+    background: #ffd478 url(msg-warning.png) no-repeat .7em .7em;
+    border: 1px solid #ffd478;
+}
+
+.success a,
+.warning-msg a,
+.info a {
+    color: #333;
+}
+
+.dc-update {
+    padding: 1em 48px 0.5em 48px;
+    margin-bottom: 1em;
+    border-radius: 8px;
+    background: #A2CBE9 url(msg-success.png) no-repeat .7em .7em;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.6);
+    color: #000;
+    box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1)
+}
+
+.dc-update h3 {
+    margin-top: 0;
+    color: #000;
+}
+
+.dc-update p {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.dc-update a {
+    color: #000;
+    margin-right: 1em;
+}
+
+.dc-update a.button {
+    padding: .5em 1em;
+}
+
+.updt-info a {
+    margin-left: 2em;
+    border-color: #000;
+    font-weight: bold;
+}
Index: admin/style/scss/partials/_plugins.scss
===================================================================
--- admin/style/scss/partials/_plugins.scss	(revision 3365)
+++ admin/style/scss/partials/_plugins.scss	(revision 3365)
@@ -0,0 +1,79 @@
+.modules td.module-actions,
+.modules td.module-icon {
+    vertical-align: middle;
+}
+
+.modules td.module-icon img:last-child {
+    width: 16px;
+    height: 16px;
+}
+
+.modules td.module-icon img.expand {
+    margin-bottom: 3px;
+}
+
+.modules td.module-distrib img {
+    display: block;
+    float: right;
+}
+
+.modules dt {
+    font-weight: bold;
+}
+
+.modules a.module-details {
+    background: transparent url(search.png) no-repeat 2px center;
+    padding: 4px 4px 0 20px;
+}
+
+.modules a.module-support {
+    background: transparent url(help12.png) no-repeat 2px center;
+    padding: 4px 4px 0 20px;
+}
+
+.modules a.module-config {
+    background: transparent url(settings.png) no-repeat 2px 6px;
+    padding: 4px 4px 0 18px;
+}
+
+#m_search {
+    background: transparent url(search.png) no-repeat 4px center;
+    padding-left: 20px;
+}
+
+.modules tr.expand,
+.modules td.expand {
+    background: #f7f7f7;
+    border-color: #bee74b;
+}
+
+.modules tr.expand td:first-child {
+    font-weight: bold;
+    background: #dfe5e7;
+}
+
+.modules td.expand {
+    padding: 0 0 1em;
+    border-top: 1px solid #eaeaea;
+}
+
+.modules td.expand div {
+    display: inline-block;
+    vertical-align: top;
+    margin-right: 3em;
+}
+
+.mod-more,
+.mod-more li {
+    margin: .25em 0 0 1em;
+    padding: 0;
+    list-style-type: none;
+}
+
+.mod-more {
+    padding-top: .5em;
+}
+
+#plugin-update td {
+    vertical-align: baseline;
+}
Index: admin/style/scss/partials/_preferences.scss
===================================================================
--- admin/style/scss/partials/_preferences.scss	(revision 3355)
+++ admin/style/scss/partials/_preferences.scss	(revision 3355)
@@ -0,0 +1,81 @@
+.fav-list {
+    list-style-type: none;
+    margin-left: 0;
+    padding-left: 0;
+}
+
+#my-favs .fav-list {
+    border-top: 1px solid #eee;
+}
+
+.fav-list li {
+    margin-left: 0;
+    padding-left: 0;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    position: relative;
+}
+
+#my-favs .fav-list li {
+    line-height: 2;
+    border-bottom: 1px solid #eee;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    position: relative;
+}
+
+.fav-list img {
+    vertical-align: middle;
+    margin-right: .2em;
+}
+
+.fav-list li span.zoom {
+    display: none;
+}
+
+.fav-list li:hover span.zoom {
+    display: block;
+    position: absolute;
+    bottom: 0;
+    left: 10em;
+    background-color: #f7f7f7;
+    border: 1px solid #dfdfdf;
+    padding: .2em;
+    border-radius: .5em;
+}
+
+#my-favs {
+    border-color: #9bca1c;
+}
+
+#my-favs input.position {
+    margin: 0 0 .4em .2em;
+}
+
+#available-favs input,
+#available-favs label,
+#available-favs label span {
+    white-space: normal;
+    display: inline;
+}
+
+#available-favs label span.zoom {
+    display: none;
+}
+
+#available-favs li:hover label span.zoom {
+    display: block;
+    position: absolute;
+    bottom: 0;
+    left: 10em;
+    background-color: #f7f7f7;
+    border: 1px solid #dfdfdf;
+    padding: .2em;
+    border-radius: .5em;
+}
+
+#user-options label.ib {
+    display: inline-block;
+    width: 14em;
+    padding-right: 1em;
+}
Index: admin/style/scss/partials/_tables.scss
===================================================================
--- admin/style/scss/partials/_tables.scss	(revision 3365)
+++ admin/style/scss/partials/_tables.scss	(revision 3365)
@@ -0,0 +1,131 @@
+table .maximal,
+table.maximal {
+    width: 100%;
+}
+
+table .minimal {
+    width: 1px;
+}
+
+table .nowrap {
+    white-space: nowrap;
+    vertical-align: top;
+}
+
+table .count {
+    text-align: right;
+    padding-right: 1.5em;
+}
+
+th.first input {
+    padding-right: 34px;
+}
+
+.line img {
+    vertical-align: middle;
+}
+
+tr.line img.expand,
+th img.expand {
+    margin-right: 6px;
+    margin-bottom: -2px;
+}
+
+tr.line p {
+    margin: 0;
+}
+
+tr.line input[type=text] {
+    background: #fff;
+}
+
+tr.line input,
+tr.line select {
+    vertical-align: middle;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+}
+
+tr.line select {
+    width: 6em;
+}
+
+tr.line:hover {
+    background: #f3f3f3;
+}
+
+td.status {
+    vertical-align: middle;
+}
+
+td.status img {
+    margin-bottom: -2px;
+}
+
+td.status a {
+    border: none;
+}
+
+.noborder td,
+td.noborder,
+.noborder th,
+th.noborder {
+    border-width: 0 0 1px 0;
+    border-color: #dfdfdf;
+    line-height: 2em;
+    padding-bottom: 0;
+}
+
+.noborder p {
+    margin-bottom: 0;
+}
+
+table.posts-list {
+    min-width: 50%;
+}
+
+table.settings,
+table.prefs {
+    margin-bottom: 3em;
+}
+
+table.settings th:first-child,
+table.prefs th:first-child {
+    width: 20%;
+}
+
+table.settings th + th,
+table.prefs th + th {
+    width: 30%;
+}
+
+table.settings th + th + th,
+table.prefs th + th + th {
+    width: 10%;
+}
+
+table.settings th:last-child,
+table.prefs th:last-child {
+    width: 40%;
+}
+
+
+/* js */
+
+td.expand {
+    padding: 1em;
+}
+
+tr.expand td {
+    border-bottom: none;
+}
+
+.handle {
+    padding: 0;
+}
+
+.handler {
+    cursor: move;
+    background: transparent url(drag.png) no-repeat 0 50%;
+    padding-left: 15px;
+}
Index: admin/style/scss/partials/_user.scss
===================================================================
--- admin/style/scss/partials/_user.scss	(revision 3355)
+++ admin/style/scss/partials/_user.scss	(revision 3355)
@@ -0,0 +1,21 @@
+.blog-perm {
+    padding-top: 2em;
+}
+
+.blog-perm {
+    margin-top: 2em;
+    font-weight: bold;
+}
+
+.ul-perm {
+    list-style-type: square;
+    margin-left: 0;
+    padding-left: 3.5em;
+    margin-bottom: 0
+}
+
+.add-perm {
+    padding-top: .5em;
+    padding-left: 2.5em;
+    margin-left: 0;
+}
Index: admin/style/scss/partials/_utils.scss
===================================================================
--- admin/style/scss/partials/_utils.scss	(revision 3355)
+++ admin/style/scss/partials/_utils.scss	(revision 3355)
@@ -0,0 +1,103 @@
+/* debug */
+
+#debug {
+    position: absolute;
+    top: 0;
+    width: 100%;
+    height: 4px;
+    background: #ffd478;
+}
+
+#debug div {
+    display: none;
+    padding: 3px 0.5em 2px;
+}
+
+#debug p {
+    margin: 0.5em 0;
+}
+
+#debug:hover {
+    height: auto;
+    padding: 2px 1em;
+    z-index: 100;
+}
+
+#debug:hover div {
+    display: block;
+}
+
+.debug {
+    background: #ffd478;
+    padding: 3px 0.5em 2px;
+}
+
+input[type=submit].delete.debug,
+a.delete.debug {
+    border-color: #ffd478;
+}
+
+input[type=submit].delete.debug:hover,
+a.delete.debug:hover {
+    background: #ffd478;
+    color: #900;
+    border-color: #ffd478;
+}
+
+
+/* ---------------------------------------------- Couleurs ajoutées via javascript
+/* color-picker.js */
+
+.color-color-picker {
+    border: 1px solid #000;
+    width: 195px;
+    background: #fff;
+}
+
+
+/* _media_item.js */
+
+.color-div {
+    border: 1px solid #ccc;
+}
+
+
+/* fadings ('color' est utilisé comme variable, pas comme text color) */
+
+.colorBeginPassword,
+.colorBeginValidatorErr,
+.colorBeginUserMail {
+    color: #fff;
+}
+
+.colorEndPassword,
+.colorEndError,
+.colorEndValidatorErr,
+.colorEndUserMail {
+    color: #ffbaba;
+}
+
+.colorBeginMessage {
+    color: #ccc;
+}
+
+.colorEndMessage,
+.colorBeginValidatorMsg {
+    color: #676e78;
+}
+
+.colorBeginError {
+    color: #fefacd;
+}
+
+.colorBeginSuccess {
+    color: #9BCA1C;
+}
+
+.colorEndSuccess {
+    color: #bee74b;
+}
+
+.colorEndValidatorMsg {
+    color: #ffcc00;
+}
Index: admin/style/scss/vendor/_magnific-popup.scss
===================================================================
--- admin/style/scss/vendor/_magnific-popup.scss	(revision 3370)
+++ admin/style/scss/vendor/_magnific-popup.scss	(revision 3370)
@@ -0,0 +1,585 @@
+/* Magnific Popup CSS */
+
+////////////////////////
+//      Settings      //
+////////////////////////
+
+// overlay
+$mfp-overlay-color:                   #0b0b0b !default;                    // Color of overlay screen
+$mfp-overlay-opacity:                 0.8 !default;                        // Opacity of overlay screen
+$mfp-shadow:                          0 0 8px rgba(0, 0, 0, 0.6) !default; // Shadow on image or iframe
+
+// spacing
+$mfp-popup-padding-left:              8px !default;                        // Padding from left and from right side
+$mfp-popup-padding-left-mobile:       6px !default;                        // Same as above, but is applied when width of window is less than 800px
+
+$mfp-z-index-base:                    1040 !default;                       // Base z-index of popup
+
+// controls
+$mfp-include-arrows:                  true !default;                       // Include styles for nav arrows
+$mfp-controls-opacity:                0.65 !default;                       // Opacity of controls
+$mfp-controls-color:                  #FFF !default;                       // Color of controls
+$mfp-controls-border-color:           #3F3F3F !default;                    // Border color of controls
+$mfp-inner-close-icon-color:          #333 !default;                       // Color of close button when inside
+$mfp-controls-text-color:             #CCC !default;                       // Color of preloader and "1 of X" indicator
+$mfp-controls-text-color-hover:       #FFF !default;                       // Hover color of preloader and "1 of X" indicator
+
+// Iframe-type options
+$mfp-include-iframe-type:             true !default;                       // Enable Iframe-type popups
+$mfp-iframe-padding-top:              40px !default;                       // Iframe padding top
+$mfp-iframe-background:               #000 !default;                       // Background color of iframes
+$mfp-iframe-max-width:                98%; // 900px !default;                      // Maximum width of iframes
+$mfp-iframe-ratio:                    9/16 !default;                       // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)
+
+// Image-type options
+$mfp-include-image-type:              true !default;                       // Enable Image-type popups
+$mfp-image-background:                #444 !default;
+$mfp-image-padding-top:               40px !default;                       // Image padding top
+$mfp-image-padding-bottom:            40px !default;                       // Image padding bottom
+$mfp-include-mobile-layout-for-image: true !default;                       // Removes paddings from top and bottom
+
+// Image caption options
+$mfp-caption-title-color:             #F3F3F3 !default;                    // Caption title color
+$mfp-caption-subtitle-color:          #BDBDBD !default;                    // Caption subtitle color
+
+// A11y
+$mfp-use-visuallyhidden:              false !default;                      // Hide content from browsers, but make it available for screen readers
+
+////////////////////////
+//
+// Contents:
+//
+// 1. General styles
+//    - Transluscent overlay
+//    - Containers, wrappers
+//    - Cursors
+//    - Helper classes
+// 2. Appearance
+//    - Preloader & text that displays error messages
+//    - CSS reset for buttons
+//    - Close icon
+//    - "1 of X" counter
+//    - Navigation (left/right) arrows
+//    - Iframe content type styles
+//    - Image content type styles
+//    - Media query where size of arrows is reduced
+//    - IE7 support
+//
+////////////////////////
+
+
+
+////////////////////////
+// 1. General styles
+////////////////////////
+
+// Transluscent overlay
+.mfp-bg {
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: $mfp-z-index-base + 2;
+  overflow: hidden;
+  position: fixed;
+
+  background: $mfp-overlay-color;
+  opacity: $mfp-overlay-opacity;
+}
+
+// Wrapper for popup
+.mfp-wrap {
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: $mfp-z-index-base + 3;
+  position: fixed;
+  outline: none !important;
+  -webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar
+}
+
+// Root container
+.mfp-container {
+  text-align: center;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  left: 0;
+  top: 0;
+  padding: 0 $mfp-popup-padding-left;
+  box-sizing: border-box;
+}
+
+// Vertical centerer helper
+.mfp-container {
+  &:before {
+    content: '';
+    display: inline-block;
+    height: 100%;
+    vertical-align: middle;
+  }
+}
+
+// Remove vertical centering when popup has class `mfp-align-top`
+.mfp-align-top {
+  .mfp-container {
+    &:before {
+      display: none;
+    }
+  }
+}
+
+// Popup content holder
+.mfp-content {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle;
+  margin: 0 auto;
+  text-align: left;
+  z-index: $mfp-z-index-base + 5;
+}
+.mfp-inline-holder,
+.mfp-ajax-holder {
+  .mfp-content {
+    width: 100%;
+    cursor: auto;
+  }
+}
+
+// Cursors
+.mfp-ajax-cur {
+  cursor: progress;
+}
+.mfp-zoom-out-cur {
+  &, .mfp-image-holder .mfp-close {
+    cursor: -moz-zoom-out;
+    cursor: -webkit-zoom-out;
+    cursor: zoom-out;
+  }
+}
+.mfp-zoom {
+  cursor: pointer;
+  cursor: -webkit-zoom-in;
+  cursor: -moz-zoom-in;
+  cursor: zoom-in;
+}
+.mfp-auto-cursor {
+  .mfp-content {
+    cursor: auto;
+  }
+}
+
+.mfp-close,
+.mfp-arrow,
+.mfp-preloader,
+.mfp-counter {
+  -webkit-user-select:none;
+  -moz-user-select: none;
+  user-select: none;
+}
+
+// Hide the image during the loading
+.mfp-loading {
+  &.mfp-figure {
+    display: none;
+  }
+}
+
+// Helper class that hides stuff
+@if $mfp-use-visuallyhidden {
+  // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden
+  .mfp-hide {
+    border: 0 !important;
+    clip: rect(0 0 0 0) !important;
+    height: 1px !important;
+    margin: -1px !important;
+    overflow: hidden !important;
+    padding: 0 !important;
+    position: absolute !important;
+    width: 1px !important;
+  }
+} @else {
+  .mfp-hide {
+    display: none !important;
+  }
+}
+
+
+////////////////////////
+// 2. Appearance
+////////////////////////
+
+// Preloader and text that displays error messages
+.mfp-preloader {
+  color: $mfp-controls-text-color;
+  position: absolute;
+  top: 50%;
+  width: auto;
+  text-align: center;
+  margin-top: -0.8em;
+  left: 8px;
+  right: 8px;
+  z-index: $mfp-z-index-base + 4;
+  a {
+    color: $mfp-controls-text-color;
+    &:hover {
+      color: $mfp-controls-text-color-hover;
+    }
+  }
+}
+
+// Hide preloader when content successfully loaded
+.mfp-s-ready {
+  .mfp-preloader {
+    display: none;
+  }
+}
+
+// Hide content when it was not loaded
+.mfp-s-error {
+  .mfp-content {
+    display: none;
+  }
+}
+
+// CSS-reset for buttons
+button {
+  &.mfp-close,
+  &.mfp-arrow {
+    overflow: visible;
+    cursor: pointer;
+    background: transparent;
+    border: 0;
+    -webkit-appearance: none;
+    display: block;
+    outline: none;
+    padding: 0;
+    z-index: $mfp-z-index-base + 6;
+    box-shadow: none;
+    touch-action: manipulation;
+  }
+  &::-moz-focus-inner {
+      padding: 0;
+      border: 0
+  }
+}
+
+
+// Close icon
+.mfp-close {
+  width: 44px;
+  height: 44px;
+  line-height: 44px;
+
+  position: absolute;
+  right: 0;
+  top: 0;
+  text-decoration: none;
+  text-align: center;
+  opacity: $mfp-controls-opacity;
+  padding: 0 0 18px 10px;
+  color: $mfp-controls-color;
+
+  font-style: normal;
+  font-size: 28px;
+  font-family: Arial, Baskerville, monospace;
+
+  &:hover,
+  &:focus {
+    opacity: 1;
+  }
+
+  &:active {
+    top: 1px;
+  }
+}
+.mfp-close-btn-in {
+  .mfp-close {
+    color: $mfp-inner-close-icon-color;
+  }
+}
+.mfp-image-holder,
+.mfp-iframe-holder {
+  .mfp-close {
+    color: $mfp-controls-color;
+    right: -6px;
+    text-align: right;
+    padding-right: 6px;
+    width: 100%;
+  }
+}
+
+// "1 of X" counter
+.mfp-counter {
+  position: absolute;
+  top: 0;
+  right: 0;
+  color: $mfp-controls-text-color;
+  font-size: 12px;
+  line-height: 18px;
+  white-space: nowrap;
+}
+
+// Navigation arrows
+@if $mfp-include-arrows {
+  .mfp-arrow {
+    position: absolute;
+    opacity: $mfp-controls-opacity;
+    margin: 0;
+    top: 50%;
+    margin-top: -55px;
+    padding: 0;
+    width: 90px;
+    height: 110px;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+    &:active {
+      margin-top: -54px;
+    }
+    &:hover,
+    &:focus {
+      opacity: 1;
+    }
+    &:before,
+    &:after {
+      content: '';
+      display: block;
+      width: 0;
+      height: 0;
+      position: absolute;
+      left: 0;
+      top: 0;
+      margin-top: 35px;
+      margin-left: 35px;
+      border: medium inset transparent;
+    }
+
+    &:after {
+
+      border-top-width: 13px;
+      border-bottom-width: 13px;
+      top:8px;
+    }
+
+    &:before {
+      border-top-width: 21px;
+      border-bottom-width: 21px;
+      opacity: 0.7;
+    }
+
+  }
+
+  .mfp-arrow-left {
+    left: 0;
+    &:after {
+      border-right: 17px solid $mfp-controls-color;
+      margin-left: 31px;
+    }
+    &:before {
+      margin-left: 25px;
+      border-right: 27px solid $mfp-controls-border-color;
+    }
+  }
+
+  .mfp-arrow-right {
+    right: 0;
+    &:after {
+      border-left: 17px solid $mfp-controls-color;
+      margin-left: 39px
+    }
+    &:before {
+      border-left: 27px solid $mfp-controls-border-color;
+    }
+  }
+}
+
+
+
+// Iframe content type
+@if $mfp-include-iframe-type {
+  .mfp-iframe-holder {
+    padding-top: $mfp-iframe-padding-top;
+    padding-bottom: $mfp-iframe-padding-top;
+    .mfp-content {
+      line-height: 0;
+      width: 100%;
+      max-width: $mfp-iframe-max-width;
+    }
+    .mfp-close {
+      top: -40px;
+    }
+  }
+  .mfp-iframe-scaler {
+    width: 100%;
+    height: 0;
+    overflow: hidden;
+    padding-top: $mfp-iframe-ratio * 100%;
+    iframe {
+      position: absolute;
+      display: block;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      box-shadow: $mfp-shadow;
+      background: $mfp-iframe-background;
+    }
+  }
+}
+
+
+
+// Image content type
+@if $mfp-include-image-type {
+
+  /* Main image in popup */
+  img {
+    &.mfp-img {
+      width: auto;
+      max-width: 100%;
+      height: auto;
+      display: block;
+      line-height: 0;
+      box-sizing: border-box;
+      padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;
+      margin: 0 auto;
+    }
+  }
+
+  /* The shadow behind the image */
+  .mfp-figure {
+    line-height: 0;
+    &:after {
+      content: '';
+      position: absolute;
+      left: 0;
+      top: $mfp-image-padding-top;
+      bottom: $mfp-image-padding-bottom;
+      display: block;
+      right: 0;
+      width: auto;
+      height: auto;
+      z-index: -1;
+      box-shadow: $mfp-shadow;
+      background: $mfp-image-background;
+    }
+    small {
+      color: $mfp-caption-subtitle-color;
+      display: block;
+      font-size: 12px;
+      line-height: 14px;
+    }
+    figure {
+      margin: 0;
+    }
+  }
+  .mfp-bottom-bar {
+    margin-top: -$mfp-image-padding-bottom + 4;
+    position: absolute;
+    top: 100%;
+    left: 0;
+    width: 100%;
+    cursor: auto;
+  }
+  .mfp-title {
+    text-align: left;
+    line-height: 18px;
+    color: $mfp-caption-title-color;
+    word-wrap: break-word;
+    padding-right: 36px; // leave some space for counter at right side
+  }
+
+  .mfp-image-holder {
+    .mfp-content {
+      max-width: 100%;
+    }
+  }
+
+  .mfp-gallery {
+    .mfp-image-holder {
+      .mfp-figure {
+        cursor: pointer;
+      }
+    }
+  }
+
+
+  @if $mfp-include-mobile-layout-for-image {
+    @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {
+      /**
+       * Remove all paddings around the image on small screen
+       */
+      .mfp-img-mobile {
+        .mfp-image-holder {
+          padding-left: 0;
+          padding-right: 0;
+        }
+        img {
+          &.mfp-img {
+            padding: 0;
+          }
+        }
+        .mfp-figure {
+          // The shadow behind the image
+          &:after {
+            top: 0;
+            bottom: 0;
+          }
+          small {
+            display: inline;
+            margin-left: 5px;
+          }
+        }
+        .mfp-bottom-bar {
+          background: rgba(0,0,0,0.6);
+          bottom: 0;
+          margin: 0;
+          top: auto;
+          padding: 3px 5px;
+          position: fixed;
+          box-sizing: border-box;
+          &:empty {
+            padding: 0;
+          }
+        }
+        .mfp-counter {
+          right: 5px;
+          top: 3px;
+        }
+        .mfp-close {
+          top: 0;
+          right: 0;
+          width: 35px;
+          height: 35px;
+          line-height: 35px;
+          background: rgba(0, 0, 0, 0.6);
+          position: fixed;
+          text-align: center;
+          padding: 0;
+        }
+      }
+    }
+  }
+}
+
+
+
+// Scale navigation arrows and reduce padding from sides
+@media all and (max-width: 900px) {
+  .mfp-arrow {
+    -webkit-transform: scale(0.75);
+    transform: scale(0.75);
+  }
+  .mfp-arrow-left {
+    -webkit-transform-origin: 0;
+    transform-origin: 0;
+  }
+  .mfp-arrow-right {
+    -webkit-transform-origin: 100%;
+    transform-origin: 100%;
+  }
+  .mfp-container {
+    padding-left: $mfp-popup-padding-left-mobile;
+    padding-right: $mfp-popup-padding-left-mobile;
+  }
+}
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 3182)
+++ admin/users.php	(revision 3360)
@@ -23,4 +23,11 @@
 __('Number of entries') => 'nb_post'
 );
+
+$sortby_lex = array(
+	// key in sorty_combo (see above) => field in SQL request
+	'user_id' => 'U.user_id',
+	'user_name' => 'user_name',
+	'user_firstname' => 'user_firstname',
+	'user_displayname' => 'user_displayname');
 
 $order_combo = array(
@@ -66,6 +73,11 @@
 # - Sortby and order filter
 if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
+	if (array_key_exists($sortby,$sortby_lex)) {
+		$params['order'] = $core->con->lexFields($sortby_lex[$sortby]);
+	} else {
+		$params['order'] = $sortby;
+	}
 	if ($order !== '' && in_array($order,$order_combo)) {
-		$params['order'] = $sortby.' '.$order;
+		$params['order'] .= ' '.$order;
 	} else {
 		$order='asc';
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 3319)
+++ inc/admin/lib.dc.page.php	(revision 3373)
@@ -106,8 +106,8 @@
 			// Get directives from settings if exist, else set defaults
 			$csp = new ArrayObject(array());
-			$csp['default-src'] = $core->blog->settings->system->csp_admin_default ? $core->blog->settings->system->csp_admin_default : "'self'";
-			$csp['script-src'] = $core->blog->settings->system->csp_admin_script ? $core->blog->settings->system->csp_admin_script : "'self' 'unsafe-inline' 'unsafe-eval'";
-			$csp['style-src'] = $core->blog->settings->system->csp_admin_style ? $core->blog->settings->system->csp_admin_style : "'self' 'unsafe-inline'";
-			$csp['img-src'] = $core->blog->settings->system->csp_admin_img ? $core->blog->settings->system->csp_admin_img : "'self' data: media.dotaddict.org";
+			$csp['default-src'] = $core->blog->settings->system->csp_admin_default ?: "'self'";
+			$csp['script-src'] = $core->blog->settings->system->csp_admin_script ?: "'self' 'unsafe-inline' 'unsafe-eval'";
+			$csp['style-src'] = $core->blog->settings->system->csp_admin_style ?: "'self' 'unsafe-inline'";
+			$csp['img-src'] = $core->blog->settings->system->csp_admin_img ?: "'self' data: media.dotaddict.org";
 
 			# Cope with blog post preview (via public URL in iframe)
@@ -137,5 +137,6 @@
 					$directives[] = "report-uri ".DC_ADMIN_URL."csp_report.php";
 				}
-				$headers['csp'] = "Content-Security-Policy: ".implode(" ; ",$directives);
+				$report_only = ($core->blog->settings->system->csp_admin_report_only) ? '-Report-Only' : '';
+				$headers['csp'] = "Content-Security-Policy".$report_only.": ".implode(" ; ",$directives);
 			}
 		}
@@ -211,6 +212,6 @@
 		'<div id="wrapper" class="clearfix">'."\n".
 		'<div class="hidden-if-no-js collapser-box"><a href="#" id="collapser">'.
-		'<img class="collapse-mm" src="images/collapser-hide.png" alt="'.__('Hide main menu').'" />'.
-		'<img class="expand-mm" src="images/collapser-show.png" alt="'.__('Show main menu').'" />'.
+		'<img class="collapse-mm visually-hidden" src="images/collapser-hide.png" alt="'.__('Hide main menu').'" />'.
+		'<img class="expand-mm visually-hidden" src="images/collapser-show.png" alt="'.__('Show main menu').'" />'.
 		'</a></div>'.
 		'<div id="main" role="main">'."\n".
@@ -297,5 +298,5 @@
 	{
 		global $core;
-		$tag = (isset($n['divtag'])&& $n['divtag'])?'div':'p';
+		$tag = (isset($n['divtag']) && $n['divtag']) ? 'div' : 'p';
 		$ts = '';
 		if (!isset($n['with_ts']) || ($n['with_ts'] == true)) {
@@ -441,7 +442,7 @@
 	{
 		global $core;
-		$with_home_link = isset($options['home_link'])?$options['home_link']:true;
-		$hl = isset($options['hl'])?$options['hl']:true;
-		$hl_pos = isset($options['hl_pos'])?$options['hl_pos']:-1;
+		$with_home_link = isset($options['home_link']) ? $options['home_link'] : true;
+		$hl = isset($options['hl']) ? $options['hl'] : true;
+		$hl_pos = isset($options['hl_pos']) ? $options['hl_pos'] : -1;
 		// First item of array elements should be blog's name, System or Plugins
 		$res = '<h2>'.($with_home_link ?
@@ -864,12 +865,5 @@
 	{
 		return
-		self::cssLoad('style/modal/modal.css').
-		self::jsLoad('js/jquery/jquery.modal.js').
-		'<script type="text/javascript">'."\n".
-		"//<![CDATA[\n".
-		self::jsVar('$.modal.prototype.params.loader_img','style/modal/loader.gif').
-		self::jsVar('$.modal.prototype.params.close_img','style/modal/close.png').
-		"\n//]]>\n".
-		"</script>\n";
+		self::jsLoad('js/jquery/jquery.magnific-popup.js');
 	}
 
@@ -978,16 +972,4 @@
 	}
 
-	public static function jsToolMan()
-	{
-		return
-		self::jsLoad('js/tool-man/core.js').
-		self::jsLoad('js/tool-man/events.js').
-		self::jsLoad('js/tool-man/css.js').
-		self::jsLoad('js/tool-man/coordinates.js').
-		self::jsLoad('js/tool-man/drag.js').
-		self::jsLoad('js/tool-man/dragsort.js').
-		self::jsLoad('js/dragsort-tablerows.js');
-	}
-
 	public static function jsMetaEditor()
 	{
@@ -1053,4 +1035,5 @@
 					}
 				}
+				sort($themes);
 			}
 		}
Index: inc/admin/lib.moduleslist.php
===================================================================
--- inc/admin/lib.moduleslist.php	(revision 3327)
+++ inc/admin/lib.moduleslist.php	(revision 3338)
@@ -466,5 +466,7 @@
 				'sshot' 			=> '',
 				'score'				=> 0,
-				'type' 				=> null
+				'type' 				=> null,
+				'require'			=> array(),
+				'settings'			=> array()
 			),
 			# Module's values
@@ -744,5 +746,5 @@
 					if (!empty($more)) {
 						echo
-						'<li>'.implode(' - ', $more).'</li>';
+						'<li>'.implode(' - ',$more).'</li>';
 					}
 
@@ -752,12 +754,17 @@
 
 				$config = !empty($module['root']) && file_exists(path::real($module['root'].'/_config.php'));
-
-				if ($config || !empty($module['section']) || !empty($module['tags'])) {
+				$index = !empty($module['root']) && file_exists(path::real($module['root'].'/index.php'));
+
+				if ($config || $index || !empty($module['section']) || !empty($module['tags']) || !empty($module['settings'])) {
 					echo
 					'<div><ul class="mod-more">';
 
-					if ($config) {
-						echo
-						'<li><a class="module-config" href="'.$this->getURL('module='.$id.'&amp;conf=1').'">'.__('Configure plugin').'</a></li>';
+					if ($index && $module['enabled']) {
+						echo '<li><a href="'.$this->core->adminurl->get('admin.plugin.'.$id).'">'.__('Manage plugin').'</a></li>';
+					}
+
+					$settings = $this->getSettingsUrls($this->core,$id);
+					if (!empty($settings) && $module['enabled']) {
+						echo '<li>'.implode(' - ',$settings).'</li>';
 					}
 
@@ -806,4 +813,78 @@
 
 		return $this;
+	}
+
+	/**
+	 * Get settings URLs if any
+	 *
+	 * @param object $core
+	 * @param string $id module ID
+	 * @param boolean $check check permission
+	 * @param boolean $self include self URL (→ plugin index.php URL)
+	 * @return Array of settings URLs
+	 */
+	public static function getSettingsUrls($core,$id,$check=false,$self=true)
+	{
+		$st = array();
+
+		$config = !empty($core->plugins->moduleRoot($id)) &&
+			file_exists(path::real($core->plugins->moduleRoot($id).'/_config.php'));
+		$settings = $core->plugins->moduleInfo($id,'settings');
+		if ($config || !empty($settings)) {
+			if ($config) {
+				if (!$check ||
+					$core->auth->isSuperAdmin() ||
+					$core->auth->check($core->plugins->moduleInfo($id,'permissions'),$core->blog->id))
+				{
+					$params = array('module' => $id,'conf' => '1');
+					if (!$core->plugins->moduleInfo($id,'standalone_config') && !$self) {
+						$params['redir'] = $core->adminurl->get('admin.plugin.'.$id);
+					}
+					$st[] = '<a class="module-config" href="'.
+						$core->adminurl->get('admin.plugins',$params).
+						'">'.__('Configure plugin').'</a>';
+				}
+			}
+			if (is_array($settings)) {
+				foreach ($settings as $sk => $sv) {
+					switch ($sk) {
+						case 'blog':
+							if (!$check ||
+								$core->auth->isSuperAdmin() ||
+								$core->auth->check('admin',$core->blog->id))
+							{
+								$st[] = '<a class="module-config" href="'.
+									$core->adminurl->get('admin.blog.pref').$sv.
+									'">'.__('Plugin settings (in blog parameters)').'</a>';
+							}
+							break;
+						case 'pref':
+							if (!$check ||
+								$core->auth->isSuperAdmin() ||
+								$core->auth->check('usage,contentadmin',$core->blog->id))
+							{
+								$st[] = '<a class="module-config" href="'.
+									$core->adminurl->get('admin.user.preferences').$sv.
+									'">'.__('Plugin settings (in user preferences)').'</a>';
+							}
+							break;
+						case 'self':
+							if ($self) {
+								if (!$check ||
+									$core->auth->isSuperAdmin() ||
+									$core->auth->check($core->plugins->moduleInfo($id,'permissions'),$core->blog->id))
+								{
+									$st[] = '<a class="module-config" href="'.
+										$core->adminurl->get('admin.plugin.'.$id).$sv.
+										'">'.__('Plugin settings').'</a>';
+								}
+							}
+							break;
+					}
+				}
+			}
+		}
+
+		return $st;
 	}
 
Index: inc/admin/lib.themeconfig.php
===================================================================
--- inc/admin/lib.themeconfig.php	(revision 2660)
+++ inc/admin/lib.themeconfig.php	(revision 3340)
@@ -71,5 +71,5 @@
 
 		// Eval font size in em (assume base font size in pixels equal to 16)
-		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$size,$m)) {
+		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex|rem)?$/',$size,$m)) {
 			if (empty($m[2])) {
 				$m[2] = 'em';
@@ -144,5 +144,5 @@
 	public static function adjustFontSize($s)
 	{
-		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$s,$m)) {
+		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex|rem)?$/',$s,$m)) {
 			if (empty($m[2])) {
 				$m[2] = 'em';
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 3262)
+++ inc/admin/prepend.php	(revision 3375)
@@ -64,5 +64,5 @@
 }
 
-function addMenuItem($section,$desc,$adminurl,$icon,$perm)
+function addMenuItem($section,$desc,$adminurl,$icon,$perm,$pinned=false)
 {
 	global $core,$_menu;
@@ -70,5 +70,5 @@
 	$url = $core->adminurl->get($adminurl);
 	$_menu[$section]->prependItem($desc,$url,$icon,
-		preg_match('/'.preg_quote($url).'(\?.*)?$/',$_SERVER['REQUEST_URI']),$perm,null,null,true);
+		preg_match('/'.preg_quote($url).'(\?.*)?$/',$_SERVER['REQUEST_URI']),$perm,null,null,$pinned);
 }
 
@@ -180,4 +180,5 @@
 
 $core->adminurl->register('admin.posts','posts.php');
+$core->adminurl->register('admin.popup_posts','popup_posts.php');
 $core->adminurl->register('admin.post','post.php');
 $core->adminurl->register('admin.post.media','post_media.php');
@@ -278,5 +279,5 @@
 		$core->auth->check('usage,contentadmin',$core->blog->id));
 	addMenuItem('Blog',__('New entry'),'admin.post','images/menu/edit.png',
-		$core->auth->check('usage,contentadmin',$core->blog->id));
+		$core->auth->check('usage,contentadmin',$core->blog->id),true);
 
 	addMenuItem('System',__('Update'),'admin.update','images/menu/update.png',
Index: inc/core/class.dc.auth.php
===================================================================
--- inc/core/class.dc.auth.php	(revision 3298)
+++ inc/core/class.dc.auth.php	(revision 3340)
@@ -217,5 +217,5 @@
 		# Check here for user and IP address
 		$this->checkUser($_SESSION['sess_user_id']);
-		$uid = $uid ? $uid : http::browserUID(DC_MASTER_KEY);
+		$uid = $uid ?: http::browserUID(DC_MASTER_KEY);
 
 		$user_can_log = $this->userID() !== null && $uid == $_SESSION['sess_browser_uid'];
Index: inc/core/class.dc.blog.php
===================================================================
--- inc/core/class.dc.blog.php	(revision 3263)
+++ inc/core/class.dc.blog.php	(revision 3340)
@@ -1506,5 +1506,5 @@
 		$cur = $this->con->openCursor($this->prefix.'post');
 
-		$cur->cat_id = ($cat_id ? $cat_id : null);
+		$cur->cat_id = ($cat_id ?: null);
 		$cur->post_upddt = date('Y-m-d H:i:s');
 
@@ -1530,5 +1530,5 @@
 		$cur = $this->con->openCursor($this->prefix.'post');
 
-		$cur->cat_id = ($new_cat_id ? $new_cat_id : null);
+		$cur->cat_id = ($new_cat_id ?: null);
 		$cur->post_upddt = date('Y-m-d H:i:s');
 
Index: inc/core/class.dc.media.php
===================================================================
--- inc/core/class.dc.media.php	(revision 3354)
+++ inc/core/class.dc.media.php	(revision 3357)
@@ -393,5 +393,5 @@
 		}
 
-		$media_dir = $this->relpwd ? $this->relpwd : '.';
+		$media_dir = $this->relpwd ?: '.';
 
 		$strReq =
@@ -660,5 +660,5 @@
 	protected function rebuildDB($pwd)
 	{
-		$media_dir = $pwd ? $pwd : '.';
+		$media_dir = $pwd ?: '.';
 
 		$strReq =
@@ -919,5 +919,5 @@
 	public function getDBDirs()
 	{
-		$media_dir = $this->relpwd ? $this->relpwd : '.';
+		$media_dir = $this->relpwd ?: '.';
 
 		$strReq =
Index: inc/core/class.dc.modules.php
===================================================================
--- inc/core/class.dc.modules.php	(revision 3135)
+++ inc/core/class.dc.modules.php	(revision 3333)
@@ -283,5 +283,5 @@
 	(currently available keys : permissions, priority, type)
 	*/
-	public function registerModule($name,$desc,$author,$version, $properties = array())
+	public function registerModule($name,$desc,$author,$version,$properties = array())
 	{
 		if ($this->disabled_mode) {
@@ -320,5 +320,6 @@
 				'type' => null,
 				'enabled' => true,
-				'requires' => array()
+				'requires' => array(),
+				'settings' => array()
 			), $properties
 		);
Index: inc/core/class.dc.trackback.php
===================================================================
--- inc/core/class.dc.trackback.php	(revision 2674)
+++ inc/core/class.dc.trackback.php	(revision 3340)
@@ -171,5 +171,5 @@
 		$comment =
 		"<!-- TB -->\n".
-		'<p><strong>'.($title ? $title : $blog_name)."</strong></p>\n".
+		'<p><strong>'.($title ?: $blog_name)."</strong></p>\n".
 		'<p>'.$excerpt.'</p>';
 
Index: inc/core/class.dc.update.php
===================================================================
--- inc/core/class.dc.update.php	(revision 2566)
+++ inc/core/class.dc.update.php	(revision 3350)
@@ -104,14 +104,35 @@
 		{
 			$path = '';
-			$client = netHttp::initClient($this->url,$path);
-			if ($client !== false) {
-				$client->setTimeout(4);
-				$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
-				$client->get($path);
-
-				$this->readVersion($client->getContent());
-			}
-		}
-		catch (Exception $e) {}
+			$status = 0;
+
+			$http_get = function ($http_url) use (&$status,$path) {
+				$client = netHttp::initClient($http_url,$path);
+				if ($client !== false) {
+					$client->setTimeout(4);
+					$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
+					$client->get($path);
+					$status = (int) $client->getStatus();
+				}
+				return $client;
+			};
+
+			$client = $http_get($this->url);
+			if ($status >= 400) {
+				// If original URL uses HTTPS, try with HTTP
+				$url_parts = parse_url($client->getRequestURL());
+				if (isset($url_parts['scheme']) && $url_parts['scheme'] == 'https') {
+					// Replace https by http in url
+					$this->url = preg_replace('/^https(?=:\/\/)/i','http',$this->url);
+					$client = $http_get($this->url);
+				}
+			}
+			if (!$status || $status >= 400) {
+				throw new Exception();
+			}
+			$this->readVersion($client->getContent());
+		}
+		catch (Exception $e) {
+			return;
+		}
 
 		# Create cache
@@ -202,13 +223,32 @@
 		try
 		{
-			$client = netHttp::initClient($url,$path);
-			$client->setTimeout(4);
-			$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
-			$client->useGzip(false);
-			$client->setPersistReferers(false);
-			$client->setOutput($dest);
-			$client->get($path);
-
-			if ($client->getStatus() != 200) {
+			$path = '';
+			$status = 0;
+
+			$http_get = function ($http_url) use (&$status,$dest,$path) {
+				$client = netHttp::initClient($http_url,$path);
+				if ($client !== false) {
+					$client->setTimeout(4);
+					$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
+					$client->useGzip(false);
+					$client->setPersistReferers(false);
+					$client->setOutput($dest);
+					$client->get($path);
+					$status = (int) $client->getStatus();
+				}
+				return $client;
+			};
+
+			$client = $http_get($url);
+			if ($status >= 400) {
+				// If original URL uses HTTPS, try with HTTP
+				$url_parts = parse_url($client->getRequestURL());
+				if (isset($url_parts['scheme']) && $url_parts['scheme'] == 'https') {
+					// Replace https by http in url
+					$url = preg_replace('/^https(?=:\/\/)/i','http',$url);
+					$client = $http_get($url);
+				}
+			}
+			if ($status != 200) {
 				@unlink($dest);
 				throw new Exception();
Index: inc/dbschema/upgrade.php
===================================================================
--- inc/dbschema/upgrade.php	(revision 3314)
+++ inc/dbschema/upgrade.php	(revision 3373)
@@ -540,5 +540,5 @@
 		}
 
-		if (version_compare($version,'2.10','<='))
+		if (version_compare($version,'2.10','<'))
 		{
 			@unlink(DC_ROOT.'/'.'admin/js/jsUpload/vendor/jquery.ui.widget.js');
@@ -590,4 +590,44 @@
 		}
 
+		if (version_compare($version,'2.11','<'))
+		{
+			// Remove the CSP report file from it's old place
+			@unlink(DC_ROOT.'/admin/csp_report.txt');
+
+			# Some new settings should be initialized, prepare db queries
+			$strReq = 'INSERT INTO '.$core->prefix.'setting'.
+					' (setting_id,setting_ns,setting_value,setting_type,setting_label)'.
+					' VALUES(\'%s\',\'system\',\'%s\',\'%s\',\'%s\')';
+			$core->con->execute(
+				sprintf($strReq,'csp_admin_report_only',false,'boolean','CSP Report only violations (admin)'));
+
+			# A bit of housecleaning for no longer needed files
+			$remfiles = array (
+				'admin/js/jquery/jquery.modal.js',
+				'admin/style/modal/close.png',
+				'admin/style/modal/loader.gif',
+				'admin/style/modal/modal.css',
+				'admin/js/dragsort-tablerows.js',
+				'admin/js/tool-man/cookies.js',
+				'admin/js/tool-man/coordinates.js',
+				'admin/js/tool-man/core.js',
+				'admin/js/tool-man/css.js',
+				'admin/js/tool-man/drag.js',
+				'admin/js/tool-man/dragsort.js',
+				'admin/js/tool-man/events.js'
+			);
+			$remfolders = array (
+				'admin/style/modal',
+				'admin/js/tool-man',
+			);
+
+			foreach ($remfiles as $f) {
+				@unlink(DC_ROOT.'/'.$f);
+			}
+			foreach ($remfolders as $f) {
+				@rmdir(DC_ROOT.'/'.$f);
+			}
+		}
+
 		$core->setVersion('core',DC_VERSION);
 		$core->blogDefaults();
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 3378)
+++ inc/prepend.php	(revision 3380)
@@ -142,5 +142,5 @@
 # Constants
 define('DC_ROOT',path::real(dirname(__FILE__).'/..'));
-define('DC_VERSION','2.10.3');
+define('DC_VERSION','2.11-dev');
 define('DC_DIGESTS',dirname(__FILE__).'/digests');
 define('DC_L10N_ROOT',dirname(__FILE__).'/../locales');
Index: inc/public/class.dc.template.php
===================================================================
--- inc/public/class.dc.template.php	(revision 3259)
+++ inc/public/class.dc.template.php	(revision 3366)
@@ -1267,4 +1267,5 @@
 	type	CDATA	#IMPLIED	-- post has a given type (default: "post")
 	category	CDATA	#IMPLIED	-- post has a given category
+	categories	CDATA	#IMPLIED	-- post has a one of given categories
 	first	(0|1)	#IMPLIED	-- post is the first post from list (value : 1) or not (value : 0)
 	odd	(0|1)	#IMPLIED	-- post is in an odd position (value : 1) or not (value : 0)
@@ -1317,4 +1318,18 @@
 		}
 
+		if (isset($attr['categories'])) {
+			$categories = explode(',',addslashes(trim($attr['categories'])));
+			if (is_array($categories) && count($categories)) {
+				foreach ($categories as $category) {
+					if (substr($category,0,1) == '!') {
+						$category = substr($category,1);
+						$if[] = '($_ctx->posts->cat_url != "'.$category.'")';
+					} else {
+						$if[] = '($_ctx->posts->cat_url == "'.$category.'")';
+					}
+				}
+			}
+		}
+
 		if (isset($attr['first'])) {
 			$sign = (boolean) $attr['first'] ? '=' : '!';
Index: inc/public/default-templates/currywurst/404.html
===================================================================
--- inc/public/default-templates/currywurst/404.html	(revision 2782)
+++ inc/public/default-templates/currywurst/404.html	(revision 3371)
@@ -7,9 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/currywurst/__layout.html
===================================================================
--- inc/public/default-templates/currywurst/__layout.html	(revision 3226)
+++ inc/public/default-templates/currywurst/__layout.html	(revision 3371)
@@ -20,18 +20,4 @@
 			</tpl:Block>	<!-- meta-entry -->
 		</tpl:Block>	<!-- head-meta -->
-
-		<tpl:Block name="head-dc">
-			<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-			<meta property="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-			<meta property="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-			<meta property="dc.type" content="text" />
-			<meta property="dc.format" content="text/html" />
-			<tpl:Block name="dc-entry">
-				<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-				<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-				<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-			</tpl:Block>	<!-- dc-entry -->
-		</tpl:Block>	<!-- head-dc -->
 
 		<tpl:Block name="head-linkrel">
Index: inc/public/default-templates/currywurst/archive.html
===================================================================
--- inc/public/default-templates/currywurst/archive.html	(revision 3226)
+++ inc/public/default-templates/currywurst/archive.html	(revision 3371)
@@ -3,11 +3,4 @@
 <tpl:Block name="head-title">
 	<title>{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}</title>
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/currywurst/archive_month.html
===================================================================
--- inc/public/default-templates/currywurst/archive_month.html	(revision 2781)
+++ inc/public/default-templates/currywurst/archive_month.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:ArchiveDate}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/currywurst/category.html
===================================================================
--- inc/public/default-templates/currywurst/category.html	(revision 2782)
+++ inc/public/default-templates/currywurst/category.html	(revision 3371)
@@ -13,11 +13,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryDescription remove_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/currywurst/post.html
===================================================================
--- inc/public/default-templates/currywurst/post.html	(revision 3174)
+++ inc/public/default-templates/currywurst/post.html	(revision 3371)
@@ -9,12 +9,4 @@
 	<meta name="author" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
 	<meta name="date" content="{{tpl:EntryDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" content="{{tpl:EntryTitle encode_html="1"}}" />
-	<meta property="dc.description" lang="{{tpl:EntryLang}}" content="{{tpl:EntryContent full="1" encode_html="1" remove_html="1" cut_string="180"}}" />
-	<meta property="dc.creator" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:EntryLang}}" />
-	<meta property="dc.date" content="{{tpl:EntryDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/currywurst/search.html
===================================================================
--- inc/public/default-templates/currywurst/search.html	(revision 3226)
+++ inc/public/default-templates/currywurst/search.html	(revision 3371)
@@ -8,11 +8,4 @@
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
 </tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>	<!-- dc-title-head -->
 
 <tpl:Block name="head-linkrel">
Index: inc/public/default-templates/dotty/404.html
===================================================================
--- inc/public/default-templates/dotty/404.html	(revision 3249)
+++ inc/public/default-templates/dotty/404.html	(revision 3371)
@@ -7,9 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/dotty/__layout.html
===================================================================
--- inc/public/default-templates/dotty/__layout.html	(revision 3250)
+++ inc/public/default-templates/dotty/__layout.html	(revision 3371)
@@ -20,17 +20,4 @@
 			</tpl:Block>	<!-- meta-entry -->
 		</tpl:Block>	<!-- head-meta -->
-
-		<tpl:Block name="head-dc">
-			<meta property="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-			<meta property="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-			<meta property="dc.type" content="text" />
-			<meta property="dc.format" content="text/html" />
-			<tpl:Block name="dc-entry">
-				<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-				<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-				<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-			</tpl:Block>	<!-- dc-entry -->
-		</tpl:Block>	<!-- head-dc -->
 
 		<tpl:Block name="head-linkrel">
Index: inc/public/default-templates/dotty/_entry-content.html
===================================================================
--- inc/public/default-templates/dotty/_entry-content.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-content.html	(revision 3331)
@@ -6,5 +6,5 @@
 			<p class="post-info">
 				<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-				<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>. </span>
+				<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>. </span>
 				<span class="post-permalink"><a href="{{tpl:EntryURL}}">{{tpl:lang Permalink}}</a></span>
 				<tpl:EntryIf has_category="1">
Index: inc/public/default-templates/dotty/_entry-full.html
===================================================================
--- inc/public/default-templates/dotty/_entry-full.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-full.html	(revision 3331)
@@ -25,5 +25,5 @@
 		<p class="post-info">
 			<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>.</span>
+			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>.</span>
 			<tpl:EntryIf has_category="1">
 			<span class="post-cat"><tpl:EntryCategoriesBreadcrumb><a
Index: inc/public/default-templates/dotty/_entry-short.html
===================================================================
--- inc/public/default-templates/dotty/_entry-short.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-short.html	(revision 3331)
@@ -44,5 +44,5 @@
 		<p class="post-info">
 			<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>.</span>
+			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>.</span>
 			<tpl:EntryIf has_category="1">
 			<span class="post-cat"><tpl:EntryCategoriesBreadcrumb><a
Index: inc/public/default-templates/dotty/_entry-title.html
===================================================================
--- inc/public/default-templates/dotty/_entry-title.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-title.html	(revision 3331)
@@ -19,5 +19,5 @@
 		<p class="post-info">
 			<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>. </span>
+			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>. </span>
 			<tpl:EntryIf has_category="1">
 				<tpl:EntryCategoriesBreadcrumb>
Index: inc/public/default-templates/dotty/archive.html
===================================================================
--- inc/public/default-templates/dotty/archive.html	(revision 3289)
+++ inc/public/default-templates/dotty/archive.html	(revision 3371)
@@ -3,11 +3,4 @@
 <tpl:Block name="head-title">
 	<title>{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}</title>
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/dotty/archive_month.html
===================================================================
--- inc/public/default-templates/dotty/archive_month.html	(revision 3289)
+++ inc/public/default-templates/dotty/archive_month.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:ArchiveDate}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/dotty/category.html
===================================================================
--- inc/public/default-templates/dotty/category.html	(revision 3249)
+++ inc/public/default-templates/dotty/category.html	(revision 3371)
@@ -13,11 +13,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryDescription remove_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/dotty/post.html
===================================================================
--- inc/public/default-templates/dotty/post.html	(revision 3249)
+++ inc/public/default-templates/dotty/post.html	(revision 3371)
@@ -9,12 +9,4 @@
 	<meta name="author" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
 	<meta name="date" content="{{tpl:EntryDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" content="{{tpl:EntryTitle encode_html="1"}}" />
-	<meta property="dc.description" lang="{{tpl:EntryLang}}" content="{{tpl:EntryContent full="1" encode_html="1" remove_html="1" cut_string="180"}}" />
-	<meta property="dc.creator" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:EntryLang}}" />
-	<meta property="dc.date" content="{{tpl:EntryDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/dotty/search.html
===================================================================
--- inc/public/default-templates/dotty/search.html	(revision 3249)
+++ inc/public/default-templates/dotty/search.html	(revision 3371)
@@ -8,11 +8,4 @@
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
 </tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>	<!-- dc-title-head -->
 
 <tpl:Block name="head-linkrel">
Index: inc/public/default-templates/mustek/404.html
===================================================================
--- inc/public/default-templates/mustek/404.html	(revision 3017)
+++ inc/public/default-templates/mustek/404.html	(revision 3371)
@@ -7,9 +7,4 @@
 <tpl:Block name="meta-robots">
   <meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-  <meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}" />
-  <meta property="dc.language" content="{{tpl:BlogLanguage}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/mustek/__layout.html
===================================================================
--- inc/public/default-templates/mustek/__layout.html	(revision 3226)
+++ inc/public/default-templates/mustek/__layout.html	(revision 3371)
@@ -20,18 +20,4 @@
 			</tpl:Block>	<!-- meta-entry -->
 		</tpl:Block>	<!-- head-meta -->
-
-		<tpl:Block name="head-dc">
-			<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-			<meta property="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-			<meta property="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-			<meta property="dc.type" content="text" />
-			<meta property="dc.format" content="text/html" />
-			<tpl:Block name="dc-entry">
-				<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-				<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-				<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-				<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-			</tpl:Block>	<!-- dc-entry -->
-		</tpl:Block>	<!-- head-dc -->
 
 		<tpl:Block name="head-linkrel">
Index: inc/public/default-templates/mustek/archive.html
===================================================================
--- inc/public/default-templates/mustek/archive.html	(revision 3017)
+++ inc/public/default-templates/mustek/archive.html	(revision 3371)
@@ -3,10 +3,4 @@
 <tpl:Block name="head-title">
 	<title>{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}</title>
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/mustek/archive_month.html
===================================================================
--- inc/public/default-templates/mustek/archive_month.html	(revision 3017)
+++ inc/public/default-templates/mustek/archive_month.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:ArchiveDate}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/mustek/category.html
===================================================================
--- inc/public/default-templates/mustek/category.html	(revision 3017)
+++ inc/public/default-templates/mustek/category.html	(revision 3371)
@@ -13,11 +13,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryDescription remove_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/mustek/post.html
===================================================================
--- inc/public/default-templates/mustek/post.html	(revision 3167)
+++ inc/public/default-templates/mustek/post.html	(revision 3371)
@@ -9,12 +9,4 @@
 	<meta name="author" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
 	<meta name="date" content="{{tpl:EntryDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" content="{{tpl:EntryTitle encode_html="1"}}" />
-	<meta property="dc.description" lang="{{tpl:EntryLang}}" content="{{tpl:EntryContent full="1" encode_html="1" remove_html="1" cut_string="180"}}" />
-	<meta property="dc.creator" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:EntryLang}}" />
-	<meta property="dc.date" content="{{tpl:EntryDate iso8601="1"}}" />
 </tpl:Block>
 
Index: inc/public/default-templates/mustek/search.html
===================================================================
--- inc/public/default-templates/mustek/search.html	(revision 3017)
+++ inc/public/default-templates/mustek/search.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX,NOARCHIVE"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 3275)
+++ locales/fr/main.po	(revision 3342)
@@ -908,4 +908,7 @@
 msgstr "Titre de l'entrée"
 
+msgid "Entry date"
+msgstr "Date de l'entrée"
+
 msgid "Author"
 msgstr "Auteur"
@@ -2228,4 +2231,13 @@
 msgstr "Afficher la barre d'outil des éditeurs en bas de la zone de saisie (si possible)"
 
+msgid "Use xhtml editor for:"
+msgstr "Utiliser l'éditeur xhtml pour :"
+
+msgid "Blog description (in blog parameters)"
+msgstr "La description du blog (paramètres du blog)"
+
+msgid "Category description"
+msgstr "La description des catégories"
+
 msgid "Other options"
 msgstr "Autres options"
@@ -2967,6 +2979,18 @@
 msgstr "Plugin de la distribution officielle"
 
+msgid "Manage plugin"
+msgstr "Gérer le plugin"
+
 msgid "Configure plugin"
 msgstr "Configurer le plugin"
+
+msgid "Plugin settings (in blog parameters)"
+msgstr "Réglages du plugin (paramètres du blog)"
+
+msgid "Plugin settings (in user preferences)"
+msgstr "Réglages du plugin (mes préférences)"
+
+msgid "Plugin settings"
+msgstr "Réglages du plugin"
 
 msgid "No plugins matched your search."
Index: locales/fr/plugins.po
===================================================================
--- locales/fr/plugins.po	(revision 3272)
+++ locales/fr/plugins.po	(revision 3330)
@@ -1300,4 +1300,16 @@
 msgstr "La suppression du répertoire du cache des templates peut se révéler nécessaire lors de modifications dans les fichiers .html ou .css d'un thème (voire lors d'un changement de thème ou de mise à jour de plugin). Attention : chez certains hébergeurs (Free par exemple), le cache du répertoire des templates ne peut pas être vidé grâce à l'extension Maintenance, il faut supprimer le répertoire <strong>cbtpl</strong> situé dans le répertoire cache (dotclear/cache par défaut) avec un logiciel FTP."
 
+msgid "Delete the Content-Security-Policy report file"
+msgstr "Supprimer le rapport de violation des Content-Security-Policy"
+
+msgid "Content-Security-Policy report file has been deleted."
+msgstr "Le rapport de violation des Content-Security-Policy a été supprimé."
+
+msgid "Failed to delete the Content-Security-Policy report file."
+msgstr "Impossible de supprimer le rapport de violation des Content-Security-Policy."
+
+msgid "Remove the Content-Security-Policy report file."
+msgstr "Supprime le rapport de violation des Content-Security-Policy."
+
 msgid "Count again comments and trackbacks"
 msgstr "Recompter les commentaires et rétroliens"
@@ -2428,2 +2440,5 @@
 msgid "Search:"
 msgstr "Recherche :"
+
+msgid "Widget's textareas"
+msgstr "Les zones de texte multilignes des widgets"
Index: locales/fr/public.po
===================================================================
--- locales/fr/public.po	(revision 3272)
+++ locales/fr/public.po	(revision 3321)
@@ -265,2 +265,11 @@
 msgid "By tag"
 msgstr "Par tag"
+
+msgid "Blog menu"
+msgstr "Menu"
+
+msgid "Etra menu"
+msgstr "Extra"
+
+msgid "Blog info"
+msgstr "Informations"
Index: plugins/antispam/_admin.php
===================================================================
--- plugins/antispam/_admin.php	(revision 2849)
+++ plugins/antispam/_admin.php	(revision 3333)
@@ -91,5 +91,5 @@
 		$ttl = $settings->antispam->antispam_moderation_ttl;
 		echo
-		'<div class="fieldset"><h4>Antispam</h4>'.
+		'<div class="fieldset"><h4 id="antispam_params">Antispam</h4>'.
 		'<p><label for="antispam_moderation_ttl" class="classic">'.__('Delete junk comments older than').' '.
 		form::field('antispam_moderation_ttl', 3, 3, $ttl).
Index: plugins/antispam/_define.php
===================================================================
--- plugins/antispam/_define.php	(revision 2566)
+++ plugins/antispam/_define.php	(revision 3333)
@@ -19,5 +19,9 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'priority' =>		10
+		'priority' =>		10,
+		'settings'	=>		array(
+								'self' => '',
+								'blog' => '#params.antispam_params'
+							)
 	)
 );
Index: plugins/antispam/inc/class.dc.spamfilter.php
===================================================================
--- plugins/antispam/inc/class.dc.spamfilter.php	(revision 2831)
+++ plugins/antispam/inc/class.dc.spamfilter.php	(revision 3375)
@@ -40,5 +40,5 @@
 		}
 
-        $this->gui_url = 'plugin.php?p=antispam&f='.get_class($this);
+        $this->gui_url = $core->adminurl->get('admin.plugin.antispam',array('f' => get_class($this)),'&');
 	}
 
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 2849)
+++ plugins/blowupConfig/index.php	(revision 3340)
@@ -318,5 +318,5 @@
 	'<h5 class="pretty-title">'.__('Top image').'</h5>'.
 	'<p class="field"><label for="top_image">'.__('Top image').'</label> '.
-	form::combo('top_image',$top_images,($blowup_user['top_image'] ? $blowup_user['top_image'] : 'default')).'</p>'.
+	form::combo('top_image',$top_images,($blowup_user['top_image'] ?: 'default')).'</p>'.
 	'<p>'.__('Choose "Custom..." to upload your own image.').'</p>'.
 
Index: plugins/breadcrumb/_admin.php
===================================================================
--- plugins/breadcrumb/_admin.php	(revision 3009)
+++ plugins/breadcrumb/_admin.php	(revision 3333)
@@ -25,5 +25,5 @@
 		$settings->addNameSpace('breadcrumb');
 		echo
-		'<div class="fieldset"><h4>'.__('Breadcrumb').'</h4>'.
+		'<div class="fieldset"><h4 id="breadcrumb_params">'.__('Breadcrumb').'</h4>'.
 		'<p><label class="classic">'.
 		form::checkbox('breadcrumb_enabled','1',$settings->breadcrumb->breadcrumb_enabled).
Index: plugins/breadcrumb/_define.php
===================================================================
--- plugins/breadcrumb/_define.php	(revision 3085)
+++ plugins/breadcrumb/_define.php	(revision 3333)
@@ -20,5 +20,8 @@
 	array(
 		/* Permissions */	'permissions' =>	'usage,contentadmin',
-		/* Type */			'type' =>			'plugin'
+		/* Type */			'type' =>			'plugin',
+		'settings'	=>		array(
+								'blog' => '#params.breadcrumb_params'
+							)
 	)
 );
Index: plugins/dcCKEditor/_define.php
===================================================================
--- plugins/dcCKEditor/_define.php	(revision 3090)
+++ plugins/dcCKEditor/_define.php	(revision 3333)
@@ -19,5 +19,9 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => '',
+								'pref' => '#user-options.user_options_edition'
+							)
 	)
 );
Index: plugins/dcCKEditor/_post_config.php
===================================================================
--- plugins/dcCKEditor/_post_config.php	(revision 3090)
+++ plugins/dcCKEditor/_post_config.php	(revision 3367)
@@ -12,5 +12,7 @@
 
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
+
 header('Content-type: text/javascript');
+
 if (!empty($_GET['context'])) {
 	$context = $_GET['context'];
@@ -18,8 +20,11 @@
 	$context = '';
 }
+
 $__extraPlugins = new ArrayObject();
 $core->callBehavior('ckeditorExtraPlugins',$__extraPlugins,$context);
 $extraPlugins = $__extraPlugins->getArrayCopy();
-?>
+
+?>
+
 (function($) {
 	$.toolbarPopup = function toolbarPopup(url) {
@@ -59,5 +64,5 @@
 		return $.active_editor;
 	}
-	chainHandler(window, 'onbeforeunload', function(e) {
+	chainHandler(window,'onbeforeunload',function(e) {
 		if (e == undefined && window.event) {
 			e = window.event;
@@ -65,5 +70,5 @@
 
 		var editor = CKEDITOR.instances[$.getEditorName()];
-		if (editor!==undefined && !confirmClosePage.formSubmit && editor.checkDirty()) {
+		if (editor !== undefined && !confirmClosePage.formSubmit && editor.checkDirty()) {
 			e.returnValue = confirmClosePage.prompt;
 			return confirmClosePage.prompt;
@@ -79,16 +84,18 @@
 
 	CKEDITOR.timestamp = '';
-<?php if (!isset($dcckeditor_disable_native_spellchecker) || $dcckeditor_disable_native_spellchecker):?>
+
+<?php if (!isset($dcckeditor_disable_native_spellchecker) || $dcckeditor_disable_native_spellchecker): ?>
 	CKEDITOR.config.disableNativeSpellChecker = true;
-<?php else:?>
+<?php else: ?>
 	CKEDITOR.config.disableNativeSpellChecker = false;
-<?php endif;?>
+<?php endif; ?>
+
 	CKEDITOR.config.skin = 'dotclear,'+dotclear.dcckeditor_plugin_url+'/js/ckeditor-skins/dotclear/';
 	CKEDITOR.config.baseHref = dotclear.base_url;
-	CKEDITOR.config.height = '<?php echo $core->auth->getOption('edit_size') * 14;?>px';
-
-<?php if (!empty($dcckeditor_cancollapse_button)):?>
+	CKEDITOR.config.height = '<?php echo $core->auth->getOption('edit_size') * 14; ?>px';
+
+<?php if (!empty($dcckeditor_cancollapse_button)): ?>
 	CKEDITOR.config.toolbarCanCollapse = true;
-<?php endif;?>
+<?php endif; ?>
 
 	CKEDITOR.plugins.addExternal('entrylink',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/entrylink/');
@@ -96,36 +103,48 @@
 	CKEDITOR.plugins.addExternal('media',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/media/');
 	CKEDITOR.plugins.addExternal('img',dotclear.dcckeditor_plugin_url+'/js/ckeditor-plugins/img/');
-	<?php if (!empty($dcckeditor_textcolor_button) || !empty($dcckeditor_background_textcolor_button)):?>
+
+<?php if (!empty($dcckeditor_textcolor_button) || !empty($dcckeditor_background_textcolor_button)): ?>
 	// button add "More Colors..." can be added if colordialog plugin is enabled
 	CKEDITOR.config.colorButton_enableMore = true;
-	<?php endif;?>
-
-<?php if (!empty($extraPlugins) && count($extraPlugins)>0) {
-	foreach ($extraPlugins as $plugin) {
-		printf("\tCKEDITOR.plugins.addExternal('%s','%s');\n", $plugin['name'], $plugin['url']);
-	}
-}
-?>
-	if (dotclear.ckeditor_context===undefined || dotclear.ckeditor_tags_context[dotclear.ckeditor_context]===undefined) {
+<?php endif; ?>
+
+<?php
+	if (!empty($extraPlugins) && count($extraPlugins) > 0) {
+		foreach ($extraPlugins as $plugin) {
+			printf("\tCKEDITOR.plugins.addExternal('%s','%s');\n",$plugin['name'],$plugin['url']);
+		}
+	}
+?>
+	if (dotclear.ckeditor_context === undefined || dotclear.ckeditor_tags_context[dotclear.ckeditor_context] === undefined) {
 		return;
 	}
 	$(dotclear.ckeditor_tags_context[dotclear.ckeditor_context].join(',')).ckeditor({
+
 <?php
-$defautExtraPlugins = 'entrylink,dclink,media,justify,colorbutton,format,img';
-if (!empty($extraPlugins) && count($extraPlugins)>0) {
-	foreach ($extraPlugins as $plugin) {
-		$defautExtraPlugins .= ','. $plugin['name'];
-	}
-}
-?>
-		extraPlugins: '<?php echo $defautExtraPlugins;?>',
-
-		<?php if (!empty($dcckeditor_format_select)):?>
+	$defautExtraPlugins = 'entrylink,dclink,media,justify,colorbutton,format,img';
+	if (!empty($extraPlugins) && count($extraPlugins)>0) {
+		foreach ($extraPlugins as $plugin) {
+			$defautExtraPlugins .= ','. $plugin['name'];
+		}
+	}
+?>
+		extraPlugins: '<?php echo $defautExtraPlugins; ?>',
+
+		keystrokes: [
+			[ CKEDITOR.CTRL + (CKEDITOR.env.mac ? CKEDITOR.ALT : CKEDITOR.SHIFT) +
+				dotclear.msg.link_accesskey.toUpperCase().charCodeAt(0),'dcLinkCommand' ],    // Ctrl+Alt+l
+			[ CKEDITOR.CTRL + (CKEDITOR.env.mac ? CKEDITOR.ALT : CKEDITOR.SHIFT) +
+				dotclear.msg.img_select_accesskey.toUpperCase().charCodeAt(0),'mediaCommand' ],    // Ctrl+Alt+m
+		],
+
+<?php if (!empty($dcckeditor_format_select)): ?>
 		// format tags
-<?php if (!empty($dcckeditor_format_tags)):?>
-		format_tags: '<?php echo $dcckeditor_format_tags;?>',
-<?php else:?>
+
+	<?php if (!empty($dcckeditor_format_tags)): ?>
+		format_tags: '<?php echo $dcckeditor_format_tags; ?>',
+	<?php else: ?>
 		format_tags: 'p;h1;h2;h3;h4;h5;h6;pre;address',
-<?php endif;?>
+	<?php endif; ?>
+
 		// following definition are needed to be specialized
 		format_p: { element: 'p' },
@@ -138,5 +157,5 @@
 		format_pre: { element: 'pre' },
 		format_address: { element: 'address' },
-		<?php endif;?>
+<?php endif; ?>
 
 		entities: false,
@@ -147,33 +166,40 @@
 				name: 'basicstyles',
 				items: [
-<?php if (!empty($dcckeditor_format_select)):?>
+
+<?php if (!empty($dcckeditor_format_select)): ?>
 					'Format',
 <?php endif;?>
+
 					'Bold','Italic','Underline','Strike','Subscript','Superscript','Code','Blockquote',
 
-<?php if (!empty($dcckeditor_list_buttons)):?>
-					'NumberedList', 'BulletedList',
-<?php endif;?>
+<?php if (!empty($dcckeditor_list_buttons)): ?>
+					'NumberedList','BulletedList',
+<?php endif; ?>
+
 					'RemoveFormat'
 				]
 			},
-<?php if (!empty($dcckeditor_clipboard_buttons)):?>
+
+<?php if (!empty($dcckeditor_clipboard_buttons)): ?>
 			{
 				name: 'clipoard',
 				items: ['Cut','Copy','Paste','PasteText','PasteFromWord']
 			},
-<?php endif;?>
-<?php if (!empty($dcckeditor_alignment_buttons)):?>
+<?php endif; ?>
+
+<?php if (!empty($dcckeditor_alignment_buttons)): ?>
 			{
 				name: 'paragraph',
-				items: ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']
-			},
-<?php endif;?>
-<?php if (!empty($dcckeditor_table_button)):?>
+				items: ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock']
+			},
+<?php endif; ?>
+
+<?php if (!empty($dcckeditor_table_button)): ?>
 			{
 				name: 'table',
 				items: ['Table']
 			},
-<?php endif;?>
+<?php endif; ?>
+
 			{
 				name: 'custom',
@@ -181,10 +207,12 @@
 					'EntryLink','dcLink','Media','img','-',
 					'Source'
-<?php if (!empty($dcckeditor_textcolor_button)):?>
+
+<?php if (!empty($dcckeditor_textcolor_button)): ?>
 					,'TextColor'
-<?php endif;?>
-<?php if (!empty($dcckeditor_background_textcolor_button)):?>
+<?php endif; ?>
+
+<?php if (!empty($dcckeditor_background_textcolor_button)): ?>
 					,'BGColor'
-<?php endif;?>
+<?php endif; ?>
 				]
 			},
@@ -195,19 +223,37 @@
 				]
 			},
-			<?php // add extra buttons comming from dotclear plugins
-			if (!empty($extraPlugins) && count($extraPlugins)>0) {
-				$extraPlugins_str = "{name: 'extra', items: [%s]},\n";
-				$extra_icons = '';
-				foreach ($extraPlugins as $plugin) {
-					$extra_icons .= sprintf("'%s',", $plugin['button']);
-				}
-				printf($extraPlugins_str, $extra_icons);
+
+<?php // add extra buttons comming from dotclear plugins
+	if (!empty($extraPlugins) && count($extraPlugins)>0) {
+		$extraPlugins_str = "{name: 'extra', items: [%s]},\n";
+		$extra_icons = '';
+		foreach ($extraPlugins as $plugin) {
+			$extra_icons .= sprintf("'%s',",$plugin['button']);
+		}
+		printf($extraPlugins_str,$extra_icons);
+	}
+?>
+		]
+	});
+
+	CKEDITOR.on('instanceLoaded',function(e) {
+
+		// Retrieve textarea element of the instance, then its line-height (in px) and rows values,
+		// then apply line-height * rows (min = 6) to the inner height of the instance.
+
+		var ta = document.getElementById(e.editor.name);
+		if (ta !== undefined) {
+			var ta_rows = ta.rows;
+			var ta_line_height = parseFloat(window.getComputedStyle(ta,null).getPropertyValue('line-height'));
+			if (ta_rows > 0 && ta_line_height > 0) {
+				var ta_height = String(Math.max(ta_rows,6) * ta_line_height);
+				e.editor.resize('100%',ta_height,true);
 			}
-			?>
-		]
-	});
-
-	CKEDITOR.on('instanceReady', function(e) {
-		if ($('label[for="post_excerpt"] a img').attr('src')==dotclear.img_minus_src) {
+		}
+	});
+
+	CKEDITOR.on('instanceReady',function(e) {
+
+		if ($('label[for="post_excerpt"] a img').attr('src') == dotclear.img_minus_src) {
 			$('#cke_post_excerpt').removeClass('hide');
 		} else {
@@ -222,5 +268,5 @@
 	// @TODO: find a better way to retrieve active editor
 	for (var id in CKEDITOR.instances) {
-		CKEDITOR.instances[id].on('focus', function(e) {
+		CKEDITOR.instances[id].on('focus',function(e) {
 			$.active_editor = e.editor.name;
 		});
Index: plugins/dcCKEditor/inc/dc.ckeditor.behaviors.php
===================================================================
--- plugins/dcCKEditor/inc/dc.ckeditor.behaviors.php	(revision 3024)
+++ plugins/dcCKEditor/inc/dc.ckeditor.behaviors.php	(revision 3362)
@@ -49,6 +49,8 @@
              };'.
             "dotclear.msg.img_select_title = '".html::escapeJS(__('Media chooser'))."'; ".
+            "dotclear.msg.img_select_accesskey = '".html::escapeJS(__('m'))."'; ".
             "dotclear.msg.post_link_title = '".html::escapeJS(__('Link to an entry'))."'; ".
             "dotclear.msg.link_title = '".html::escapeJS(__('Link'))."'; ".
+            "dotclear.msg.link_accesskey = '".html::escapeJS(__('l'))."'; ".
             "dotclear.msg.img_title = '".html::escapeJS(__('External image'))."'; ".
             "dotclear.msg.url_cannot_be_empty = '".html::escapeJS(__('URL field cannot be empty.'))."';".
Index: plugins/dcCKEditor/js/ckeditor/CHANGES.md
===================================================================
--- plugins/dcCKEditor/js/ckeditor/CHANGES.md	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/CHANGES.md	(revision 3339)
@@ -2,20 +2,27 @@
 ====================
 
-## CKEditor 4.6
-
-New Features:
-
-* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin.
-* [#13794](http://dev.ckeditor.com/ticket/13794): [Upload Image](http://ckeditor.com/addon/uploadimage) Use `uploaded.width/height` if set.
-* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper that would identify the widget type.
-* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin.
-* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Thanks to [sbusse](https://github.com/sbusse)!
-* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property.
-
-Fixed Issues:
-
-* [#14672](http://dev.ckeditor.com/ticket/14672): Fixed: Balloonpanel not blurred on close.
-* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to wrapper rather than widget element.
-* [#13519](http://dev.ckeditor.com/ticket/13519): Response should be more flexible.
+## CKEditor 4.5.11
+
+**Security Updates:**
+
+* [Severity: minor] Fixed the target="_blank" vulnerability reported by James Gaskell.
+
+	Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.
+
+  An upgrade is recommended.
+
+New Features:
+
+* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute.
+* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!
+
+Fixed Issues:
+
+* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.
+* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.
+* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons.
+* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.
+* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).
+* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method.
 
 ## CKEditor 4.5.10
@@ -23,11 +30,13 @@
 Fixed Issues:
 
-* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for image and placeholder widgets.
-* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting widget.
+* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.
+* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.
+* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!
+* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
+* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.
+* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.
 * [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.
-* [#14252](http://dev.ckeditor.com/ticket/14252): Fixed: Styles dropdown doesn't always reflect the current style of the text line in Internet Explorer.
-* [#13929](http://dev.ckeditor.com/ticket/13929): Fixed: Errors in console on IE11 with compatibility mode in manual test for [#13867](http://dev.ckeditor.com/ticket/13867).
-* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` not used in browsers it could have been when loading scripts dynamically.
-* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
+* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.
+* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.
 
 ## CKEditor 4.5.9
@@ -44,4 +53,5 @@
 * [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
 * [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!
+* [#14312](http://dev.ckeditor.com/ticket/14312): [IE] Fixed: Artifact is visible after pasting any text.
 
 ## CKEditor 4.5.8
Index: plugins/dcCKEditor/js/ckeditor/ckeditor.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/ckeditor.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/ckeditor.js	(revision 3339)
@@ -47,5 +47,5 @@
 			// for each release and generated by the releaser.
 			// (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
-			timestamp: 'G6IA',
+			timestamp: 'G889',
 
 			/**
@@ -54,5 +54,5 @@
 			 *		alert( CKEDITOR.version ); // e.g. 'CKEditor 3.4.1'
 			 */
-			version: '4.6.0',
+			version: '4.5.11',
 
 			/**
@@ -2327,8 +2327,8 @@
 
 		/**
-		 * Normalizes hexadecimal notation so that color string is always 6 characters long and lowercased.
-		 *
-		 * @param {String} styleText The style data (or just a string containing HEX colors) to be converted.
-		 * @returns {String} The style data with HEX colors normalized.
+		 * Normalizes hexadecimal notation so that the color string is always 6 characters long and lowercase.
+		 *
+		 * @param {String} styleText The style data (or just a string containing hex colors) to be converted.
+		 * @returns {String} The style data with hex colors normalized.
 		 */
 		normalizeHex: function( styleText ) {
@@ -2374,8 +2374,7 @@
 				if ( normalize ) {
 					name = name.toLowerCase();
-					// Normalize font-family property, ignore quotes and being case insensitive. (#7322)
-					// http://www.w3.org/TR/css3-fonts/#font-family-the-font-family-property
+					// Drop extra whitespacing from font-family.
 					if ( name == 'font-family' )
-						value = value.toLowerCase().replace( /["']/g, '' ).replace( /\s*,\s*/g, ',' );
+						value = value.replace( /\s*,\s*/g, ',' );
 					value = CKEDITOR.tools.trim( value );
 				}
@@ -2720,4 +2719,30 @@
 
 			return token;
+		},
+
+		/**
+		 * Returns an escaped CSS selector. `CSS.escape()` is used if defined, leading digit is escaped otherwise.
+		 *
+		 * @since 4.5.10
+		 * @param {String} selector A CSS selector to escape.
+		 * @returns {String} An escaped selector.
+		 */
+		escapeCss: function( selector ) {
+			// Invalid input.
+			if ( !selector ) {
+				return '';
+			}
+
+			// CSS.escape() can be used.
+			if ( window.CSS && CSS.escape ) {
+				return CSS.escape( selector );
+			}
+
+			// Simple leading digit escape.
+			if ( !isNaN( parseInt( selector.charAt( 0 ), 10 ) ) ) {
+				return '\\3' + selector.charAt( 0 ) + ' ' + selector.substring( 1, selector.length );
+			}
+
+			return selector;
 		}
 	};
@@ -6441,5 +6466,6 @@
 				quirks = doc.$.compatMode == 'BackCompat';
 
-			if ( document.documentElement.getBoundingClientRect ) {
+			if ( document.documentElement.getBoundingClientRect &&
+				( CKEDITOR.env.ie ? CKEDITOR.env.version !== 8 : true ) ) {
 				var box = this.$.getBoundingClientRect(),
 					$doc = doc.$,
@@ -6625,4 +6651,14 @@
 			}
 
+			// [WebKit] Reset stored scrollTop value to not break scrollIntoView() method flow.
+			// Scrolling breaks when range.select() is used right after element.scrollIntoView(). (#14659)
+			if ( CKEDITOR.env.webkit ) {
+				var editor = this.getEditor( false );
+
+				if ( editor ) {
+					editor._.previousScrollTop = null;
+				}
+			}
+
 			var win = parent.getWindow();
 
@@ -6904,9 +6940,16 @@
 		 *		alert( element.getEditor().name ); // 'editor1'
 		 *
+		 * By default this method considers only original DOM elements upon which the editor
+		 * was created. Setting `optimized` parameter to `false` will consider editor editable
+		 * and its children.
+		 *
+		 * @param {Boolean} [optimized=true] If set to `false` it will scan every editor editable.
 		 * @returns {CKEDITOR.editor} An editor instance or null if nothing has been found.
 		 */
-		getEditor: function() {
+		getEditor: function( optimized ) {
 			var instances = CKEDITOR.instances,
-				name, instance;
+				name, instance, editable;
+
+			optimized = optimized || optimized === undefined;
 
 			for ( name in instances ) {
@@ -6915,4 +6958,12 @@
 				if ( instance.element.equals( this ) && instance.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO )
 					return instance;
+
+				if ( !optimized ) {
+					editable = instance.editable();
+
+					if ( editable.equals( this ) || editable.contains( this ) ) {
+						return instance;
+					}
+				}
 			}
 
@@ -7037,5 +7088,6 @@
 
 	function getContextualizedSelector( element, selector ) {
-		return '#' + element.$.id + ' ' + selector.split( /,\s*/ ).join( ', #' + element.$.id + ' ' );
+		var id = CKEDITOR.tools.escapeCss( element.$.id );
+		return '#' + id + ' ' + selector.split( /,\s*/ ).join( ', #' + id + ' ' );
 	}
 
@@ -9024,5 +9076,6 @@
 		 * Expands the range so that partial units are completely contained.
 		 *
-		 * @param unit {Number} The unit type to expand with.
+		 * @param {Number} unit The unit type to expand with. Use one of following values: {@link CKEDITOR#ENLARGE_BLOCK_CONTENTS},
+		 * {@link CKEDITOR#ENLARGE_ELEMENT}, {@link CKEDITOR#ENLARGE_INLINE}, {@link CKEDITOR#ENLARGE_LIST_ITEM_CONTENTS}.
 		 * @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
 		 */
@@ -10592,4 +10645,51 @@
 		_setEndContainer: function( endContainer ) {
 			this.endContainer = endContainer;
+		},
+
+		/**
+		 * Looks for elements matching the `query` selector within a range.
+		 * 
+		 * @since 4.5.11
+		 * @private
+		 * @param {String} query
+		 * @param {Boolean} [includeNonEditables=false] Whether elements with `contenteditable` set to `false` should
+		 * be included.
+		 * @returns {CKEDITOR.dom.element[]}
+		 */
+		_find: function( query, includeNonEditables ) {
+			var ancestor = this.getCommonAncestor(),
+				boundaries = this.getBoundaryNodes(),
+				// Contrary to CKEDITOR.dom.element#find we're returning array, that's because NodeList is immutable, and we need
+				// to do some filtering in returned list.
+				ret = [],
+				curItem,
+				i,
+				initialMatches,
+				isStartGood,
+				isEndGood;
+
+			if ( ancestor && ancestor.find ) {
+				initialMatches = ancestor.find( query );
+
+				for ( i = 0; i < initialMatches.count(); i++ ) {
+					curItem = initialMatches.getItem( i );
+
+					// Using isReadOnly() method to filterout non editables. It checks isContentEditable including all browser quirks.
+					if ( !includeNonEditables && curItem.isReadOnly() ) {
+						continue;
+					}
+
+					// It's not enough to get elements from common ancestor, because it migth contain too many matches.
+					// We need to ensure that returned items are between boundary points.
+					isStartGood = ( curItem.getPosition( boundaries.startNode ) & CKEDITOR.POSITION_FOLLOWING ) || boundaries.startNode.equals( curItem );
+					isEndGood = ( curItem.getPosition( boundaries.endNode ) & ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IS_CONTAINED ) );
+
+					if ( isStartGood && isEndGood ) {
+						ret.push( curItem );
+					}
+				}
+			}
+
+			return ret;
 		}
 	};
@@ -15117,8 +15217,6 @@
 
 					if ( callback ) {
-
-						// The onload or onerror event does not fire in IE8.
-						if ( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) {
-
+						// The onload or onerror event does not fire in IE8 and IE9 Quirks Mode (#14849).
+						if ( CKEDITOR.env.ie && ( CKEDITOR.env.version <= 8 || CKEDITOR.env.ie9Compat ) ) {
 							script.$.onreadystatechange = function() {
 								if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' ) {
@@ -22135,8 +22233,19 @@
 				}
 
-				// [IE] Use instead "setActive" method to focus the editable if it belongs to
-				// the host page document, to avoid bringing an unexpected scroll.
+				// [Edge] Starting from EdgeHTML 14.14393, it does not support `setActive`. We need to use focus which
+				// causes unexpected scroll. Store scrollTop value so it can be restored after focusing editor.
+				// Scroll only happens if the editor is focused for the first time. (#14825)
+				if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 && !this.hasFocus && this.getDocument().equals( CKEDITOR.document ) ) {
+					this.editor._.previousScrollTop = this.$.scrollTop;
+				}
+
+				// [IE] Use instead "setActive" method to focus the editable if it belongs to the host page document,
+				// to avoid bringing an unexpected scroll.
 				try {
-					this.$[ CKEDITOR.env.ie && this.getDocument().equals( CKEDITOR.document ) ? 'setActive' : 'focus' ]();
+					if ( CKEDITOR.env.ie && !( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) && this.getDocument().equals( CKEDITOR.document ) ) {
+						this.$.setActive();
+					} else {
+						this.$.focus();
+					}
 				} catch ( e ) {
 					// IE throws unspecified error when focusing editable after closing dialog opened on nested editable.
@@ -22926,4 +23035,28 @@
 				}, null, null, -1 );
 
+				if ( CKEDITOR.env.webkit ) {
+					// [WebKit] Save scrollTop value so it can be used when restoring locked selection. (#14659)
+					this.on( 'scroll', function() {
+						editor._.previousScrollTop = editor.editable().$.scrollTop;
+					}, null, null, -1 );
+				}
+
+				// [Edge] This is the other part of the workaround for Edge which restores saved
+				// scrollTop value and removes listener which is not needed anymore. (#14825)
+				if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) {
+
+					var fixScrollOnFocus = function() {
+						var editable = editor.editable();
+
+						if ( editor._.previousScrollTop != null && editable.getDocument().equals( CKEDITOR.document ) ) {
+							editable.$.scrollTop = editor._.previousScrollTop;
+							editor._.previousScrollTop = null;
+							this.removeListener( 'scroll', fixScrollOnFocus );
+						}
+					};
+
+					this.on( 'scroll', fixScrollOnFocus );
+				}
+
 				// Register to focus manager.
 				editor.focusManager.add( this );
@@ -25231,4 +25364,10 @@
 
 ( function() {
+	var isMSSelection = typeof window.getSelection != 'function',
+		nextRev = 1,
+		// #13816
+		fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
+		fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' );
+
 	// #### checkSelectionChange : START
 
@@ -25268,6 +25407,8 @@
 		var currentPath = this.elementPath();
 		if ( !currentPath.compare( this._.selectionPreviousPath ) ) {
+			// Handle case when dialog inserts new element but parent block and path (so also focus context) does not change. (#13362)
+			var sameBlockParent = this._.selectionPreviousPath && this._.selectionPreviousPath.blockLimit.equals( currentPath.blockLimit );
 			// Cache the active element, which we'll eventually lose on Webkit.
-			if ( CKEDITOR.env.webkit )
+			if ( CKEDITOR.env.webkit && !sameBlockParent )
 				this._.previousActive = this.document.getActive();
 
@@ -25463,5 +25604,5 @@
 	function hideSelection( editor, ariaLabel ) {
 		var content = ariaLabel || '&nbsp;',
-			style = CKEDITOR.env.ie ? 'display:none' : 'position:fixed;top:0;left:-1000px',
+			style = CKEDITOR.env.ie && CKEDITOR.env.version < 14 ? 'display:none' : 'position:fixed;top:0;left:-1000px',
 			hiddenEl = CKEDITOR.dom.element.createFromHtml(
 				'<div data-cke-hidden-sel="1" data-cke-temp="1" style="' + style + '">' + content + '</div>',
@@ -25767,6 +25908,14 @@
 				// to nested editable (or the opposite). Unlock selection all, but restore only when it was locked
 				// for the same active element, what will e.g. mean restoring after displaying dialog.
-				if ( restoreSel && CKEDITOR.env.webkit )
+				if ( restoreSel && CKEDITOR.env.webkit ) {
 					restoreSel = editor._.previousActive && editor._.previousActive.equals( doc.getActive() );
+
+					// On Webkit when editor uses divarea, native focus causes editable viewport to scroll
+					// to the top (when there is no active selection inside while focusing) so the scroll
+					// position should be restored after focusing back editable area. (#14659)
+					if ( restoreSel && editor._.previousScrollTop != null && editor._.previousScrollTop != editable.$.scrollTop ) {
+						editable.$.scrollTop = editor._.previousScrollTop;
+					}
+				}
 
 				editor.unlockSelection( restoreSel );
@@ -25838,4 +25987,7 @@
 				if ( doc.$.compatMode != 'BackCompat' ) {
 					if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {
+						var textRng,
+							startRng;
+
 						html.on( 'mousedown', function( evt ) {
 							evt = evt.data;
@@ -25880,9 +26032,9 @@
 									evt.$.x < html.$.clientWidth ) {
 								// Start to build the text range.
-								var textRng = body.$.createTextRange();
+								textRng = body.$.createTextRange();
 								moveRangeToPoint( textRng, evt.$.clientX, evt.$.clientY );
 
 								// Records the dragging start of the above text range.
-								var startRng = textRng.duplicate();
+								startRng = textRng.duplicate();
 
 								html.on( 'mousemove', onHover );
@@ -26266,7 +26418,4 @@
 	 */
 	CKEDITOR.SELECTION_ELEMENT = 3;
-
-	var isMSSelection = typeof window.getSelection != 'function',
-		nextRev = 1;
 
 	/**
@@ -26370,8 +26519,4 @@
 			a: 1, input: 1, form: 1, select: 1, textarea: 1, button: 1, fieldset: 1, thead: 1, tfoot: 1 };
 
-	// #13816
-	var fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
-		fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' );
-
 	CKEDITOR.tools.extend( CKEDITOR.dom.selection, {
 		_removeFillingCharSequenceString: removeFillingCharSequenceString,
@@ -27182,5 +27327,5 @@
 		 *
 		 * @param {CKEDITOR.dom.element} element The element to be "selected".
-		 * @param {String} [ariaLabel] String to be used for screen reader to describe the selection.
+		 * @param {String} [ariaLabel] A string to be used by the screen reader to describe the selection.
 		 */
 		fake: function( element, ariaLabel ) {
@@ -29214,5 +29359,11 @@
 	// @param {Object/String} source
 	// @param {Object/String} target
+	// @returns {Boolean}
 	function compareCssText( source, target ) {
+		function filter( string, propertyName ) {
+			// In case of font-families we'll skip quotes. (#10750)
+			return propertyName.toLowerCase() == 'font-family' ? string.replace( /["']/g, '' ) : string;
+		}
+
 		if ( typeof source == 'string' )
 			source = CKEDITOR.tools.parseCssText( source );
@@ -29221,6 +29372,13 @@
 
 		for ( var name in source ) {
-			if ( !( name in target && ( target[ name ] == source[ name ] || source[ name ] == 'inherit' || target[ name ] == 'inherit' ) ) )
+			if ( !( name in target ) ) {
 				return false;
+			}
+
+			if ( !( filter( target[ name ], name ) == filter( source[ name ], name ) ||
+				source[ name ] == 'inherit' ||
+				target[ name ] == 'inherit' ) ) {
+				return false;
+			}
 		}
 		return true;
@@ -38354,5 +38512,6 @@
 		initPasteDataTransfer: function( evt, sourceEditor ) {
 			if ( !this.isCustomCopyCutSupported ) {
-				return new this.dataTransfer( null, sourceEditor );
+				// Edge does not support custom copy/cut, but it have some useful data in the clipboardData (#13755).
+				return new this.dataTransfer( ( CKEDITOR.env.edge && evt && evt.data.$ && evt.data.$.clipboardData ) || null, sourceEditor );
 			} else if ( evt && evt.data && evt.data.$ ) {
 				var dataTransfer = new this.dataTransfer( evt.data.$.clipboardData, sourceEditor );
@@ -38671,6 +38830,9 @@
 				this._.files = [];
 
-				for ( i = 0; i < this.$.files.length; i++ ) {
-					this._.files.push( this.$.files[ i ] );
+				// Edge have empty files property with no length (#13755).
+				if ( this.$.files && this.$.files.length ) {
+					for ( i = 0; i < this.$.files.length; i++ ) {
+						this._.files.push( this.$.files[ i ] );
+					}
 				}
 
@@ -41284,11 +41446,20 @@
 
 		function onClick( elementIndex ) {
-			var element = elementsPath.list[ elementIndex ];
+			var element = elementsPath.list[ elementIndex ],
+				selection;
+
 			if ( element.equals( editor.editable() ) || element.getAttribute( 'contenteditable' ) == 'true' ) {
 				var range = editor.createRange();
 				range.selectNodeContents( element );
-				range.select();
+
+				selection = range.select();
 			} else {
-				editor.getSelection().selectElement( element );
+				selection = editor.getSelection();
+				selection.selectElement( element );
+			}
+
+			// Explicitly fire selectionChange when clicking on an element path button. (#13548)
+			if ( CKEDITOR.env.ie ) {
+				editor.fire( 'selectionChange', { selection: selection, path: new CKEDITOR.dom.elementPath( element ) } );
 			}
 
@@ -45494,5 +45665,5 @@
 
 			if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) )
-				allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' );
+				allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)' );
 			if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) )
 				allowed = allowed.replace( ']', ',target,onclick]' );
@@ -45969,9 +46140,4 @@
 				}
 
-				var download = element.getAttribute( 'download' );
-				if ( download !== null ) {
-					retval.download = true;
-				}
-
 				var advanced = {};
 
@@ -46113,9 +46279,4 @@
 			}
 
-			// Force download attribute.
-			if ( data.download ) {
-				set.download = '';
-			}
-
 			// Advanced attributes.
 			if ( data.advanced ) {
@@ -46139,6 +46300,5 @@
 				onclick: 1,
 				'data-cke-pa-onclick': 1,
-				'data-cke-saved-name': 1,
-				'download': 1
+				'data-cke-saved-name': 1
 			};
 
@@ -46154,4 +46314,34 @@
 				removed: CKEDITOR.tools.objectKeys( removed )
 			};
+		},
+
+		
+		/**
+		 * Determines whether an element should have a "Display Text" field in the Link dialog.
+		 *
+		 * @since 4.5.11 
+		 * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection
+		 * is made.
+		 * @param {CKEDITOR.editor} editor The editor instance for which the check is performed.
+		 * @returns {Boolean}
+		 */
+		showDisplayTextForElement: function( element, editor ) {
+			var undesiredElements = {
+				img: 1,
+				table: 1,
+				tbody: 1,
+				thead: 1,
+				tfoot: 1,
+				input: 1,
+				select: 1,
+				textarea: 1
+			};
+
+			// Widget duck typing, we don't want to show display text for widgets.
+			if ( editor.widgets && editor.widgets.focused ) {
+				return false;
+			}
+
+			return !element || !element.getName || !element.is( undesiredElements );
 		}
 	};
@@ -47391,8 +47581,8 @@
 
 		/**
-		 * Adds one or more items from the specified definition array to the editor context menu.
+		 * Adds one or more items from the specified definition object to the editor context menu.
 		 *
 		 * @method
-		 * @param {Array} definitions List of definitions for each menu item as if {@link #addMenuItem} is called.
+		 * @param {Object} definitions Object where keys are used as itemName and corresponding values as definition for a {@link #addMenuItem} call.
 		 * @member CKEDITOR.editor
 		 */
@@ -54959,4 +55149,6 @@
 
 ( function() {
+	var framedWysiwyg;
+
 	CKEDITOR.plugins.add( 'wysiwygarea', {
 		init: function( editor ) {
@@ -55239,8 +55431,11 @@
 			// 2. On keyup remove all elements that were not marked
 			// as non-superfluous (which means they must have had appeared in the meantime).
+			// Also we should preserve all temporary elements inserted by editor – otherwise we'd likely
+			// leak fake selection's content into editable due to removing hidden selection container (#14831).
 			editable.attachListener( editable, 'keyup', function() {
 				var elements = doc.getElementsByTag( tagName );
 				if ( lockRetain ) {
-					if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) ) {
+					if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) &&
+						!elements.getItem( 0 ).hasAttribute( 'data-cke-temp' ) ) {
 						elements.getItem( 0 ).remove( 1 );
 					}
@@ -55251,5 +55446,5 @@
 	}
 
-	var framedWysiwyg = CKEDITOR.tools.createClass( {
+	framedWysiwyg = CKEDITOR.tools.createClass( {
 		$: function() {
 			this.base.apply( this, arguments );
Index: plugins/dcCKEditor/js/ckeditor/lang/af.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/af.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/af.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Karakterstel van geskakelde bron',
     	cssClasses : 'CSS klasse',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-posadres',
     	emailBody : 'Berig-inhoud',
Index: plugins/dcCKEditor/js/ckeditor/lang/ar.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ar.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ar.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'ترميز المادة المطلوبة',
     	cssClasses : 'فئات التنسيق',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'البريد الإلكتروني',
     	emailBody : 'محتوى الرسالة',
Index: plugins/dcCKEditor/js/ckeditor/lang/bg.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/bg.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/bg.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Тип на свързания ресурс',
     	cssClasses : 'Класове за CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-mail aдрес',
     	emailBody : 'Съдържание',
Index: plugins/dcCKEditor/js/ckeditor/lang/bn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/bn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/bn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'লিংক রিসোর্স ক্যারেক্টর সেট',
     	cssClasses : 'স্টাইল-শীট ক্লাস',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ইমেইল ঠিকানা',
     	emailBody : 'মেসেজের দেহ',
Index: plugins/dcCKEditor/js/ckeditor/lang/bs.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/bs.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/bs.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Klase CSS stilova',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Adresa',
     	emailBody : 'Poruka',
Index: plugins/dcCKEditor/js/ckeditor/lang/ca.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ca.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ca.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Conjunt de caràcters font enllaçat',
     	cssClasses : 'Classes del full d\'estil',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Adreça de correu electrònic',
     	emailBody : 'Cos del missatge',
Index: plugins/dcCKEditor/js/ckeditor/lang/cs.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/cs.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/cs.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Přiřazená znaková sada',
     	cssClasses : 'Třída stylu',
-    	download : 'Force Download',
+    	displayText : 'Zobrazit text',
     	emailAddress : 'E-mailová adresa',
     	emailBody : 'Tělo zprávy',
Index: plugins/dcCKEditor/js/ckeditor/lang/cy.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/cy.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/cy.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Set Nodau\'r Adnodd Cysylltiedig',
     	cssClasses : 'Dosbarthiadau Dalen Arddull',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Cyfeiriad E-Bost',
     	emailBody : 'Corff y Neges',
Index: plugins/dcCKEditor/js/ckeditor/lang/da.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/da.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/da.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Tegnsæt',
     	cssClasses : 'Typografiark',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-mailadresse',
     	emailBody : 'Besked',
Index: plugins/dcCKEditor/js/ckeditor/lang/de-ch.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/de-ch.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/de-ch.js	(revision 3339)
@@ -205,4 +205,5 @@
     	charset : 'Verknüpfter Ressourcenzeichensatz',
     	cssClasses : 'Formatvorlagenklasse',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail-Adresse',
     	emailBody : 'Nachrichtentext',
@@ -247,6 +248,5 @@
     	type : 'Link-Typ',
     	unlink : 'Link entfernen',
-    	upload : 'Hochladen',
-    	download : 'Force Download'
+    	upload : 'Hochladen'
     },
     justify : 
Index: plugins/dcCKEditor/js/ckeditor/lang/de.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/de.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/de.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Verknüpfter Ressourcenzeichensatz',
     	cssClasses : 'Formatvorlagenklasse',
-    	download : 'Download erzwingen',
+    	displayText : 'Anzeigetext',
     	emailAddress : 'E-Mail-Adresse',
     	emailBody : 'Nachrichtentext',
Index: plugins/dcCKEditor/js/ckeditor/lang/el.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/el.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/el.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής',
     	cssClasses : 'Κλάσεις Φύλλων Στυλ',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Διεύθυνση E-mail',
     	emailBody : 'Κείμενο Μηνύματος',
Index: plugins/dcCKEditor/js/ckeditor/lang/en-au.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en-au.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en-au.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/en-ca.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en-ca.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en-ca.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/en-gb.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en-gb.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en-gb.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/en.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/eo.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/eo.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/eo.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Signaro de la Ligita Rimedo',
     	cssClasses : 'Klasoj de Stilfolioj',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Retpoŝto',
     	emailBody : 'Mesaĝa korpo',
Index: plugins/dcCKEditor/js/ckeditor/lang/es.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/es.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/es.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Fuente de caracteres vinculado',
     	cssClasses : 'Clases de hojas de estilo',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Dirección de E-Mail',
     	emailBody : 'Cuerpo del Mensaje',
Index: plugins/dcCKEditor/js/ckeditor/lang/et.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/et.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/et.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Lingitud ressursi märgistik',
     	cssClasses : 'Stiilistiku klassid',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-posti aadress',
     	emailBody : 'Sõnumi tekst',
Index: plugins/dcCKEditor/js/ckeditor/lang/eu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/eu.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/eu.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Estekatutako baliabide karaktere-jokoa',
     	cssClasses : 'Estilo-orriko klaseak',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-posta helbidea',
     	emailBody : 'Mezuaren gorputza',
Index: plugins/dcCKEditor/js/ckeditor/lang/fa.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fa.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fa.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'نویسه\u200bگان منبع پیوند شده',
     	cssClasses : 'کلاس\u200bهای شیوه\u200bنامه(Stylesheet)',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'نشانی پست الکترونیکی',
     	emailBody : 'متن پیام',
Index: plugins/dcCKEditor/js/ckeditor/lang/fi.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fi.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fi.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linkitetty kirjaimisto',
     	cssClasses : 'Tyyliluokat',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Sähköpostiosoite',
     	emailBody : 'Viesti',
Index: plugins/dcCKEditor/js/ckeditor/lang/fo.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fo.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fo.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Atknýtt teknsett',
     	cssClasses : 'Typografi klassar',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Teldupost-adressa',
     	emailBody : 'Breyðtekstur',
Index: plugins/dcCKEditor/js/ckeditor/lang/fr-ca.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fr-ca.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fr-ca.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Encodage de la cible',
     	cssClasses : 'Classes CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Courriel',
     	emailBody : 'Corps du message',
Index: plugins/dcCKEditor/js/ckeditor/lang/fr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fr.js	(revision 3339)
@@ -17,5 +17,5 @@
     		document : 'Document',
     		clipboard : 'Presse-papier/Défaire',
-    		editing : 'Editer',
+    		editing : 'Édition',
     		forms : 'Formulaires',
     		basicstyles : 'Styles de base',
@@ -27,5 +27,5 @@
     		tools : 'Outils'
     	},
-    	toolbars : 'Barre d\'outils de l\'éditeur'
+    	toolbars : 'Barres d\'outils de l\'éditeur'
     },
     templates : 
@@ -35,5 +35,5 @@
     	insertOption : 'Remplacer le contenu actuel',
     	options : 'Options des modèles',
-    	selectPromptMsg : 'Veuillez sélectionner le modèle pour l\'ouvrir dans l\'éditeur',
+    	selectPromptMsg : 'Veuillez sélectionner le modèle à ouvrir dans l\'éditeur',
     	title : 'Contenu des modèles'
     },
@@ -49,33 +49,33 @@
     		deleteCell : 'Supprimer les cellules',
     		merge : 'Fusionner les cellules',
-    		mergeRight : 'Fusionner à droite',
-    		mergeDown : 'Fusionner en bas',
-    		splitHorizontal : 'Fractionner horizontalement',
-    		splitVertical : 'Fractionner verticalement',
+    		mergeRight : 'Fusionner vers la droite',
+    		mergeDown : 'Fusionner vers le bas',
+    		splitHorizontal : 'Scinder la cellule horizontalement',
+    		splitVertical : 'Scinder la cellule verticalement',
     		title : 'Propriétés de la cellule',
     		cellType : 'Type de cellule',
-    		rowSpan : 'Fusion de lignes',
-    		colSpan : 'Fusion de colonnes',
+    		rowSpan : 'Lignes occupées',
+    		colSpan : 'Colonnes occupées',
     		wordWrap : 'Césure',
-    		hAlign : 'Alignement Horizontal',
-    		vAlign : 'Alignement Vertical',
-    		alignBaseline : 'Bas du texte',
+    		hAlign : 'Alignement horizontal',
+    		vAlign : 'Alignement vertical',
+    		alignBaseline : 'Ligne de base',
     		bgColor : 'Couleur d\'arrière-plan',
-    		borderColor : 'Couleur de Bordure',
+    		borderColor : 'Couleur de bordure',
     		data : 'Données',
-    		header : 'Entête',
+    		header : 'En-tête',
     		yes : 'Oui',
     		no : 'Non',
-    		invalidWidth : 'La Largeur de Cellule doit être un nombre.',
-    		invalidHeight : 'La Hauteur de Cellule doit être un nombre.',
-    		invalidRowSpan : 'La fusion de lignes doit être un nombre entier.',
-    		invalidColSpan : 'La fusion de colonnes doit être un nombre entier.',
-    		chooseColor : 'Choisissez'
+    		invalidWidth : 'La largeur de la cellule doit être un nombre.',
+    		invalidHeight : 'La hauteur de la cellule doit être un nombre.',
+    		invalidRowSpan : 'Le nombre de colonnes occupées doit être un nombre entier.',
+    		invalidColSpan : 'Le nombre de colonnes occupées doit être un nombre entier.',
+    		chooseColor : 'Choisir'
     	},
     	cellPad : 'Marge interne des cellules',
-    	cellSpace : 'Espacement des cellules',
+    	cellSpace : 'Espacement entre les cellules',
     	column : 
     	{
-    		menu : 'Colonnes',
+    		menu : 'Colonne',
     		insertBefore : 'Insérer une colonne avant',
     		insertAfter : 'Insérer une colonne après',
@@ -84,12 +84,12 @@
     	columns : 'Colonnes',
     	deleteTable : 'Supprimer le tableau',
-    	headers : 'En-Têtes',
+    	headers : 'En-têtes',
     	headersBoth : 'Les deux',
     	headersColumn : 'Première colonne',
-    	headersNone : 'Aucunes',
+    	headersNone : 'Aucun',
     	headersRow : 'Première ligne',
     	invalidBorder : 'La taille de la bordure doit être un nombre.',
-    	invalidCellPadding : 'La marge intérieure des cellules doit être un nombre positif.',
-    	invalidCellSpacing : 'L\'espacement des cellules doit être un nombre positif.',
+    	invalidCellPadding : 'La marge interne des cellules doit être un nombre positif.',
+    	invalidCellSpacing : 'L\'espacement entre les cellules doit être un nombre positif.',
     	invalidCols : 'Le nombre de colonnes doit être supérieur à 0.',
     	invalidHeight : 'La hauteur du tableau doit être un nombre.',
@@ -108,5 +108,5 @@
     	title : 'Propriétés du tableau',
     	toolbar : 'Tableau',
-    	widthPc : '% pourcents',
+    	widthPc : 'pour cent',
     	widthPx : 'pixels',
     	widthUnit : 'unité de largeur'
@@ -115,6 +115,6 @@
     {
     	label : 'Styles',
-    	panelTitle : 'Styles de mise en page',
-    	panelTitle1 : 'Styles de blocs',
+    	panelTitle : 'Styles de mise en forme',
+    	panelTitle1 : 'Styles de bloc',
     	panelTitle2 : 'Styles en ligne',
     	panelTitle3 : 'Styles d\'objet'
@@ -123,5 +123,5 @@
     {
     	options : 'Options des caractères spéciaux',
-    	title : 'Sélectionnez un caractère',
+    	title : 'Sélectionner un caractère',
     	toolbar : 'Insérer un caractère spécial'
     },
@@ -140,11 +140,11 @@
     pastetext : 
     {
-    	button : 'Coller comme texte sans mise en forme',
-    	title : 'Coller comme texte sans mise en forme'
+    	button : 'Coller comme texte brut',
+    	title : 'Coller comme texte brut'
     },
     pastefromword : 
     {
-    	confirmCleanup : 'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?',
-    	error : 'Il n\'a pas été possible de nettoyer les données collées à la suite d\'une erreur interne.',
+    	confirmCleanup : 'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller ?',
+    	error : 'Les données collées n\'ont pas pu être nettoyées à cause d\'une erreur interne',
     	title : 'Coller depuis Word',
     	toolbar : 'Coller depuis Word'
@@ -153,9 +153,9 @@
     {
     	maximize : 'Agrandir',
-    	minimize : 'Minimiser'
+    	minimize : 'Réduire'
     },
     magicline : 
     {
-    	title : 'Insérez un paragraphe ici'
+    	title : 'Insérer un paragraphe ici'
     },
     liststyle : 
@@ -168,21 +168,21 @@
     	disc : 'Disque',
     	georgian : 'Numération géorgienne (an, ban, gan, etc.)',
-    	lowerAlpha : 'Alphabétique minuscules (a, b, c, d, e, etc.)',
-    	lowerGreek : 'Grec minuscule (alpha, beta, gamma, etc.)',
-    	lowerRoman : 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)',
+    	lowerAlpha : 'Lettres minuscules (a, b, c, d, e, etc.)',
+    	lowerGreek : 'Grec minuscule (alpha, bêta, gamma, etc.)',
+    	lowerRoman : 'Chiffres romains minuscules (i, ii, iii, iv, v, etc.)',
     	none : 'Aucun',
-    	notset : '<Non défini>',
+    	notset : '<indéfini>',
     	numberedTitle : 'Propriétés de la liste numérotée',
     	square : 'Carré',
     	start : 'Début',
     	type : 'Type',
-    	upperAlpha : 'Alphabétique majuscules (A, B, C, D, E, etc.)',
-    	upperRoman : 'Nombres romains majuscules (I, II, III, IV, V, etc.)',
+    	upperAlpha : 'Lettres majuscules (A, B, C, D, E, etc.)',
+    	upperRoman : 'Chiffres romains majuscules (I, II, III, IV, V, etc.)',
     	validateStartNumber : 'Le premier élément de la liste doit être un nombre entier.'
     },
     list : 
     {
-    	bulletedlist : 'Insérer/Supprimer la liste à puces',
-    	numberedlist : 'Insérer/Supprimer la liste numérotée'
+    	bulletedlist : 'Insérer/Supprimer une liste à puces',
+    	numberedlist : 'Insérer/Supprimer une liste numérotée'
     },
     link : 
@@ -190,10 +190,10 @@
     	acccessKey : 'Touche d\'accessibilité',
     	advanced : 'Avancé',
-    	advisoryContentType : 'Type de contenu (ex: text/html)',
-    	advisoryTitle : 'Description (title)',
+    	advisoryContentType : 'Type de contenu (indicatif)',
+    	advisoryTitle : 'Infobulle',
     	anchor : 
     	{
     		toolbar : 'Ancre',
-    		menu : 'Editer l\'ancre',
+    		menu : 'Modifier l\'ancre',
     		title : 'Propriétés de l\'ancre',
     		name : 'Nom de l\'ancre',
@@ -203,50 +203,50 @@
     	anchorId : 'Par ID d\'élément',
     	anchorName : 'Par nom d\'ancre',
-    	charset : 'Charset de la cible',
-    	cssClasses : 'Classe CSS',
-    	download : 'Force Download',
-    	emailAddress : 'Adresse E-Mail',
+    	charset : 'Encodage de la ressource liée',
+    	cssClasses : 'Classes de style',
+    	displayText : 'Display Text',
+    	emailAddress : 'Adresse électronique',
     	emailBody : 'Corps du message',
     	emailSubject : 'Sujet du message',
-    	id : 'Id',
-    	info : 'Infos sur le lien',
+    	id : 'ID',
+    	info : 'Informations sur le lien',
     	langCode : 'Code de langue',
     	langDir : 'Sens d\'écriture',
     	langDirLTR : 'Gauche à droite',
-    	langDirRTL : 'Droite à gauche',
-    	menu : 'Editer le lien',
+    	langDirRTL : 'Droite à gauche (RTL)',
+    	menu : 'Modifier le lien',
     	name : 'Nom',
     	noAnchors : '(Aucune ancre disponible dans ce document)',
-    	noEmail : 'Veuillez entrer l\'adresse e-mail',
-    	noUrl : 'Veuillez entrer l\'adresse du lien',
+    	noEmail : 'Veuillez entrer l\'adresse électronique',
+    	noUrl : 'Veuillez entrer l\'URL du lien',
     	other : '<autre>',
     	popupDependent : 'Dépendante (Netscape)',
-    	popupFeatures : 'Options de la fenêtre popup',
+    	popupFeatures : 'Caractéristiques de la fenêtre surgissante',
     	popupFullScreen : 'Plein écran (IE)',
-    	popupLeft : 'Position gauche',
+    	popupLeft : 'À gauche',
     	popupLocationBar : 'Barre d\'adresse',
     	popupMenuBar : 'Barre de menu',
     	popupResizable : 'Redimensionnable',
     	popupScrollBars : 'Barres de défilement',
-    	popupStatusBar : 'Barre de status',
+    	popupStatusBar : 'Barre d\'état',
     	popupToolbar : 'Barre d\'outils',
-    	popupTop : 'Position haute',
+    	popupTop : 'En haut',
     	rel : 'Relation',
-    	selectAnchor : 'Sélectionner l\'ancre',
+    	selectAnchor : 'Sélectionner une ancre',
     	styles : 'Style',
-    	tabIndex : 'Index de tabulation',
+    	tabIndex : 'Indice de tabulation',
     	target : 'Cible',
     	targetFrame : '<cadre>',
-    	targetFrameName : 'Nom du Cadre destination',
-    	targetPopup : '<fenêtre popup>',
-    	targetPopupName : 'Nom de la fenêtre popup',
+    	targetFrameName : 'Nom du cadre affecté',
+    	targetPopup : '<fenêtre surgissante>',
+    	targetPopupName : 'Nom de la fenêtre surgissante',
     	title : 'Lien',
     	toAnchor : 'Ancre',
-    	toEmail : 'E-mail',
+    	toEmail : 'Courriel',
     	toUrl : 'URL',
     	toolbar : 'Lien',
     	type : 'Type de lien',
     	unlink : 'Supprimer le lien',
-    	upload : 'Envoyer'
+    	upload : 'Téléverser'
     },
     justify : 
@@ -259,28 +259,28 @@
     indent : 
     {
-    	indent : 'Augmenter le retrait (tabulation)',
-    	outdent : 'Diminuer le retrait (tabulation)'
+    	indent : 'Augmenter le retrait',
+    	outdent : 'Diminuer le retrait'
     },
     image : 
     {
-    	alt : 'Texte de remplacement',
+    	alt : 'Texte alternatif',
     	border : 'Bordure',
     	btnUpload : 'Envoyer sur le serveur',
-    	button2Img : 'Voulez-vous transformer le bouton image sélectionné en simple image?',
+    	button2Img : 'Voulez-vous transformer le bouton avec image sélectionné en simple image ?',
     	hSpace : 'Espacement horizontal',
-    	img2Button : 'Voulez-vous transformer l\'image en bouton image?',
+    	img2Button : 'Voulez-vous transformer l\'image sélectionnée en bouton avec image ?',
     	infoTab : 'Informations sur l\'image',
     	linkTab : 'Lien',
     	lockRatio : 'Conserver les proportions',
     	menu : 'Propriétés de l\'image',
-    	resetSize : 'Taille d\'origine',
+    	resetSize : 'Réinitialiser la taille',
     	title : 'Propriétés de l\'image',
-    	titleButton : 'Propriétés du bouton image',
-    	upload : 'Envoyer',
-    	urlMissing : 'L\'adresse source de l\'image est manquante.',
+    	titleButton : 'Propriétés du bouton avec image',
+    	upload : 'Téléverser',
+    	urlMissing : 'L\'URL source de l\'image est manquante.',
     	vSpace : 'Espacement vertical',
-    	validateBorder : 'Bordure doit être un entier.',
-    	validateHSpace : 'HSpace doit être un entier.',
-    	validateVSpace : 'VSpace doit être un entier.'
+    	validateBorder : 'La bordure doit être un nombre entier.',
+    	validateHSpace : 'L\'espacement horizontal doit être un nombre entier.',
+    	validateVSpace : 'L\'espacement vertical doit être un nombre entier.'
     },
     horizontalrule : 
@@ -293,5 +293,5 @@
     	panelTitle : 'Format de paragraphe',
     	tag_address : 'Adresse',
-    	tag_div : 'Normal (DIV)',
+    	tag_div : 'Division',
     	tag_h1 : 'Titre 1',
     	tag_h2 : 'Titre 2',
@@ -301,5 +301,5 @@
     	tag_h6 : 'Titre 6',
     	tag_p : 'Normal',
-    	tag_pre : 'Formaté'
+    	tag_pre : 'Préformaté'
     },
     fakeobjects : 
@@ -307,19 +307,19 @@
     	anchor : 'Ancre',
     	flash : 'Animation Flash',
-    	hiddenfield : 'Champ caché',
-    	iframe : 'IFrame',
+    	hiddenfield : 'Champ invisible',
+    	iframe : 'Cadre de contenu incorporé',
     	unknown : 'Objet inconnu'
     },
     elementspath : 
     {
-    	eleLabel : 'Elements path',
-    	eleTitle : '%1 éléments'
+    	eleLabel : 'Chemin des éléments',
+    	eleTitle : 'Élément %1'
     },
     div : 
     {
-    	IdInputLabel : 'Id',
-    	advisoryTitleInputLabel : 'Advisory Title',
-    	cssClassInputLabel : 'Classe CSS',
-    	edit : 'Éditer la DIV',
+    	IdInputLabel : 'ID',
+    	advisoryTitleInputLabel : 'Infobulle',
+    	cssClassInputLabel : 'Classes de style',
+    	edit : 'Modifier la division',
     	inlineStyleInputLabel : 'Style en ligne',
     	langDirLTRLabel : 'Gauche à droite (LTR)',
@@ -327,8 +327,8 @@
     	langDirRTLLabel : 'Droite à gauche (RTL)',
     	languageCodeInputLabel : 'Code de langue',
-    	remove : 'Enlever la DIV',
+    	remove : 'Enlever la division',
     	styleSelectLabel : 'Style',
-    	title : 'Créer un container DIV',
-    	toolbar : 'Créer un container DIV'
+    	title : 'Créer une division',
+    	toolbar : 'Créer une division'
     },
     contextmenu : 
@@ -339,11 +339,11 @@
     {
     	auto : 'Automatique',
-    	bgColorTitle : 'Couleur d\'arrière plan',
+    	bgColorTitle : 'Couleur d\'arrière-plan',
     	colors : 
     	{
     		'000' : 'Noir',
     		'800000' : 'Marron',
-    		'8B4513' : 'Brun moyen',
-    		'2F4F4F' : 'Vert sombre',
+    		'8B4513' : 'Brun de selle',
+    		'2F4F4F' : 'Gris sombre d\'ardoise',
     		'008080' : 'Canard',
     		'000080' : 'Bleu marine',
@@ -356,5 +356,5 @@
     		'40E0D0' : 'Turquoise',
     		'0000CD' : 'Bleu royal',
-    		'800080' : 'Pourpre',
+    		'800080' : 'Violet',
     		'808080' : 'Gris',
     		F00 : 'Rouge',
@@ -365,6 +365,6 @@
     		'00F' : 'Bleu',
     		EE82EE : 'Violet',
-    		A9A9A9 : 'Gris moyen',
-    		FFA07A : 'Saumon',
+    		A9A9A9 : 'Gris tamisé',
+    		FFA07A : 'Saumon clair',
     		FFA500 : 'Orange',
     		FFFF00 : 'Jaune',
@@ -374,8 +374,8 @@
     		DDA0DD : 'Prune',
     		D3D3D3 : 'Gris clair',
-    		FFF0F5 : 'Fard Lavande',
+    		FFF0F5 : 'Fard lavande',
     		FAEBD7 : 'Blanc antique',
     		FFFFE0 : 'Jaune clair',
-    		F0FFF0 : 'Honeydew',
+    		F0FFF0 : 'Vert rosée',
     		F0FFFF : 'Azur',
     		F0F8FF : 'Bleu Alice',
@@ -385,16 +385,16 @@
     	more : 'Plus de couleurs...',
     	panelTitle : 'Couleurs',
-    	textColorTitle : 'Couleur de texte'
+    	textColorTitle : 'Couleur du texte'
     },
     clipboard : 
     {
     	copy : 'Copier',
-    	copyError : 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).',
+    	copyError : 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).',
     	cut : 'Couper',
-    	cutError : 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).',
+    	cutError : 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).',
     	paste : 'Coller',
     	pasteArea : 'Coller la zone',
     	pasteMsg : 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.',
-    	securityMsg : 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.',
+    	securityMsg : 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur d\'accéder directement aux données du presse-papier. Vous devez les coller à nouveau dans cette fenêtre.',
     	title : 'Coller'
     },
@@ -420,18 +420,18 @@
     	copy : 'Copyright &copy; $1. Tous droits réservés.',
     	dlgTitle : 'À propos de CKEditor',
-    	help : 'Consulter $1 pour l\'aide.',
-    	moreInfo : 'Pour les informations de licence, veuillez visiter notre site web:',
+    	help : 'Consulter $1 pour obtenir de l\'aide.',
+    	moreInfo : 'Pour les informations de licence, veuillez visiter notre site web :',
     	title : 'À propos de CKEditor',
-    	userGuide : 'Guide de l\'utilisateur CKEditor en anglais'
-    },
-    editor : 'Éditeur de Texte Enrichi',
+    	userGuide : 'Guide de l\'utilisateur CKEditor (en anglais)'
+    },
+    editor : 'Éditeur de texte enrichi',
     editorPanel : 'Tableau de bord de l\'éditeur de texte enrichi',
     common : 
     {
-    	editorHelp : 'Appuyez sur ALT-0 pour l\'aide',
-    	browseServer : 'Explorer le serveur',
+    	editorHelp : 'Utilisez le raccourci Alt-0 pour obtenir de l\'aide',
+    	browseServer : 'Parcourir le serveur',
     	url : 'URL',
     	protocol : 'Protocole',
-    	upload : 'Télécharger',
+    	upload : 'Téléverser',
     	uploadSubmit : 'Envoyer sur le serveur',
     	image : 'Image',
@@ -439,13 +439,13 @@
     	form : 'Formulaire',
     	checkbox : 'Case à cocher',
-    	radio : 'Bouton Radio',
+    	radio : 'Bouton radio',
     	textField : 'Champ texte',
     	textarea : 'Zone de texte',
-    	hiddenField : 'Champ caché',
+    	hiddenField : 'Champ invisible',
     	button : 'Bouton',
     	select : 'Liste déroulante',
-    	imageButton : 'Bouton image',
-    	notSet : '<non défini>',
-    	id : 'Id',
+    	imageButton : 'Bouton avec image',
+    	notSet : '<indéfini>',
+    	id : 'ID',
     	name : 'Nom',
     	langDir : 'Sens d\'écriture',
@@ -453,7 +453,7 @@
     	langDirRtl : 'Droite à gauche (RTL)',
     	langCode : 'Code de langue',
-    	longDescr : 'URL de description longue (longdesc => malvoyant)',
-    	cssClass : 'Classe CSS',
-    	advisoryTitle : 'Description (title)',
+    	longDescr : 'URL de description longue',
+    	cssClass : 'Classes de style',
+    	advisoryTitle : 'Infobulle',
     	cssStyle : 'Style',
     	ok : 'OK',
@@ -461,18 +461,18 @@
     	close : 'Fermer',
     	preview : 'Aperçu',
-    	resize : 'Déplacer pour modifier la taille',
+    	resize : 'Redimensionner',
     	generalTab : 'Général',
     	advancedTab : 'Avancé',
     	validateNumberFailed : 'Cette valeur n\'est pas un nombre.',
-    	confirmNewPage : 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?',
-    	confirmCancel : 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?',
+    	confirmNewPage : 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?',
+    	confirmCancel : 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?',
     	options : 'Options',
-    	target : 'Cible (Target)',
+    	target : 'Cible',
     	targetNew : 'Nouvelle fenêtre (_blank)',
     	targetTop : 'Fenêtre supérieure (_top)',
     	targetSelf : 'Même fenêtre (_self)',
     	targetParent : 'Fenêtre parent (_parent)',
-    	langDirLTR : 'Gauche à Droite (LTR)',
-    	langDirRTL : 'Droite à Gauche (RTL)',
+    	langDirLTR : 'Gauche à droite (LTR)',
+    	langDirRTL : 'Droite à gauche (RTL)',
     	styles : 'Style',
     	cssClasses : 'Classes de style',
@@ -482,5 +482,5 @@
     	alignLeft : 'Gauche',
     	alignRight : 'Droite',
-    	alignCenter : 'Centré',
+    	alignCenter : 'Centrer',
     	alignJustify : 'Justifier',
     	alignTop : 'Haut',
@@ -488,11 +488,11 @@
     	alignBottom : 'Bas',
     	alignNone : 'Aucun',
-    	invalidValue : 'Valeur incorrecte.',
+    	invalidValue : 'Valeur invalide.',
     	invalidHeight : 'La hauteur doit être un nombre.',
     	invalidWidth : 'La largeur doit être un nombre.',
-    	invalidCssLength : 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
-    	invalidHtmlLength : 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
-    	invalidInlineStyle : 'La valeur spécifiée pour le style inline doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
+    	invalidCssLength : 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
+    	invalidHtmlLength : 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
+    	invalidInlineStyle : 'La valeur spécifiée pour le style en ligne doit être composée d\'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.',
     	cssLengthTooltip : 'Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
-    	unavailable : '%1<span class="cke_accessibility">, Indisponible</span>'
+    	unavailable : '%1<span class="cke_accessibility">, indisponible</span>'
     } }; 
Index: plugins/dcCKEditor/js/ckeditor/lang/gl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/gl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/gl.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Codificación do recurso ligado',
     	cssClasses : 'Clases da folla de estilos',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Enderezo de correo',
     	emailBody : 'Corpo da mensaxe',
Index: plugins/dcCKEditor/js/ckeditor/lang/gu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/gu.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/gu.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'લિંક રિસૉર્સ કૅરિક્ટર સેટ',
     	cssClasses : 'સ્ટાઇલ-શીટ ક્લાસ',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ઈ-મેલ સરનામું',
     	emailBody : 'સંદેશ',
Index: plugins/dcCKEditor/js/ckeditor/lang/he.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/he.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/he.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'קידוד המשאב המקושר',
     	cssClasses : 'גיליונות עיצוב קבוצות',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'כתובת הדוא"ל',
     	emailBody : 'גוף ההודעה',
Index: plugins/dcCKEditor/js/ckeditor/lang/hi.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/hi.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/hi.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'लिंक रिसोर्स करॅक्टर सॅट',
     	cssClasses : 'स्टाइल-शीट क्लास',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ई-मेल पता',
     	emailBody : 'संदेश',
Index: plugins/dcCKEditor/js/ckeditor/lang/hr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/hr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/hr.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Kodna stranica povezanih resursa',
     	cssClasses : 'Stylesheet klase',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail adresa',
     	emailBody : 'Sadržaj poruke',
Index: plugins/dcCKEditor/js/ckeditor/lang/hu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/hu.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/hu.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Hivatkozott tartalom kódlapja',
     	cssClasses : 'Stíluskészlet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail cím',
     	emailBody : 'Üzenet',
Index: plugins/dcCKEditor/js/ckeditor/lang/id.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/id.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/id.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Kelas Stylesheet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Alamat E-mail',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/is.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/is.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/is.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Táknróf',
     	cssClasses : 'Stílsniðsflokkur',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Netfang',
     	emailBody : 'Meginmál',
Index: plugins/dcCKEditor/js/ckeditor/lang/it.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/it.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/it.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Set di caretteri della risorsa collegata',
     	cssClasses : 'Nome classe CSS',
-    	download : 'Force Download',
+    	displayText : 'Mostra testo',
     	emailAddress : 'Indirizzo E-Mail',
     	emailBody : 'Corpo del messaggio',
Index: plugins/dcCKEditor/js/ckeditor/lang/ja.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ja.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ja.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'リンク先のcharset',
     	cssClasses : 'スタイルシートクラス',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail アドレス',
     	emailBody : '本文',
Index: plugins/dcCKEditor/js/ckeditor/lang/ka.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ka.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ka.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'კოდირება',
     	cssClasses : 'CSS კლასი',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ელფოსტის მისამართები',
     	emailBody : 'წერილის ტექსტი',
Index: plugins/dcCKEditor/js/ckeditor/lang/km.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/km.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/km.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'លេខកូតអក្សររបស់ឈ្នាប់',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'អាសយដ្ឋាន\u200bអ៊ីមែល',
     	emailBody : 'តួ\u200bអត្ថបទ',
Index: plugins/dcCKEditor/js/ckeditor/lang/ko.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ko.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ko.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : '링크된 자료 문자열 인코딩',
     	cssClasses : '스타일시트 클래스',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : '이메일 주소',
     	emailBody : '메시지 내용',
Index: plugins/dcCKEditor/js/ckeditor/lang/ku.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ku.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ku.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'بەستەری سەرچاوەی نووسە',
     	cssClasses : 'شێوازی چینی پەڕه',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ناونیشانی ئیمەیل',
     	emailBody : 'ناوەڕۆکی نامە',
Index: plugins/dcCKEditor/js/ckeditor/lang/lt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/lt.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/lt.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Susietų išteklių simbolių lentelė',
     	cssClasses : 'Stilių lentelės klasės',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'El.pašto adresas',
     	emailBody : 'Žinutės turinys',
Index: plugins/dcCKEditor/js/ckeditor/lang/lv.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/lv.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/lv.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Pievienotā resursa kodējums',
     	cssClasses : 'Stilu saraksta klases',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-pasta adrese',
     	emailBody : 'Ziņas saturs',
Index: plugins/dcCKEditor/js/ckeditor/lang/mk.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/mk.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/mk.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/mn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/mn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/mn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Тэмдэгт оноох нөөцөд холбогдсон',
     	cssClasses : 'Stylesheet классууд',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Э-шуудангийн хаяг',
     	emailBody : 'Зурвасны их бие',
Index: plugins/dcCKEditor/js/ckeditor/lang/ms.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ms.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ms.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Kelas-kelas Stylesheet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Alamat E-Mail',
     	emailBody : 'Isi Kandungan Mesej',
Index: plugins/dcCKEditor/js/ckeditor/lang/nb.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/nb.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/nb.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Lenket tegnsett',
     	cssClasses : 'Stilarkklasser',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-postadresse',
     	emailBody : 'Melding',
Index: plugins/dcCKEditor/js/ckeditor/lang/nl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/nl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/nl.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Karakterset van gelinkte bron',
     	cssClasses : 'Stylesheet-klassen',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-mailadres',
     	emailBody : 'Inhoud bericht',
Index: plugins/dcCKEditor/js/ckeditor/lang/no.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/no.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/no.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Lenket tegnsett',
     	cssClasses : 'Stilarkklasser',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-postadresse',
     	emailBody : 'Melding',
Index: plugins/dcCKEditor/js/ckeditor/lang/pl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/pl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/pl.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Kodowanie znaków obiektu docelowego',
     	cssClasses : 'Nazwa klasy CSS',
-    	download : 'Force Download',
+    	displayText : 'Wyświetlany tekst',
     	emailAddress : 'Adres e-mail',
     	emailBody : 'Treść',
Index: plugins/dcCKEditor/js/ckeditor/lang/pt-br.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/pt-br.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/pt-br.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Charset do Link',
     	cssClasses : 'Classe de CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Endereço E-Mail',
     	emailBody : 'Corpo da Mensagem',
Index: plugins/dcCKEditor/js/ckeditor/lang/pt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/pt.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/pt.js	(revision 3339)
@@ -19,5 +19,5 @@
     		editing : 'Edição',
     		forms : 'Formulários',
-    		basicstyles : 'Estilos Básicos',
+    		basicstyles : 'Estilos básicos',
     		paragraph : 'Parágrafo',
     		links : 'Hiperligações',
@@ -27,14 +27,14 @@
     		tools : 'Ferramentas'
     	},
-    	toolbars : 'Editor de Barras de Ferramentas'
+    	toolbars : 'Editor de barras de ferramentas'
     },
     templates : 
     {
-    	button : 'Modelos',
-    	emptyListMsg : '(Sem modelos definidos)',
+    	button : 'Temas',
+    	emptyListMsg : '(Sem temas definidos)',
     	insertOption : 'Substituir conteúdos atuais',
     	options : 'Opções do modelo',
-    	selectPromptMsg : 'Por favor, selecione o modelo para abrir no editor',
-    	title : 'Conteúdo dos Modelos'
+    	selectPromptMsg : 'Por favor, selecione o modelo a abrir no editor',
+    	title : 'Conteúdo dos modelos'
     },
     table : 
@@ -47,7 +47,7 @@
     		insertBefore : 'Inserir célula antes',
     		insertAfter : 'Inserir célula depois',
-    		deleteCell : 'Apagar Células',
-    		merge : 'Unir Células',
-    		mergeRight : 'Unir à Direita',
+    		deleteCell : 'Apagar células',
+    		merge : 'Unir células',
+    		mergeRight : 'Unir à direita',
     		mergeDown : 'Fundir abaixo',
     		splitHorizontal : 'Dividir célula horizontalmente',
@@ -55,12 +55,12 @@
     		title : 'Propriedades da célula',
     		cellType : 'Tipo de célula',
-    		rowSpan : 'Filas na Célula',
-    		colSpan : 'Colunas na Célula',
+    		rowSpan : 'Linhas na célula',
+    		colSpan : 'Colunas na célula',
     		wordWrap : 'Moldar texto',
-    		hAlign : 'Alinhamento Horizontal',
-    		vAlign : 'Alinhamento Vertical',
+    		hAlign : 'Alinhamento horizontal',
+    		vAlign : 'Alinhamento vertical',
     		alignBaseline : 'Base',
-    		bgColor : 'Cor de Fundo',
-    		borderColor : 'Cor da Margem',
+    		bgColor : 'Cor de fundo',
+    		borderColor : 'Cor da margem',
     		data : 'Dados',
     		header : 'Cabeçalho',
@@ -70,5 +70,5 @@
     		invalidHeight : 'A altura da célula deve ser um número.',
     		invalidRowSpan : 'As filas da célula deve ter um número inteiro.',
-    		invalidColSpan : 'As colunas da célula deve ter um número inteiro.',
+    		invalidColSpan : 'As colunas da célula devem ter um número inteiro.',
     		chooseColor : 'Escolher'
     	},
@@ -78,5 +78,5 @@
     	{
     		menu : 'Coluna',
-    		insertBefore : 'Inserir Coluna Antes',
+    		insertBefore : 'Inserir coluna antes',
     		insertAfter : 'Inserir coluna depois',
     		deleteColumn : 'Apagar colunas'
@@ -96,5 +96,5 @@
     	invalidRows : 'O número de linhas tem de ser maior que 0.',
     	invalidWidth : 'A largura da tabela tem de ser um número.',
-    	menu : 'Propriedades da Tabela',
+    	menu : 'Propriedades da tabela',
     	row : 
     	{
@@ -105,9 +105,9 @@
     	},
     	rows : 'Linhas',
-    	summary : 'Sumário',
-    	title : 'Propriedades da Tabela',
+    	summary : 'Resumo',
+    	title : 'Propriedades da tabela',
     	toolbar : 'Tabela',
     	widthPc : 'percentagem',
-    	widthPx : 'pontos',
+    	widthPx : 'pixéis',
     	widthUnit : 'unidade da largura'
     },
@@ -132,5 +132,5 @@
     removeformat : 
     {
-    	toolbar : 'Eliminar Formato'
+    	toolbar : 'Limpar formatação'
     },
     print : 
@@ -140,6 +140,6 @@
     pastetext : 
     {
-    	button : 'Colar como Texto Simples',
-    	title : 'Colar como Texto Simples'
+    	button : 'Colar como texto simples',
+    	title : 'Colar como texto simples'
     },
     pastefromword : 
@@ -162,13 +162,13 @@
     {
     	armenian : 'Numeração armênia',
-    	bulletedTitle : 'Bulleted List Properties',
+    	bulletedTitle : 'Propriedades da lista não numerada',
     	circle : 'Círculo',
     	decimal : 'Decimal (1, 2, 3, etc.)',
-    	decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)',
+    	decimalLeadingZero : 'Zero decimal à esquerda (01, 02, 03, etc.)',
     	disc : 'Disco',
-    	georgian : 'Georgian numbering (an, ban, gan, etc.)',
-    	lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)',
-    	lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)',
-    	lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)',
+    	georgian : 'Numeração georgiana (an, ban, gan, etc.)',
+    	lowerAlpha : 'Minúsculas (a, b, c, d, e, etc.)',
+    	lowerGreek : 'Grego em minúsculas (alpha, beta, gamma, etc.)',
+    	lowerRoman : 'Romano em minúsculas (i, ii, iii, iv, v, etc.)',
     	none : 'Nenhum',
     	notset : '<not set>',
@@ -177,7 +177,7 @@
     	start : 'Iniciar',
     	type : 'Tipo',
-    	upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)',
-    	upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)',
-    	validateStartNumber : 'List start number must be a whole number.'
+    	upperAlpha : 'Maiúsculas (A, B, C, D, E, etc.)',
+    	upperRoman : 'Romanos em maiúscula (I, II, III, IV, V, etc.)',
+    	validateStartNumber : 'A lista tem iniciar por um número inteiro'
     },
     list : 
@@ -188,64 +188,64 @@
     link : 
     {
-    	acccessKey : 'Chave de Acesso',
+    	acccessKey : 'Chave de acesso',
     	advanced : 'Avançado',
-    	advisoryContentType : 'Tipo de Conteúdo',
+    	advisoryContentType : 'Tipo de conteúdo',
     	advisoryTitle : 'Título',
     	anchor : 
     	{
-    		toolbar : ' Inserir/Editar Âncora',
-    		menu : 'Propriedades da Âncora',
-    		title : 'Propriedades da Âncora',
-    		name : 'Nome da Âncora',
+    		toolbar : ' Inserir/Editar âncora',
+    		menu : 'Propriedades da âncora',
+    		title : 'Propriedades da âncora',
+    		name : 'Nome da âncora',
     		errorName : 'Por favor, introduza o nome da âncora',
-    		remove : 'Remove Anchor'
-    	},
-    	anchorId : 'Por ID de elemento',
+    		remove : 'Remover âncora'
+    	},
+    	anchorId : 'Por ID do elemento',
     	anchorName : 'Por Nome de Referência',
     	charset : 'Fonte de caracteres vinculado',
-    	cssClasses : 'Classes de Estilo de Folhas Classes',
-    	download : 'Force Download',
-    	emailAddress : 'Endereço de E-Mail',
-    	emailBody : 'Corpo da Mensagem',
-    	emailSubject : 'Título de Mensagem',
+    	cssClasses : 'Classes de Estilo',
+    	displayText : 'Display Text',
+    	emailAddress : 'Endereço de email',
+    	emailBody : 'Corpo da mensagem',
+    	emailSubject : 'Título de mensagem',
     	id : 'ID',
-    	info : 'Informação de Hiperligação',
-    	langCode : 'Orientação de idioma',
+    	info : 'Informação da hiperligação',
+    	langCode : 'Código de idioma',
     	langDir : 'Orientação de idioma',
-    	langDirLTR : 'Esquerda à Direita (LTR)',
-    	langDirRTL : 'Direita a Esquerda (RTL)',
-    	menu : 'Editar Hiperligação',
+    	langDirLTR : 'Esquerda para a Direita (EPD)',
+    	langDirRTL : 'Direita para a Esquerda (DPE)',
+    	menu : 'Editar hiperligação',
     	name : 'Nome',
-    	noAnchors : '(Não há referências disponíveis no documento)',
-    	noEmail : 'Por favor introduza o endereço de e-mail',
-    	noUrl : 'Por favor introduza a hiperligação URL',
+    	noAnchors : '(Não existem âncoras no documento)',
+    	noEmail : 'Por favor, escreva o endereço de email',
+    	noUrl : 'Por favor, introduza o endereço URL',
     	other : '<outro>',
     	popupDependent : 'Dependente (Netscape)',
-    	popupFeatures : 'Características de Janela de Popup',
-    	popupFullScreen : 'Janela Completa (IE)',
-    	popupLeft : 'Posição Esquerda',
+    	popupFeatures : 'Características de janela flutuante',
+    	popupFullScreen : 'Janela completa (IE)',
+    	popupLeft : 'Posição esquerda',
     	popupLocationBar : 'Barra de localização',
-    	popupMenuBar : 'Barra de Menu',
+    	popupMenuBar : 'Barra de menu',
     	popupResizable : 'Redimensionável',
     	popupScrollBars : 'Barras de deslocamento',
-    	popupStatusBar : 'Barra de Estado',
+    	popupStatusBar : 'Barra de estado',
     	popupToolbar : 'Barra de ferramentas',
-    	popupTop : 'Posição Direita',
+    	popupTop : 'Posição topo',
     	rel : 'Relação',
-    	selectAnchor : 'Seleccionar una referência',
+    	selectAnchor : 'Selecionar âncora',
     	styles : 'Estilo',
     	tabIndex : 'Índice de tabulação',
     	target : 'Alvo',
     	targetFrame : '<frame>',
-    	targetFrameName : 'Nome do Frame Destino',
+    	targetFrameName : 'Nome da janela de destino',
     	targetPopup : '<janela de popup>',
-    	targetPopupName : 'Nome da Janela de Popup',
+    	targetPopupName : 'Nome da janela flutuante',
     	title : 'Hiperligação',
-    	toAnchor : 'Referência a esta página',
+    	toAnchor : 'Ligar a âncora no texto',
     	toEmail : 'Email',
     	toUrl : 'URL',
-    	toolbar : 'Inserir/Editar Hiperligação',
-    	type : 'Tipo de Hiperligação',
-    	unlink : 'Eliminar Hiperligação',
+    	toolbar : 'Hiperligação',
+    	type : 'Tipo de hiperligação',
+    	unlink : 'Eliminar hiperligação',
     	upload : 'Carregar'
     },
@@ -253,5 +253,5 @@
     {
     	block : 'Justificado',
-    	center : 'Alinhar ao Centro',
+    	center : 'Alinhar ao centro',
     	left : 'Alinhar à esquerda',
     	right : 'Alinhar à direita'
@@ -259,25 +259,25 @@
     indent : 
     {
-    	indent : 'Aumentar Avanço',
-    	outdent : 'Diminuir Avanço'
+    	indent : 'Aumentar avanço',
+    	outdent : 'Diminuir avanço'
     },
     image : 
     {
-    	alt : 'Texto Alternativo',
+    	alt : 'Texto alternativo',
     	border : 'Limite',
     	btnUpload : 'Enviar para o servidor',
     	button2Img : 'Deseja transformar o botão com imagem selecionado em uma imagem?',
-    	hSpace : 'Esp.Horiz',
+    	hSpace : 'Esp. Horiz',
     	img2Button : 'Deseja transformar a imagem selecionada em um botão com imagem?',
-    	infoTab : 'Informação da Imagem',
+    	infoTab : 'Informação da imagem',
     	linkTab : 'Hiperligação',
     	lockRatio : 'Proporcional',
     	menu : 'Propriedades da Imagem',
-    	resetSize : 'Tamanho Original',
-    	title : 'Propriedades da Imagem',
-    	titleButton : 'Propriedades do Botão de imagens',
+    	resetSize : 'Tamanho original',
+    	title : 'Propriedades da imagem',
+    	titleButton : 'Propriedades do botão de imagem',
     	upload : 'Carregar',
     	urlMissing : 'O URL da fonte da imagem está em falta.',
-    	vSpace : 'Esp.Vert',
+    	vSpace : 'Esp. Vert',
     	validateBorder : 'A borda tem de ser um numero.',
     	validateHSpace : 'HSpace tem de ser um numero.',
@@ -286,5 +286,5 @@
     horizontalrule : 
     {
-    	toolbar : 'Inserir Linha Horizontal'
+    	toolbar : 'Inserir linha horizontal'
     },
     format : 
@@ -305,9 +305,9 @@
     fakeobjects : 
     {
-    	anchor : ' Inserir/Editar Âncora',
+    	anchor : ' Inserir/Editar âncora',
     	flash : 'Animação Flash',
     	hiddenfield : 'Campo oculto',
     	iframe : 'IFrame',
-    	unknown : 'Objeto Desconhecido'
+    	unknown : 'Objeto desconhecido'
     },
     elementspath : 
@@ -323,7 +323,7 @@
     	edit : 'Editar Div',
     	inlineStyleInputLabel : 'Estilho em Linha',
-    	langDirLTRLabel : 'Esquerda à Direita (LTR)',
+    	langDirLTRLabel : 'Esquerda para a direita (EPD)',
     	langDirLabel : 'Orientação de idioma',
-    	langDirRTLLabel : 'Direita a Esquerda (RTL)',
+    	langDirRTLLabel : 'Direita para a Esquerda (DPE)',
     	languageCodeInputLabel : 'Codigo do Idioma',
     	remove : 'Remover Div',
@@ -339,46 +339,46 @@
     {
     	auto : 'Automático',
-    	bgColorTitle : 'Cor de Fundo',
+    	bgColorTitle : 'Cor de fundo',
     	colors : 
     	{
     		'000' : 'Black',
-    		'800000' : 'Maroon',
+    		'800000' : 'Castanho',
     		'8B4513' : 'Saddle Brown',
     		'2F4F4F' : 'Dark Slate Gray',
     		'008080' : 'Teal',
-    		'000080' : 'Navy',
+    		'000080' : 'Azul naval',
     		'4B0082' : 'Indigo',
-    		'696969' : 'Dark Gray',
-    		B22222 : 'Fire Brick',
-    		A52A2A : 'Brown',
-    		DAA520 : 'Golden Rod',
-    		'006400' : 'Dark Green',
-    		'40E0D0' : 'Turquoise',
-    		'0000CD' : 'Medium Blue',
+    		'696969' : 'Cinza escuro',
+    		B22222 : 'Vermelho tijolo',
+    		A52A2A : 'Castanho',
+    		DAA520 : 'Dourado (daa520)',
+    		'006400' : 'Verde escuro (006400)',
+    		'40E0D0' : 'Turquesa',
+    		'0000CD' : 'Azul médio (0000cd)',
     		'800080' : 'Purple',
-    		'808080' : 'Gray',
-    		F00 : 'Red',
-    		FF8C00 : 'Dark Orange',
-    		FFD700 : 'Gold',
-    		'008000' : 'Green',
-    		'0FF' : 'Cyan',
-    		'00F' : 'Blue',
-    		EE82EE : 'Violet',
-    		A9A9A9 : 'Dim Gray',
-    		FFA07A : 'Light Salmon',
-    		FFA500 : 'Orange',
-    		FFFF00 : 'Yellow',
-    		'00FF00' : 'Lime',
-    		AFEEEE : 'Pale Turquoise',
+    		'808080' : 'Cinza',
+    		F00 : 'Vermelho',
+    		FF8C00 : 'Laranja escuro',
+    		FFD700 : 'Dourado',
+    		'008000' : 'Verde',
+    		'0FF' : 'Ciano',
+    		'00F' : 'Azul',
+    		EE82EE : 'Violeta',
+    		A9A9A9 : 'Cinza fosco',
+    		FFA07A : 'Salmão claro',
+    		FFA500 : 'Laranja',
+    		FFFF00 : 'Amarelo',
+    		'00FF00' : 'Limão (Verde espectro)',
+    		AFEEEE : 'Turquesa pálida (afeeee)',
     		ADD8E6 : 'Light Blue',
-    		DDA0DD : 'Plum',
+    		DDA0DD : 'Ameixa',
     		D3D3D3 : 'Cinza claro',
-    		FFF0F5 : 'Lavender Blush',
+    		FFF0F5 : 'Lavanda avermelhada',
     		FAEBD7 : 'Branco velho',
     		FFFFE0 : 'Amarelo claro',
-    		F0FFF0 : 'Honeydew',
-    		F0FFFF : 'Azure',
-    		F0F8FF : 'Alice Blue',
-    		E6E6FA : 'Lavender',
+    		F0FFF0 : 'Maná (f0fff0)',
+    		F0FFFF : 'Azul celeste',
+    		F0F8FF : 'Azul Alice (f0f8ff)',
+    		E6E6FA : 'Lavanda',
     		FFF : 'Branco'
     	},
@@ -395,5 +395,5 @@
     	paste : 'Colar',
     	pasteArea : 'Colar área',
-    	pasteMsg : 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.',
+    	pasteMsg : 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e carregue em <STRONG>OK</STRONG>.',
     	securityMsg : 'Devido ás definições de segurança do teu browser, o editor não pode aceder ao clipboard diretamente. É necessário que voltes a colar as informações nesta janela.',
     	title : 'Colar'
@@ -413,5 +413,5 @@
     	strike : 'Rasurado',
     	subscript : 'Superior à linha',
-    	superscript : 'Inferior à Linha',
+    	superscript : 'Superior à linha',
     	underline : 'Sublinhado'
     },
@@ -423,5 +423,5 @@
     	moreInfo : 'Para informação sobre licenciamento visite o nosso sítio web:',
     	title : 'Sobre o CKEditor',
-    	userGuide : 'CKEditor - Guia do Utilizador'
+    	userGuide : 'CKEditor - Guia do utilizador'
     },
     editor : 'Editor de texto enriquecido',
@@ -433,27 +433,27 @@
     	url : 'URL',
     	protocol : 'Protocolo',
-    	upload : 'Enviar',
+    	upload : 'Carregar',
     	uploadSubmit : 'Enviar para o servidor',
     	image : 'Imagem',
     	flash : 'Flash',
     	form : 'Formulário',
-    	checkbox : 'Caixa de Seleção',
+    	checkbox : 'Caixa de verificação',
     	radio : 'Botão',
-    	textField : 'Campo do Texto',
-    	textarea : 'Área do Texto',
+    	textField : 'Campo de texto',
+    	textarea : 'Área de texto',
     	hiddenField : 'Campo oculto',
     	button : 'Botão',
-    	select : 'Campo da Seleção',
-    	imageButton : 'Botão da Imagem',
+    	select : 'Campo de seleção',
+    	imageButton : 'Botão da imagem',
     	notSet : '<Não definido>',
-    	id : 'Id.',
+    	id : 'ID',
     	name : 'Nome',
-    	langDir : 'Direção do Idioma',
+    	langDir : 'Direção do idioma',
     	langDirLtr : 'Esquerda para a Direita (EPD)',
     	langDirRtl : 'Direita para a Esquerda (DPE)',
-    	langCode : 'Código do Idioma',
-    	longDescr : 'Descrição Completa do URL',
-    	cssClass : 'Classes de Estilo das Folhas',
-    	advisoryTitle : 'Título Consultivo',
+    	langCode : 'Código do idioma',
+    	longDescr : 'Descrição completa do URL',
+    	cssClass : 'Classes de estilo das folhas',
+    	advisoryTitle : 'Título consultivo',
     	cssStyle : 'Estilo',
     	ok : 'CONFIRMAR',
@@ -469,8 +469,8 @@
     	options : 'Opções',
     	target : 'Destino',
-    	targetNew : 'Nova Janela (_blank)',
-    	targetTop : 'Janela Superior (_top)',
-    	targetSelf : 'Mesma Janela (_self)',
-    	targetParent : 'Janela Parente (_parent)',
+    	targetNew : 'Nova janela (_blank)',
+    	targetTop : 'Janela superior (_top)',
+    	targetSelf : 'Mesma janela (_self)',
+    	targetParent : 'Janela dependente (_parent)',
     	langDirLTR : 'Esquerda para a Direita (EPD)',
     	langDirRTL : 'Direita para a Esquerda (DPE)',
Index: plugins/dcCKEditor/js/ckeditor/lang/ro.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ro.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ro.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Setul de caractere al resursei legate',
     	cssClasses : 'Clasele cu stilul paginii (CSS)',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Adresă de e-mail',
     	emailBody : 'Opțiuni Meniu Contextual',
Index: plugins/dcCKEditor/js/ckeditor/lang/ru.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ru.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ru.js	(revision 3339)
@@ -51,6 +51,6 @@
     		mergeRight : 'Объединить с правой',
     		mergeDown : 'Объединить с нижней',
-    		splitHorizontal : 'Разделить ячейку по горизонтали',
-    		splitVertical : 'Разделить ячейку по вертикали',
+    		splitHorizontal : 'Разделить ячейку по вертикали',
+    		splitVertical : 'Разделить ячейку по горизонтали',
     		title : 'Свойства ячейки',
     		cellType : 'Тип ячейки',
@@ -205,5 +205,5 @@
     	charset : 'Кодировка ресурса',
     	cssClasses : 'Классы CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Email адрес',
     	emailBody : 'Текст сообщения',
Index: plugins/dcCKEditor/js/ckeditor/lang/si.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/si.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/si.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'විලාසපත්‍ර පන්තිය',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/sk.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sk.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sk.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Priradená znaková sada',
     	cssClasses : 'Triedy štýlu',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mailová adresa',
     	emailBody : 'Telo správy',
Index: plugins/dcCKEditor/js/ckeditor/lang/sl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sl.js	(revision 3339)
@@ -6,26 +6,26 @@
     undo : 
     {
-    	redo : 'Ponovi',
+    	redo : 'Uveljavi',
     	undo : 'Razveljavi'
     },
     toolbar : 
     {
-    	toolbarCollapse : 'Skrči Orodno Vrstico',
-    	toolbarExpand : 'Razširi Orodno Vrstico',
+    	toolbarCollapse : 'Skrči orodno vrstico',
+    	toolbarExpand : 'Razširi orodno vrstico',
     	toolbarGroups : 
     	{
-    		document : 'Document',
-    		clipboard : 'Clipboard/Undo',
-    		editing : 'Editing',
-    		forms : 'Forms',
-    		basicstyles : 'Basic Styles',
-    		paragraph : 'Paragraph',
-    		links : 'Links',
-    		insert : 'Insert',
-    		styles : 'Styles',
-    		colors : 'Colors',
-    		tools : 'Tools'
-    	},
-    	toolbars : 'Urejevalnik orodne vrstice'
+    		document : 'Dokument',
+    		clipboard : 'Odložišče/Razveljavi',
+    		editing : 'Urejanje',
+    		forms : 'Obrazci',
+    		basicstyles : 'Osnovni slogi',
+    		paragraph : 'Odstavek',
+    		links : 'Povezave',
+    		insert : 'Vstavi',
+    		styles : 'Slogi',
+    		colors : 'Barve',
+    		tools : 'Orodja'
+    	},
+    	toolbars : 'Orodne vrstice urejevalnika'
     },
     templates : 
@@ -41,5 +41,5 @@
     {
     	border : 'Velikost obrobe',
-    	caption : 'Naslov',
+    	caption : 'Napis',
     	cell : 
     	{
@@ -50,5 +50,5 @@
     		merge : 'Združi celice',
     		mergeRight : 'Združi desno',
-    		mergeDown : 'Druži navzdol',
+    		mergeDown : 'Združi navzdol',
     		splitHorizontal : 'Razdeli celico vodoravno',
     		splitVertical : 'Razdeli celico navpično',
@@ -73,5 +73,5 @@
     		chooseColor : 'Izberi'
     	},
-    	cellPad : 'Polnilo med celicami',
+    	cellPad : 'Odmik znotraj celic',
     	cellSpace : 'Razmik med celicami',
     	column : 
@@ -90,6 +90,6 @@
     	headersRow : 'Prva vrstica',
     	invalidBorder : 'Širina obrobe mora biti število.',
-    	invalidCellPadding : 'Zamik celic mora biti število',
-    	invalidCellSpacing : 'Razmik med celicami mora biti število.',
+    	invalidCellPadding : 'Odmik znotraj celic mora biti pozitivno število.',
+    	invalidCellSpacing : 'Razmik med celicami mora biti pozitivno število.',
     	invalidCols : 'Število stolpcev mora biti večje od 0.',
     	invalidHeight : 'Višina tabele mora biti število.',
@@ -108,5 +108,5 @@
     	title : 'Lastnosti tabele',
     	toolbar : 'Tabela',
-    	widthPc : 'procentov',
+    	widthPc : 'odstotkov',
     	widthPx : 'pik',
     	widthUnit : 'enota širine'
@@ -122,6 +122,6 @@
     specialchar : 
     {
-    	options : 'Možnosti Posebnega Znaka',
-    	title : 'Izberi Posebni Znak',
+    	options : 'Možnosti posebnih znakov',
+    	title : 'Izberi posebni znak',
     	toolbar : 'Vstavi posebni znak'
     },
@@ -145,5 +145,5 @@
     pastefromword : 
     {
-    	confirmCleanup : 'Besedilo, ki ga želite prilepiti je kopirano iz Word-a. Ali ga želite očistiti, preden ga prilepite?',
+    	confirmCleanup : 'Besedilo, ki ga želite prilepiti, je kopirano iz Worda. Ali ga želite očistiti, preden ga prilepite?',
     	error : 'Ni bilo mogoče očistiti prilepljenih podatkov zaradi notranje napake',
     	title : 'Prilepi iz Worda',
@@ -183,33 +183,33 @@
     list : 
     {
-    	bulletedlist : 'Označen seznam',
-    	numberedlist : 'Oštevilčen seznam'
+    	bulletedlist : 'Vstavi/odstrani neoštevilčen seznam',
+    	numberedlist : 'Vstavi/odstrani oštevilčen seznam'
     },
     link : 
     {
-    	acccessKey : 'Dostopno Geslo',
+    	acccessKey : 'Tipka za dostop',
     	advanced : 'Napredno',
-    	advisoryContentType : 'Predlagani tip vsebine (content-type)',
+    	advisoryContentType : 'Predlagana vrsta vsebine',
     	advisoryTitle : 'Predlagani naslov',
     	anchor : 
     	{
-    		toolbar : 'Vstavi/uredi zaznamek',
-    		menu : 'Lastnosti zaznamka',
-    		title : 'Lastnosti zaznamka',
-    		name : 'Ime zaznamka',
-    		errorName : 'Prosim vnesite ime zaznamka',
-    		remove : 'Remove Anchor'
+    		toolbar : 'Sidro',
+    		menu : 'Uredi sidro',
+    		title : 'Lastnosti sidra',
+    		name : 'Ime sidra',
+    		errorName : 'Prosimo, vnesite ime sidra',
+    		remove : 'Odstrani sidro'
     	},
     	anchorId : 'Po ID-ju elementa',
-    	anchorName : 'Po imenu zaznamka',
-    	charset : 'Kodna tabela povezanega vira',
-    	cssClasses : 'Razred stilne predloge',
-    	download : 'Force Download',
-    	emailAddress : 'Elektronski naslov',
-    	emailBody : 'Vsebina sporočila',
-    	emailSubject : 'Predmet sporočila',
+    	anchorName : 'Po imenu sidra',
+    	charset : 'Nabor znakov povezanega vira',
+    	cssClasses : 'Razredi slogovne predloge',
+    	displayText : 'Display Text',
+    	emailAddress : 'E-poštni naslov',
+    	emailBody : 'Telo sporočila',
+    	emailSubject : 'Zadeva sporočila',
     	id : 'Id',
     	info : 'Podatki o povezavi',
-    	langCode : 'Smer jezika',
+    	langCode : 'Koda jezika',
     	langDir : 'Smer jezika',
     	langDirLTR : 'Od leve proti desni (LTR)',
@@ -217,11 +217,11 @@
     	menu : 'Uredi povezavo',
     	name : 'Ime',
-    	noAnchors : '(V tem dokumentu ni zaznamkov)',
-    	noEmail : 'Vnesite elektronski naslov',
+    	noAnchors : '(V tem dokumentu ni sider)',
+    	noEmail : 'Vnesite e-poštni naslov',
     	noUrl : 'Vnesite URL povezave',
-    	other : '<drug>',
+    	other : '<drugo>',
     	popupDependent : 'Podokno (Netscape)',
     	popupFeatures : 'Značilnosti pojavnega okna',
-    	popupFullScreen : 'Celozaslonska slika (IE)',
+    	popupFullScreen : 'Celozaslonsko (IE)',
     	popupLeft : 'Lega levo',
     	popupLocationBar : 'Naslovna vrstica',
@@ -233,5 +233,5 @@
     	popupTop : 'Lega na vrhu',
     	rel : 'Odnos',
-    	selectAnchor : 'Izberi zaznamek',
+    	selectAnchor : 'Izberite sidro',
     	styles : 'Slog',
     	tabIndex : 'Številka tabulatorja',
@@ -242,11 +242,11 @@
     	targetPopupName : 'Ime pojavnega okna',
     	title : 'Povezava',
-    	toAnchor : 'Zaznamek na tej strani',
-    	toEmail : 'Elektronski naslov',
+    	toAnchor : 'Sidro na tej strani',
+    	toEmail : 'E-pošta',
     	toUrl : 'URL',
     	toolbar : 'Vstavi/uredi povezavo',
     	type : 'Vrsta povezave',
     	unlink : 'Odstrani povezavo',
-    	upload : 'Prenesi'
+    	upload : 'Naloži'
     },
     justify : 
@@ -267,7 +267,7 @@
     	border : 'Obroba',
     	btnUpload : 'Pošlji na strežnik',
-    	button2Img : 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?',
-    	hSpace : 'Vodoravni razmik',
-    	img2Button : 'Želiš pretvoriti izbrano sliko v gumb s sliko?',
+    	button2Img : 'Želite pretvoriti izbrani gumb s sliko v preprosto sliko?',
+    	hSpace : 'Vodoravni odmik',
+    	img2Button : 'Želite pretvoriti izbrano sliko v gumb s sliko?',
     	infoTab : 'Podatki o sliki',
     	linkTab : 'Povezava',
@@ -277,9 +277,9 @@
     	title : 'Lastnosti slike',
     	titleButton : 'Lastnosti gumba s sliko',
-    	upload : 'Pošlji',
-    	urlMissing : 'Manjka vir (URL) slike.',
-    	vSpace : 'Navpični razmik',
+    	upload : 'Naloži',
+    	urlMissing : 'Manjka URL vira slike.',
+    	vSpace : 'Navpični odmik',
     	validateBorder : 'Meja mora biti celo število.',
-    	validateHSpace : 'HSpace mora biti celo število.',
+    	validateHSpace : 'Vodoravni odmik mora biti celo število.',
     	validateVSpace : 'VSpace mora biti celo število.'
     },
@@ -291,5 +291,5 @@
     {
     	label : 'Oblika',
-    	panelTitle : 'Oblika',
+    	panelTitle : 'Oblika odstavka',
     	tag_address : 'Napis',
     	tag_div : 'Navaden (DIV)',
@@ -306,5 +306,5 @@
     {
     	anchor : 'Sidro',
-    	flash : 'Flash animacija',
+    	flash : 'Animacija flash',
     	hiddenfield : 'Skrito polje',
     	iframe : 'IFrame',
@@ -314,5 +314,5 @@
     {
     	eleLabel : 'Pot elementov',
-    	eleTitle : '%1 element'
+    	eleTitle : 'Element %1'
     },
     div : 
@@ -320,19 +320,19 @@
     	IdInputLabel : 'Id',
     	advisoryTitleInputLabel : 'Predlagani naslov',
-    	cssClassInputLabel : 'Razred stilne predloge',
-    	edit : 'Uredi Div',
-    	inlineStyleInputLabel : 'Inline Slog',
+    	cssClassInputLabel : 'Razredi slogovne predloge',
+    	edit : 'Uredi div',
+    	inlineStyleInputLabel : 'Slog v vrstici',
     	langDirLTRLabel : 'Od leve proti desni (LTR)',
     	langDirLabel : 'Smer jezika',
     	langDirRTLLabel : 'Od desne proti levi (RTL)',
-    	languageCodeInputLabel : 'Koda Jezika',
-    	remove : 'Odstrani Div',
+    	languageCodeInputLabel : 'Koda jezika',
+    	remove : 'Odstrani div',
     	styleSelectLabel : 'Slog',
-    	title : 'Ustvari Div Posodo',
-    	toolbar : 'Ustvari Div Posodo'
+    	title : 'Ustvari vsebnik div',
+    	toolbar : 'Ustvari vsebnik div'
     },
     contextmenu : 
     {
-    	options : 'Možnosti Kontekstnega Menija'
+    	options : 'Možnosti kontekstnega menija'
     },
     colorbutton : 
@@ -342,5 +342,5 @@
     	colors : 
     	{
-    		'000' : 'Black',
+    		'000' : 'Črna',
     		'800000' : 'Maroon',
     		'8B4513' : 'Saddle Brown',
@@ -351,38 +351,38 @@
     		'696969' : 'Dark Gray',
     		B22222 : 'Fire Brick',
-    		A52A2A : 'Brown',
+    		A52A2A : 'Rjava',
     		DAA520 : 'Golden Rod',
-    		'006400' : 'Dark Green',
-    		'40E0D0' : 'Turquoise',
-    		'0000CD' : 'Medium Blue',
-    		'800080' : 'Purple',
-    		'808080' : 'Gray',
-    		F00 : 'Red',
-    		FF8C00 : 'Dark Orange',
-    		FFD700 : 'Gold',
-    		'008000' : 'Green',
-    		'0FF' : 'Cyan',
-    		'00F' : 'Blue',
-    		EE82EE : 'Violet',
+    		'006400' : 'Temno zelena',
+    		'40E0D0' : 'Turkizna',
+    		'0000CD' : 'Srednje modra',
+    		'800080' : 'Škrlatna',
+    		'808080' : 'Siva',
+    		F00 : 'Rdeča',
+    		FF8C00 : 'Temno oranžna',
+    		FFD700 : 'Zlata',
+    		'008000' : 'Zelena',
+    		'0FF' : 'Sinja',
+    		'00F' : 'Modra',
+    		EE82EE : 'Vijolična',
     		A9A9A9 : 'Dim Gray',
     		FFA07A : 'Light Salmon',
-    		FFA500 : 'Orange',
-    		FFFF00 : 'Yellow',
+    		FFA500 : 'Oranžna',
+    		FFFF00 : 'Rumena',
     		'00FF00' : 'Lime',
     		AFEEEE : 'Pale Turquoise',
-    		ADD8E6 : 'Light Blue',
+    		ADD8E6 : 'Svetlo modra',
     		DDA0DD : 'Plum',
-    		D3D3D3 : 'Light Grey',
+    		D3D3D3 : 'Svetlo siva',
     		FFF0F5 : 'Lavender Blush',
     		FAEBD7 : 'Antique White',
-    		FFFFE0 : 'Light Yellow',
+    		FFFFE0 : 'Svetlo rumena',
     		F0FFF0 : 'Honeydew',
     		F0FFFF : 'Azure',
     		F0F8FF : 'Alice Blue',
     		E6E6FA : 'Lavender',
-    		FFF : 'White'
-    	},
-    	more : 'Več barv...',
-    	panelTitle : 'Colors',
+    		FFF : 'Bela'
+    	},
+    	more : 'Več barv ...',
+    	panelTitle : 'Barve',
     	textColorTitle : 'Barva besedila'
     },
@@ -394,6 +394,6 @@
     	cutError : 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',
     	paste : 'Prilepi',
-    	pasteArea : 'Prilepi Prostor',
-    	pasteMsg : 'Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',
+    	pasteArea : 'Prilepi območje',
+    	pasteMsg : 'Prosimo, prilepite v sleči okvir s pomočjo tipkovnice (<strong>Ctrl/Cmd+V</strong>) in pritisnite V redu.',
     	securityMsg : 'Zaradi varnostnih nastavitev vašega brskalnika urejevalnik ne more neposredno dostopati do odložišča. Vsebino odložišča ponovno prilepite v to okno.',
     	title : 'Prilepi'
@@ -420,11 +420,11 @@
     	copy : 'Copyright &copy; $1. Vse pravice pridržane.',
     	dlgTitle : 'O programu CKEditor',
-    	help : 'Preverite $1 za pomoč.',
-    	moreInfo : 'Za informacijo o licenci prosim obiščite našo spletno stran:',
+    	help : 'Oglejte si $1 za pomoč.',
+    	moreInfo : 'Za informacije o licenciranju prosimo obiščite našo spletno stran:',
     	title : 'O programu CKEditor',
-    	userGuide : 'CKEditor Navodila za Uporabo'
-    },
-    editor : 'Bogat Urejevalnik Besedila',
-    editorPanel : 'Rich Text Editor plošča',
+    	userGuide : 'Uporabniški vodnik CKEditor'
+    },
+    editor : 'Urejevalnik obogatenega besedila',
+    editorPanel : 'Plošča urejevalnika obogatenega besedila',
     common : 
     {
@@ -440,10 +440,10 @@
     	checkbox : 'Potrditveno polje',
     	radio : 'Izbirno polje',
-    	textField : 'Vnosno polje',
-    	textarea : 'Vnosno območje',
+    	textField : 'Besedilno polje',
+    	textarea : 'Besedilno območje',
     	hiddenField : 'Skrito polje',
     	button : 'Gumb',
-    	select : 'Spustno Polje',
-    	imageButton : 'Slikovni Gumb',
+    	select : 'Spustno polje',
+    	imageButton : 'Slikovni gumb',
     	notSet : '<ni določen>',
     	id : 'Id',
@@ -452,7 +452,7 @@
     	langDirLtr : 'Od leve proti desni (LTR)',
     	langDirRtl : 'Od desne proti levi (RTL)',
-    	langCode : 'Koda Jezika',
+    	langCode : 'Koda jezika',
     	longDescr : 'Dolg opis URL-ja',
-    	cssClass : 'Razred stilne predloge',
+    	cssClass : 'Razredi slogovne predloge',
     	advisoryTitle : 'Predlagani naslov',
     	cssStyle : 'Slog',
@@ -464,17 +464,17 @@
     	generalTab : 'Splošno',
     	advancedTab : 'Napredno',
-    	validateNumberFailed : 'Ta vrednost ni število.',
-    	confirmNewPage : 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
-    	confirmCancel : 'Nekaj možnosti je bilo spremenjenih. Ali res želite zapreti okno?',
+    	validateNumberFailed : 'Vrednost ni število.',
+    	confirmNewPage : 'Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
+    	confirmCancel : 'Spremenili ste nekaj možnosti. Ali res želite zapreti okno?',
     	options : 'Možnosti',
     	target : 'Cilj',
-    	targetNew : 'Novo Okno (_blank)',
-    	targetTop : 'Vrhovno Okno (_top)',
-    	targetSelf : 'Enako Okno (_self)',
-    	targetParent : 'Matično Okno (_parent)',
+    	targetNew : 'Novo okno (_blank)',
+    	targetTop : 'Vrhovno okno (_top)',
+    	targetSelf : 'Isto okno (_self)',
+    	targetParent : 'Starševsko okno (_parent)',
     	langDirLTR : 'Od leve proti desni (LTR)',
     	langDirRTL : 'Od desne proti levi (RTL)',
     	styles : 'Slog',
-    	cssClasses : 'Razred stilne predloge',
+    	cssClasses : 'Razredi slogovne predloge',
     	width : 'Širina',
     	height : 'Višina',
@@ -491,8 +491,8 @@
     	invalidHeight : 'Višina mora biti število.',
     	invalidWidth : 'Širina mora biti število.',
-    	invalidCssLength : 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne CSS enote za merjenje (px, %, in, cm, mm, em, ex, pt, ali pc).',
-    	invalidHtmlLength : 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne HTML enote za merjenje (px ali %).',
-    	invalidInlineStyle : 'Vrednost določena za inline slog mora biti sestavljena iz ene ali več tork (tuples) z obliko "ime : vrednost", ločenih z podpičji.',
-    	cssLengthTooltip : 'Vnesite številko za vrednost v slikovnih pikah (pixels) ali številko z veljavno CSS enoto (px, %, in, cm, mm, em, ex, pt, ali pc).',
+    	invalidCssLength : 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).',
+    	invalidHtmlLength : 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).',
+    	invalidInlineStyle : 'Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.',
+    	cssLengthTooltip : 'Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).',
     	unavailable : '%1<span class="cke_accessibility">, nedosegljiv</span>'
     } }; 
Index: plugins/dcCKEditor/js/ckeditor/lang/sq.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sq.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sq.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Seti i Karaktereve të Burimeve të Nëdlidhura',
     	cssClasses : 'Klasa stili CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Posta Elektronike',
     	emailBody : 'Trupi i Porosisë',
Index: plugins/dcCKEditor/js/ckeditor/lang/sr-latn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sr-latn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sr-latn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet klase',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail adresa',
     	emailBody : 'Sadržaj poruke',
Index: plugins/dcCKEditor/js/ckeditor/lang/sr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sr.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet класе',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Адреса електронске поште',
     	emailBody : 'Садржај поруке',
Index: plugins/dcCKEditor/js/ckeditor/lang/sv.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sv.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sv.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Teckenuppställning',
     	cssClasses : 'Stilmall',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-postadress',
     	emailBody : 'Innehåll',
Index: plugins/dcCKEditor/js/ckeditor/lang/th.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/th.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/th.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร',
     	cssClasses : 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'อีเมล์ (E-Mail)',
     	emailBody : 'ข้อความ',
Index: plugins/dcCKEditor/js/ckeditor/lang/tr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/tr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/tr.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Bağlı Kaynak Karakter Gurubu',
     	cssClasses : 'Biçem Sayfası Sınıfları',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Posta Adresi',
     	emailBody : 'İleti Gövdesi',
Index: plugins/dcCKEditor/js/ckeditor/lang/tt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/tt.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/tt.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Стильләр класслары',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Электрон почта адресы',
     	emailBody : 'Хат эчтәлеге',
Index: plugins/dcCKEditor/js/ckeditor/lang/ug.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ug.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ug.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'ھەرپ كودلىنىشى',
     	cssClasses : 'ئۇسلۇب خىلى ئاتى',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ئادرېس',
     	emailBody : 'مەزمۇن',
Index: plugins/dcCKEditor/js/ckeditor/lang/uk.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/uk.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/uk.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Кодування',
     	cssClasses : 'Клас CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Адреса ел. пошти',
     	emailBody : 'Тіло повідомлення',
Index: plugins/dcCKEditor/js/ckeditor/lang/vi.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/vi.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/vi.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Bảng mã của tài nguyên được liên kết đến',
     	cssClasses : 'Lớp Stylesheet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Thư điện tử',
     	emailBody : 'Nội dung thông điệp',
Index: plugins/dcCKEditor/js/ckeditor/lang/zh-cn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/zh-cn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/zh-cn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : '字符编码',
     	cssClasses : '样式类名称',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : '地址',
     	emailBody : '内容',
Index: plugins/dcCKEditor/js/ckeditor/lang/zh.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/zh.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/zh.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : '連結資源的字元集',
     	cssClasses : '樣式表類別',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : '電子郵件地址',
     	emailBody : '郵件本文',
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js	(revision 3339)
@@ -19,5 +19,5 @@
 			name: 'Editor de diálogo',
 			legend:
-				'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING
+				'Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente.'
 		},
 
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js	(revision 3339)
@@ -6,5 +6,5 @@
 CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {
 	title: 'Instructions d\'accessibilité',
-	contents: 'Contenu de l\'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).',
+	contents: 'Contenu de l\'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.',
 	legend: [
 		{
@@ -13,26 +13,26 @@
 			{
 			name: 'Barre d\'outils de l\'éditeur',
-			legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers les groupes suivant ou précédent de la barre d\'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d\'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRÉE pour activer le bouton de barre d\'outils.'
+			legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers le groupe suivant ou précédent de la barre d\'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d\'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d\'espace ou la touche Entrée pour activer le bouton de barre d\'outils.'
 		},
 
 			{
-			name: 'Dialogue de l\'éditeur',
+			name: 'Fenêtre de l\'éditeur',
 			legend:
-				'Dans un dialogue, appuyer sur TAB pour aller à l\'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l\'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement.'
+				'Dans une boîte de dialogue, appuyer sur Tab pour passer à l\'élément suivant, appuyer sur Maj+Tab pour passer à l\'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement.'
 		},
 
 			{
 			name: 'Menu contextuel de l\'éditeur',
-			legend: 'Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l\'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'option précédente avec les touches  MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D\'ESPACE ou la touche ENTRÉE pour sélectionner l\'option du menu. Oovrir le sous-menu de l\'option courante avec la BARRE D\'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l\'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP.'
+			legend: 'Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l\'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l\'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou la touche Entrée pour sélectionner l\'option du menu. Appuyer sur la barre d\'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l\'option sélectionnée. Revenir à l\'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap.'
 		},
 
 			{
 			name: 'Zone de liste de l\'éditeur',
-			legend: 'Dans la liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant.'
+			legend: 'Dans une liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l\'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant.'
 		},
 
 			{
-			name: 'Barre d\'emplacement des éléments de l\'éditeur',
-			legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d\'emplacement des éléments de l\'éditeur. Se déplacer vers le bouton d\'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d\'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'élément dans l\'éditeur.'
+			name: 'Barre du chemin d\'éléments de l\'éditeur',
+			legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d\'Ariane des éléments. Se déplacer vers le bouton de l\'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'élément dans l\'éditeur.'
 		}
 		]
@@ -46,5 +46,5 @@
 		},
 			{
-			name: 'Refaire la commande',
+			name: 'Commande restaurer',
 			legend: 'Appuyer sur ${redo}'
 		},
@@ -70,13 +70,13 @@
 		},
 			{
-			name: 'Accéder à la précédente commande d\'espace de mise au point',
-			legend: 'Appuyez sur ${accessPreviousSpace} pour accéder à l\'espace hors d\'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants.'
+			name: 'Commande d\'accès à l\'élément sélectionnable précédent',
+			legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents.'
 		},
 			{
-			name: 'Accès à la prochaine commande de l\'espace de mise au point',
-			legend: 'Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d\'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants.'
+			name: 'Commande d\'accès à l\'élément sélectionnable suivant',
+			legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants.'
 		},
 			{
-			name: ' Aide Accessibilité',
+			name: ' Aide sur l\'accessibilité',
 			legend: 'Appuyer sur ${a11yHelp}'
 		}
@@ -94,29 +94,29 @@
 	escape: 'Échap',
 	pageUp: 'Page supérieure',
-	pageDown: 'Page inférieure',
+	pageDown: 'Page suivante',
 	end: 'Fin',
-	home: 'Retour',
+	home: 'Origine',
 	leftArrow: 'Flèche gauche',
-	upArrow: 'Flèche haute',
+	upArrow: 'Flèche haut',
 	rightArrow: 'Flèche droite',
 	downArrow: 'Flèche basse',
-	insert: 'Insertion',
+	insert: 'Inser',
 	'delete': 'Supprimer',
 	leftWindowKey: 'Touche Windows gauche',
 	rightWindowKey: 'Touche Windows droite',
-	selectKey: 'Touche menu',
-	numpad0: 'Pavé numérique 0',
-	numpad1: 'Pavé numérique 1',
-	numpad2: 'Pavé numérique 2',
-	numpad3: 'Pavé numérique 3',
-	numpad4: 'Pavé numérique 4',
-	numpad5: 'Pavé numérique 5',
-	numpad6: 'Pavé numérique 6',
-	numpad7: 'Pavé numérique 7',
+	selectKey: 'Touche Sélectionner',
+	numpad0: '0 du pavé numérique',
+	numpad1: '1 du pavé numérique',
+	numpad2: '2 du pavé numérique',
+	numpad3: '3 du pavé numérique',
+	numpad4: '4 du pavé numérique',
+	numpad5: '5 du pavé numérique',
+	numpad6: '6 du pavé numérique',
+	numpad7: '7 du pavé numérique',
 	numpad8: 'Pavé numérique 8',
-	numpad9: 'Pavé numérique 9',
+	numpad9: '9 du pavé numérique',
 	multiply: 'Multiplier',
-	add: 'Addition',
-	subtract: 'Soustraire',
+	add: 'Plus',
+	subtract: 'Moins',
 	decimalPoint: 'Point décimal',
 	divide: 'Diviser',
@@ -133,7 +133,7 @@
 	f11: 'F11',
 	f12: 'F12',
-	numLock: 'Verrouillage numérique',
-	scrollLock: 'Arrêt défilement',
-	semiColon: 'Point virgule',
+	numLock: 'Verr. Num.',
+	scrollLock: 'Arrêt défil.',
+	semiColon: 'Point-virgule',
 	equalSign: 'Signe égal',
 	comma: 'Virgule',
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js	(revision 3339)
@@ -13,9 +13,9 @@
 			{
 			name: 'Barra de ferramentas do editor',
-			legend: 'Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'
+			legend: 'Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'
 		},
 
 			{
-			name: 'Janela do Editor',
+			name: 'Janela do editor',
 			legend:
 				'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING
@@ -23,5 +23,5 @@
 
 			{
-			name: 'Menu de Contexto do Editor',
+			name: 'Menu de contexto do editor',
 			legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente  com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.'
 		},
@@ -29,10 +29,10 @@
 			{
 			name: 'Editor de caixa em lista',
-			legend: 'Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista.'
+			legend: 'Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista.'
 		},
 
 			{
-			name: 'Caminho Barra Elemento Editor',
-			legend: 'Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor.'
+			name: 'Editor da barra de caminho dos elementos',
+			legend: 'Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor.'
 		}
 		]
@@ -42,33 +42,33 @@
 		items: [
 			{
-			name: 'Comando de Anular',
+			name: 'Comando de anular',
 			legend: 'Carregar ${undo}'
 		},
 			{
-			name: 'Comando de Refazer',
-			legend: 'Pressione ${redo}'
+			name: 'Comando de refazer',
+			legend: 'Clique ${redo}'
 		},
 			{
-			name: 'Comando de Negrito',
+			name: 'Comando de negrito',
 			legend: 'Pressione ${bold}'
 		},
 			{
-			name: 'Comando de Itálico',
+			name: 'Comando de itálico',
 			legend: 'Pressione ${italic}'
 		},
 			{
-			name: 'Comando de Sublinhado',
+			name: 'Comando de sublinhado',
 			legend: 'Pressione ${underline}'
 		},
 			{
-			name: 'Comando de Hiperligação',
+			name: 'Comando de hiperligação',
 			legend: 'Pressione ${link}'
 		},
 			{
-			name: 'Comando de Ocultar Barra de Ferramentas',
+			name: 'Comando de ocultar barra de ferramentas',
 			legend: 'Pressione ${toolbarCollapse}'
 		},
 			{
-			name: 'Acesso comando do espaço focus anterior',
+			name: 'Aceder ao comando espaço de foco anterior',
 			legend: 'Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes.'
 		},
@@ -120,5 +120,5 @@
 	subtract: 'Subtrair',
 	decimalPoint: 'Decimal Point', // MISSING
-	divide: 'Divide', // MISSING
+	divide: 'Separar',
 	f1: 'F1',
 	f2: 'F2',
@@ -138,6 +138,6 @@
 	equalSign: 'Equal Sign', // MISSING
 	comma: 'Vírgula',
-	dash: 'Dash', // MISSING
-	period: 'Period', // MISSING
+	dash: 'Cardinal',
+	period: 'Ponto',
 	forwardSlash: 'Forward Slash', // MISSING
 	graveAccent: 'Acento grave',
@@ -145,4 +145,4 @@
 	backSlash: 'Backslash', // MISSING
 	closeBracket: 'Close Bracket', // MISSING
-	singleQuote: 'Single Quote' // MISSING
+	singleQuote: 'Plica'
 } );
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js	(revision 3339)
@@ -5,6 +5,6 @@
 
 CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
-	title: 'Navodila Dostopnosti',
-	contents: 'Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.',
+	title: 'Navodila za dostopnost',
+	contents: 'Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.',
 	legend: [
 		{
@@ -12,5 +12,5 @@
 		items: [
 			{
-			name: 'Urejevalna Orodna Vrstica',
+			name: 'Orodna vrstica urejevalnika',
 			legend: 'Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice.'
 		},
@@ -23,5 +23,5 @@
 
 			{
-			name: 'Urejevalni Kontekstni Meni',
+			name: 'Kontekstni meni urejevalnika',
 			legend: 'Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC.'
 		},
@@ -78,5 +78,5 @@
 		},
 			{
-			name: 'Pomoč Dostopnosti',
+			name: 'Pomoč dostopnosti',
 			legend: 'Pritisnite ${a11yHelp}'
 		}
@@ -97,12 +97,12 @@
 	end: 'End',
 	home: 'Home',
-	leftArrow: 'Levo puščica',
-	upArrow: 'Gor puščica',
-	rightArrow: 'Desno puščica',
-	downArrow: 'Dol puščica',
+	leftArrow: 'Puščica levo',
+	upArrow: 'Puščica gor',
+	rightArrow: 'Puščica desno',
+	downArrow: 'Puščica dol',
 	insert: 'Insert',
 	'delete': 'Delete',
-	leftWindowKey: 'Leva Windows tipka',
-	rightWindowKey: 'Desna Windows tipka',
+	leftWindowKey: 'Leva tipka Windows',
+	rightWindowKey: 'Desna tipka Windows',
 	selectKey: 'Select tipka',
 	numpad0: 'Numpad 0',
@@ -136,5 +136,5 @@
 	scrollLock: 'Scroll Lock',
 	semiColon: 'Podpičje',
-	equalSign: 'enačaj',
+	equalSign: 'Enačaj',
 	comma: 'Vejica',
 	dash: 'Vezaj',
@@ -144,5 +144,5 @@
 	openBracket: 'Oklepaj',
 	backSlash: 'Leva poševnica',
-	closeBracket: 'Oklepaj',
+	closeBracket: 'Zaklepaj',
 	singleQuote: 'Opuščaj'
 } );
Index: plugins/dcCKEditor/js/ckeditor/plugins/about/dialogs/about.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/about/dialogs/about.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/about/dialogs/about.js	(revision 3339)
@@ -53,15 +53,15 @@
 						'<p>' +
 							'CKEditor ' + CKEDITOR.version + ' (revision ' + CKEDITOR.revision + ')<br>' +
-							'<a target="_blank" href="http://ckeditor.com/">http://ckeditor.com</a>' +
+							'<a target="_blank" rel="noopener noreferrer" href="http://ckeditor.com/">http://ckeditor.com</a>' +
 						'</p>' +
 						'<p>' +
-							lang.help.replace( '$1', '<a target="_blank" href="http://docs.ckeditor.com/user">' + lang.userGuide + '</a>' ) +
+							lang.help.replace( '$1', '<a target="_blank" rel="noopener noreferrer" href="http://docs.ckeditor.com/user">' + lang.userGuide + '</a>' ) +
 						'</p>' +
 						'<p>' +
 							lang.moreInfo + '<br>' +
-							'<a target="_blank" href="http://ckeditor.com/about/license">http://ckeditor.com/about/license</a>' +
+							'<a target="_blank" rel="noopener noreferrer" href="http://ckeditor.com/about/license">http://ckeditor.com/about/license</a>' +
 						'</p>' +
 						'<p>' +
-							lang.copy.replace( '$1', '<a target="_blank" href="http://cksource.com/">CKSource</a> - Frederico Knabben' ) +
+							lang.copy.replace( '$1', '<a target="_blank" rel="noopener noreferrer" href="http://cksource.com/">CKSource</a> - Frederico Knabben' ) +
 						'</p>' +
 						'</div>'
Index: lugins/dcCKEditor/js/ckeditor/plugins/dialog/samples/assets/my_dialog.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/dialog/samples/assets/my_dialog.js	(revision 3039)
+++ 	(revision )
@@ -1,48 +1,0 @@
-/**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-CKEDITOR.dialog.add( 'myDialog', function() {
-	return {
-		title: 'My Dialog',
-		minWidth: 400,
-		minHeight: 200,
-		contents: [
-			{
-				id: 'tab1',
-				label: 'First Tab',
-				title: 'First Tab',
-				elements: [
-					{
-						id: 'input1',
-						type: 'text',
-						label: 'Text Field'
-					},
-					{
-						id: 'select1',
-						type: 'select',
-						label: 'Select Field',
-						items: [
-							[ 'option1', 'value1' ],
-							[ 'option2', 'value2' ]
-						]
-					}
-				]
-			},
-			{
-				id: 'tab2',
-				label: 'Second Tab',
-				title: 'Second Tab',
-				elements: [
-					{
-						id: 'button1',
-						type: 'button',
-						label: 'Button Field'
-					}
-				]
-			}
-		]
-	};
-} );
-
Index: lugins/dcCKEditor/js/ckeditor/plugins/dialog/samples/dialog.html
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/dialog/samples/dialog.html	(revision 3039)
+++ 	(revision )
@@ -1,190 +1,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
--->
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>Using API to Customize Dialog Windows &mdash; CKEditor Sample</title>
-	<script src="../../../ckeditor.js"></script>
-	<link rel="stylesheet" href="../../../samples/old/sample.css">
-	<meta name="ckeditor-sample-name" content="Using the JavaScript API to customize dialog windows">
-	<meta name="ckeditor-sample-group" content="Advanced Samples">
-	<meta name="ckeditor-sample-description" content="Using the dialog windows API to customize dialog windows without changing the original editor code.">
-	<style>
-
-		.cke_button__mybutton_icon
-		{
-			display: none !important;
-		}
-
-		.cke_button__mybutton_label
-		{
-			display: inline !important;
-		}
-
-	</style>
-	<script>
-
-		CKEDITOR.on( 'instanceCreated', function( ev ){
-			var editor = ev.editor;
-
-			// Listen for the "pluginsLoaded" event, so we are sure that the
-			// "dialog" plugin has been loaded and we are able to do our
-			// customizations.
-			editor.on( 'pluginsLoaded', function() {
-
-				// If our custom dialog has not been registered, do that now.
-				if ( !CKEDITOR.dialog.exists( 'myDialog' ) ) {
-					// We need to do the following trick to find out the dialog
-					// definition file URL path. In the real world, you would simply
-					// point to an absolute path directly, like "/mydir/mydialog.js".
-					var href = document.location.href.split( '/' );
-					href.pop();
-					href.push( 'assets/my_dialog.js' );
-					href = href.join( '/' );
-
-					// Finally, register the dialog.
-					CKEDITOR.dialog.add( 'myDialog', href );
-				}
-
-				// Register the command used to open the dialog.
-				editor.addCommand( 'myDialogCmd', new CKEDITOR.dialogCommand( 'myDialog' ) );
-
-				// Add the a custom toolbar buttons, which fires the above
-				// command..
-				editor.ui.add( 'MyButton', CKEDITOR.UI_BUTTON, {
-					label: 'My Dialog',
-					command: 'myDialogCmd'
-				});
-			});
-		});
-
-		// When opening a dialog, its "definition" is created for it, for
-		// each editor instance. The "dialogDefinition" event is then
-		// fired. We should use this event to make customizations to the
-		// definition of existing dialogs.
-		CKEDITOR.on( 'dialogDefinition', function( ev ) {
-			// Take the dialog name and its definition from the event data.
-			var dialogName = ev.data.name;
-			var dialogDefinition = ev.data.definition;
-
-			// Check if the definition is from the dialog we're
-			// interested on (the "Link" dialog).
-			if ( dialogName == 'myDialog' && ev.editor.name == 'editor2' ) {
-				// Get a reference to the "Link Info" tab.
-				var infoTab = dialogDefinition.getContents( 'tab1' );
-
-				// Add a new text field to the "tab1" tab page.
-				infoTab.add( {
-					type: 'text',
-					label: 'My Custom Field',
-					id: 'customField',
-					'default': 'Sample!',
-					validate: function() {
-						if ( ( /\d/ ).test( this.getValue() ) )
-							return 'My Custom Field must not contain digits';
-					}
-				});
-
-				// Remove the "select1" field from the "tab1" tab.
-				infoTab.remove( 'select1' );
-
-				// Set the default value for "input1" field.
-				var input1 = infoTab.get( 'input1' );
-				input1[ 'default' ] = 'www.example.com';
-
-				// Remove the "tab2" tab page.
-				dialogDefinition.removeContents( 'tab2' );
-
-				// Add a new tab to the "Link" dialog.
-				dialogDefinition.addContents( {
-					id: 'customTab',
-					label: 'My Tab',
-					accessKey: 'M',
-					elements: [
-						{
-							id: 'myField1',
-							type: 'text',
-							label: 'My Text Field'
-						},
-						{
-							id: 'myField2',
-							type: 'text',
-							label: 'Another Text Field'
-						}
-					]
-				});
-
-				// Provide the focus handler to start initial focus in "customField" field.
-				dialogDefinition.onFocus = function() {
-					var urlField = this.getContentElement( 'tab1', 'customField' );
-					urlField.select();
-				};
-			}
-		});
-
-		var config = {
-			extraPlugins: 'dialog',
-			toolbar: [ [ 'MyButton' ] ]
-		};
-
-	</script>
-</head>
-<body>
-	<h1 class="samples">
-		<a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Using CKEditor Dialog API
-	</h1>
-	<div class="warning deprecated">
-		This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>.
-	</div>
-	<div class="description">
-		<p>
-			This sample shows how to use the
-			<a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.dialog">CKEditor Dialog API</a>
-			to customize CKEditor dialog windows without changing the original editor code.
-			The following customizations are being done in the example below:
-		</p>
-		<p>
-			For details on how to create this setup check the source code of this sample page.
-		</p>
-	</div>
-	<p>A custom dialog is added to the editors using the <code>pluginsLoaded</code> event, from an external <a target="_blank" href="assets/my_dialog.js">dialog definition file</a>:</p>
-	<ol>
-		<li><strong>Creating a custom dialog window</strong> &ndash; "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li>
-		<li><strong>Creating a custom button</strong> &ndash; Add button to open the dialog with "My Dialog" toolbar button.</li>
-	</ol>
-	<textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-	<script>
-		// Replace the <textarea id="editor1"> with an CKEditor instance.
-		CKEDITOR.replace( 'editor1', config );
-	</script>
-	<p>The below editor modify the dialog definition of the above added dialog using the <code>dialogDefinition</code> event:</p>
-	<ol>
-		<li><strong>Adding dialog tab</strong> &ndash; Add new tab "My Tab" to dialog window.</li>
-		<li><strong>Removing a dialog window tab</strong> &ndash; Remove "Second Tab" page from the dialog window.</li>
-		<li><strong>Adding dialog window fields</strong> &ndash; Add "My Custom Field" to the dialog window.</li>
-		<li><strong>Removing dialog window field</strong> &ndash; Remove "Select Field" selection field from the dialog window.</li>
-		<li><strong>Setting default values for dialog window fields</strong> &ndash; Set default value of "Text Field" text field. </li>
-		<li><strong>Setup initial focus for dialog window</strong> &ndash; Put initial focus on "My Custom Field" text field. </li>
-	</ol>
-	<textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-	<script>
-
-		// Replace the <textarea id="editor1"> with an CKEditor instance.
-		CKEDITOR.replace( 'editor2', config );
-
-	</script>
-	<div id="footer">
-		<hr>
-		<p>
-			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
-		</p>
-		<p id="copy">
-			Copyright &copy; 2003-2015, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
-			Knabben. All rights reserved.
-		</p>
-	</div>
-</body>
-</html>
Index: lugins/dcCKEditor/js/ckeditor/plugins/enterkey/samples/enterkey.html
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/enterkey/samples/enterkey.html	(revision 3039)
+++ 	(revision )
@@ -1,106 +1,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
--->
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>ENTER Key Configuration &mdash; CKEditor Sample</title>
-	<script src="../../../ckeditor.js"></script>
-	<link href="../../../samples/old/sample.css" rel="stylesheet">
-	<meta name="ckeditor-sample-name" content="Using the &quot;Enter&quot; key in CKEditor">
-	<meta name="ckeditor-sample-group" content="Advanced Samples">
-	<meta name="ckeditor-sample-description" content="Configuring the behavior of &lt;em&gt;Enter&lt;/em&gt; and &lt;em&gt;Shift+Enter&lt;/em&gt; keys.">
-	<script>
-
-		var editor;
-
-		function changeEnter() {
-			// If we already have an editor, let's destroy it first.
-			if ( editor )
-				editor.destroy( true );
-
-			// Create the editor again, with the appropriate settings.
-			editor = CKEDITOR.replace( 'editor1', {
-				extraPlugins: 'enterkey',
-				enterMode: Number( document.getElementById( 'xEnter' ).value ),
-				shiftEnterMode: Number( document.getElementById( 'xShiftEnter' ).value )
-			});
-		}
-
-		window.onload = changeEnter;
-
-	</script>
-</head>
-<body>
-	<h1 class="samples">
-		<a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; ENTER Key Configuration
-	</h1>
-	<div class="warning deprecated">
-		This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/enterkey.html">brand new version in CKEditor SDK</a>.
-	</div>
-	<div class="description">
-		<p>
-			This sample shows how to configure the <em>Enter</em> and <em>Shift+Enter</em> keys
-			to perform actions specified in the
-			<a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode"><code>enterMode</code></a>
-			and <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode"><code>shiftEnterMode</code></a>
-			parameters, respectively.
-	 		You can choose from the following options:
-		</p>
-		<ul class="samples">
-			<li><strong><code>ENTER_P</code></strong> &ndash; new <code>&lt;p&gt;</code> paragraphs are created;</li>
-			<li><strong><code>ENTER_BR</code></strong> &ndash; lines are broken with <code>&lt;br&gt;</code> elements;</li>
-			<li><strong><code>ENTER_DIV</code></strong> &ndash; new <code>&lt;div&gt;</code> blocks are created.</li>
-		</ul>
-		<p>
-			The sample code below shows how to configure CKEditor to create a <code>&lt;div&gt;</code> block when <em>Enter</em> key is pressed.
-		</p>
-<pre class="samples">
-CKEDITOR.replace( '<em>textarea_id</em>', {
-	<strong>enterMode: CKEDITOR.ENTER_DIV</strong>
-});</pre>
-		<p>
-			Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
-			the <code>&lt;textarea&gt;</code> element to be replaced.
-		</p>
-	</div>
-	<div style="float: left; margin-right: 20px">
-		When <em>Enter</em> is pressed:<br>
-		<select id="xEnter" onchange="changeEnter();">
-			<option selected="selected" value="1">Create a new &lt;P&gt; (recommended)</option>
-			<option value="3">Create a new &lt;DIV&gt;</option>
-			<option value="2">Break the line with a &lt;BR&gt;</option>
-		</select>
-	</div>
-	<div style="float: left">
-		When <em>Shift+Enter</em> is pressed:<br>
-		<select id="xShiftEnter" onchange="changeEnter();">
-			<option value="1">Create a new &lt;P&gt;</option>
-			<option value="3">Create a new &lt;DIV&gt;</option>
-			<option selected="selected" value="2">Break the line with a &lt;BR&gt; (recommended)</option>
-		</select>
-	</div>
-	<br style="clear: both">
-	<form action="../../../samples/sample_posteddata.php" method="post">
-		<p>
-			<br>
-			<textarea cols="80" id="editor1" name="editor1" rows="10">This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.</textarea>
-		</p>
-		<p>
-			<input type="submit" value="Submit">
-		</p>
-	</form>
-	<div id="footer">
-		<hr>
-		<p>
-			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
-		</p>
-		<p id="copy">
-			Copyright &copy; 2003-2015, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
-			Knabben. All rights reserved.
-		</p>
-	</div>
-</body>
-</html>
Index: plugins/dcCKEditor/js/ckeditor/plugins/link/dialogs/link.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/link/dialogs/link.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/plugins/link/dialogs/link.js	(revision 3339)
@@ -8,5 +8,6 @@
 ( function() {
 	CKEDITOR.dialog.add( 'link', function( editor ) {
-		var plugin = CKEDITOR.plugins.link;
+		var plugin = CKEDITOR.plugins.link,
+			initialLinkText;
 
 		// Handles the event when the "Target" selection box is changed.
@@ -111,5 +112,5 @@
 			title: linkLang.title,
 			minWidth: 350,
-			minHeight: 240,
+			minHeight: 230,
 			contents: [ {
 				id: 'info',
@@ -117,4 +118,21 @@
 				title: linkLang.info,
 				elements: [ {
+					type: 'text',
+					id: 'linkDisplayText',
+					label: linkLang.displayText,
+					setup: function() {
+						this.enable();
+
+						this.setValue( editor.getSelection().getSelectedText() );
+
+						// Keep inner text so that it can be compared in commit function. By obtaining value from getData()
+						// we get value stripped from new line chars which is important when comparing the value later on.
+						initialLinkText = this.getValue();
+					},
+					commit: function( data ) {
+						data.linkText = this.isEnabled() ? this.getValue() : '';
+					}
+				},
+				{
 					id: 'linkType',
 					type: 'select',
@@ -777,23 +795,4 @@
 							commit: commitAdvParams
 						} ]
-					},
-					{
-						type: 'hbox',
-						widths: [ '45%', '55%' ],
-						children: [ {
-							type: 'checkbox',
-							id: 'download',
-							requiredContent: 'a[download]',
-							label: linkLang.download,
-							setup: function( data ) {
-								if ( data.download !== undefined )
-									this.setValue( 'checked', 'checked' );
-							},
-							commit: function( data ) {
-								if ( this.getValue() ) {
-									data.download = this.getValue();
-								}
-							}
-						} ]
 					} ]
 				} ]
@@ -802,4 +801,6 @@
 				var editor = this.getParentEditor(),
 					selection = editor.getSelection(),
+					selectedElement = selection.getSelectedElement(),
+					displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(),
 					element = null;
 
@@ -808,8 +809,17 @@
 					// Don't change selection if some element is already selected.
 					// For example - don't destroy fake selection.
-					if ( !selection.getSelectedElement() )
+					if ( !selectedElement ) {
 						selection.selectElement( element );
+						selectedElement = element;
+					}
 				} else {
 					element = null;
+				}
+
+				// Here we'll decide whether or not we want to show Display Text field.
+				if ( plugin.showDisplayTextForElement( selectedElement, editor ) ) {
+					displayTextField.show();
+				} else {
+					displayTextField.hide();
 				}
 
@@ -828,16 +838,37 @@
 
 				var selection = editor.getSelection(),
-					attributes = plugin.getLinkAttributes( editor, data );
+					attributes = plugin.getLinkAttributes( editor, data ),
+					bm,
+					nestedLinks;
 
 				if ( !this._.selectedElement ) {
-					var range = selection.getRanges()[ 0 ];
+					var range = selection.getRanges()[ 0 ],
+						text;
 
 					// Use link URL as text with a collapsed cursor.
 					if ( range.collapsed ) {
 						// Short mailto link text view (#5736).
-						var text = new CKEDITOR.dom.text( data.type == 'email' ?
-							data.email.address : attributes.set[ 'data-cke-saved-href' ], editor.document );
+						text = new CKEDITOR.dom.text( data.linkText || ( data.type == 'email' ?
+							data.email.address : attributes.set[ 'data-cke-saved-href' ] ), editor.document );
 						range.insertNode( text );
 						range.selectNodeContents( text );
+					} else if ( initialLinkText !== data.linkText ) {
+						text = new CKEDITOR.dom.text( data.linkText, editor.document );
+
+						// Shrink range to preserve block element.
+						range.shrink( CKEDITOR.SHRINK_TEXT );
+
+						// Use extractHtmlFromRange to remove markup within the selection. Also this method is a little
+						// smarter than range#deleteContents as it plays better e.g. with table cells.
+						editor.editable().extractHtmlFromRange( range );
+
+						range.insertNode( text );
+					}
+
+					// Editable links nested within current range should be removed, so that the link is applied to whole selection.
+					nestedLinks = range._find( 'a' );
+
+					for	( var i = 0; i < nestedLinks.length; i++ ) {
+						nestedLinks[ i ].remove( true );
 					}
 
@@ -855,15 +886,21 @@
 					var element = this._.selectedElement,
 						href = element.data( 'cke-saved-href' ),
-						textView = element.getHtml();
+						textView = element.getHtml(),
+						newText;
 
 					element.setAttributes( attributes.set );
 					element.removeAttributes( attributes.removed );
 
-					// Update text view when user changes protocol (#4612).
-					if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {
+					if ( data.linkText && initialLinkText != data.linkText ) {
+						// Display text has been changed.
+						newText = data.linkText;
+					} else if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {
+						// Update text view when user changes protocol (#4612).
 						// Short mailto link text view (#5736).
-						element.setHtml( data.type == 'email' ?
-							data.email.address : attributes.set[ 'data-cke-saved-href' ] );
-
+						newText = data.type == 'email' ? data.email.address : attributes.set[ 'data-cke-saved-href' ];
+					}
+
+					if ( newText ) {
+						element.setText( newText );
 						// We changed the content, so need to select it again.
 						selection.selectElement( element );
Index: lugins/dcCKEditor/js/ckeditor/plugins/magicline/samples/magicline.html
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/magicline/samples/magicline.html	(revision 3039)
+++ 	(revision )
@@ -1,209 +1,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
--->
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>Using Magicline plugin &mdash; CKEditor Sample</title>
-	<script src="../../../ckeditor.js"></script>
-	<link rel="stylesheet" href="../../../samples/old/sample.css">
-	<meta name="ckeditor-sample-name" content="Magicline plugin">
-	<meta name="ckeditor-sample-group" content="Plugins">
-	<meta name="ckeditor-sample-description" content="Using the Magicline plugin to access difficult focus spaces.">
-</head>
-<body>
-	<h1 class="samples">
-		<a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Using Magicline plugin
-	</h1>
-	<div class="warning deprecated">
-		This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/magicline.html">brand new version in CKEditor SDK</a>.
-	</div>
-	<div class="description">
-		<p>
-			This sample shows the advantages of <strong>Magicline</strong> plugin
-			which is to enhance the editing process. Thanks to this plugin,
-			a number of difficult focus spaces which are inaccessible due to
-			browser issues can now be focused.
-		</p>
-		<p>
-			<strong>Magicline</strong> plugin shows a red line with a handler
-			which, when clicked, inserts a paragraph and allows typing. To see this,
-			focus an editor and move your mouse above the focus space you want
-			to access. The plugin is enabled by default so no additional
-			configuration is necessary.
-		</p>
-	</div>
-	<div>
-		<label for="editor1">
-			Editor 1:
-		</label>
-		<div class="description">
-			<p>
-				This editor uses a default <strong>Magicline</strong> setup.
-			</p>
-		</div>
-		<textarea cols="80" id="editor1" name="editor1" rows="10">
-			&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt;
-				&lt;tbody&gt;
-					&lt;tr&gt;
-						&lt;td&gt;This table&lt;/td&gt;
-						&lt;td&gt;is the&lt;/td&gt;
-						&lt;td&gt;very first&lt;/td&gt;
-						&lt;td&gt;element of the document.&lt;/td&gt;
-					&lt;/tr&gt;
-					&lt;tr&gt;
-						&lt;td&gt;We are still&lt;/td&gt;
-						&lt;td&gt;able to acces&lt;/td&gt;
-						&lt;td&gt;the space before it.&lt;/td&gt;
-						&lt;td&gt;
-						&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt;
-							&lt;tbody&gt;
-								&lt;tr&gt;
-									&lt;td&gt;This table is inside of a cell of another table.&lt;/td&gt;
-								&lt;/tr&gt;
-								&lt;tr&gt;
-									&lt;td&gt;We can type&amp;nbsp;either before or after it though.&lt;/td&gt;
-								&lt;/tr&gt;
-							&lt;/tbody&gt;
-						&lt;/table&gt;
-						&lt;/td&gt;
-					&lt;/tr&gt;
-				&lt;/tbody&gt;
-			&lt;/table&gt;
-
-			&lt;p&gt;Two succesive horizontal lines (&lt;tt&gt;HR&lt;/tt&gt; tags). We can access the space in between:&lt;/p&gt;
-
-			&lt;hr /&gt;
-			&lt;hr /&gt;
-			&lt;ol&gt;
-				&lt;li&gt;This numbered list...&lt;/li&gt;
-				&lt;li&gt;...is a neighbour of a horizontal line...&lt;/li&gt;
-				&lt;li&gt;...and another list.&lt;/li&gt;
-			&lt;/ol&gt;
-
-			&lt;ul&gt;
-				&lt;li&gt;We can type between the lists...&lt;/li&gt;
-				&lt;li&gt;...thanks to &lt;strong&gt;Magicline&lt;/strong&gt;.&lt;/li&gt;
-			&lt;/ul&gt;
-
-			&lt;p&gt;Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.&lt;/p&gt;
-
-			&lt;p&gt;Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.&lt;/p&gt;
-
-			&lt;p&gt;Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.&lt;/p&gt;
-
-			&lt;div style=&quot;border: 2px dashed green; background: #ddd; text-align: center;&quot;&gt;
-			&lt;p&gt;This text is wrapped in a&amp;nbsp;&lt;tt&gt;DIV&lt;/tt&gt;&amp;nbsp;element. We can type after this element though.&lt;/p&gt;
-			&lt;/div&gt;
-		</textarea>
-		<script>
-
-			// This call can be placed at any point after the
-			// <textarea>, or inside a <head><script> in a
-			// window.onload event handler.
-
-			CKEDITOR.replace( 'editor1', {
-				extraPlugins: 'magicline',	// Ensure that magicline plugin, which is required for this sample, is loaded.
-				allowedContent: true		// Switch off the ACF, so very complex content created to
-											// show magicline's power isn't filtered.
-			} );
-
-		</script>
-	</div>
-	<br>
-	<div>
-		<label for="editor2">
-			Editor 2:
-		</label>
-		<div class="description">
-			<p>
-				This editor is using a blue line.
-			</p>
-<pre class="samples">
-CKEDITOR.replace( 'editor2', {
-	magicline_color: 'blue'
-});</pre>
-		</div>
-		<textarea cols="80" id="editor2" name="editor2" rows="10">
-			&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt;
-				&lt;tbody&gt;
-					&lt;tr&gt;
-						&lt;td&gt;This table&lt;/td&gt;
-						&lt;td&gt;is the&lt;/td&gt;
-						&lt;td&gt;very first&lt;/td&gt;
-						&lt;td&gt;element of the document.&lt;/td&gt;
-					&lt;/tr&gt;
-					&lt;tr&gt;
-						&lt;td&gt;We are still&lt;/td&gt;
-						&lt;td&gt;able to acces&lt;/td&gt;
-						&lt;td&gt;the space before it.&lt;/td&gt;
-						&lt;td&gt;
-						&lt;table border=&quot;1&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; style=&quot;width: 100%; &quot;&gt;
-							&lt;tbody&gt;
-								&lt;tr&gt;
-									&lt;td&gt;This table is inside of a cell of another table.&lt;/td&gt;
-								&lt;/tr&gt;
-								&lt;tr&gt;
-									&lt;td&gt;We can type&amp;nbsp;either before or after it though.&lt;/td&gt;
-								&lt;/tr&gt;
-							&lt;/tbody&gt;
-						&lt;/table&gt;
-						&lt;/td&gt;
-					&lt;/tr&gt;
-				&lt;/tbody&gt;
-			&lt;/table&gt;
-
-			&lt;p&gt;Two succesive horizontal lines (&lt;tt&gt;HR&lt;/tt&gt; tags). We can access the space in between:&lt;/p&gt;
-
-			&lt;hr /&gt;
-			&lt;hr /&gt;
-			&lt;ol&gt;
-				&lt;li&gt;This numbered list...&lt;/li&gt;
-				&lt;li&gt;...is a neighbour of a horizontal line...&lt;/li&gt;
-				&lt;li&gt;...and another list.&lt;/li&gt;
-			&lt;/ol&gt;
-
-			&lt;ul&gt;
-				&lt;li&gt;We can type between the lists...&lt;/li&gt;
-				&lt;li&gt;...thanks to &lt;strong&gt;Magicline&lt;/strong&gt;.&lt;/li&gt;
-			&lt;/ul&gt;
-
-			&lt;p&gt;Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.&lt;/p&gt;
-
-			&lt;p&gt;Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.&lt;/p&gt;
-
-			&lt;p&gt;Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.&lt;/p&gt;
-
-			&lt;div style=&quot;border: 2px dashed green; background: #ddd; text-align: center;&quot;&gt;
-			&lt;p&gt;This text is wrapped in a&amp;nbsp;&lt;tt&gt;DIV&lt;/tt&gt;&amp;nbsp;element. We can type after this element though.&lt;/p&gt;
-			&lt;/div&gt;
-		</textarea>
-		<script>
-
-			// This call can be placed at any point after the
-			// <textarea>, or inside a <head><script> in a
-			// window.onload event handler.
-
-			CKEDITOR.replace( 'editor2', {
-				extraPlugins: 'magicline',	// Ensure that magicline plugin, which is required for this sample, is loaded.
-				magicline_color: 'blue',	// Blue line
-				allowedContent: true		// Switch off the ACF, so very complex content created to
-											// show magicline's power isn't filtered.
-			});
-
-		</script>
-	</div>
-	<div id="footer">
-		<hr>
-		<p>
-			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
-		</p>
-		<p id="copy">
-			Copyright &copy; 2003-2015, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
-			Knabben. All rights reserved.
-		</p>
-	</div>
-</body>
-</html>
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js	(revision 3339)
@@ -14,11 +14,11 @@
 	iexcl: 'Inverted exclamation mark', // MISSING
 	cent: 'Cent sign', // MISSING
-	pound: 'Pound sign', // MISSING
+	pound: 'Libera zeinua',
 	curren: 'Currency sign', // MISSING
-	yen: 'Yen sign', // MISSING
+	yen: 'Yen zeinua',
 	brvbar: 'Broken bar', // MISSING
 	sect: 'Section sign', // MISSING
-	uml: 'Diaeresis', // MISSING
-	copy: 'Copyright sign', // MISSING
+	uml: 'Dieresia',
+	copy: 'Copyright zeinua',
 	ordf: 'Feminine ordinal indicator', // MISSING
 	laquo: 'Left-pointing double angle quotation mark', // MISSING
@@ -64,5 +64,5 @@
 	Otilde: 'Latin capital letter O with tilde', // MISSING
 	Ouml: 'Latin capital letter O with diaeresis', // MISSING
-	times: 'Multiplication sign', // MISSING
+	times: 'Bider zeinua',
 	Oslash: 'Latin capital letter O with stroke', // MISSING
 	Ugrave: 'Latin capital letter U with grave accent', // MISSING
@@ -117,5 +117,5 @@
 	trade: 'Trade mark sign', // MISSING
 	'9658': 'Black right-pointing pointer', // MISSING
-	bull: 'Bullet', // MISSING
+	bull: 'Buleta',
 	rarr: 'Rightwards arrow', // MISSING
 	rArr: 'Rightwards double arrow', // MISSING
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js	(revision 3339)
@@ -5,18 +5,18 @@
 
 CKEDITOR.plugins.setLang( 'specialchar', 'fr', {
-	euro: 'Symbole Euro',
+	euro: 'Symbole euro',
 	lsquo: 'Guillemet simple ouvrant',
 	rsquo: 'Guillemet simple fermant',
 	ldquo: 'Guillemet double ouvrant',
 	rdquo: 'Guillemet double fermant',
-	ndash: 'Tiret haut',
+	ndash: 'Tiret demi-cadratin',
 	mdash: 'Tiret cadratin',
 	iexcl: 'Point d\'exclamation inversé',
-	cent: 'Symbole Cent',
-	pound: 'Symbole Livre Sterling',
+	cent: 'Symbole cent',
+	pound: 'Symbole Livre sterling',
 	curren: 'Symbole monétaire',
-	yen: 'Symbole Yen',
+	yen: 'Symbole yen',
 	brvbar: 'Barre verticale scindée',
-	sect: 'Section',
+	sect: 'Signe de section',
 	uml: 'Tréma',
 	copy: 'Symbole Copyright',
@@ -24,12 +24,12 @@
 	laquo: 'Guillemet français ouvrant',
 	not: 'Crochet de négation',
-	reg: 'Marque déposée',
+	reg: 'Symbole de marque déposée',
 	macr: 'Macron',
-	deg: 'Degré',
+	deg: 'Symbole degré',
 	sup2: 'Exposant 2',
 	sup3: 'Exposant 3',
 	acute: 'Accent aigu',
-	micro: 'Omicron',
-	para: 'Paragraphe',
+	micro: 'Symbole micro',
+	para: 'Symbole pied-de-mouche',
 	middot: 'Point médian',
 	cedil: 'Cédille',
@@ -37,83 +37,83 @@
 	ordm: 'Indicateur ordinal masculin',
 	raquo: 'Guillemet français fermant',
-	frac14: 'Un quart',
-	frac12: 'Un demi',
-	frac34: 'Trois quarts',
+	frac14: 'Fraction un quart',
+	frac12: 'Fraction un demi',
+	frac34: 'Fraction trois quarts',
 	iquest: 'Point d\'interrogation inversé',
-	Agrave: 'A majuscule accent grave',
-	Aacute: 'A majuscule accent aigu',
-	Acirc: 'A majuscule accent circonflexe',
-	Atilde: 'A majuscule avec caron',
-	Auml: 'A majuscule tréma',
-	Aring: 'A majuscule avec un rond au-dessus',
-	AElig: 'Æ majuscule ligaturés',
-	Ccedil: 'C majuscule cédille',
-	Egrave: 'E majuscule accent grave',
-	Eacute: 'E majuscule accent aigu',
-	Ecirc: 'E majuscule accent circonflexe',
-	Euml: 'E majuscule tréma',
-	Igrave: 'I majuscule accent grave',
-	Iacute: 'I majuscule accent aigu',
-	Icirc: 'I majuscule accent circonflexe',
-	Iuml: 'I majuscule tréma',
+	Agrave: 'A accent grave majuscule',
+	Aacute: 'A accent aigu majuscule',
+	Acirc: 'A accent circonflexe majuscule',
+	Atilde: 'A caron majuscule',
+	Auml: 'A tréma majuscule',
+	Aring: 'A rond majuscule',
+	AElig: 'Ligature Æ majuscule',
+	Ccedil: 'C cédille majuscule',
+	Egrave: 'E accent grave majuscule',
+	Eacute: 'E accent aigu majuscule',
+	Ecirc: 'E accent circonflexe majuscule',
+	Euml: 'E tréma majuscule',
+	Igrave: 'I accent grave majuscule',
+	Iacute: 'I accent aigu majuscule',
+	Icirc: 'I accent circonflexe majuscule',
+	Iuml: 'I tréma majuscule',
 	ETH: 'Lettre majuscule islandaise ED',
-	Ntilde: 'N majuscule avec caron',
-	Ograve: 'O majuscule accent grave',
-	Oacute: 'O majuscule accent aigu',
-	Ocirc: 'O majuscule accent circonflexe',
-	Otilde: 'O majuscule avec caron',
-	Ouml: 'O majuscule tréma',
-	times: 'Multiplication',
-	Oslash: 'O majuscule barré',
-	Ugrave: 'U majuscule accent grave',
-	Uacute: 'U majuscule accent aigu',
-	Ucirc: 'U majuscule accent circonflexe',
-	Uuml: 'U majuscule tréma',
-	Yacute: 'Y majuscule accent aigu',
-	THORN: 'Lettre islandaise Thorn majuscule',
-	szlig: 'Lettre minuscule allemande s dur',
-	agrave: 'a minuscule accent grave',
-	aacute: 'a minuscule accent aigu',
-	acirc: 'a minuscule accent circonflexe',
-	atilde: 'a minuscule avec caron',
-	auml: 'a minuscule tréma',
-	aring: 'a minuscule avec un rond au-dessus',
-	aelig: 'æ minuscule ligaturés',
-	ccedil: 'c minuscule cédille',
-	egrave: 'e minuscule accent grave',
-	eacute: 'e minuscule accent aigu',
-	ecirc: 'e minuscule accent circonflexe',
-	euml: 'e minuscule tréma',
-	igrave: 'i minuscule accent grave',
-	iacute: 'i minuscule accent aigu',
-	icirc: 'i minuscule accent circonflexe',
+	Ntilde: 'N caron majuscule',
+	Ograve: 'O accent grave majuscule',
+	Oacute: 'O accent aigu majuscule',
+	Ocirc: 'O accent circonflexe majuscule',
+	Otilde: 'O caron majuscule',
+	Ouml: 'O tréma majuscule',
+	times: 'Symbole de multiplication',
+	Oslash: 'O barré majuscule',
+	Ugrave: 'U accent grave majuscule',
+	Uacute: 'U accent aigu majuscule',
+	Ucirc: 'U accent circonflexe majuscule',
+	Uuml: 'U tréma majuscule',
+	Yacute: 'Y accent aigu majuscule',
+	THORN: 'Lettre islandaise thorn majuscule',
+	szlig: 'Lettre minuscule allemande S dur',
+	agrave: 'A accent grave minuscule',
+	aacute: 'A accent aigu minuscule',
+	acirc: 'A accent circonflexe minuscule',
+	atilde: 'A tilde minuscule',
+	auml: 'A tréma minuscule',
+	aring: 'A rond minuscule',
+	aelig: 'Ligature Æ minuscule',
+	ccedil: 'C cédille minuscule',
+	egrave: 'E accent grave minuscule',
+	eacute: 'E accent aigu minuscule',
+	ecirc: 'E accent circonflexe minuscule',
+	euml: 'E tréma minuscule',
+	igrave: 'I accent grave minuscule',
+	iacute: 'I accent aigu minuscule',
+	icirc: 'I accent circonflexe minuscule',
 	iuml: 'i minuscule tréma',
 	eth: 'Lettre minuscule islandaise ED',
-	ntilde: 'n minuscule avec caron',
-	ograve: 'o minuscule accent grave',
-	oacute: 'o minuscule accent aigu',
-	ocirc: 'o minuscule accent circonflexe',
-	otilde: 'o minuscule avec caron',
-	ouml: 'o minuscule tréma',
-	divide: 'Division',
-	oslash: 'o minuscule barré',
-	ugrave: 'u minuscule accent grave',
-	uacute: 'u minuscule accent aigu',
-	ucirc: 'u minuscule accent circonflexe',
-	uuml: 'u minuscule tréma',
-	yacute: 'y minuscule accent aigu',
+	ntilde: 'N caron minuscule',
+	ograve: 'O minuscule accent grave',
+	oacute: 'O accent aigu minuscule',
+	ocirc: 'O accent circonflexe minuscule',
+	otilde: 'O tilde minuscule',
+	ouml: 'O tréma minuscule',
+	divide: 'Symbole de division',
+	oslash: 'O barré minuscule',
+	ugrave: 'U accent grave minuscule',
+	uacute: 'U accent aigu minuscule',
+	ucirc: 'U accent circonflexe minuscule',
+	uuml: 'U tréma minuscule',
+	yacute: 'Y accent aigu minuscule',
 	thorn: 'Lettre islandaise thorn minuscule',
-	yuml: 'y minuscule tréma',
-	OElig: 'ligature majuscule latine Œ',
-	oelig: 'ligature minuscule latine œ',
-	'372': 'W majuscule accent circonflexe',
-	'374': 'Y majuscule accent circonflexe',
-	'373': 'w minuscule accent circonflexe',
-	'375': 'y minuscule accent circonflexe',
-	sbquo: 'Guillemet simple fermant (anglais)',
+	yuml: 'Y tréma minuscule',
+	OElig: 'Ligature Œ majuscule',
+	oelig: 'Ligature Œ minuscule',
+	'372': 'W accent circonflexe majuscule',
+	'374': 'Y accent circonflexe majuscule',
+	'373': 'W accent circonflexe minuscule',
+	'375': 'Y accent circonflexe minuscule',
+	sbquo: 'Guillemet simple fermant inférieur',
 	'8219': 'Guillemet-virgule supérieur culbuté',
 	bdquo: 'Guillemet-virgule double inférieur',
 	hellip: 'Points de suspension',
-	trade: 'Marque commerciale (trade mark)',
+	trade: 'Symbole de marque commerciale',
 	'9658': 'Flèche noire pointant vers la droite',
 	bull: 'Gros point médian',
@@ -121,5 +121,5 @@
 	rArr: 'Double flèche vers la droite',
 	hArr: 'Double flèche vers la gauche',
-	diams: 'Carreau noir',
-	asymp: 'Presque égal'
+	diams: 'Losange noir',
+	asymp: 'Environ égal'
 } );
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/it.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/it.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/it.js	(revision 3339)
@@ -47,5 +47,5 @@
 	Auml: 'Lettera maiuscola latina A con dieresi',
 	Aring: 'Lettera maiuscola latina A con anello sopra',
-	AElig: 'Lettera maiuscola latina AE',
+	AElig: 'Lettera maiuscola latina Æ',
 	Ccedil: 'Lettera maiuscola latina C con cediglia',
 	Egrave: 'Lettera maiuscola latina E con accento grave',
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js	(revision 3339)
@@ -5,36 +5,36 @@
 
 CKEDITOR.plugins.setLang( 'specialchar', 'pt', {
-	euro: 'Símbolo do Euro',
+	euro: 'Símbolo de Euro',
 	lsquo: 'Aspa esquerda simples',
 	rsquo: 'Aspa direita simples',
 	ldquo: 'Aspa esquerda dupla',
 	rdquo: 'Aspa direita dupla',
-	ndash: 'Travessão Simples',
-	mdash: 'Travessão Longo',
+	ndash: 'Travessão simples',
+	mdash: 'Travessão longo',
 	iexcl: 'Ponto de exclamação invertido',
-	cent: 'Símbolo do Cêntimo',
-	pound: 'Símbolo da Libra',
+	cent: 'Símbolo de cêntimo',
+	pound: 'Símbolo de Libra',
 	curren: 'Símbolo de Moeda',
-	yen: 'Símbolo do Iene',
+	yen: 'Símbolo de Iene',
 	brvbar: 'Barra quebrada',
-	sect: 'Símbolo de Secção',
+	sect: 'Símbolo de secção',
 	uml: 'Trema',
-	copy: 'Símbolo dos Direitos de Autor',
+	copy: 'Símbolo de direitos de autor',
 	ordf: 'Indicador ordinal feminino',
 	laquo: 'Aspa esquerda ângulo duplo',
-	not: 'Não Símbolo',
-	reg: 'Símbolo de Registado',
+	not: 'Não símbolo',
+	reg: 'Símbolo de registado',
 	macr: 'Mácron',
-	deg: 'Símbolo de Grau',
+	deg: 'Símbolo de graus',
 	sup2: 'Expoente 2',
 	sup3: 'Expoente 3',
 	acute: 'Acento agudo',
-	micro: 'Símbolo de Micro',
-	para: 'Símbolo de Parágrafo',
-	middot: 'Ponto do Meio',
+	micro: 'Símbolo de micro',
+	para: 'Símbolo de parágrafo',
+	middot: 'Ponto do meio',
 	cedil: 'Cedilha',
 	sup1: 'Expoente 1',
 	ordm: 'Indicador ordinal masculino',
-	raquo: 'Aspas ângulo duplo pra Direita',
+	raquo: 'Aspas ângulo duplo para a direita',
 	frac14: 'Fração vulgar 1/4',
 	frac12: 'Fração vulgar 1/2',
@@ -112,8 +112,8 @@
 	'375': 'Letra minúscula latina y com circunflexo',
 	sbquo: 'Aspa Simples inferior-9',
-	'8219': 'Aspa Simples superior invertida-9',
+	'8219': 'Aspa simples superior invertida-9',
 	bdquo: 'Aspa duplas inferior-9',
-	hellip: 'Elipse Horizontal ',
-	trade: 'Símbolo de Marca Registada',
+	hellip: 'Elipse horizontal ',
+	trade: 'Símbolo de marca registada',
 	'9658': 'Ponteiro preto direito',
 	bull: 'Marca',
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js	(revision 3339)
@@ -5,32 +5,32 @@
 
 CKEDITOR.plugins.setLang( 'specialchar', 'sl', {
-	euro: 'Evro znak',
+	euro: 'Znak za evro',
 	lsquo: 'Levi enojni narekovaj',
 	rsquo: 'Desni enojni narekovaj',
 	ldquo: 'Levi dvojni narekovaj',
 	rdquo: 'Desni dvojni narekovaj',
-	ndash: 'En pomišljaj',
-	mdash: 'Em pomišljaj',
+	ndash: 'Pomišljaj',
+	mdash: 'Dolgi pomišljaj',
 	iexcl: 'Obrnjen klicaj',
-	cent: 'Cent znak',
-	pound: 'Funt znak',
+	cent: 'Znak za cent',
+	pound: 'Znak za funt',
 	curren: 'Znak valute',
-	yen: 'Jen znak',
+	yen: 'Znak za jen',
 	brvbar: 'Zlomljena črta',
-	sect: 'Znak oddelka',
-	uml: 'Diaeresis',
+	sect: 'Znak za člen',
+	uml: 'Diereza',
 	copy: 'Znak avtorskih pravic',
 	ordf: 'Ženski zaporedni kazalnik',
-	laquo: 'Levi obrnjen dvojni kotni narekovaj',
-	not: 'Ne znak',
+	laquo: 'Levi dvojni lomljeni narekovaj',
+	not: 'Znak za ne',
 	reg: 'Registrirani znak',
-	macr: 'Macron',
-	deg: 'Znak stopinj',
+	macr: 'Nadčrtano',
+	deg: 'Znak za stopinje',
 	sup2: 'Nadpisano dva',
 	sup3: 'Nadpisano tri',
 	acute: 'Ostrivec',
-	micro: 'Mikro znak',
-	para: 'Pilcrow znak',
-	middot: 'Sredinska pika',
+	micro: 'Znak za mikro',
+	para: 'Znak za odstavek',
+	middot: 'Usredinjena pika',
 	cedil: 'Cedilla',
 	sup1: 'Nadpisano ena',
Index: lugins/dcCKEditor/js/ckeditor/plugins/toolbar/samples/toolbar.html
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/toolbar/samples/toolbar.html	(revision 3039)
+++ 	(revision )
@@ -1,235 +1,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
--->
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>Toolbar Configuration &mdash; CKEditor Sample</title>
-	<meta name="ckeditor-sample-name" content="Toolbar Configurations">
-	<meta name="ckeditor-sample-group" content="Advanced Samples">
-	<meta name="ckeditor-sample-description" content="Configuring CKEditor to display full or custom toolbar layout.">
-	<script src="../../../ckeditor.js"></script>
-	<link href="../../../samples/old/sample.css" rel="stylesheet">
-</head>
-<body>
-	<h1 class="samples">
-		<a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Toolbar Configuration
-	</h1>
-	<div class="warning deprecated">
-		This sample is not maintained anymore. Check out the <a href="../../../samples/toolbarconfigurator/index.html#basic">brand new CKEditor Toolbar Configurator</a>.
-	</div>
-	<div class="description">
-		<p>
-			This sample page demonstrates editor with loaded <a href="#fullToolbar">full toolbar</a> (all registered buttons) and, if
-			current editor's configuration modifies default settings, also editor with <a href="#currentToolbar">modified toolbar</a>.
-		</p>
-
-		<p>Since CKEditor 4 there are two ways to configure toolbar buttons.</p>
-
-		<h2 class="samples">By <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbar">config.toolbar</a></h2>
-
-		<p>
-			You can explicitly define which buttons are displayed in which groups and in which order.
-			This is the more precise setting, but less flexible. If newly added plugin adds its
-			own button you'll have to add it manually to your <code>config.toolbar</code> setting as well.
-		</p>
-
-		<p>To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:</p>
-
-		<pre class="samples">
-CKEDITOR.replace( <em>'textarea_id'</em>, {
-	<strong>toolbar:</strong> [
-		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
-		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
-		'/',																					// Line break - next group will be placed in new line.
-		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
-	]
-});</pre>
-
-		<h2 class="samples">By <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbarGroups">config.toolbarGroups</a></h2>
-
-		<p>
-			You can define which groups of buttons (like e.g. <code>basicstyles</code>, <code>clipboard</code>
-			and <code>forms</code>) are displayed and in which order. Registered buttons are associated
-			with toolbar groups by <code>toolbar</code> property in their definition.
-			This setting's advantage is that you don't have to modify toolbar configuration
-			when adding/removing plugins which register their own buttons.
-		</p>
-
-		<p>To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:</p>
-
-		<pre class="samples">
-CKEDITOR.replace( <em>'textarea_id'</em>, {
-	<strong>toolbarGroups:</strong> [
-		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
- 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
- 		'/',																// Line break - next group will be placed in new line.
- 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
- 		{ name: 'links' }
-	]
-
-	// NOTE: Remember to leave 'toolbar' property with the default value (null).
-});</pre>
-	</div>
-
-	<div id="currentToolbar" style="display: none">
-		<h2 class="samples">Current toolbar configuration</h2>
-		<p>Below you can see editor with current toolbar definition.</p>
-		<textarea cols="80" id="editorCurrent" name="editorCurrent" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-		<pre id="editorCurrentCfg" class="samples"></pre>
-	</div>
-
-	<div id="fullToolbar">
-		<h2 class="samples">Full toolbar configuration</h2>
-		<p>Below you can see editor with full toolbar, generated automatically by the editor.</p>
-		<p>
-			<strong>Note</strong>: To create editor instance with full toolbar you don't have to set anything.
-			Just leave <code>toolbar</code> and <code>toolbarGroups</code> with the default, <code>null</code> values.
-		</p>
-		<textarea cols="80" id="editorFull" name="editorFull" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
-		<pre id="editorFullCfg" class="samples"></pre>
-	</div>
-
-	<script>
-
-(function() {
-	'use strict';
-
-	var buttonsNames;
-
-	CKEDITOR.config.extraPlugins = 'toolbar';
-
-	CKEDITOR.on( 'instanceReady', function( evt ) {
-		var editor = evt.editor,
-			editorCurrent = editor.name == 'editorCurrent',
-			defaultToolbar = !( editor.config.toolbar || editor.config.toolbarGroups || editor.config.removeButtons ),
-			pre = CKEDITOR.document.getById( editor.name + 'Cfg' ),
-			output = '';
-
-		if ( editorCurrent ) {
-			// If default toolbar configuration has been modified, show "current toolbar" section.
-			if ( !defaultToolbar )
-				CKEDITOR.document.getById( 'currentToolbar' ).show();
-			else
-				return;
-		}
-
-		if ( !buttonsNames )
-			buttonsNames = createButtonsNamesHash( editor.ui.items );
-
-		// Toolbar isn't set explicitly, so it was created automatically from toolbarGroups.
-		if ( !editor.config.toolbar ) {
-			output +=
-				'// Toolbar configuration generated automatically by the editor based on config.toolbarGroups.\n' +
-				dumpToolbarConfiguration( editor ) +
-				'\n\n' +
-				'// Toolbar groups configuration.\n' +
-				dumpToolbarConfiguration( editor, true )
-		}
-		// Toolbar groups doesn't count in this case - print only toolbar.
-		else {
-			output += '// Toolbar configuration.\n' +
-				dumpToolbarConfiguration( editor );
-		}
-
-		// Recreate to avoid old IE from loosing whitespaces on filling <pre> content.
-		var preOutput = pre.getOuterHtml().replace( /(?=<\/)/, output );
-		CKEDITOR.dom.element.createFromHtml( preOutput ).replace( pre );
-	} );
-
-	CKEDITOR.replace( 'editorCurrent', { height: 100 } );
-	CKEDITOR.replace( 'editorFull', {
-		// Reset toolbar settings, so full toolbar will be generated automatically.
-		toolbar: null,
-		toolbarGroups: null,
-		removeButtons: null,
-		height: 100
-	} );
-
-	function dumpToolbarConfiguration( editor, printGroups ) {
-		var output = [],
-			toolbar = editor.toolbar;
-
-		for ( var i = 0; i < toolbar.length; ++i ) {
-			var group = dumpToolbarGroup( toolbar[ i ], printGroups );
-			if ( group )
-				output.push( group );
-		}
-
-		return 'config.toolbar' + ( printGroups ? 'Groups' : '' ) + ' = [\n\t' + output.join( ',\n\t' ) + '\n];';
-	}
-
-	function dumpToolbarGroup( group, printGroups ) {
-		var output = [];
-
-		if ( typeof group == 'string' )
-			return '\'' + group + '\'';
-		if ( CKEDITOR.tools.isArray( group ) )
-			return dumpToolbarItems( group );
-		// Skip group when printing entire toolbar configuration and there are no items in this group.
-		if ( !printGroups && !group.items )
-			return;
-
-		if ( group.name )
-			output.push( 'name: \'' + group.name + '\'' );
-
-		if ( group.groups )
-			output.push( 'groups: ' + dumpToolbarItems( group.groups ) );
-
-		if ( !printGroups )
-			output.push( 'items: ' + dumpToolbarItems( group.items ) );
-
-		return '{ ' + output.join( ', ' ) + ' }';
-	}
-
-	function dumpToolbarItems( items ) {
-		if ( typeof items == 'string' )
-			return '\'' + items + '\'';
-
-		var names = [],
-			i, item;
-
-		for ( var i = 0; i < items.length; ++i ) {
-			item = items[ i ];
-			if ( typeof item == 'string' )
-				names.push( item );
-			else {
-				if ( item.type == CKEDITOR.UI_SEPARATOR )
-					names.push( '-' );
-				else
-					names.push( buttonsNames[ item.name ] );
-			}
-		}
-
-		return '[ \'' + names.join( '\', \'' ) + '\' ]';
-	}
-
-	// Creates { 'lowercased': 'LowerCased' } buttons names hash.
-	function createButtonsNamesHash( items ) {
-		var hash = {},
-			name;
-
-		for ( name in items ) {
-			hash[ items[ name ].name ] = name;
-		}
-
-		return hash;
-	}
-
-})();
-	</script>
-
-	<div id="footer">
-		<hr>
-		<p>
-			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
-		</p>
-		<p id="copy">
-			Copyright &copy; 2003-2015, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
-			Knabben. All rights reserved.
-		</p>
-	</div>
-</body>
-</html>
Index: lugins/dcCKEditor/js/ckeditor/plugins/wysiwygarea/samples/fullpage.html
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/wysiwygarea/samples/fullpage.html	(revision 3039)
+++ 	(revision )
@@ -1,80 +1,0 @@
-<!DOCTYPE html>
-<!--
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
--->
-<html>
-<head>
-	<meta charset="utf-8">
-	<title>Full Page Editing &mdash; CKEditor Sample</title>
-	<script src="../../../ckeditor.js"></script>
-	<script src="../../../samples/old/sample.js"></script>
-	<link rel="stylesheet" href="../../../samples/old/sample.css">
-	<meta name="ckeditor-sample-required-plugins" content="sourcearea">
-	<meta name="ckeditor-sample-name" content="Full page support">
-	<meta name="ckeditor-sample-group" content="Plugins">
-	<meta name="ckeditor-sample-description" content="CKEditor inserted with a JavaScript call and used to edit the whole page from &lt;html&gt; to &lt;/html&gt;.">
-</head>
-<body>
-	<h1 class="samples">
-		<a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Full Page Editing
-	</h1>
-	<div class="warning deprecated">
-		This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/fullpage.html">brand new version in CKEditor SDK</a>.
-	</div>
-	<div class="description">
-		<p>
-			This sample shows how to configure CKEditor to edit entire HTML pages, from the
-			<code>&lt;html&gt;</code> tag to the <code>&lt;/html&gt;</code> tag.
-		</p>
-		<p>
-			The CKEditor instance below is inserted with a JavaScript call using the following code:
-		</p>
-<pre class="samples">
-CKEDITOR.replace( '<em>textarea_id</em>', {
-	<strong>fullPage: true</strong>,
-	<strong>allowedContent: true</strong>
-});
-</pre>
-		<p>
-			Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
-			the <code>&lt;textarea&gt;</code> element to be replaced.
-		</p>
-		<p>
-			The <code><em>allowedContent</em></code> in the code above is set to <code>true</code> to disable content filtering.
-			Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations.
-		</p>
-	</div>
-	<form action="../../../samples/sample_posteddata.php" method="post">
-		<label for="editor1">
-			CKEditor output the entire page including content outside of
-			<code>&lt;body&gt;</code> element, so content like meta and title can be changed:
-		</label>
-		<textarea cols="80" id="editor1" name="editor1" rows="10">
-			&lt;h1&gt;&lt;img align=&quot;right&quot; alt=&quot;Saturn V carrying Apollo 11&quot; src=&quot;../../../samples/old/assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
-		</textarea>
-		<script>
-
-			CKEDITOR.replace( 'editor1', {
-				fullPage: true,
-				allowedContent: true,
-				extraPlugins: 'wysiwygarea'
-			});
-
-		</script>
-		<p>
-			<input type="submit" value="Submit">
-		</p>
-	</form>
-	<div id="footer">
-		<hr>
-		<p>
-			CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
-		</p>
-		<p id="copy">
-			Copyright &copy; 2003-2015, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
-			Knabben. All rights reserved.
-		</p>
-	</div>
-</body>
-</html>
Index: plugins/dcLegacyEditor/_define.php
===================================================================
--- plugins/dcLegacyEditor/_define.php	(revision 3258)
+++ plugins/dcLegacyEditor/_define.php	(revision 3333)
@@ -19,5 +19,9 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => '',
+								'pref' => '#user-options.user_options_edition'
+							)
 	)
 );
Index: plugins/dcLegacyEditor/css/jsToolBar/jsToolBar.css
===================================================================
--- plugins/dcLegacyEditor/css/jsToolBar/jsToolBar.css	(revision 3258)
+++ plugins/dcLegacyEditor/css/jsToolBar/jsToolBar.css	(revision 3365)
@@ -58,4 +58,5 @@
 	background-position : 50% 50%;
 	background-repeat: no-repeat;
+	background-size: inherit;
 }
 .jstElements button:hover, .jstElements button:focus {
Index: plugins/dcLegacyEditor/inc/dc.legacy.editor.behaviors.php
===================================================================
--- plugins/dcLegacyEditor/inc/dc.legacy.editor.behaviors.php	(revision 3258)
+++ plugins/dcLegacyEditor/inc/dc.legacy.editor.behaviors.php	(revision 3361)
@@ -120,4 +120,5 @@
 
 		"jsToolBar.prototype.elements.link.title = '".html::escapeJS(__('Link'))."'; ".
+		"jsToolBar.prototype.elements.link.accesskey = '".html::escapeJS(__('l'))."'; ".
 		"jsToolBar.prototype.elements.link.href_prompt = '".html::escapeJS(__('URL?'))."'; ".
 		"jsToolBar.prototype.elements.link.hreflang_prompt = '".html::escapeJS(__('Language?'))."'; ".
@@ -127,4 +128,5 @@
 
 		"jsToolBar.prototype.elements.img_select.title = '".html::escapeJS(__('Media chooser'))."'; ".
+		"jsToolBar.prototype.elements.img_select.accesskey = '".html::escapeJS(__('m'))."'; ".
 		"jsToolBar.prototype.elements.post_link.title = '".html::escapeJS(__('Link to an entry'))."'; ".
 		"jsToolBar.prototype.elements.removeFormat = jsToolBar.prototype.elements.removeFormat || {}; ".
Index: plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.dotclear.js
===================================================================
--- plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.dotclear.js	(revision 2834)
+++ plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.dotclear.js	(revision 3361)
@@ -153,4 +153,5 @@
 	type: 'button',
 	title: 'Image chooser',
+	accesskey: 'm',
 	fn: {},
 	fncall: {},
Index: plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.js
===================================================================
--- plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.js	(revision 3258)
+++ plugins/dcLegacyEditor/js/jsToolBar/jsToolBar.js	(revision 3361)
@@ -67,9 +67,10 @@
 };
 
-function jsButton(title, fn, scope, className) {
+function jsButton(title, fn, scope, className, accesskey) {
 	this.title = title || null;
 	this.fn = fn || function(){};
 	this.scope = scope || null;
 	this.className = className || null;
+	this.accesskey = accesskey || null;
 };
 jsButton.prototype.draw = function() {
@@ -80,4 +81,5 @@
 	if (this.className) button.className = this.className;
 	button.title = this.title;
+	if (this.accesskey) button.accessKey = this.accesskey;
 	var span = document.createElement('span');
 	span.appendChild(document.createTextNode(this.title));
@@ -165,5 +167,5 @@
 		var tool = this.elements[toolName];
 		if (typeof tool.fn[this.mode] != 'function') return null;
-		var b = new jsButton(tool.title, tool.fn[this.mode], this, 'jstb_'+toolName);
+		var b = new jsButton(tool.title, tool.fn[this.mode], this, 'jstb_'+toolName, tool.accesskey);
 		if (tool.icon != undefined) {
 			b.icon = tool.icon;
@@ -552,4 +554,5 @@
 	title: 'Link',
 	fn: {},
+	accesskey: 'l',
 	href_prompt: 'Please give page URL:',
 	hreflang_prompt: 'Language of this page:',
Index: plugins/importExport/inc/class.dc.import.feed.php
===================================================================
--- plugins/importExport/inc/class.dc.import.feed.php	(revision 3269)
+++ plugins/importExport/inc/class.dc.import.feed.php	(revision 3340)
@@ -144,6 +144,6 @@
 			$cur->clean();
 			$cur->user_id = $this->core->auth->userID();
-			$cur->post_content = $item->content ? $item->content : $item->description;
-			$cur->post_title = $item->title ? $item->title : text::cutString(html::clean($cur->post_content),60);
+			$cur->post_content = $item->content ?: $item->description;
+			$cur->post_title = $item->title ?: text::cutString(html::clean($cur->post_content),60);
 			$cur->post_format = 'xhtml';
 			$cur->post_status = -2;
Index: plugins/importExport/inc/class.dc.import.wp.php
===================================================================
--- plugins/importExport/inc/class.dc.import.wp.php	(revision 2566)
+++ plugins/importExport/inc/class.dc.import.wp.php	(revision 3340)
@@ -658,5 +658,5 @@
 		}
 		$cur->post_type         = $rs->post_type;
-		$cur->post_password     = $rs->post_password ? $rs->post_password : NULL;
+		$cur->post_password     = $rs->post_password ?: NULL;
 		$cur->post_open_comment = $rs->comment_status == 'open' ? 1 : 0;
 		$cur->post_open_tb      = $rs->ping_status == 'open' ? 1 : 0;
Index: plugins/maintenance/_admin.php
===================================================================
--- plugins/maintenance/_admin.php	(revision 2849)
+++ plugins/maintenance/_admin.php	(revision 3340)
@@ -61,4 +61,5 @@
 
 		->addTask('dcMaintenanceCache')
+		->addTask('dcMaintenanceCSP')
 		->addTask('dcMaintenanceIndexposts')
 		->addTask('dcMaintenanceIndexcomments')
@@ -276,5 +277,5 @@
 				}
 				if (!empty($res_task)) {
-					$desc = $group_obj->description ? $group_obj->description : $group_obj->summary;
+					$desc = $group_obj->description ?: $group_obj->summary;
 
 					$res_group .=
@@ -285,5 +286,5 @@
 			}
 			if (!empty($res_group)) {
-				$desc = $tab_obj->description ? $tab_obj->description : $tab_obj->summary;
+				$desc = $tab_obj->description ?: $tab_obj->summary;
 
 				$res_tab .=
Index: plugins/maintenance/_define.php
===================================================================
--- plugins/maintenance/_define.php	(revision 2257)
+++ plugins/maintenance/_define.php	(revision 3333)
@@ -19,5 +19,8 @@
 	array(
 		'permissions' =>	'admin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => '#settings'
+							)
 	)
 
Index: plugins/maintenance/_prepend.php
===================================================================
--- plugins/maintenance/_prepend.php	(revision 2095)
+++ plugins/maintenance/_prepend.php	(revision 3324)
@@ -19,4 +19,5 @@
 
 $__autoload['dcMaintenanceCache'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.cache.php';
+$__autoload['dcMaintenanceCSP'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.csp.php';
 $__autoload['dcMaintenanceCountcomments'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.countcomments.php';
 $__autoload['dcMaintenanceIndexcomments'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.indexcomments.php';
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.csp.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.csp.php	(revision 3324)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.csp.php	(revision 3324)
@@ -0,0 +1,36 @@
+<?php
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+if (!defined('DC_RC_PATH')) { return; }
+
+class dcMaintenanceCSP extends dcMaintenanceTask
+{
+	protected $group = 'purge';
+
+	protected function init()
+	{
+		$this->task 		= __('Delete the Content-Security-Policy report file');
+		$this->success 		= __('Content-Security-Policy report file has been deleted.');
+		$this->error 		= __('Failed to delete the Content-Security-Policy report file.');
+
+		$this->description = __("Remove the Content-Security-Policy report file.");
+	}
+
+	public function execute()
+	{
+		$csp_file = path::real(DC_TPL_CACHE).'/csp_report.txt';
+		if (file_exists($csp_file)) {
+			unlink($csp_file);
+		}
+
+		return true;
+	}
+}
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.indexcomments.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.indexcomments.php	(revision 2566)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.indexcomments.php	(revision 3340)
@@ -35,5 +35,5 @@
 		$this->code = $this->core->indexAllComments($this->code, $this->limit);
 
-		return $this->code ? $this->code : true;
+		return $this->code ?: true;
 	}
 
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.indexposts.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.indexposts.php	(revision 2044)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.indexposts.php	(revision 3340)
@@ -35,5 +35,5 @@
 		$this->code = $this->core->indexAllPosts($this->code, $this->limit);
 
-		return $this->code ? $this->code : true;
+		return $this->code ?: true;
 	}
 
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php	(revision 2044)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php	(revision 3340)
@@ -35,5 +35,5 @@
 		$this->code = $this->synchronizeAllPostsmeta($this->code, $this->limit);
 
-		return $this->code ? $this->code : true;
+		return $this->code ?: true;
 	}
 
Index: plugins/pings/_define.php
===================================================================
--- plugins/pings/_define.php	(revision 2566)
+++ plugins/pings/_define.php	(revision 3333)
@@ -19,5 +19,8 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => ''
+							)
 	)
 );
Index: plugins/simpleMenu/_define.php
===================================================================
--- plugins/simpleMenu/_define.php	(revision 2773)
+++ plugins/simpleMenu/_define.php	(revision 3333)
@@ -19,5 +19,8 @@
 	array(
 		'permissions' =>	'admin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => ''
+							)
 	)
 );
Index: plugins/tags/_define.php
===================================================================
--- plugins/tags/_define.php	(revision 2924)
+++ plugins/tags/_define.php	(revision 3333)
@@ -20,5 +20,8 @@
 		'permissions' =>	'usage,contentadmin',
 		'priority' =>		1001,	// Must be higher than dcLegacyEditor/dcCKEditor priority (ie 1000)
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'pref' => '#user-options.tags_prefs'
+							)
 	)
 );
Index: plugins/tags/default-templates/currywurst/tag.html
===================================================================
--- plugins/tags/default-templates/currywurst/tag.html	(revision 3247)
+++ plugins/tags/default-templates/currywurst/tag.html	(revision 3371)
@@ -8,10 +8,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: plugins/tags/default-templates/currywurst/tags.html
===================================================================
--- plugins/tags/default-templates/currywurst/tags.html	(revision 2782)
+++ plugins/tags/default-templates/currywurst/tags.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: plugins/tags/default-templates/dotty/tag.html
===================================================================
--- plugins/tags/default-templates/dotty/tag.html	(revision 3249)
+++ plugins/tags/default-templates/dotty/tag.html	(revision 3371)
@@ -8,10 +8,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: plugins/tags/default-templates/dotty/tags.html
===================================================================
--- plugins/tags/default-templates/dotty/tags.html	(revision 3249)
+++ plugins/tags/default-templates/dotty/tags.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: plugins/tags/default-templates/mustek/tag.html
===================================================================
--- plugins/tags/default-templates/mustek/tag.html	(revision 3062)
+++ plugins/tags/default-templates/mustek/tag.html	(revision 3371)
@@ -8,10 +8,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: plugins/tags/default-templates/mustek/tags.html
===================================================================
--- plugins/tags/default-templates/mustek/tags.html	(revision 3017)
+++ plugins/tags/default-templates/mustek/tags.html	(revision 3371)
@@ -7,10 +7,4 @@
 <tpl:Block name="meta-robots">
 	<meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-</tpl:Block>
-
-<tpl:Block name="dc-entry">
-	<meta property="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta property="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta property="dc.date" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
 </tpl:Block>
 
Index: plugins/tags/inc/tags.behaviors.php
===================================================================
--- plugins/tags/inc/tags.behaviors.php	(revision 3024)
+++ plugins/tags/inc/tags.behaviors.php	(revision 3333)
@@ -363,7 +363,8 @@
 
 		echo
+		'<div class="fieldset"><h5 id="tags_prefs">'.__('Tags').'</h5>'.
 		'<p><label for="user_tag_list_format" class="classic">'.__('Tags list format:').'</label> '.
 		form::combo('user_tag_list_format',$combo,$value).
-		'</p>';
+		'</p></div>';
 	}
 
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 3257)
+++ plugins/themeEditor/_admin.php	(revision 3333)
@@ -60,5 +60,5 @@
 		echo
 			'<div class="fieldset two-cols clearfix">'.
-			'<h5>'.__('Syntax highlighting').'</h5>';
+			'<h5 id="themeEditor_prefs">'.__('Syntax highlighting').'</h5>';
 		echo
 			'<div class="col">'.
Index: plugins/themeEditor/_define.php
===================================================================
--- plugins/themeEditor/_define.php	(revision 3251)
+++ plugins/themeEditor/_define.php	(revision 3333)
@@ -18,5 +18,8 @@
 	/* Version */			'1.3',
 	array(
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'pref' => '#user-options.themeEditor_prefs'
+							)
 	)
 );
Index: plugins/themeEditor/index.php
===================================================================
--- plugins/themeEditor/index.php	(revision 3256)
+++ plugins/themeEditor/index.php	(revision 3363)
@@ -117,5 +117,5 @@
 	echo
 	'<form id="file-form" action="'.$p_url.'" method="post">'.
-	'<div class="fieldset"><h4>'.__('File editor').'</h4>'.
+	'<div class="fieldset"><h3>'.__('File editor').'</h3>'.
 	'<p><label for="file_content">'.sprintf(__('Editing file %s'),'<strong>'.$file['f']).'</strong></label></p>'.
 	'<p>'.form::textarea('file_content',72,25,html::escapeHTML($file['c']),'maximal','',!$file['w']).'</p>';
Index: plugins/themeEditor/style.css
===================================================================
--- plugins/themeEditor/style.css	(revision 3253)
+++ plugins/themeEditor/style.css	(revision 3365)
@@ -2,14 +2,14 @@
 	width: 100%;
 	float: left;
-	margin-right: -180px;
+	margin-right: -15em; /* was -180px; */
 }
 
 #file-editor {
-	margin-right: 180px;
+	margin-right: 15em; /* was 180px; */
 }
 
 #file-chooser {
 	float: right;
-	width: 170px;
+	width: 14em; /* was 170px; */
 }
 #file-chooser ul {
Index: plugins/widgets/_admin.php
===================================================================
--- plugins/widgets/_admin.php	(revision 2849)
+++ plugins/widgets/_admin.php	(revision 3330)
@@ -12,15 +12,6 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$core->addBehavior('adminDashboardFavorites','widgets_dashboard_favorites');
-
-function widgets_dashboard_favorites($core,$favs)
-{
-	$favs->register('widgets', array(
-		'title' => __('Presentation widgets'),
-		'url' => $core->adminurl->get('admin.plugin.widgets'),
-		'small-icon' => dcPage::getPF('widgets/icon.png'),
-		'large-icon' => dcPage::getPF('widgets/icon-big.png'),
-	));
-}
+$core->addBehavior('adminDashboardFavorites',array('widgetsBehaviors','widgets_dashboard_favorites'));
+$core->addBehavior('adminRteFlags',array('widgetsBehaviors','adminRteFlags'));
 
 $_menu['Blog']->addItem(__('Presentation widgets'),
@@ -29,2 +20,20 @@
 		preg_match('/'.preg_quote($core->adminurl->get('admin.plugin.widgets')).'(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->check('admin',$core->blog->id));
+
+class widgetsBehaviors
+{
+	public static function widgets_dashboard_favorites($core,$favs)
+	{
+		$favs->register('widgets', array(
+			'title' => __('Presentation widgets'),
+			'url' => $core->adminurl->get('admin.plugin.widgets'),
+			'small-icon' => dcPage::getPF('widgets/icon.png'),
+			'large-icon' => dcPage::getPF('widgets/icon-big.png'),
+		));
+	}
+
+	public static function adminRteFlags($core,$rte)
+	{
+		$rte['widgets_text'] = array(true,__('Widget\'s textareas'));
+	}
+}
Index: plugins/widgets/_define.php
===================================================================
--- plugins/widgets/_define.php	(revision 2778)
+++ plugins/widgets/_define.php	(revision 3330)
@@ -16,5 +16,5 @@
 	/* Description*/		"Widgets for your blog sidebars",
 	/* Author */			"Olivier Meunier & Dotclear Team",
-	/* Version */			'3.3',
+	/* Version */			'3.4',
 	array(
 		'permissions' =>	'admin',
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 3223)
+++ plugins/widgets/index.php	(revision 3330)
@@ -236,5 +236,12 @@
   <?php
   		$widget_editor = $core->auth->getOption('editor');
-  		echo $core->callBehavior('adminPostEditor',$widget_editor['xhtml'],'widget',array('#sidebarsWidgets textarea'),'xhtml');
+		$rte_flag = true;
+		$rte_flags  = @$core->auth->user_prefs->interface->rte_flags;
+		if (is_array($rte_flags) && in_array('widgets_text',$rte_flags)) {
+			$rte_flag = $rte_flags['widgets_text'];
+		}
+		if ($rte_flag) {
+	  		echo $core->callBehavior('adminPostEditor',$widget_editor['xhtml'],'widget',array('#sidebarsWidgets textarea'),'xhtml');
+		}
   ?>
   <?php echo(dcPage::jsConfirmClose('sidebarsWidgets')); ?>
Index: themes/berlin/tpl/user_footer.html
===================================================================
--- themes/berlin/tpl/user_footer.html	(revision 2786)
+++ themes/berlin/tpl/user_footer.html	(revision 3332)
@@ -33,6 +33,7 @@
             });
 
-            $('#gotop').click(function() {
+            $('#gotop').click(function(e) {
                 $('body,html').animate({scrollTop:0},800);
+                e.preventDefault();
             });
 });
Index: themes/ductile/tpl/404.html
===================================================================
--- themes/ductile/tpl/404.html	(revision 2830)
+++ themes/ductile/tpl/404.html	(revision 3371)
@@ -8,12 +8,4 @@
 	<meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Document not found}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/archive.html
===================================================================
--- themes/ductile/tpl/archive.html	(revision 2830)
+++ themes/ductile/tpl/archive.html	(revision 3371)
@@ -9,13 +9,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/archive_month.html
===================================================================
--- themes/ductile/tpl/archive_month.html	(revision 2830)
+++ themes/ductile/tpl/archive_month.html	(revision 3371)
@@ -9,13 +9,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Archives}} - {{tpl:ArchiveDate}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/category.html
===================================================================
--- themes/ductile/tpl/category.html	(revision 2830)
+++ themes/ductile/tpl/category.html	(revision 3371)
@@ -10,14 +10,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta name="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:CategoryDescription remove_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/home.html
===================================================================
--- themes/ductile/tpl/home.html	(revision 3226)
+++ themes/ductile/tpl/home.html	(revision 3371)
@@ -10,14 +10,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta name="dc.description" lang="{{tpl:BlogLanguage}}" content="{{tpl:BlogDescription remove_html="1" encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="contents" title="{{tpl:lang Archives}}" href="{{tpl:BlogArchiveURL}}" />
Index: themes/ductile/tpl/page.html
===================================================================
--- themes/ductile/tpl/page.html	(revision 2830)
+++ themes/ductile/tpl/page.html	(revision 3371)
@@ -10,15 +10,4 @@
 	<meta name="author" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:EntryDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" content="{{tpl:EntryTitle encode_html="1"}}" />
-	<meta name="dc.description" lang="{{tpl:EntryLang}}" content="{{tpl:EntryContent full="1" encode_html="1" remove_html="1" cut_string="180"}}" />
-	<meta name="dc.creator" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:EntryLang}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:EntryDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/post.html
===================================================================
--- themes/ductile/tpl/post.html	(revision 2830)
+++ themes/ductile/tpl/post.html	(revision 3371)
@@ -10,15 +10,4 @@
 	<meta name="author" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:EntryDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" content="{{tpl:EntryTitle encode_html="1"}}" />
-	<meta name="dc.description" lang="{{tpl:EntryLang}}" content="{{tpl:EntryContent full="1" encode_html="1" remove_html="1" cut_string="180"}}" />
-	<meta name="dc.creator" content="{{tpl:EntryAuthorCommonName encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:EntryLang}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:EntryDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/search.html
===================================================================
--- themes/ductile/tpl/search.html	(revision 2830)
+++ themes/ductile/tpl/search.html	(revision 3371)
@@ -9,13 +9,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Search}} - {{tpl:SysSearchString encode_html="1"}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/tag.html
===================================================================
--- themes/ductile/tpl/tag.html	(revision 2830)
+++ themes/ductile/tpl/tag.html	(revision 3371)
@@ -9,13 +9,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
Index: themes/ductile/tpl/tags.html
===================================================================
--- themes/ductile/tpl/tags.html	(revision 2830)
+++ themes/ductile/tpl/tags.html	(revision 3371)
@@ -9,13 +9,4 @@
 	<meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
 	<meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-
-	<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-	<meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}" />
-	<meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-	<meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-	<meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-	<meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-	<meta name="dc.type" content="text" />
-	<meta name="dc.format" content="text/html" />
 
 	<link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
