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('WARNING: All form data will be lost!!')){ 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(''); 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('Your browser settings do not permit the editor to invoke \'' + command + '\' operations. \nPlease use the keyboard shortcut \(Windows users: Ctrl + v, Mac users: 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('Your browser settings do not permit the editor to invoke \'' + command + '\' operations. \nPlease use the keyboard shortcut \(Windows users: Ctrl + ' + keyboard + ', Mac users: 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(); } //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';} if (document.getElementById('fontSelect').style.visibility=='visible'){document.getElementById('fontSelect').style.visibility='hidden';} if (document.getElementById('textSize').style.visibility=='visible'){document.getElementById('textSize').style.visibility='hidden';} } //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; }