\r
function AddBold()\r
{\r
- InsertAtCaret(document.chat_form.message,"[b][/b]");\r
+ var text = GetSelection(document.chat_form.message);\r
+ ReplaceSelection(document.chat_form.message,sprintf("[b]%s[/b]",text));\r
}\r
\r
function AddItalic()\r
{\r
- InsertAtCaret(document.chat_form.message,"[i][/i]");\r
+ var text = GetSelection(document.chat_form.message);\r
+ ReplaceSelection(document.chat_form.message,sprintf("[i]%s[/i]",text));\r
}\r
\r
function AddStrike()\r
{\r
- InsertAtCaret(document.chat_form.message,"[s][/s]");\r
+ var text = GetSelection(document.chat_form.message);\r
+ ReplaceSelection(document.chat_form.message,sprintf("[s]%s[/s]",text));\r
}\r
\r
function AddFontSize(size)\r
{\r
- InsertAtCaret(document.chat_form.message,sprintf("[size=%f][/size]",size));\r
+ var text = GetSelection(document.chat_form.message);\r
+ ReplaceSelection(document.chat_form.message,sprintf("[size=%f]%s[/size]",size,text));\r
}\r
\r
-function InsertAtCaret(element, text) {\r
+function GetSelection(element)\r
+{\r
if (document.selection) {\r
element.focus();\r
var sel = document.selection.createRange();\r
- sel.text = text;\r
- element.focus();\r
+ return sel.text;\r
} else if (element.selectionStart || element.selectionStart === 0) {\r
var startPos = element.selectionStart;\r
var endPos = element.selectionEnd;\r
var scrollTop = element.scrollTop;\r
- element.value = element.value.substring(0, startPos) + text + element.value.substring(endPos, element.value.length);\r
- element.focus();\r
- element.selectionStart = startPos + text.length;\r
- element.selectionEnd = startPos + text.length;\r
- element.scrollTop = scrollTop;\r
- } else {\r
- element.value += text;\r
+ return element.value.substring(startPos,endPos);\r
+ }else{\r
+ return "";\r
+ }\r
+}\r
+\r
+function ReplaceSelection(element,text)\r
+{\r
+ if (document.selection) {\r
element.focus();\r
+ var sel = document.selection.createRange();\r
+ sel.text = text;\r
+ } else if (element.selectionStart || element.selectionStart === 0) {\r
+ var startPos = element.selectionStart;\r
+ var endPos = element.selectionEnd;\r
+ element.value = element.value.substring(0, startPos) + text + element.value.substring(endPos, element.value.length);\r
+ } else{\r
+ element.value = text;\r
}\r
}\r
\r