/* ImgMap plugin for FCKeditor version 0.4 14/12/2007 See docs/install.html */ imgmapCommand_GetState = function() { if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ) return FCK_TRISTATE_DISABLED; var oImage = FCK.Selection.GetSelectedElement() ; if ( oImage && oImage.tagName == 'IMG' ) { if ( !FCK.IsRealImage( oImage ) ) { return FCK_TRISTATE_DISABLED ; } // Does it has an assigned map? if (oImage.getAttribute( 'usemap' )) return FCK_TRISTATE_ON; // Plain image return FCK_TRISTATE_OFF; } // No image selected return FCK_TRISTATE_DISABLED; } /* FCKCommands.RegisterCommand( 'imgmapPopup', new FCKDialogCommand( FCKLang.imgmapDlgName, FCKLang.imgmapDlgTitle, FCKPlugins.Items['imgmap'].Path + 'popup.html', 700, 620, imgmapCommand_GetState ) ) ; */ FCKCommands.RegisterCommand( 'imgmapPopup', new FCKDialogCommand( FCKLang.imgmapDlgName, FCKLang.imgmapDlgTitle, FCKPlugins.Items['imgmap'].Path + 'popup.html', 750, 580, imgmapCommand_GetState ) ) ; // create imgmap toolbar button. var imgmapButton = new FCKToolbarButton('imgmapPopup', FCKLang.imgmapBtn, null, null, false, true); // Use the proper icon according to the skin: if ( /\/editor\/skins\/(.*)\//.test(FCKConfig.SkinPath) ) imgmapButton.IconPath = FCKPlugins.Items['imgmap'].Path + 'images/icon_' + RegExp.$1 + '.gif'; else imgmapButton.IconPath = FCKPlugins.Items['imgmap'].Path + 'images/editor_icon.gif'; FCKToolbarItems.RegisterItem('imgmapPopup', imgmapButton); // register new contextmenu FCK.ContextMenu.RegisterListener({ AddItems : function( menu, tag, tagName ) { // under what circumstances do we display this option if ( FCK.IsRealImage( tag ) ) { // when the option is displayed, show a separator the command //menu.AddSeparator(); // the command needs the registered command name, the title for the context menu, and the icon path menu.AddItem('imgmapPopup', FCKLang.imgmapDlgTitle, imgmapButton.IconPath); } } }); /* // Removed by Ivan Tcholakov, 18-DEC-2008. // The code has been added in FCKeditor 2.5, so we only need it here for previous versions. if ( !FCKRegexLib.ProtectUrlsArea ) { if ( FCKBrowserInfo.IsIE ) { // Fix behavior for IE, it doesn't read back the .name on newly created maps FCKXHtml.TagProcessors['map'] = function( node, htmlNode ) { if ( ! node.attributes.getNamedItem( 'name' ) ) { var name = htmlNode.name ; if ( name ) FCKXHtml._AppendAttribute( node, 'name', name ) ; } node = FCKXHtml._AppendChildNodes( node, htmlNode, true ) ; return node ; } } // The href in the areas might get distorted by the browser. // Keep a reference to the default processsor: var imgmap_OldAreaProcessor = FCKXHtml.TagProcessors['area'] ; FCKXHtml.TagProcessors['area'] = function( node, htmlNode ) { var sSavedUrl = htmlNode.getAttribute( '_fcksavedurl' ) ; if ( sSavedUrl != null ) FCKXHtml._AppendAttribute( node, 'href', sSavedUrl ) ; // Call the default processor if (typeof imgmap_OldAreaProcessor == 'function') node = imgmap_OldAreaProcessor ( node, htmlNode ) ; return node ; } // Saves URLs on links and images on special attributes, so they don't change when // moving around. var imgmap_OldProtectUrls = FCK.ProtectUrls ; FCK.ProtectUrls = function( html ) { html = imgmap_OldProtectUrls( html ) ; // href html = html.replace( /]+))/gi , '$& _fcksavedurl=$1' ) ; return html ; } } */