Index: /FCKeditor/branches/developers/alfonsoml/_whatsnew.html
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/_whatsnew.html	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/_whatsnew.html	(revision 53)
@@ -64,4 +64,8 @@
 		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1587175&group_id=75348&atid=543656">SF
 			Feature-1587175</a>] Local links to an anchor are readjusted if the anchor changes.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1500040&group_id=75348&atid=543655">SF
+			PATCH-1500040</a>] New configuration values to specify the Id and Class for the body element.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1577202&group_id=75348&atid=543655">SF
+			PATCH-1577202</a>] The links created with the popup option now are accesible even if the user has javascript disabled.</li>
 	</ul>
 
@@ -137,11 +141,16 @@
 			both browsers.</li>
 		<li>Small interface fixes to the about box.</li>
-		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1604576&group_id=75348&atid=543655">SF
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1604576&group_id=75348&atid=543655">SF
 			PATCH-1604576</a>] [<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1604301&group_id=75348">SF
 			BUG-1604301</a>] Link creation failed in Firefox 3 alpha. Thanks to Arpad Borsos</li>
-		<li>[<a target="_blank" href="https://sourceforge.net/tracker/index.php?func=detail&aid=1577247&group_id=75348&atid=543653">SF
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1577247&group_id=75348&atid=543653">SF
 			BUG-1577247</a>] Unneeded call to captureEvents and releaseEvents.</li>
 		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&atid=543653&aid=1610790&group_id=75348">SF BUG-1610790</a>] On some specific situations, the call to form.submit(), in form were FCKeditor has
-			been unloaded by code, was throwing the "Can't execute code from a freed script" error.</li></ul>
+			been unloaded by code, was throwing the "Can't execute code from a freed script" error.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1613167&group_id=75348&atid=543653">SF BUG-1613167</a>] If the
+			configuration was missing the FCKConfig.AdditionalNumericEntities entry an error appeared.</li>
+		<li>[<a target="_blank" href="https://sourceforge.net/tracker/?func=detail&aid=1590848&group_id=75348&atid=543653">SF BUG-1590848</a>] 
+			Cleaning of Javascript strict warnings in Firefox.</li>
+	</ul>
 	<p>
 		* This version has been partially sponsored by <a href="http://www.imedi.org/">Medical Media Lab</a>.</p>
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckdomrange_gecko.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckdomrange_gecko.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckdomrange_gecko.js	(revision 53)
@@ -78,4 +78,6 @@
 	if ( this._Range )
 		return new FCKDocumentFragment( null, this._Range.extractContents() ) ;
+
+	return null ;
 }
 
@@ -84,4 +86,6 @@
 	if ( this._Range )
 		return this._Range.collapsed ;
+
+	return null ;
 }
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckeditingarea.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckeditingarea.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckeditingarea.js	(revision 53)
@@ -200,5 +200,5 @@
 		if ( this.Mode == FCK_EDITMODE_WYSIWYG )
 		{
-			if ( this.Document.hasFocus() )
+			if ( FCKBrowserInfo.IsIE && this.Document.hasFocus() )
 				return ;
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckkeystrokehandler.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckkeystrokehandler.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckkeystrokehandler.js	(revision 53)
@@ -101,4 +101,6 @@
 		return false ;
 	}
+
+	return true ;
 }
 
@@ -114,3 +116,5 @@
 		return false ;
 	}
+
+	return true ;
 }
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckstylesloader.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckstylesloader.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckstylesloader.js	(revision 53)
@@ -20,5 +20,5 @@
 	var oXml = new FCKXml() ;
 	oXml.LoadUrl( stylesXmlUrl ) ;
