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('
');
}
//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();
}