| |
| |
| |
| |
| |
| |
| var imageTag = false; |
| var theSelection = false; |
| |
| |
| |
| var clientPC = navigator.userAgent.toLowerCase(); |
| var clientVer = parseInt(navigator.appVersion); |
| |
| var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1)); |
| var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1)); |
| |
| var baseHeight; |
| window.onload = initInsertions; |
| |
| |
| |
| |
| function helpline(help) |
| { |
| document.forms[form_name].helpbox.value = help_line[help]; |
| } |
| |
| |
| |
| |
| |
| function initInsertions() |
| { |
| var doc; |
| |
| if (document.forms[form_name]) |
| { |
| doc = document; |
| } |
| else |
| { |
| doc = opener.document; |
| } |
| |
| var textarea = doc.forms[form_name].elements[text_name]; |
| if (is_ie && typeof(baseHeight) != 'number') |
| { |
| textarea.focus(); |
| baseHeight = doc.selection.createRange().duplicate().boundingHeight; |
| |
| if (!document.forms[form_name]) |
| { |
| document.body.focus(); |
| } |
| } |
| } |
| |
| |
| |
| |
| function bbstyle(bbnumber) |
| { |
| if (bbnumber != -1) |
| { |
| bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]); |
| } |
| else |
| { |
| insert_text('[*]'); |
| document.forms[form_name].elements[text_name].focus(); |
| } |
| } |
| |
| |
| |
| |
| function bbfontstyle(bbopen, bbclose) |
| { |
| theSelection = false; |
| |
| var textarea = document.forms[form_name].elements[text_name]; |
| |
| textarea.focus(); |
| |
| if ((clientVer >= 4) && is_ie && is_win) |
| { |
| |
| theSelection = document.selection.createRange().text; |
| |
| if (theSelection) |
| { |
| |
| document.selection.createRange().text = bbopen + theSelection + bbclose; |
| document.forms[form_name].elements[text_name].focus(); |
| theSelection = ''; |
| return; |
| } |
| } |
| else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) |
| { |
| mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose); |
| document.forms[form_name].elements[text_name].focus(); |
| theSelection = ''; |
| return; |
| } |
| |
| |
| var caret_pos = getCaretPosition(textarea).start; |
| var new_pos = caret_pos + bbopen.length; |
| |
| |
| insert_text(bbopen + bbclose); |
| |
| |
| |
| if (!isNaN(textarea.selectionStart)) |
| { |
| textarea.selectionStart = new_pos; |
| textarea.selectionEnd = new_pos; |
| } |
| |
| else if (document.selection) |
| { |
| var range = textarea.createTextRange(); |
| range.move("character", new_pos); |
| range.select(); |
| storeCaret(textarea); |
| } |
| |
| textarea.focus(); |
| return; |
| } |
| |
| |
| |
| |
| function insert_text(text, spaces, popup) |
| { |
| var textarea; |
| |
| if (!popup) |
| { |
| textarea = document.forms[form_name].elements[text_name]; |
| } |
| else |
| { |
| textarea = opener.document.forms[form_name].elements[text_name]; |
| } |
| if (spaces) |
| { |
| text = ' ' + text + ' '; |
| } |
| |
| if (!isNaN(textarea.selectionStart)) |
| { |
| var sel_start = textarea.selectionStart; |
| var sel_end = textarea.selectionEnd; |
| |
| mozWrap(textarea, text, '') |
| textarea.selectionStart = sel_start + text.length; |
| textarea.selectionEnd = sel_end + text.length; |
| } |
| |
| else if (textarea.createTextRange && textarea.caretPos) |
| { |
| if (baseHeight != textarea.caretPos.boundingHeight) |
| { |
| textarea.focus(); |
| storeCaret(textarea); |
| } |
| var caret_pos = textarea.caretPos; |
| caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; |
| |
| } |
| else |
| { |
| textarea.value = textarea.value + text; |
| } |
| if (!popup) |
| { |
| textarea.focus(); |
| } |
| |
| } |
| |
| |
| |
| |
| function attach_inline(index, filename) |
| { |
| insert_text('[attachment=' + index + ']' + filename + '[/attachment]'); |
| document.forms[form_name].elements[text_name].focus(); |
| } |
| |
| |
| |
| |
| function addquote(post_id, username) |
| { |
| var message_name = 'message_' + post_id; |
| var theSelection = ''; |
| var divarea = false; |
| |
| if (document.all) |
| { |
| divarea = document.all[message_name]; |
| } |
| else |
| { |
| divarea = document.getElementById(message_name); |
| } |
| |
| |
| if (window.getSelection) |
| { |
| theSelection = window.getSelection().toString(); |
| } |
| else if (document.getSelection) |
| { |
| theSelection = document.getSelection(); |
| } |
| else if (document.selection) |
| { |
| theSelection = document.selection.createRange().text; |
| } |
| |
| if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null) |
| { |
| if (divarea.innerHTML) |
| { |
| theSelection = divarea.innerHTML.replace(/<br>/ig, '\n'); |
| theSelection = theSelection.replace(/<br\/>/ig, '\n'); |
| theSelection = theSelection.replace(/<\;/ig, '<'); |
| theSelection = theSelection.replace(/>\;/ig, '>'); |
| theSelection = theSelection.replace(/&\;/ig, '&'); |
| } |
| else if (document.all) |
| { |
| theSelection = divarea.innerText; |
| } |
| else if (divarea.textContent) |
| { |
| theSelection = divarea.textContent; |
| } |
| else if (divarea.firstChild.nodeValue) |
| { |
| theSelection = divarea.firstChild.nodeValue; |
| } |
| } |
| |
| if (theSelection) |
| { |
| insert_text('[quote="' + username + '"]' + theSelection + '[/quote]'); |
| } |
| |
| return; |
| } |
| |
| |
| |
| |
| function mozWrap(txtarea, open, close) |
| { |
| var selLength = txtarea.textLength; |
| var selStart = txtarea.selectionStart; |
| var selEnd = txtarea.selectionEnd; |
| var scrollTop = txtarea.scrollTop; |
| |
| if (selEnd == 1 || selEnd == 2) |
| { |
| selEnd = selLength; |
| } |
| |
| var s1 = (txtarea.value).substring(0,selStart); |
| var s2 = (txtarea.value).substring(selStart, selEnd) |
| var s3 = (txtarea.value).substring(selEnd, selLength); |
| |
| txtarea.value = s1 + open + s2 + close + s3; |
| txtarea.selectionStart = selEnd + open.length + close.length; |
| txtarea.selectionEnd = txtarea.selectionStart; |
| txtarea.focus(); |
| txtarea.scrollTop = scrollTop; |
| |
| return; |
| } |
| |
| |
| |
| |
| |
| function storeCaret(textEl) |
| { |
| if (textEl.createTextRange) |
| { |
| textEl.caretPos = document.selection.createRange().duplicate(); |
| } |
| } |
| |
| |
| |
| |
| function colorPalette(dir, width, height) |
| { |
| var r = 0, g = 0, b = 0; |
| var numberList = new Array(6); |
| var color = ''; |
| |
| numberList[0] = '00'; |
| numberList[1] = '40'; |
| numberList[2] = '80'; |
| numberList[3] = 'BF'; |
| numberList[4] = 'FF'; |
| |
| document.writeln('<table cellspacing="1" cellpadding="0" border="0">'); |
| |
| for (r = 0; r < 5; r++) |
| { |
| if (dir == 'h') |
| { |
| document.writeln('<tr>'); |
| } |
| |
| for (g = 0; g < 5; g++) |
| { |
| if (dir == 'v') |
| { |
| document.writeln('<tr>'); |
| } |
| |
| for (b = 0; b < 5; b++) |
| { |
| color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]); |
| document.write('<td bgcolor="#' + color + '">'); |
| document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" onmouseover="helpline(\'s\');" onmouseout="helpline(\'tip\');"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>'); |
| document.writeln('</td>'); |
| } |
| |
| if (dir == 'v') |
| { |
| document.writeln('</tr>'); |
| } |
| } |
| |
| if (dir == 'h') |
| { |
| document.writeln('</tr>'); |
| } |
| } |
| document.writeln('</table>'); |
| } |
| |
| |
| |
| |
| |
| function caretPosition() |
| { |
| var start = null; |
| var end = null; |
| } |
| |
| |
| |
| |
| |
| function getCaretPosition(txtarea) |
| { |
| var caretPos = new caretPosition(); |
| |
| |
| if(txtarea.selectionStart || txtarea.selectionStart == 0) |
| { |
| caretPos.start = txtarea.selectionStart; |
| caretPos.end = txtarea.selectionEnd; |
| } |
| |
| else if(document.selection) |
| { |
| |
| var range = document.selection.createRange(); |
| |
| |
| var range_all = document.body.createTextRange(); |
| range_all.moveToElementText(txtarea); |
| |
| |
| var sel_start; |
| for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) |
| { |
| range_all.moveStart('character', 1); |
| } |
| |
| txtarea.sel_start = sel_start; |
| |
| |
| caretPos.start = txtarea.sel_start; |
| caretPos.end = txtarea.sel_start; |
| } |
| |
| return caretPos; |
| } |