screwturn-4/WebApplication/Editor.ascx
2009-09-30 13:47:13 +00:00

657 lines
37 KiB
Text

<%@ Control Language="C#" AutoEventWireup="true" Inherits="ScrewTurn.Wiki.Editor" Codebehind="Editor.ascx.cs" %>
<%@ Register TagName="ClientImageBrowser" TagPrefix="st" Src="~/ClientImageBrowser.ascx" %>
<asp:Literal ID="lblStrings" runat="server" meta:resourcekey="lblStringsResource3" />
<!-- added for WYSIWYG -->
<script type="text/javascript">
<!--
var debug=true;
var iframe;
var inWYSIWYG=false;
function IsInWYSIWYG() {
if(inWYSIWYG) {
inWYSIWYG=false;
return true;
}
return false;
}
function iframe_onload() {
inWYSIWYG=true;
if (document.all) {
iframe = window.frames[0];
iframe.focus();
var range = iframe.document.selection.createRange();
range.pasteHTML(document.getElementById(VisualControl).value);
range.collapse(false);
range.select();
iframe.document.designMode='On';
} else {
iframe = document.getElementById('iframe').contentWindow;
iframe.focus();
iframe.document.designMode='On';
iframe.document.execCommand('styleWithCSS',false,false);
iframe.document.execCommand('backcolor', false, 'white');
try { // This seems to throw an exception in Firefox
iframe.document.execCommand('inserthtml', false, document.getElementById(VisualControl).value);
} catch(ex) { }
}
}
function execCmd(commandID,showUI,value) {
iframe.focus();
iframe.document.execCommand(commandID,showUI,value);
}
function getSelectedText() {
if(document.all)
var selected=iframe.document.selection.createRange().text;
else
var selected=iframe.document.defaultView.getSelection().getRangeAt(0);
return selected;
}
function insertHTML(html) {
if (document.all) {
iframe.focus();
var range = iframe.document.selection.createRange();
range.pasteHTML(html);
range.collapse(false);
range.select();
iframe.focus();
} else {
iframe.document.execCommand('inserthtml', false, html);
iframe.focus();
}
}
function wrapWithTagClass(tag,clsName) {
insertHTML('<' + tag + ' class=' + clsName + '>' + getSelectedText() + '</' + tag + '>');
}
function wrapWithTag(tag) {
insertHTML('<' + tag + '>' + getSelectedText() + '</' + tag + '>');
}
function insertBreak() {
insertHTML('<h1 style="border-bottom: 1px solid rgb(153, 153, 153);"> </h1>');
}
function insertList(listTag) {
insertHTML('<' + listTag + '><li>' + getSelectedText() + '</li></' + listTag + '>');
return false;
}
function IncreaseHeight(elemName) {
var elem = document.getElementById(elemName);
var pos = AbsolutePosition(elem);
elem.style["height"] = pos.height + 100 + "px";
__CreateCookie("ScrewTurnWikiES", elem.style["height"], 365);
return false;
}
function DecreaseHeight(elemName) {
var elem = document.getElementById(elemName);
var pos = AbsolutePosition(elem);
if(pos.height > 100) elem.style["height"] = pos.height - 100 + "px";
__CreateCookie("ScrewTurnWikiES", elem.style["height"], 365);
return false;
}
function InitES() {
var cookieValue = __ReadCookie("ScrewTurnWikiES");
if(cookieValue) {
var elem = document.getElementById(MarkupControl);
if(elem) elem.style["height"] = cookieValue;
elem = document.getElementById("iframe");
if(elem) elem.style["height"] = cookieValue;
}
}
// -->
</script>
<div id="TabContainerDiv">
<anthem:Button ID="btnWikiMarkup" runat="server" Text="WikiMarkup" OnClick="btnWikiMarkup_Click" CssClass="tabbutton" CausesValidation="false"
PostCallBackFunction="HideProgress" PreCallBackFunction="ShowProgress" AutoUpdateAfterCallBack="True" EnableViewState="False" meta:resourcekey="btnWikiMarkupResource3" UpdateAfterCallBack="True" />
<anthem:Button ID="btnVisual" runat="server" Text="Visual" OnClick="btnVisual_Click" CssClass="tabbutton" CausesValidation="false"
PostCallBackFunction="HideProgress" PreCallBackFunction="ShowProgress" AutoUpdateAfterCallBack="True" EnableViewState="False" meta:resourcekey="btnVisualResource3" UpdateAfterCallBack="True" />
<anthem:Button ID="btnPreview" runat="server" Text="Preview" OnClick="btnPreview_Click" CssClass="tabbutton" CausesValidation="false"
PostCallBackFunction="HideProgress" PreCallBackFunction="ShowProgress" AutoUpdateAfterCallBack="True" EnableViewState="False" meta:resourcekey="btnPreviewResource3" UpdateAfterCallBack="True" />
<span id="ProgressSpan" style="display: none;">
<img src="Images/Editor/Progress.gif" alt="Please wait..." style="margin-bottom: -2px;" />
</span>
</div>
<anthem:MultiView ID="mlvEditor" AutoUpdateAfterCallBack="True" UpdateAfterCallBack="True" runat="server">
<anthem:View ID="viwStandard" runat="server">
<div class="toolbar">
<div class="sizebuttons">
<anthem:ImageButton ID="btnBiggerMarkup" runat="server" ImageUrl="~/Images/Editor/EditorBigger.png" ImageUrlDuringCallBack="~/Images/Editor/EditorBigger.png"
ToolTip="Increase editor size" CssClass="helperbutton" EnableViewState="False" meta:resourcekey="btnBiggerMarkupResource3"
OnClientClick="javascript:return IncreaseHeight(MarkupControl);" />
<anthem:ImageButton ID="btnSmallerMarkup" runat="server" ImageUrl="~/Images/Editor/EditorSmaller.png" ImageUrlDuringCallBack="~/Images/Editor/EditorSmaller.png"
ToolTip="Decrease editor size" CssClass="helperbutton" EnableViewState="False" meta:resourcekey="btnSmallerMarkupResource3"
OnClientClick="javascript:return DecreaseHeight(MarkupControl);" />
</div>
<div id="MarkupToolbarDiv">
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Bold %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('\'\'\'', '\'\'\'');">
<img src="Images/Editor/Bold.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Bold %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Italic %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('\'\'', '\'\'');">
<img src="Images/Editor/Italic.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Italic %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Underlined %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('__', '__');">
<img src="Images/Editor/Underlined.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Underlined %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Striked %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('--', '--');">
<img src="Images/Editor/Striked.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Striked %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H1 %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('==', '==');">
<img src="Images/Editor/H1.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H1 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H2 %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('===', '===');">
<img src="Images/Editor/H2.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H2 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H3 %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('====', '====');">
<img src="Images/Editor/H3.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H3 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H4 %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('=====', '=====');">
<img src="Images/Editor/H4.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H4 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Superscript %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('<sup>', '</sup>');">
<img src="Images/Editor/Superscript.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Superscript %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Subscript %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('<sub>', '</sub>');">
<img src="Images/Editor/Subscript.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Subscript %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.PageLink %>" class="toolbarbutton" onclick="javascript:return OpenPopup('PageLink');">
<img src="Images/Editor/PageLink.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.PageLink %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.FileLink %>" class="toolbarbutton" onclick="javascript:return OpenPopup('FileLink');">
<img src="Images/Editor/File.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.FileLink %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.ExternalLink %>" class="toolbarbutton" onclick="javascript:return OpenPopup('ExternalLink');">
<img src="Images/Editor/Link.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.ExternalLink %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Image %>" class="toolbarbutton" onclick="javascript:return OpenPopup('Image');">
<img src="Images/Editor/Image.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Image %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Anchor %>" class="toolbarbutton" onclick="javascript:return OpenPopup('Anchor$' + ExtractAnchors());">
<img src="Images/Editor/Anchor.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Anchor %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.LineBreak %>" class="toolbarbutton" onclick="javascript:return InsertMarkup('{br}');">
<img src="Images/Editor/BR.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.LineBreak %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Snippets %>" id="SnippetsMenuLinkMarkup" class="toolbarbutton" onclick="javascript:return ShowSnippetsMenuMarkup(event);">
<img src="Images/Editor/Snippet.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Snippets %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.SpecialTags %>" id="SpecialTagsMenuLinkMarkup" class="toolbarbutton" onclick="javascript:return ShowSpecialTagsMenuMarkup(event);">
<img src="Images/Editor/SpecialTags.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.SpecialTags %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.HR %>" class="toolbarbutton" onclick="javascript:return InsertMarkup('----');">
<img src="Images/Editor/HR.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.HR %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.CodeInline %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('{{', '}}');">
<img src="Images/Editor/Code.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.CodeInline %>" /></a>
<!-- a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.CodeBlock %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('{{{{', '}}}}');">
<img src="Images/Editor/PreEsc.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.CodeBlock %>" /></a -->
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.CodeEscaped %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('@@', '@@');">
<img src="Images/Editor/Pre.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.CodeEscaped %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Escape %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('<esc>', '</esc>');">
<img src="Images/Editor/Escape.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Escape %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.NoWiki %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('<nowiki>', '</nowiki>');">
<img src="Images/Editor/NoWiki.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.NoWiki %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.NoBr %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('<nobr>', '</nobr>');">
<img src="Images/Editor/NoBr.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.NoBr %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.WrapperBox %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('(((', ')))');">
<img src="Images/Editor/Box.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.WrapperBox %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Comment %>" class="toolbarbutton" onclick="javascript:return WrapSelectedMarkup('<!--', '-->');">
<img src="Images/Editor/Comment.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Comment %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Symbols %>" id="SymbolsMenuLinkMarkup" class="toolbarbutton" onclick="javascript:return ShowSymbolsMenuMarkup(event);">
<img src="Images/Editor/Symbol.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Symbols %>" /></a>
</div>
</div>
<anthem:TextBox ID="txtMarkup" runat="server" TextMode="MultiLine" Width="99%" Height="400px" AutoUpdateAfterCallBack="True" meta:resourcekey="txtMarkupResource3" UpdateAfterCallBack="True" />
</anthem:View>
<anthem:View ID="viwVisual" runat="server">
<div class="toolbar">
<div class="sizebuttons">
<anthem:ImageButton ID="btnBiggerMarkupVisual" runat="server" ImageUrl="~/Images/Editor/EditorBigger.png" ImageUrlDuringCallBack="~/Images/Editor/EditorBigger.png"
ToolTip="Increase editor size" CssClass="helperbutton" EnableViewState="False" meta:resourcekey="btnBiggerMarkupVisualResource3"
OnClientClick="javascript:return IncreaseHeight('iframe');" />
<anthem:ImageButton ID="btnSmallerMarkupVisual" runat="server" ImageUrl="~/Images/Editor/EditorSmaller.png" ImageUrlDuringCallBack="~/Images/Editor/EditorSmaller.png"
ToolTip="Decrease editor size" CssClass="helperbutton" EnableViewState="False" meta:resourcekey="btnSmallerMarkupVisualResource3"
OnClientClick="javascript:return DecreaseHeight('iframe');" />
</div>
<div id="VisualToolbarDiv">
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Bold %>" class="toolbarbutton" onclick="javascript:return execCmd('Bold',false,null);">
<img src="Images/Editor/Bold.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Bold %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Italic %>" class="toolbarbutton" onclick="javascript:return execCmd('Italic',false,null);">
<img src="Images/Editor/Italic.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Italic %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Underlined %>" class="toolbarbutton" onclick="javascript:return execCmd('Underline',false,null);">
<img src="Images/Editor/Underlined.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Underlined %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Striked %>" class="toolbarbutton" onclick="javascript:return execCmd('Strikethrough',false,null);">
<img src="Images/Editor/Striked.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Striked %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H1 %>" class="toolbarbutton" onclick="javascript:return wrapWithTagClass('h1','separator');">
<img src="Images/Editor/H1.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H1 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H2 %>" class="toolbarbutton" onclick="javascript:return wrapWithTagClass('h2','separator');">
<img src="Images/Editor/H2.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H2 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H3 %>" class="toolbarbutton" onclick="javascript:return wrapWithTagClass('h3','separator');">
<img src="Images/Editor/H3.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H3 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.H4 %>" class="toolbarbutton" onclick="javascript:return wrapWithTagClass('h4','separator');">
<img src="Images/Editor/H4.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.H4 %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Superscript %>" class="toolbarbutton" onclick="javascript:return execCmd('Superscript',false,null);">
<img src="Images/Editor/Superscript.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Superscript %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Subscript %>" class="toolbarbutton" onclick="javascript:return execCmd('Subscript',false,null);">
<img src="Images/Editor/Subscript.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Subscript %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.UnorderedList %>" class="toolbarbutton" onclick="javascript:return insertList('ul');">
<img src="Images/Editor/UL.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.UnorderedList %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.OrderedList %>" class="toolbarbutton" onclick="javascript:return insertList('ol');">
<img src="Images/Editor/OL.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.OrderedList %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.PageLink %>" class="toolbarbutton" onclick="javascript:return OpenPopup('PageLink','WYSIWYG');">
<img src="Images/Editor/PageLink.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.PageLink %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.FileLink %>" class="toolbarbutton" onclick="javascript:return OpenPopup('FileLink','WYSIWYG');">
<img src="Images/Editor/File.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.FileLink %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.ExternalLink %>" class="toolbarbutton" onclick="javascript:return OpenPopup('ExternalLink','WYSIWYG');">
<img src="Images/Editor/Link.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.ExternalLink %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Image %>" class="toolbarbutton" onclick="javascript:return OpenPopup('Image','WYSIWYG');">
<img src="Images/Editor/Image.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Image %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Anchor %>" class="toolbarbutton" onclick="javascript:return OpenPopup('Anchor$' + ExtractAnchorsWYSIWYG(),'WYSIWYG');">
<img src="Images/Editor/Anchor.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Anchor %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Snippets %>" id="SnippetsMenuLinkMarkup" class="toolbarbutton" onclick="javascript:return ShowSnippetsMenuMarkup(event);">
<img src="Images/Editor/Snippet.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Snippets %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.SpecialTags %>" id="SpecialTagsMenuLinkMarkup" class="toolbarbutton" onclick="javascript:return ShowSpecialTagsMenuMarkup(event);">
<img src="Images/Editor/SpecialTags.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.SpecialTags %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.HR %>" class="toolbarbutton" onclick="javascript:return insertBreak();">
<img src="Images/Editor/HR.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.HR %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.CodeInline %>" class="toolbarbutton" onclick="javascript:return wrapWithTag('code');">
<img src="Images/Editor/Code.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.CodeInline %>" /></a>
<!-- a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.CodeBlock %>" class="toolbarbutton" onclick="javascript:return wrapWithTag('pre');">
<img src="Images/Editor/PreEsc.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.CodeBlock %>" /></a -->
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.CodeEscaped %>" class="toolbarbutton" onclick="javascript:return wrapWithTag('pre');">
<img src="Images/Editor/Pre.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.CodeEscaped %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Escape %>" class="toolbarbutton" onclick="javascript:return wrapWithTag('esc');">
<img src="Images/Editor/Escape.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Escape %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.WrapperBox %>" class="toolbarbutton" onclick="javascript:return wrapWithTagClass('div', 'box');">
<img src="Images/Editor/Box.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.WrapperBox %>" /></a>
<a href="#" title="<%= ScrewTurn.Wiki.Properties.Messages.Symbols %>" id="SymbolsMenuLinkMarkup" class="toolbarbutton" onclick="javascript:return ShowSymbolsMenuMarkup(event);">
<img src="Images/Editor/Symbol.png" alt="<%= ScrewTurn.Wiki.Properties.Messages.Symbols %>" /></a>
<!-- a href="#" title="" id="A1" class="toolbarbutton" onclick="javascript:return alert(iframe.getSelection().anchorNode.parentNode.getAttribute('target'));">
P</a -->
</div>
</div>
<div id="WysiwygDiv">
<iframe id="iframe" name="iframe" onload="javascript:return iframe_onload();" src="IframeEditor.aspx" style="width: 100%; height: 400px;" frameborder="0"></iframe>
</div>
<div style="display: none;">
<anthem:TextBox ID="lblWYSIWYG" runat="server" TextMode="MultiLine" AutoUpdateAfterCallBack="True" meta:resourcekey="lblWYSIWYGResource1" />
</div>
</anthem:View>
<anthem:View ID="viwPreview" runat="server">
<div class="toolbar" style="padding-top: 8px; padding-bottom: 0px;">
<asp:Label ID="lblPreviewWarning" runat="server" CssClass="resulterror" EnableViewState="False"
Text="&lt;b&gt;Warning&lt;/b&gt;: this is only a preview. The content was not saved." meta:resourcekey="lblPreviewWarningResource3" />
</div>
<div id="PreviewDiv" style="border: solid 4px #999999; padding: 8px; height: 450px; overflow: auto;">
<asp:Literal ID="lblPreview" runat="server" EnableViewState="False" meta:resourcekey="lblPreviewResource3" />
</div>
</anthem:View>
</anthem:MultiView>
<div id="SnippetsMenuDiv" class="menucontainer" style="display: none;">
<asp:Label ID="lblSnippets" runat="server" EnableViewState="False" meta:resourcekey="lblSnippetsResource3" />
</div>
<div id="SpecialTagsMenuDiv" class="menucontainer" style="display: none;">
<a href="#" onclick="javascript:return InsertMarkup('{WIKITITLE}');" class="menulink">{WikiTitle}</a>
<a href="#" onclick="javascript:return InsertMarkup('{UP}');" class="menulink">{Up}</a>
<a href="#" onclick="javascript:return InsertMarkup('{TOP}');" class="menulink">{Top}</a>
<a href="#" onclick="javascript:return InsertMarkup('{TOC}');" class="menulink">{TOC}</a>
<a href="#" onclick="javascript:return InsertMarkup('{THEMEPATH}');" class="menulink">{ThemePath}</a>
<a href="#" onclick="javascript:return InsertMarkup('{RSSPAGE}');" class="menulink">{RSSPage}</a>
<a href="#" onclick="javascript:return InsertMarkup('{WIKIVERSION}');" class="menulink">{WikiVersion}</a>
<a href="#" onclick="javascript:return InsertMarkup('{MAINURL}');" class="menulink">{MainURL}</a>
<a href="#" onclick="javascript:return InsertMarkup('{PAGECOUNT}');" class="menulink">{PageCount}</a>
<a href="#" onclick="javascript:return InsertMarkup('{USERNAME}');" class="menulink">{Username}</a>
<a href="#" onclick="javascript:return InsertMarkup('{LOGINLOGOUT}');" class="menulink">{LoginLogout}</a>
<a href="#" onclick="javascript:return InsertMarkup('{CLEAR}');" class="menulink">{Clear}</a>
<a href="#" onclick="javascript:return InsertMarkup('{CLOUD}');" class="menulink">{Cloud}</a>
<a href="#" onclick="javascript:return InsertMarkup('{SEARCHBOX}');" class="menulink">{SearchBox}</a>
<a href="#" onclick="javascript:return InsertMarkup('{PAGENAME}');" class="menulink">{PageName}</a>
<a href="#" onclick="javascript:return InsertMarkup('{NAMESPACE}');" class="menulink">{Namespace}</a>
<a href="#" onclick="javascript:return InsertMarkup('{NAMESPACEDROPDOWN}');" class="menulink">{NamespaceDropDown}</a>
<a href="#" onclick="javascript:return InsertMarkup('{NAMESPACELIST}');" class="menulink">{NamespaceList}</a>
<a href="#" onclick="javascript:return InsertMarkup('{ORPHANS}');" class="menulink">{Orphans}</a>
<a href="#" onclick="javascript:return InsertMarkup('{WANTED}');" class="menulink">{Wanted}</a>
<a href="#" onclick="javascript:return InsertMarkup('{INCOMING}');" class="menulink">{Incoming}</a>
<a href="#" onclick="javascript:return InsertMarkup('{OUTGOING}');" class="menulink">{Outgoing}</a>
<a href="#" onclick="javascript:return InsertMarkup('{RECENTCHANGES}');" class="menulink">{RecentChanges}</a>
<a href="#" onclick="javascript:return InsertMarkup('{RECENTCHANGES(*)}');" class="menulink">{RecentChanges(*)}</a>
<asp:Literal ID="lblCustomSpecialTags" runat="server" EnableViewState="false" />
</div>
<div id="SymbolsMenuDiv" class="menucontainer" style="display: none;">
<a href="#" onclick="javascript:return InsertMarkup('&amp;#0123;');" class="menulinkcompact">{</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;#0125;');" class="menulinkcompact">}</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;#0091;');" class="menulinkcompact">[</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;#0093;');" class="menulinkcompact">]</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;lt;');" class="menulinkcompact">&lt;</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;gt;');" class="menulinkcompact">&gt;</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;laquo;');" class="menulinkcompact">&laquo;</a>
<a href="#" onclick="javascript:return InsertMarkup('&amp;raquo;');" class="menulinkcompact">&raquo;</a>
<br />
<!-- More here... -->
</div>
<script type="text/javascript">
<!--
function OpenPopup(feature, mode) {
var settings = "center=yes,resizable=yes,dialog,status=no,scrollbars=no,width=300,height=300";
var w;
//added for WYSIWYG
if(mode == 'WYSIWYG')
w = window.open(CurrentNamespace + "PopupWYSIWYG.aspx?Feature=" + feature + (CurrentPage != "" ? "&CurrentPage=" + CurrentPage : ""), "Popup", settings);
//end
else
w = window.open(CurrentNamespace + "Popup.aspx?Feature=" + feature + (CurrentPage != "" ? "&CurrentPage=" + CurrentPage : ""), "Popup", settings);
//modify link
if(feature == 'ExternalLink') {
if(document.all) {
var parentSelection = '';
if(iframe) parentSelection = iframe.document.selection.createRange().parentElement();
if(parentSelection.tagName == 'A') {
w.attachEvent('onfocus', function() {
if(parentSelection.getAttribute('target') == '_blank')
w.document.getElementById('chkLinkNW').checked = true;
w.document.getElementById('txtLinkUrl').value = parentSelection.getAttribute('href');
if(parentSelection.getAttribute('href') != parentSelection.innerHTML)
w.document.getElementById('txtLinkTitle').value = parentSelection.innerHTML;
});
}
}
else {
var parentSelection = '';
if(iframe) parentSelection = iframe.document.defaultView.getSelection().anchorNode.parentNode;
if(parentSelection.tagName == 'A') {
w.addEventListener('load', function() {
if(parentSelection.getAttribute('target') == '_blank')
w.document.getElementById('chkLinkNW').checked = true;
w.document.getElementById('txtLinkUrl').value = parentSelection.getAttribute('href');
if(parentSelection.getAttribute('href') != parentSelection.innerHTML)
w.document.getElementById('txtLinkTitle').value = parentSelection.innerHTML;
}, false);
}
}
}
if(feature == 'PageLink') {
if(document.all) {
var parentSelection = '';
if(iframe) iframe.document.selection.createRange().parentElement();
if(parentSelection.tagName == 'A') {
w.attachEvent('onfocus', function() {
if(parentSelection.getAttribute('target') == '_blank')
w.document.getElementById('chkPageNW').checked = true;
w.document.getElementById('txtPageName').value = parentSelection.getAttribute('href');
if(parentSelection.getAttribute('href') != parentSelection.innerHTML)
w.document.getElementById('txtPageTitle').value = parentSelection.innerHTML;
});
}
}
else {
var parentSelection = '';
if(iframe) iframe.document.defaultView.getSelection().anchorNode.parentNode;
if(parentSelection.tagName == 'A') {
w.addEventListener('load', function() {
if(parentSelection.getAttribute('target') == '_blank')
w.document.getElementById('chkPageNW').checked = true;
w.document.getElementById('txtPageName').value = parentSelection.getAttribute('href');
if(parentSelection.getAttribute('href') != parentSelection.innerHTML)
w.document.getElementById('txtPageTitle').value = parentSelection.innerHTML;
}, false);
}
}
}
w.focus();
return false;
}
function AbsolutePosition(obj) {
var pos = null;
if(obj != null) {
pos = new Object();
pos.top = obj.offsetTop;
pos.left = obj.offsetLeft;
pos.width = obj.offsetWidth;
pos.height= obj.offsetHeight;
obj = obj.offsetParent;
while(obj != null) {
pos.top += obj.offsetTop;
pos.left += obj.offsetLeft;
obj = obj.offsetParent;
}
}
return(pos);
}
function ExtractAnchors() {
var markup = new String(document.getElementById(MarkupControl).value);
markup = markup.toLowerCase();
var idx = 0;
var size = 0;
var result = "";
while(idx != -1) {
idx = markup.indexOf("[anchor|#", idx + size);
size = 9;
if(idx != -1) {
var nidx = markup.indexOf("]", idx);
var name = markup.substring(idx + size, nidx);
size = 9 + name.length;
//alert(name);
result += name + "|";
}
}
//alert(result);
return result;
}
function ExtractAnchorsWYSIWYG() {
var markup = new String(iframe.document.body.innerHTML);
//alert(markup);
markup = markup.toLowerCase();
var idx = 0;
var size = 0;
var result = "";
while(idx != -1) {
idx = markup.indexOf("<a id=", idx + size);
//alert(idx);
size = 7;
if(idx != -1) {
var nidx = markup.indexOf(">", idx);
//alert(nidx);
//if(markup.indexOf("<", nidx) == (nidx + 2) || markup.indexOf("<", nidx) == (nidx)) {
//var name = markup.substring(idx + size, nidx - 1);
var name = markup.substring(idx + size - 1, nidx);
if(name.indexOf('"') == 0) name = name.substring(1, name.length - 1);
size = 7 + name.length;
//alert(name);
result += name + "|";
//}
}
}
//alert(result);
return result;
}
// This fires a content copy every time the mouse is pressed
document.body.onmousedown = CopyWYSIWYGContentToHiddenControl;
function CopyWYSIWYGContentToHiddenControl() {
if(inWYSIWYG) {
//if(window.frames["iframe"] && window.frames["iframe"].document) {
try {
document.getElementById(VisualControl).value = iframe.document.body.innerHTML;
}
catch(exception) {
//alert(exception);
}
}
return true;
}
function ShowProgress() {
document.getElementById("ProgressSpan").style["display"] = "";
// added for WYSIWYG
CopyWYSIWYGContentToHiddenControl();
// end
}
function HideProgress() {
document.getElementById("ProgressSpan").style["display"] = "none";
InitES();
}
function ShowSnippetsMenuMarkup(event) {
var pos = AbsolutePosition(document.getElementById("SnippetsMenuLinkMarkup"));
var menu = document.getElementById("SnippetsMenuDiv");
Display(menu, pos.top + pos.height, pos.left);
return false;
}
function ShowSpecialTagsMenuMarkup(event) {
var pos = AbsolutePosition(document.getElementById("SpecialTagsMenuLinkMarkup"));
var menu = document.getElementById("SpecialTagsMenuDiv");
Display(menu, pos.top + pos.height, pos.left);
return false;
}
function ShowSymbolsMenuMarkup(event) {
var pos = AbsolutePosition(document.getElementById("SymbolsMenuLinkMarkup"));
var menu = document.getElementById("SymbolsMenuDiv");
Display(menu, pos.top + pos.height, pos.left);
return false;
}
function Display(obj, x, y) {
if(obj.style["display"] == "none") {
HideAllMenus();
obj.style["position"] = "absolute";
obj.style["top"] = x + "px";
obj.style["left"] = y + "px";
obj.style["display"] = "";
}
else HideAllMenus();
}
function Hide(obj) {
obj.style["display"] = "none";
}
function HideAllMenus() {
Hide(document.getElementById("SnippetsMenuDiv"));
Hide(document.getElementById("SpecialTagsMenuDiv"));
Hide(document.getElementById("SymbolsMenuDiv"));
return false;
}
// Hide all menus when textbox is clicked
if(document.getElementById(MarkupControl))
document.getElementById(MarkupControl).onclick = HideAllMenus;
function WrapSelectedMarkup(preTag, postTag) {
HideAllMenus();
var objTextArea = document.getElementById(MarkupControl);
if(objTextArea) {
if(document.selection && document.selection.createRange) {
objTextArea.focus();
var objSelectedTextRange = document.selection.createRange();
var strSelectedText = objSelectedTextRange.text;
if(strSelectedText.substring(0, preTag.length) == preTag && strSelectedText.substring(strSelectedText.length - postTag.length, strSelectedText.length) == postTag) {
objSelectedTextRange.text = strSelectedText.substring(preTag.length, strSelectedText.length - postTag.length);
}
else {
objSelectedTextRange.text = preTag + strSelectedText + postTag;
}
}
else {
objTextArea.focus();
var scrollPos = objTextArea.scrollTop;
var selStart = objTextArea.selectionStart;
var strFirst = objTextArea.value.substring(0, objTextArea.selectionStart);
var strSelected = objTextArea.value.substring(objTextArea.selectionStart, objTextArea.selectionEnd);
var strSecond = objTextArea.value.substring(objTextArea.selectionEnd);
if(strSelected.substring(0, preTag.length) == preTag && strSelected.substring(strSelected.length - postTag.length, strSelected.length) == postTag) {
// Remove tags
strSelected = strSelected.substring(preTag.length, strSelected.length - postTag.length);
objTextArea.value = strFirst + strSelected + strSecond;
objTextArea.selectionStart = selStart;
objTextArea.selectionEnd = selStart + strSelected.length;
}
else {
objTextArea.value = strFirst + preTag + strSelected + postTag + strSecond;
objTextArea.selectionStart = selStart;
objTextArea.selectionEnd = selStart + preTag.length + strSelected.length + postTag.length;
}
objTextArea.scrollTop = scrollPos;
}
}
return false;
}
function WrapSelectedMarkupWYSIWYG(preTag, postTag) {
insertHTML(preTag + getSelectedText() + postTag);
return false;
}
function InsertMarkup(tag) {
HideAllMenus();
if(document.getElementById(VisualControl)) {
return InsertMarkupWYSIWYG(tag);
}
var objTextArea = document.getElementById(MarkupControl);
if(objTextArea) {
if(document.selection && document.selection.createRange) {
objTextArea.focus();
var objSelectedTextRange = document.selection.createRange();
var strSelectedText = objSelectedTextRange.text;
objSelectedTextRange.text = tag + strSelectedText;
}
else {
objTextArea.focus();
var scrollPos = objTextArea.scrollTop;
var selStart = objTextArea.selectionStart;
var strFirst = objTextArea.value.substring(0, objTextArea.selectionStart);
var strSecond = objTextArea.value.substring(objTextArea.selectionStart);
objTextArea.value = strFirst + tag + strSecond;
objTextArea.selectionStart = selStart + tag.length;
objTextArea.selectionEnd = selStart + tag.length;
objTextArea.scrollTop = scrollPos;
}
}
return false;
}
function InsertMarkupWYSIWYG(tag) {
insertHTML(tag);
return false;
}
function HideToolbarButtons() {
// This could be done easily with jQuery...
var elem = document.getElementById("MarkupToolbarDiv");
if(elem) elem.style["display"] = "none";
elem = document.getElementById("VisualToolbarDiv");
if(elem) elem.style["display"] = "none";
}
InitES();
// -->
</script>
<asp:Literal ID="lblToolbarInit" runat="server" />