var colour; var htmlOn; var textAreaName = 'message'; //initialise RTE editor function initialiseWebWizRTE(){ var textArea = document.getElementById(textAreaName); var editor = document.getElementById('WebWizRTE').contentWindow.document; function initIframe(){ editor.addEventListener('keypress', editorEvents, true); editor.addEventListener('mousedown', editorEvents, true); document.addEventListener('mousedown', hideIframes, true); editor.designMode = 'on'; } setTimeout(initIframe, 300); //resetting the form textArea.form.onreset = function(){ if (window.confirm('Внимание: Все данные из формы будут потеряны!!')){ editor.body.innerHTML = ''; return true; } return false; } } //Create RTE toolbar function WebWizRTEtoolbar(formName){ document.writeln(''); document.writeln(''); document.writeln(' '); document.writeln(' '); document.writeln(' '); document.writeln('
'); document.writeln(''); document.writeln(''); document.writeln(''); document.writeln(''); document.writeln(''); document.writeln('
'); } //Function to format text in the text box function FormatText(command, option){ document.getElementById('WebWizRTE').contentWindow.document.execCommand("useCSS", false, option); var editor = document.getElementById('WebWizRTE'); //Show iframes if ((command == 'forecolor') || (command == 'backcolor') || (command == 'hilitecolor') || (command == 'fontname') || (command == 'formatblock') || (command == 'fontsize')){ parent.command = command; buttonElement = document.getElementById(command); switch (command){ case 'fontname': iframeWin = 'fontSelect'; break; case 'formatblock': iframeWin = 'formatFont'; break; case 'fontsize': iframeWin = 'textSize'; break; default: iframeWin = 'colourPalette'; } editor.contentWindow.focus() document.getElementById(iframeWin).style.left = getOffsetLeft(buttonElement) + 'px'; document.getElementById(iframeWin).style.top = (getOffsetTop(buttonElement) + buttonElement.offsetHeight) + 'px'; if (document.getElementById(iframeWin).style.visibility=='visible'){ hideIframes(); }else{ hideIframes(); document.getElementById(iframeWin).style.visibility='visible'; } var selectedRange = editor.contentWindow.document.selection; if (selectedRange != null){ range = selectedRange.createRange(); } } //Paste for AppleWebKit (Safari & Chrome) else if ((navigator.userAgent.indexOf('AppleWebKit') > 0) & (command == 'paste')){ alert('Настройки Вашего браузера не позволяют вызывать редактор \'' + command + '\' операции. \nИспользуйте сочетание горячих клавиш \(Пользователи Windows: Ctrl + v, Пользователи Mac: Apple + v\)') } //Cut, copy, paste for Gecko else if ((command == 'cut') || (command == 'copy') || (command == 'paste')){ try{ editor.contentWindow.focus() editor.contentWindow.document.execCommand(command, false, option); }catch(exception){ switch(command){ case 'cut': keyboard = 'x'; break; case 'copy': keyboard = 'c'; break; case 'paste': keyboard = 'v'; break; } alert('Настройки Вашего браузера не позволяют вызывать редактор \'' + command + '\' операции. \nИспользуйте сочетание горячих клавиш \(Пользователи Windows: Ctrl + ' + keyboard + ', Пользователи Mac: Apple + ' + keyboard + '\)') } } else{ editor.contentWindow.focus(); editor.contentWindow.document.execCommand(command, false, option); } editor.contentWindow.focus() } //Function to initialise commands function initialiseCommand(selection){ var editor = document.getElementById('WebWizRTE') editor.contentWindow.document.execCommand(parent.command, false, selection); editor.contentWindow.focus(); hideIframes(); } //Function to switch to HTML view function HTMLview(){ var editor = document.getElementById('WebWizRTE'); //WYSIWYG view if (htmlOn == true){ var html = editor.contentWindow.document.body.ownerDocument.createRange(); html.selectNodeContents(editor.contentWindow.document.body); editor.contentWindow.document.body.innerHTML = html.toString(); document.getElementById('ToolBar1').style.visibility='visible'; document.getElementById('ToolBar2').style.visibility='visible'; htmlOn = false; //HTML view }else{ var html = document.createTextNode(editor.contentWindow.document.body.innerHTML); editor.contentWindow.document.body.innerHTML = ''; editor.contentWindow.document.body.appendChild(html); document.getElementById('ToolBar1').style.visibility='hidden'; document.getElementById('ToolBar2').style.visibility='hidden'; htmlOn = true; } editor.contentWindow.focus() } //Iframe top offset function getOffsetTop(elm){ var mOffsetTop = elm.offsetTop; var mOffsetParent = elm.offsetParent; while(mOffsetParent){ mOffsetTop += mOffsetParent.offsetTop; mOffsetParent = mOffsetParent.offsetParent; } return mOffsetTop; } //Iframe left offset function getOffsetLeft(elm){ var mOffsetLeft = elm.offsetLeft; var mOffsetParent = elm.offsetParent; while(mOffsetParent){ mOffsetLeft += mOffsetParent.offsetLeft; mOffsetParent = mOffsetParent.offsetParent; } return mOffsetLeft; } //Function to hide iframes function hideIframes(){ if (document.getElementById('colourPalette').style.visibility=='visible'){document.getElementById('colourPalette').style.visibility='hidden';} } //Function to perform spell check function checkspell(){ if (confirm('Для использования этой функции необходим установленный компонент проверки орфографии \'SpellBound 0.7.0+\'. \nНажмите OK для перехода на страницу загрузки \'SpellBound\'.')){ window.open('http://spellbound.sourceforge.net/install','DownLoad', ''); } } //Run Editor Events function editorEvents(evt){ var keyCode = evt.keyCode ? evt.keyCode : evt.charCode; var keyCodeChar = String.fromCharCode(keyCode).toLowerCase(); //Keyboard shortcuts if (evt.type=='keypress' && evt.ctrlKey){ var kbShortcut; switch (keyCodeChar){ case 'b': kbShortcut = 'bold'; break; case 'i': kbShortcut = 'italic'; break; case 'u': kbShortcut = 'underline'; break; case 's': kbShortcut = 'strikethrough'; break; case 'i': kbShortcut = 'italic'; break; } if (kbShortcut){ FormatText(kbShortcut, ''); evt.preventDefault(); evt.stopPropagation(); } } hideIframes(); return true; } //Function to add emoticon function AddEmoticon(iconItem){ editor = document.getElementById('WebWizRTE'); img = editor.contentWindow.document.createElement('img'); img.setAttribute('src', iconItem.id); img.setAttribute('border', '0'); img.setAttribute('alt', iconItem.title); img.setAttribute('align', 'absmiddle'); try{ insertElementPosition(editor.contentWindow, img); }catch(exception){ alert('ОШИБКА при вставке объекта в текущем местоположении.'); editor.contentWindow.focus(); } editor.contentWindow.focus(); }