Index: xwiki-platform-core/src/main/resources/ApplicationResources.properties
===================================================================
--- xwiki-platform-core/src/main/resources/ApplicationResources.properties	(revision 4114)
+++ xwiki-platform-core/src/main/resources/ApplicationResources.properties	(working copy)
@@ -763,3 +763,6 @@
 panels.recentlyVisited.title=Recently Visited
 panels.recentlyModified.title=Recently Modified
 panels.recentlyCreated.title=Recently Created
+
+#tooltip for fullscreen editing
+fullScreenTooltip=Edit in Full Screen
\ No newline at end of file
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/rico/prototype.js
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/rico/prototype.js	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/rico/prototype.js	(working copy)
@@ -457,7 +457,8 @@
     var result = this[0];
     for (var i = 0; i < this.length - 1; i++)
       this[i] = this[i + 1];
-    this.length--;
+    if(this.length)
+    	this.length--;
     return result;
   },
 
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/button.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/button.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/hd-sprite.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/hd-sprite.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/gradient-bg.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/gradient-bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/fullscreen3.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/fullscreen3.gif
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/close.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/close.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/fullscreen22.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/fullscreen22.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/btn-sprite.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreen_img/btn-sprite.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/wikibits.js
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/wikibits.js	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/wikibits.js	(working copy)
@@ -302,6 +302,7 @@
 function insertTags(tagOpen, tagClose, sampleText) {
 
 	var txtarea = document.forms.edit.content;
+	if(!txtarea) txtarea = document.getElementById("content");
 	// IE
 	if(document.selection  && !is_gecko) {
 		var theSelection = document.selection.createRange().text;
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/style.css
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/style.css	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/style.css	(working copy)
@@ -10,6 +10,7 @@
 @import "presentation.css"; 
 @import "colorsblack.css";
 /*@import "ie.css";   masque temporairement : modif spécifique IE à réintéger*/
+@import "fullscreenEdit.css";
 
 /* Styles for custom hand written <table> tables */
 @import "css/table/table.css";
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/editwysiwyg.vm
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/editwysiwyg.vm	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/editwysiwyg.vm	(working copy)
@@ -41,7 +41,10 @@
             wiki_macro_path : '${request.contextPath}/bin/view/$doc.web/$doc.name',
             wiki_plugins: 'core,attachments,macros'
 });
-} else {
-        alert("$msg.get('browsernoncompatible')");
-}
-</script>
\ No newline at end of file
+     
+   } else {
+            alert("$msg.get('browsernoncompatible')");
+	  s}
+</script>
+## fullscreen editing
+<script type="text/javascript">fullscreenEdit("wysiwyg");</script>
\ No newline at end of file
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/htmlheader.vm
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/htmlheader.vm	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/htmlheader.vm	(working copy)
@@ -51,4 +51,4 @@
 
 <!-- These elements will be closed in the footer vm file -->
 <div id="xwikimaincontainer">
