Index: /MediaWiki/trunk/fckeditor_config.js
===================================================================
--- /MediaWiki/trunk/fckeditor_config.js	(revision 3217)
+++ /MediaWiki/trunk/fckeditor_config.js	(revision 3218)
@@ -13,5 +13,5 @@
 	['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
 	['SpecialChar','Table','Image','Rule'],
-	['MW_Template','MW_Special','MW_Ref','MW_References','MW_Math','MW_Category'],
+	['MW_Template','MW_Special','MW_Ref','MW_References','MW_Math','MW_Signature','MW_Category'],
 	'/',
 	['FontFormat'],
@@ -34,8 +34,10 @@
 FCKConfig.DefaultLanguage		= 'en' ;
 
+FCKConfig.WikiSignature = '--~~~~';
+
 // FCKConfig.DisableObjectResizing = true ;
 
 FCKConfig.EditorAreaStyles = '\
-.FCK__MWTemplate, .FCK__MWRef, .FCK__MWSpecial, .FCK__MWReferences, .FCK__MWMath, .FCK__MWNowiki, .FCK__MWIncludeonly, .FCK__MWNoinclude, .FCK__MWOnlyinclude, .FCK__MWGallery \
+.FCK__MWTemplate, .FCK__MWRef, .FCK__MWSignature, .FCK__MWSpecial, .FCK__MWReferences, .FCK__MWMath, .FCK__MWNowiki, .FCK__MWIncludeonly, .FCK__MWNoinclude, .FCK__MWOnlyinclude, .FCK__MWGallery \
 { \
 	border: 1px dotted #00F; \
@@ -104,4 +106,10 @@
 	height: 15px; \
 } \
+.FCK__MWSignature \
+{ \
+	background-image: url(' + FCKConfig.PluginsPath + 'mediawiki/images/icon_signature.gif); \
+	width: 66px; \
+	height: 15px; \
+} \
 .FCK__MWReferences \
 { \
Index: /MediaWiki/trunk/plugins/mediawiki/fckplugin.js
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 3217)
+++ /MediaWiki/trunk/plugins/mediawiki/fckplugin.js	(revision 3218)
@@ -75,4 +75,24 @@
 FCKToolbarItems.RegisterItem( 'MW_References', tbButton ) ;
 
+//Signature button
+var FCKSignature = function( )	{} ;
+FCKSignature.prototype.GetState = function()	{ return ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED) } ;
+FCKCommands.RegisterCommand( 'MW_Signature', new FCKSignature() ) ;
+tbButton = new FCKToolbarButton( 'MW_Signature', 'Signature', FCKLang.wikiBtnSignature || 'Insert signature', FCK_TOOLBARITEM_ONLYICON,true, true, 1  );
+tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_signature.gif' ;
+
+FCKSignature.prototype.Execute = function()
+{
+	if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+		return ;
+
+	FCKUndo.SaveUndoStep() ;
+	var e = FCK.EditorDocument.createElement( 'span' ) ;
+	e.className = "fck_mw_signature";
+
+	oFakeImage = FCK.InsertElement( FCKDocumentProcessor_CreateFakeImage( 'FCK__MWSignature', e ) ) ;
+}
+FCKToolbarItems.RegisterItem( 'MW_Signature', tbButton ) ;
+
 tbButton = new FCKToolbarButton( 'MW_Math', 'Formula', FCKLang.wikiBtnFormula || 'Insert/Edit Formula' ) ;
 tbButton.IconPath = FCKConfig.PluginsPath + 'mediawiki/images/tb_icon_math.gif' ;
@@ -604,4 +624,8 @@
 									return ;
 
+								case 'fck_mw_signature' :
+									stringBuilder.push( FCKConfig.WikiSignature ) ;
+									return ;
+
 								case 'fck_mw_template' :
 									stringBuilder.push( FCKTools.HTMLDecode(htmlNode.innerHTML).replace(/fckLR/g,'\r\n') ) ;
@@ -714,5 +738,4 @@
 				var parentIsSpecialTag = htmlNode.parentNode.getAttribute( '_fck_mw_customtag' ) ;
 				var textValue = htmlNode.nodeValue;
-
 				if ( !parentIsSpecialTag )
 				{
@@ -912,4 +935,43 @@
 FCKDocumentProcessor.AppendNew().ProcessDocument = function( document )
 {
+	// #1011: change signatures to SPAN elements
+	var aTextNodes = document.getElementsByTagName( '*' ) ;
+	var i = 0 ;
+	var signatureRegExp = new RegExp( FCKConfig.WikiSignature.replace( /([*:.*?();|$])/g, "\\$1" ), "i" );
+	while (element = aTextNodes[i++])
+	{
+		var nodes = element.childNodes ;
+		var j = 0 ;
+		while ( node = nodes[j++] )
+		{
+			if ( node.nodeType == 3 )
+			{//textNode
+				var index = 0 ;
+
+				while ( aSignatures = node.nodeValue.match( signatureRegExp ) )
+				{
+					index = node.nodeValue.indexOf( aSignatures[0] ) ;
+					if ( index != -1 )
+					{
+						var e = FCK.EditorDocument.createElement( 'span' ) ;
+						e.className = "fck_mw_signature";
+						var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__MWSignature', e ) ;
+
+						var substr1 = FCK.EditorDocument.createTextNode( node.nodeValue.substring(0, index) ) ;
+						var substr2 = FCK.EditorDocument.createTextNode( node.nodeValue.substring(index + aSignatures[0].length) ) ;
+
+						node.parentNode.insertBefore( substr1, node ) ;
+						node.parentNode.insertBefore( oFakeImage, node ) ;
+						node.parentNode.insertBefore( substr2, node ) ;
+
+						node.parentNode.removeChild( node ) ;
+						if ( node )
+							node.nodeValue = '' ;
+					}
+				}
+			}
+		}
+	}
+
 	// Templates and magic words.
 	var aSpans = document.getElementsByTagName( 'SPAN' ) ;
Index: /MediaWiki/trunk/plugins/mediawiki/lang/en.js
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/lang/en.js	(revision 3217)
+++ /MediaWiki/trunk/plugins/mediawiki/lang/en.js	(revision 3218)
@@ -13,4 +13,5 @@
 FCKLang.wikiBtnFormula				= 'Insert/Edit Formula';
 FCKLang.wikiBtnSpecial				= 'Insert/Edit Special Tag';
+FCKLang.wikiBtnSignature			= 'Insert signature';
 FCKLang.wikiCmdTemplate				= 'Template Properties';
 FCKLang.wikiCmdReference			= 'Reference Properties';
Index: /MediaWiki/trunk/plugins/mediawiki/lang/pl.js
===================================================================
--- /MediaWiki/trunk/plugins/mediawiki/lang/pl.js	(revision 3217)
+++ /MediaWiki/trunk/plugins/mediawiki/lang/pl.js	(revision 3218)
@@ -13,4 +13,5 @@
 FCKLang.wikiBtnFormula				= 'Wstaw/edytuj formułę matematyczną';
 FCKLang.wikiBtnSpecial				= 'Wstaw/edytuj specialny znacznik';
+FCKLang.wikiBtnSignature			= 'Wstaw sygnaturkę';
 FCKLang.wikiCmdTemplate				= 'Właściwości szablonu';
 FCKLang.wikiCmdReference			= 'Właściwości przypisu';