-	
+
 	// Get the "Style" nodes defined in the XML file.
 	var aStyleNodes = oXml.SelectNodes( 'Styles/Style' ) ;
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarfontformatcombo.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarfontformatcombo.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarfontformatcombo.js	(revision 53)
@@ -30,6 +30,14 @@
 FCKToolbarFontFormatCombo.prototype.CreateItems = function( targetSpecialCombo )
 {
+	var oTargetDoc = targetSpecialCombo._Panel.Document ;
+
 	// Add the Editor Area CSS to the panel to create a realistic preview.
-	FCKTools.AppendStyleSheet( targetSpecialCombo._Panel.Document, FCKConfig.ToolbarComboPreviewCSS ) ;
+	FCKTools.AppendStyleSheet( oTargetDoc, FCKConfig.ToolbarComboPreviewCSS ) ;
+
+	// Add ID and Class to the body
+	if ( FCKConfig.BodyId && FCKConfig.BodyId.length > 0 )
+		oTargetDoc.body.id = FCKConfig.BodyId ;
+	if ( FCKConfig.BodyClass && FCKConfig.BodyClass.length > 0 )
+		oTargetDoc.body.className += ' ' + FCKConfig.BodyClass ;
 
 	// Get the format names from the language file.
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarspecialcombo.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarspecialcombo.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarspecialcombo.js	(revision 53)
@@ -17,4 +17,5 @@
 	this.SourceView			= false ;
 	this.ContextSensitive	= true ;
+	this._LastValue = null ;
 }
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarstylecombo.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarstylecombo.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fcktoolbarstylecombo.js	(revision 53)
@@ -40,5 +40,6 @@
 
 	// For some reason Gecko is blocking inside the "RefreshVisibleItems" function.
-	if ( ! FCKBrowserInfo.IsGecko )
+	// The problem is present only in old versions
+	if ( !( FCKBrowserInfo.IsGecko && FCKBrowserInfo.IsGecko10 ) )
 		targetSpecialCombo.OnBeforeClick = this.RefreshVisibleItems ;
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckxml_gecko.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckxml_gecko.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckxml_gecko.js	(revision 53)
@@ -11,4 +11,5 @@
 FCKXml.prototype.LoadUrl = function( urlToCall )
 {
+	this.Error = false ;
 	var oFCKXml = this ;
 
@@ -22,9 +23,22 @@
 		this.DOMDocument = oXmlHttp.responseXML ;
 	else
-		alert( 'Error loading "' + urlToCall + '"' ) ;
+		this.DOMDocument = null ;
+
+	if ( this.DOMDocument == null || this.DOMDocument.firstChild == null )
+	{
+		this.Error = true ;
+		if (window.confirm( 'Error loading "' + urlToCall + '"\r\nDo you want to see more info?' ) )
+			alert( 'URL requested: "' + urlToCall + '"\r\n' +
+						'Server response:\r\nStatus: ' + oXmlHttp.status + '\r\n' +
+						'Response text:\r\n' + oXmlHttp.responseText ) ;
+
+	}
 }
 
 FCKXml.prototype.SelectNodes = function( xpath, contextNode )
 {
+	if ( this.Error )
+		return new Array() ;
+
 	var aNodeArray = new Array();
 
@@ -45,4 +59,7 @@
 FCKXml.prototype.SelectSingleNode = function( xpath, contextNode ) 
 {
+	if ( this.Error )
+		return null ;
+
 	var xPathResult = this.DOMDocument.evaluate( xpath, contextNode ? contextNode : this.DOMDocument,
 			this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckxml_ie.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckxml_ie.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/classes/fckxml_ie.js	(revision 53)
@@ -27,5 +27,5 @@
 	
 	oXmlHttp.send( null ) ;
-	
+
 	if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )
 		this.DOMDocument = oXmlHttp.responseXML ;
@@ -39,6 +39,14 @@
 	else
 	{
+		this.DOMDocument = null ;
+	}
+
+	if ( this.DOMDocument == null || this.DOMDocument.firstChild == null )
+	{
 		this.Error = true ;
-		alert( 'Error loading "' + urlToCall + '"' ) ;
+		if (window.confirm( 'Error loading "' + urlToCall + '"\r\nDo you want to see more info?' ) )
+			alert( 'URL requested: "' + urlToCall + '"\r\n' +
+						'Server response:\r\nStatus: ' + oXmlHttp.status + '\r\n' +
+						'Response text:\r\n' + oXmlHttp.responseText ) ;
 	}
 }
@@ -58,5 +66,5 @@
 {
 	if ( this.Error )
-		return ;
+		return null ;
 		
 	if ( contextNode )
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fck_1.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fck_1.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fck_1.js	(revision 53)
@@ -304,5 +304,5 @@
 			if ( FCKConfig.BodyClass && FCKConfig.BodyClass.length > 0 )
 				sBodyTag += ' class="' + FCKConfig.BodyClass + '"' ;
-			sHtml += '<\/head>' + sBodyTag + '>' ;
+			sHtml += '</head>' + sBodyTag + '>' ;
 
 			if ( FCKBrowserInfo.IsGecko && ( html.length == 0 || FCKRegexLib.EmptyParagraph.test( html ) ) )
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fcktools.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fcktools.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fcktools.js	(revision 53)
@@ -20,4 +20,5 @@
 }
 
+// Returns a reference to the appended style sheet or an array with all the appended references
 FCKTools.AppendStyleSheet = function( documentElement, cssFileUrlOrArray )
 {
@@ -26,6 +27,10 @@
 	else
 	{
+		var aStyleSheeArray = new Array() ;
+
 		for ( var i = 0 ; i < cssFileUrlOrArray.length ; i++ )
-			this._AppendStyleSheet( documentElement, cssFileUrlOrArray[i] ) ;
+			aStyleSheeArray.push(this._AppendStyleSheet( documentElement, cssFileUrlOrArray[i] ) ) ;
+
+		return aStyleSheeArray ;
 	}
 }
@@ -67,5 +72,4 @@
 //	return document.contentWindow ? document.contentWindow : document.parentWindow ;
 	return document.parentWindow ? document.parentWindow : document.defaultView ;
-
 }
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckxhtmlentities.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckxhtmlentities.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/_source/internals/fckxhtmlentities.js	(revision 53)
@@ -322,5 +322,5 @@
 	var sAdditional = FCKConfig.AdditionalNumericEntities ;
 