-<div id="xwikimaincontainerinner">
+<div id="xwikimaincontainerinner">
\ No newline at end of file
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreenEdit.js
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreenEdit.js	(revision 0)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreenEdit.js	(revision 0)
@@ -0,0 +1,272 @@
+
+//function to get a style property of an element
+//////////////////////////////////////////////
+function getStyle(el, style) {
+   if(!document.getElementById) return;
+   var value = el.style[toCamelCase(style)];
+   if(!value)
+        if(document.defaultView)
+            value = document.defaultView.getComputedStyle(el, "").getPropertyValue(style);
+        else if(el.currentStyle)
+            value = el.currentStyle[toCamelCase(style)];
+     return value;
+}
+
+
+
+
+//function to set a style property for an element
+////////////////////////////////////
+function setStyle(el, style, value) {
+	el.style[style] = value;
+}
+
+
+
+
+//utility function
+///////////////////
+function toCamelCase( sInput ) {
+    var oStringList = sInput.split('-');
+    if(oStringList.length == 1)   
+        return oStringList[0];
+    var ret = sInput.indexOf("-") == 0 ?
+       oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) : oStringList[0];
+    for(var i = 1, len = oStringList.length; i < len; i++){
+        var s = oStringList[i];
+        ret += s.charAt(0).toUpperCase() + s.substring(1)
+    }
+    return ret;
+}
+
+
+
+
+
+//move the children of srcNode into destNode
+/////////////////////////////////////////////
+function moveChildren(srcNode, destNode) {
+    var node;	
+	while(srcNode.hasChildNodes()) {
+	    node = srcNode.firstChild;
+	    destNode.appendChild(node);
+	}
+}
+
+
+
+
+
+//add the element that will trigger the dialog
+/////////////////////////////////////////////
+function fullscreenEdit(what) {
+	
+	var parentDiv = document.getElementById("xwikitext");
+		
+	if(parentDiv) {
+	    //Fullscreen button	
+		var showBtn = document.createElement("div");
+		showBtn.setAttribute("id", "show-dialog-btn");
+		showBtn.setAttribute("onclick", what+"Fullscreen();");
+		showBtn.setAttribute("title", "$msg.get("fullScreenTooltip")");
+		var textdiv = document.getElementById("xwikieditcontent");		
+		parentDiv.insertBefore(showBtn, textdiv);
+		
+		//fullscreen div
+		var newdiv = document.createElement("div");
+		newdiv.setAttribute("id", "fullscreen-dlg");
+		
+		//fullscreen div header
+		var newdivhd = document.createElement("div");
+		newdivhd.setAttribute("id", "fullscreen-dlg-head");
+		
+		//close button
+		var closeBtn = document.createElement("div");
+		closeBtn.setAttribute("id", "closeBtn");
+		closeBtn.setAttribute("onclick", what+"Hide();");
+		newdivhd.appendChild(closeBtn);
+		
+		var title = document.createElement("div");
+		title.setAttribute("class", "titleText");
+	    title.appendChild(document.createTextNode("Fullscreen Editing"));
+	    newdivhd.appendChild(title);
+		
+		//fullscreen div body
+		var newdivbd = document.createElement("div");
+		newdivbd.setAttribute("id", "fullscreen-dlg-body");
+		
+		var newdivbdtab = document.createElement("div");
+		newdivbdtab.setAttribute("id", "fullscreen-dlg-body-tab");
+		newdivbd.appendChild(newdivbdtab);
+		
+		newdiv.appendChild(newdivhd);
+		newdiv.appendChild(newdivbd);
+			
+		var backBtn = document.createElement("div");
+		backBtn.setAttribute("class", "backBtn");
+		backBtn.setAttribute("onclick", what+"Hide();");
+		var btnText = document.createElement("div");
+		btnText.setAttribute("class", "btnText");
+		btnText.appendChild(document.createTextNode("Back"));
+		backBtn.appendChild(btnText);
+			
+		newdivbd.appendChild(backBtn);
+		
+		document.body.appendChild(newdiv);	
+	}
+}
+
+
+
+
+//maximize or minimize the editing area 
+///////////////////////////////////////
+function wysiwygFullscreen() {
+	 
+	var flscrDiv = document.getElementById("fullscreen-dlg");
+	var flscrDivBdTab = document.getElementById("fullscreen-dlg-body-tab");
+	setStyle(flscrDiv, "display", "block");
+	
+    var parentswapDiv = document.getElementById("parentswapDiv");
+    var swapDiv = document.getElementById("swapDiv");
+    
+    if(parentswapDiv == null || parentswapDiv == undefined) {
+    	parentswapDiv = document.createElement("div");
+    	parentswapDiv.setAttribute("id", "parentswapDiv");
+    	if(swapDiv == null || swapDiv == undefined) {
+    		swapDiv = document.createElement("div");
+			swapDiv.setAttribute("id", "swapDiv");
+		}
+		parentswapDiv.appendChild(swapDiv);
+		flscrDivBdTab.appendChild(parentswapDiv);
+	 }
+	
+	//swaps the swapDiv with xwikieditcontent
+	var xwikidiv = document.getElementById("xwikieditcontent");
+	
+	//remove the editor
+	tinyMCE.execCommand('mceRemoveControl', false, 'content');
+	
+	var auxdiv = document.createElement("div");
+	document.body.appendChild(auxdiv);
+	moveChildren(parentswapDiv, auxdiv);
+	moveChildren(xwikidiv, parentswapDiv); 
+	moveChildren(auxdiv, xwikidiv);
+	document.body.removeChild(auxdiv); 
+	
+	//put the editor back
+	tinyMCE.execCommand('mceAddControl', false, 'content');
+	
+	//hide scrollbars
+	document.body.style.overflow="hidden";
+}
+
+
+
+
+//hide dialog and restore the textarea 
+/////////////////////////////////////
+function wysiwygHide() {
+	
+	var flscrDiv = document.getElementById("fullscreen-dlg");
+	setStyle(flscrDiv, "display", "none");
+	
+	var parentswapDiv = document.getElementById("parentswapDiv");
+	var xwikidiv = document.getElementById("xwikieditcontent");
+	var swapDiv = document.getElementById("swapDiv");
+	
+	//remove the editor
+	tinyMCE.execCommand('mceRemoveControl', false, 'content');
+	
+	var auxdiv = document.createElement("div");
+	document.body.appendChild(auxdiv);
+	moveChildren(parentswapDiv, auxdiv);
+	moveChildren(xwikidiv, parentswapDiv); 
+	moveChildren(auxdiv, xwikidiv);
+	document.body.removeChild(auxdiv); 
+	
+	//put the editor back
+	tinyMCE.execCommand('mceAddControl', false, 'content');
+	
+	//show the scrollbars
+	document.body.style.overflow="auto";
+}	
+
+
+
+
+//maximize or minimize the editing area 
+///////////////////////////////////////
+function wikiFullscreen() {
+	 
+	var flscrDiv = document.getElementById("fullscreen-dlg");
+	setStyle(flscrDiv, "display", "block");
+	
+    var parentswapDiv = document.getElementById("parentswapDiv");
+    var swapDiv = document.getElementById("swapDiv");
+    
+    if(parentswapDiv == null || parentswapDiv == undefined) {
+    	parentswapDiv = document.createElement("div");
+    	parentswapDiv.setAttribute("id", "parentswapDiv");
+    	if(swapDiv == null || swapDiv == undefined) {
+    		swapDiv = document.createElement("div");
+			swapDiv.setAttribute("id", "swapDiv");
+		}
+		
+		parentswapDiv.appendChild(swapDiv);
+		var flscrDivBdTab = document.getElementById("fullscreen-dlg-body-tab");
+		flscrDivBdTab.appendChild(parentswapDiv);
+		
+	 }
+	
+	//swaps the swapDiv with xwikieditcontent
+	var xwikidiv = document.getElementById("xwikieditcontentinner");
+	
+	var auxdiv = document.createElement("div");
+	document.body.appendChild(auxdiv);
+	moveChildren(parentswapDiv, auxdiv);
+	moveChildren(xwikidiv, parentswapDiv); 
+	moveChildren(auxdiv, xwikidiv);
+	document.body.removeChild(auxdiv); 
+	
+	//hide scrollbars
+	document.body.style.overflow="hidden";
+	
+	var textarea  = document.getElementById("content");
+	//save textarea dimensions
+	taWidth = getStyle(textarea, "width");
+	taHeight = getStyle(textarea, "height");
+	
+	setStyle(textarea, "width", "99%");
+	setStyle(textarea, "height", "94%");
+	
+}
+
+
+
+//hide dialog and restore the textarea 
+/////////////////////////////////////
+function wikiHide() {
+	
+	var flscrDiv = document.getElementById("fullscreen-dlg");
+	setStyle(flscrDiv, "display", "none");
+	
+	var parentswapDiv = document.getElementById("parentswapDiv");
+	var xwikidiv = document.getElementById("xwikieditcontentinner");
+	var swapDiv = document.getElementById("swapDiv");
+		
+	var auxdiv = document.createElement("div");
+	document.body.appendChild(auxdiv);
+	moveChildren(parentswapDiv, auxdiv);
+	moveChildren(xwikidiv, parentswapDiv); 
+	moveChildren(auxdiv, xwikidiv);
+	document.body.removeChild(auxdiv); 
+		
+	//show the scrollbars
+	document.body.style.overflow="auto";
+	
+	//restore textarea size
+	var textarea  = document.getElementById("content");
+	setStyle(textarea, "width", "");
+	setStyle(textarea, "height", "");
+}	
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/editwiki.vm
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/editwiki.vm	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/editwiki.vm	(working copy)
@@ -13,7 +13,7 @@
 </div> ## hidden
 <div id="xwikitext">
 <div id="xwikieditcontent">
-<div>
+<div id="xwikieditcontentinner">
 #template("simpleedittoolbar.vm")
 $xwiki.getTextArea($tdoc.content)
 #*
@@ -33,4 +33,5 @@
 </div> ## xwikitext
 ## #template("tagedit.vm")
 </div> ## noname
-<div class="bottombuttons">#template("editactions.vm")</div>
\ No newline at end of file
+<div class="bottombuttons">#template("editactions.vm")</div>
+<script type="text/javascript">fullscreenEdit("wiki");</script>
\ No newline at end of file
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/screenlayout.css
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/screenlayout.css	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/screenlayout.css	(working copy)
@@ -497,6 +497,13 @@
   position: absolute;
   left: 42px;
 }
+
+
+.leftmenu2 {
+   text-align: left;
+}
+
+
 .topmenuentry{
   float: left;
   width: 7em;
@@ -1054,4 +1061,30 @@
   float: right;
   font-size: 130%;
   padding: 4px 10px;
+}
+
+#parentswapDiv iframe {
+	width: 100% !important;
+	height: 94.6% !important;
+	position: absolute;
+	left: 0px;
+	top: 27px;
+	right: 0px;
+	bottom: 0px;
+}
+
+#parentswapDiv table {
+	width: 100% !important;
+	height: 100% !important;
+}
+
+	
+.mceEditorContainer {
+	display: block;
+	height: 100% !important;	
+	position: relative;
+}
+
+.mceToolbar {
+	z-index: 30002;
 }