-	if ( sAdditional || sAdditional.length > 0 )
+	if ( sAdditional && sAdditional.length > 0 )
 		sRegexPattern += '|' + FCKConfig.AdditionalNumericEntities ;
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/dialog/fck_table.html
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/dialog/fck_table.html	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/dialog/fck_table.html	(revision 53)
@@ -140,17 +140,4 @@
 	
 	return true ;
-}
-
-function IsDigit( e )
-{
-	e = e || event ;
-	var iCode = ( e.keyCode || e.charCode ) ;
-	return 
-		(
-			( iCode >= 48 && iCode <= 57 )		// Numbers
-			|| (iCode >= 37 && iCode <= 40)		// Arrows
-			|| iCode == 8		// Backspace
-			|| iCode == 46		// Delete
-		) ;
 }
 
Index: /FCKeditor/branches/developers/alfonsoml/editor/fckeditor.html
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/editor/fckeditor.html	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/editor/fckeditor.html	(revision 53)
@@ -257,6 +257,6 @@
 		var oCell = document.getElementById( 'xEditingArea' ) ;
 
-		var eInnerElement ;
-		if ( (eInnerElement = oCell.firstChild) )
+		var eInnerElement = oCell.firstChild ;
+		if ( eInnerElement )
 		{
 			eInnerElement.style.height = 0 ;
Index: /FCKeditor/branches/developers/alfonsoml/fckconfig.js
===================================================================
--- /FCKeditor/branches/developers/alfonsoml/fckconfig.js	(revision 52)
+++ /FCKeditor/branches/developers/alfonsoml/fckconfig.js	(revision 53)
@@ -149,4 +149,8 @@
 FCKConfig.ProtectedTags = '' ;
 
+// This will be applied to the body element of the editor
+FCKConfig.BodyId = '' ;
+FCKConfig.BodyClass = '' ;
+
 // The following value defines which File Browser connector and Quick Upload 
 // "uploader" to use. It is valid for the default implementaion and it is here