\ No newline at end of file
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/javascript.vm
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/javascript.vm	(revision 4114)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/javascript.vm	(working copy)
@@ -6,6 +6,7 @@
 <script type="text/javascript" src="$xwiki.getSkinFile("browserdetect.js")"></script>
 <script type="text/javascript" src="$xwiki.getSkinFile("chwScripts.js")"></script>
 <script type="text/javascript" src="$xwiki.getSkinFile("scripts/table/tablefilterNsort.js", true)"></script>
+<script type="text/javascript" src="$xwiki.getSkinFile("fullscreenEdit.js", true)"></script>
 
 #if(($context.action=="inline")||($context.action=="edit") || ($context.action=="admin"))
 <script type="text/javascript">
Index: xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreenEdit.css
===================================================================
--- xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreenEdit.css	(revision 0)
+++ xwiki-platform-web/standard/src/main/webapp/skins/albatross/fullscreenEdit.css	(revision 0)
@@ -0,0 +1,115 @@
+#show-dialog-btn {
+	background: url(fullscreen_img/fullscreen22.gif);
+	width: 20px;
+	height: 20px;
+	cursor: pointer;
+	position: relative;
+	top: -8px;
+	left: -12px;
+	float:right;
+}
+	
+#fullscreen-dlg {
+	display:none;
+	position:absolute;
+	top:0px;
+	left:0px;
+	bottom: 0px;
+	right: 0px;
+	margin: 0px auto;
+	z-index:30000;
+	background-color:#fff;
+	width: 100%;
+	height: 97%;
+	padding: 0px;
+}
+
+#fullscreen-dlg-head{
+	background: url(fullscreen_img/hd-sprite.gif) repeat-x 0 -82px;
+	background-color:navy;
+	color:#FFF;
+	font:bold 12px "sans serif", tahoma, verdana, helvetica;
+	padding: 5px;
+	overflow: hidden;
+	white-space: nowrap;
+	width: 100%;
+}
+
+#fullscreen-dlg-body {
+	background-color: #9cbbe9;
+	color: #fff;
+	width: 100%;
+	height: 100%;
+	border:1px solid #6593cf;
+	border-top:0 none;
+	/*padding:10px;*/
+	position:absolute;
+	top:25px;
+	left:0;
+	overflow:hidden;
+}
+
+#fullscreen-dlg-body-tab {
+	background-color: #fff;
+	border:1px solid #6593cf;
+	position: relative;
+	width: 97%;
+	margin: 10px auto;
+	height: 90%;
+	text-align:center;
+}
+
+
+
+#parentswapDiv {
+	width: 100%;
+	height: 100%;
+	text-align: center;
+}
+
+#swapDiv {
+	width: 100%;
+	height: 100%;
+}
+
+.backBtn {	
+	z-index: 30001;
+    position: relative;
+    left: 1.5%;
+	background: url(fullscreen_img/button.gif) no-repeat;
+	width:75px;
+	height: 20px;
+	cursor:pointer;
+}
+
+#closeBtn {
+	float:right;
+    height:15px;
+	width:15px;
+	margin:0;
+    margin-right:10px;
+    padding:0;
+	line-height:1px;
+	font-size:1px;
+	background-repeat:no-repeat;
+	cursor:pointer;
+	background-image: url(fullscreen_img/close.gif);
+}
+
+.btnText {
+	text-align:center;
+	font:12px "sans serif", tahoma, verdana, helvetica;
+	color: #fff;
+	padding-top: 1px;
+}
+
+
+.titleText {
+	float:left;
+    height:15px;
+	width:15px;
+	margin:0;
+    margin-left:2px;
+    padding:0;
+	cursor:pointer;
+}
\ No newline at end of file
