Moved duplicate javascript to acp_portal.js
This commit is contained in:
434
root/adm/style/portal/acp_portal.js
Normal file
434
root/adm/style/portal/acp_portal.js
Normal file
@@ -0,0 +1,434 @@
|
|||||||
|
/**
|
||||||
|
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||||
|
* Includes unixsafe colour palette selector by SHS`
|
||||||
|
* stripped parts that are useless for the portal
|
||||||
|
*/
|
||||||
|
|
||||||
|
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
|
||||||
|
var show_panel = 'options-panel';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows the help messages in the helpline window
|
||||||
|
*/
|
||||||
|
function helpline(help)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fix a bug involving the TextRange object. From
|
||||||
|
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
||||||
|
*/
|
||||||
|
function initInsertions()
|
||||||
|
{
|
||||||
|
var doc;
|
||||||
|
|
||||||
|
if (document.forms[form_name])
|
||||||
|
{
|
||||||
|
doc = document;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
doc = opener.document;
|
||||||
|
}
|
||||||
|
|
||||||
|
var textarea = doc.getElementById(text_name);
|
||||||
|
|
||||||
|
if (is_ie && typeof(baseHeight) != 'number')
|
||||||
|
{
|
||||||
|
textarea.focus();
|
||||||
|
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* bbstyle
|
||||||
|
*/
|
||||||
|
function bbstyle(bbnumber)
|
||||||
|
{
|
||||||
|
if (bbnumber != -1)
|
||||||
|
{
|
||||||
|
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
insert_text('[*]');
|
||||||
|
document.getElementById(text_name).focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply bbcodes
|
||||||
|
*/
|
||||||
|
function bbfontstyle(bbopen, bbclose)
|
||||||
|
{
|
||||||
|
theSelection = false;
|
||||||
|
|
||||||
|
var textarea = document.getElementById(text_name);
|
||||||
|
|
||||||
|
textarea.focus();
|
||||||
|
|
||||||
|
if ((clientVer >= 4) && is_ie && is_win)
|
||||||
|
{
|
||||||
|
// Get text selection
|
||||||
|
theSelection = document.selection.createRange().text;
|
||||||
|
|
||||||
|
if (theSelection)
|
||||||
|
{
|
||||||
|
// Add tags around selection
|
||||||
|
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
||||||
|
document.getElementById(text_name).focus();
|
||||||
|
theSelection = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
|
||||||
|
{
|
||||||
|
mozWrap(document.getElementById(text_name), bbopen, bbclose);
|
||||||
|
document.getElementById(text_name).focus();
|
||||||
|
theSelection = '';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//The new position for the cursor after adding the bbcode
|
||||||
|
var caret_pos = getCaretPosition(textarea).start;
|
||||||
|
var new_pos = caret_pos + bbopen.length;
|
||||||
|
|
||||||
|
// Open tag
|
||||||
|
insert_text(bbopen + bbclose);
|
||||||
|
|
||||||
|
// Center the cursor when we don't have a selection
|
||||||
|
// Gecko and proper browsers
|
||||||
|
if (!isNaN(textarea.selectionStart))
|
||||||
|
{
|
||||||
|
textarea.selectionStart = new_pos;
|
||||||
|
textarea.selectionEnd = new_pos;
|
||||||
|
}
|
||||||
|
// IE
|
||||||
|
else if (document.selection)
|
||||||
|
{
|
||||||
|
var range = textarea.createTextRange();
|
||||||
|
range.move("character", new_pos);
|
||||||
|
range.select();
|
||||||
|
storeCaret(textarea);
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Insert text at position
|
||||||
|
*/
|
||||||
|
function insert_text(text, spaces, popup)
|
||||||
|
{
|
||||||
|
var textarea;
|
||||||
|
|
||||||
|
if (!popup)
|
||||||
|
{
|
||||||
|
textarea = document.getElementById(text_name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
textarea = opener.document.getElementById(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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add inline attachment at position
|
||||||
|
*/
|
||||||
|
function attach_inline(index, filename)
|
||||||
|
{
|
||||||
|
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
||||||
|
document.getElementById(text_name).focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add quote text to message
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get text selection - not only the post content :(
|
||||||
|
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, '&');
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
if (bbcodeEnabled)
|
||||||
|
{
|
||||||
|
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var lines = split_lines(theSelection);
|
||||||
|
for (i = 0; i < lines.length; i++)
|
||||||
|
{
|
||||||
|
insert_text('> ' + lines[i] + '\n')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
function split_lines(text)
|
||||||
|
{
|
||||||
|
var lines = text.split('\n');
|
||||||
|
var splitLines = new Array();
|
||||||
|
var j = 0;
|
||||||
|
for(i = 0; i < lines.length; i++)
|
||||||
|
{
|
||||||
|
if (lines[i].length <= 80)
|
||||||
|
{
|
||||||
|
splitLines[j] = lines[i];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
do
|
||||||
|
{
|
||||||
|
var splitAt = line.indexOf(' ', 80);
|
||||||
|
|
||||||
|
if (splitAt == -1)
|
||||||
|
{
|
||||||
|
splitLines[j] = line;
|
||||||
|
j++
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
splitLines[j] = line.substring(0, splitAt);
|
||||||
|
line = line.substring(splitAt);
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(splitAt != -1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return splitLines;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* From http://www.massless.org/mozedit/
|
||||||
|
*/
|
||||||
|
function mozWrap(txtarea, open, close)
|
||||||
|
{
|
||||||
|
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : 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 = selStart + open.length;
|
||||||
|
txtarea.selectionEnd = selEnd + open.length;
|
||||||
|
txtarea.focus();
|
||||||
|
txtarea.scrollTop = scrollTop;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Insert at Caret position. Code from
|
||||||
|
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
||||||
|
*/
|
||||||
|
function storeCaret(textEl)
|
||||||
|
{
|
||||||
|
if (textEl.createTextRange)
|
||||||
|
{
|
||||||
|
textEl.caretPos = document.selection.createRange().duplicate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Color pallette
|
||||||
|
*/
|
||||||
|
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 + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
||||||
|
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
|
||||||
|
document.writeln('</td>');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dir == 'v')
|
||||||
|
{
|
||||||
|
document.writeln('</tr>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dir == 'h')
|
||||||
|
{
|
||||||
|
document.writeln('</tr>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.writeln('</table>');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Caret Position object
|
||||||
|
*/
|
||||||
|
function caretPosition()
|
||||||
|
{
|
||||||
|
var start = null;
|
||||||
|
var end = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the caret position in an textarea
|
||||||
|
*/
|
||||||
|
function getCaretPosition(txtarea)
|
||||||
|
{
|
||||||
|
var caretPos = new caretPosition();
|
||||||
|
|
||||||
|
// simple Gecko/Opera way
|
||||||
|
if(txtarea.selectionStart || txtarea.selectionStart == 0)
|
||||||
|
{
|
||||||
|
caretPos.start = txtarea.selectionStart;
|
||||||
|
caretPos.end = txtarea.selectionEnd;
|
||||||
|
}
|
||||||
|
// dirty and slow IE way
|
||||||
|
else if(document.selection)
|
||||||
|
{
|
||||||
|
|
||||||
|
// get current selection
|
||||||
|
var range = document.selection.createRange();
|
||||||
|
|
||||||
|
// a new selection of the whole textarea
|
||||||
|
var range_all = document.body.createTextRange();
|
||||||
|
range_all.moveToElementText(txtarea);
|
||||||
|
|
||||||
|
// calculate selection start point by moving beginning of range_all to beginning of range
|
||||||
|
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;
|
||||||
|
|
||||||
|
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
||||||
|
caretPos.start = txtarea.sel_start;
|
||||||
|
caretPos.end = txtarea.sel_start;
|
||||||
|
}
|
||||||
|
|
||||||
|
return caretPos;
|
||||||
|
}
|
||||||
@@ -1,5 +1,61 @@
|
|||||||
<!-- INCLUDE overall_header.html -->
|
<!-- INCLUDE overall_header.html -->
|
||||||
|
|
||||||
|
<script type="text/javascript" src="{ROOT_PATH}style/portal/acp_portal.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
/**
|
||||||
|
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||||
|
* Includes unixsafe colour palette selector by SHS`
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Startup variables
|
||||||
|
var imageTag = false;
|
||||||
|
var theSelection = false;
|
||||||
|
|
||||||
|
var bbcodeEnabled = true;
|
||||||
|
// Check for Browser & Platform for PC & IE specific bits
|
||||||
|
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||||
|
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
||||||
|
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
||||||
|
|
||||||
|
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
||||||
|
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||||
|
var baseHeight;
|
||||||
|
|
||||||
|
var form_name = 'acp_portal_welcome';
|
||||||
|
var text_name = 'custom_code';
|
||||||
|
var load_draft = false;
|
||||||
|
var upload = false;
|
||||||
|
|
||||||
|
// Define the bbCode tags
|
||||||
|
var bbcode = new Array();
|
||||||
|
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||||
|
var imageTag = false;
|
||||||
|
|
||||||
|
// Helpline messages
|
||||||
|
var help_line = {
|
||||||
|
b: '{LA_BBCODE_B_HELP}',
|
||||||
|
i: '{LA_BBCODE_I_HELP}',
|
||||||
|
u: '{LA_BBCODE_U_HELP}',
|
||||||
|
q: '{LA_BBCODE_Q_HELP}',
|
||||||
|
c: '{LA_BBCODE_C_HELP}',
|
||||||
|
l: '{LA_BBCODE_L_HELP}',
|
||||||
|
o: '{LA_BBCODE_O_HELP}',
|
||||||
|
p: '{LA_BBCODE_P_HELP}',
|
||||||
|
w: '{LA_BBCODE_W_HELP}',
|
||||||
|
a: '{LA_BBCODE_A_HELP}',
|
||||||
|
s: '{LA_BBCODE_S_HELP}',
|
||||||
|
f: '{LA_BBCODE_F_HELP}',
|
||||||
|
e: '{LA_BBCODE_E_HELP}',
|
||||||
|
d: '{LA_BBCODE_D_HELP}'
|
||||||
|
<!-- BEGIN custom_tags -->
|
||||||
|
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||||
|
<!-- END custom_tags -->
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<a name="maincontent"></a>
|
<a name="maincontent"></a>
|
||||||
|
|
||||||
<h1>{L_TITLE}</h1>
|
<h1>{L_TITLE}</h1>
|
||||||
@@ -76,488 +132,6 @@
|
|||||||
<legend>{L_PORTAL_CUSTOM}</legend>
|
<legend>{L_PORTAL_CUSTOM}</legend>
|
||||||
<dl id="bbcode-buttons"<!-- IF not CUSTOM_USE_BBCODE --> style="display: none;"<!-- ENDIF -->>
|
<dl id="bbcode-buttons"<!-- IF not CUSTOM_USE_BBCODE --> style="display: none;"<!-- ENDIF -->>
|
||||||
<dd>
|
<dd>
|
||||||
<script type="text/javascript">
|
|
||||||
// <![CDATA[
|
|
||||||
/**
|
|
||||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
|
||||||
* Includes unixsafe colour palette selector by SHS`
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Startup variables
|
|
||||||
var imageTag = false;
|
|
||||||
var theSelection = false;
|
|
||||||
|
|
||||||
var bbcodeEnabled = true;
|
|
||||||
// Check for Browser & Platform for PC & IE specific bits
|
|
||||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
|
||||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
|
||||||
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
|
||||||
|
|
||||||
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
|
||||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
|
||||||
var baseHeight;
|
|
||||||
|
|
||||||
var form_name = 'acp_portal_welcome';
|
|
||||||
var text_name = 'custom_code';
|
|
||||||
var load_draft = false;
|
|
||||||
var upload = false;
|
|
||||||
|
|
||||||
// Define the bbCode tags
|
|
||||||
var bbcode = new Array();
|
|
||||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
|
||||||
var imageTag = false;
|
|
||||||
|
|
||||||
// Helpline messages
|
|
||||||
var help_line = {
|
|
||||||
b: '{LA_BBCODE_B_HELP}',
|
|
||||||
i: '{LA_BBCODE_I_HELP}',
|
|
||||||
u: '{LA_BBCODE_U_HELP}',
|
|
||||||
q: '{LA_BBCODE_Q_HELP}',
|
|
||||||
c: '{LA_BBCODE_C_HELP}',
|
|
||||||
l: '{LA_BBCODE_L_HELP}',
|
|
||||||
o: '{LA_BBCODE_O_HELP}',
|
|
||||||
p: '{LA_BBCODE_P_HELP}',
|
|
||||||
w: '{LA_BBCODE_W_HELP}',
|
|
||||||
a: '{LA_BBCODE_A_HELP}',
|
|
||||||
s: '{LA_BBCODE_S_HELP}',
|
|
||||||
f: '{LA_BBCODE_F_HELP}',
|
|
||||||
e: '{LA_BBCODE_E_HELP}',
|
|
||||||
d: '{LA_BBCODE_D_HELP}'
|
|
||||||
<!-- BEGIN custom_tags -->
|
|
||||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
|
||||||
<!-- END custom_tags -->
|
|
||||||
}
|
|
||||||
|
|
||||||
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
|
|
||||||
var show_panel = 'options-panel';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows the help messages in the helpline window
|
|
||||||
*/
|
|
||||||
function helpline(help)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fix a bug involving the TextRange object. From
|
|
||||||
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
|
||||||
*/
|
|
||||||
function initInsertions()
|
|
||||||
{
|
|
||||||
var doc;
|
|
||||||
|
|
||||||
if (document.forms[form_name])
|
|
||||||
{
|
|
||||||
doc = document;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
doc = opener.document;
|
|
||||||
}
|
|
||||||
|
|
||||||
var textarea = doc.getElementById(text_name);
|
|
||||||
|
|
||||||
if (is_ie && typeof(baseHeight) != 'number')
|
|
||||||
{
|
|
||||||
textarea.focus();
|
|
||||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* bbstyle
|
|
||||||
*/
|
|
||||||
function bbstyle(bbnumber)
|
|
||||||
{
|
|
||||||
if (bbnumber != -1)
|
|
||||||
{
|
|
||||||
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
insert_text('[*]');
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply bbcodes
|
|
||||||
*/
|
|
||||||
function bbfontstyle(bbopen, bbclose)
|
|
||||||
{
|
|
||||||
theSelection = false;
|
|
||||||
|
|
||||||
var textarea = document.getElementById(text_name);
|
|
||||||
|
|
||||||
textarea.focus();
|
|
||||||
|
|
||||||
if ((clientVer >= 4) && is_ie && is_win)
|
|
||||||
{
|
|
||||||
// Get text selection
|
|
||||||
theSelection = document.selection.createRange().text;
|
|
||||||
|
|
||||||
if (theSelection)
|
|
||||||
{
|
|
||||||
// Add tags around selection
|
|
||||||
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
theSelection = '';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
|
|
||||||
{
|
|
||||||
mozWrap(document.getElementById(text_name), bbopen, bbclose);
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
theSelection = '';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//The new position for the cursor after adding the bbcode
|
|
||||||
var caret_pos = getCaretPosition(textarea).start;
|
|
||||||
var new_pos = caret_pos + bbopen.length;
|
|
||||||
|
|
||||||
// Open tag
|
|
||||||
insert_text(bbopen + bbclose);
|
|
||||||
|
|
||||||
// Center the cursor when we don't have a selection
|
|
||||||
// Gecko and proper browsers
|
|
||||||
if (!isNaN(textarea.selectionStart))
|
|
||||||
{
|
|
||||||
textarea.selectionStart = new_pos;
|
|
||||||
textarea.selectionEnd = new_pos;
|
|
||||||
}
|
|
||||||
// IE
|
|
||||||
else if (document.selection)
|
|
||||||
{
|
|
||||||
var range = textarea.createTextRange();
|
|
||||||
range.move("character", new_pos);
|
|
||||||
range.select();
|
|
||||||
storeCaret(textarea);
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea.focus();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert text at position
|
|
||||||
*/
|
|
||||||
function insert_text(text, spaces, popup)
|
|
||||||
{
|
|
||||||
var textarea;
|
|
||||||
|
|
||||||
if (!popup)
|
|
||||||
{
|
|
||||||
textarea = document.getElementById(text_name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
textarea = opener.document.getElementById(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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add inline attachment at position
|
|
||||||
*/
|
|
||||||
function attach_inline(index, filename)
|
|
||||||
{
|
|
||||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add quote text to message
|
|
||||||
*/
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get text selection - not only the post content :(
|
|
||||||
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, '&');
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
if (bbcodeEnabled)
|
|
||||||
{
|
|
||||||
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var lines = split_lines(theSelection);
|
|
||||||
for (i = 0; i < lines.length; i++)
|
|
||||||
{
|
|
||||||
insert_text('> ' + lines[i] + '\n')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
function split_lines(text)
|
|
||||||
{
|
|
||||||
var lines = text.split('\n');
|
|
||||||
var splitLines = new Array();
|
|
||||||
var j = 0;
|
|
||||||
for(i = 0; i < lines.length; i++)
|
|
||||||
{
|
|
||||||
if (lines[i].length <= 80)
|
|
||||||
{
|
|
||||||
splitLines[j] = lines[i];
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var line = lines[i];
|
|
||||||
do
|
|
||||||
{
|
|
||||||
var splitAt = line.indexOf(' ', 80);
|
|
||||||
|
|
||||||
if (splitAt == -1)
|
|
||||||
{
|
|
||||||
splitLines[j] = line;
|
|
||||||
j++
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
splitLines[j] = line.substring(0, splitAt);
|
|
||||||
line = line.substring(splitAt);
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while(splitAt != -1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return splitLines;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* From http://www.massless.org/mozedit/
|
|
||||||
*/
|
|
||||||
function mozWrap(txtarea, open, close)
|
|
||||||
{
|
|
||||||
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : 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 = selStart + open.length;
|
|
||||||
txtarea.selectionEnd = selEnd + open.length;
|
|
||||||
txtarea.focus();
|
|
||||||
txtarea.scrollTop = scrollTop;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert at Caret position. Code from
|
|
||||||
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
|
||||||
*/
|
|
||||||
function storeCaret(textEl)
|
|
||||||
{
|
|
||||||
if (textEl.createTextRange)
|
|
||||||
{
|
|
||||||
textEl.caretPos = document.selection.createRange().duplicate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Color pallette
|
|
||||||
*/
|
|
||||||
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 + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
|
||||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
|
|
||||||
document.writeln('</td>');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir == 'v')
|
|
||||||
{
|
|
||||||
document.writeln('</tr>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir == 'h')
|
|
||||||
{
|
|
||||||
document.writeln('</tr>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.writeln('</table>');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Caret Position object
|
|
||||||
*/
|
|
||||||
function caretPosition()
|
|
||||||
{
|
|
||||||
var start = null;
|
|
||||||
var end = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the caret position in an textarea
|
|
||||||
*/
|
|
||||||
function getCaretPosition(txtarea)
|
|
||||||
{
|
|
||||||
var caretPos = new caretPosition();
|
|
||||||
|
|
||||||
// simple Gecko/Opera way
|
|
||||||
if(txtarea.selectionStart || txtarea.selectionStart == 0)
|
|
||||||
{
|
|
||||||
caretPos.start = txtarea.selectionStart;
|
|
||||||
caretPos.end = txtarea.selectionEnd;
|
|
||||||
}
|
|
||||||
// dirty and slow IE way
|
|
||||||
else if(document.selection)
|
|
||||||
{
|
|
||||||
|
|
||||||
// get current selection
|
|
||||||
var range = document.selection.createRange();
|
|
||||||
|
|
||||||
// a new selection of the whole textarea
|
|
||||||
var range_all = document.body.createTextRange();
|
|
||||||
range_all.moveToElementText(txtarea);
|
|
||||||
|
|
||||||
// calculate selection start point by moving beginning of range_all to beginning of range
|
|
||||||
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;
|
|
||||||
|
|
||||||
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
|
||||||
caretPos.start = txtarea.sel_start;
|
|
||||||
caretPos.end = txtarea.sel_start;
|
|
||||||
}
|
|
||||||
|
|
||||||
return caretPos;
|
|
||||||
}
|
|
||||||
// ]]>
|
|
||||||
</script>
|
|
||||||
<div id="colour_palette" style="display: none;">
|
<div id="colour_palette" style="display: none;">
|
||||||
<dl style="clear: left;">
|
<dl style="clear: left;">
|
||||||
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
|
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
|
||||||
|
|||||||
@@ -1,5 +1,61 @@
|
|||||||
<!-- INCLUDE overall_header.html -->
|
<!-- INCLUDE overall_header.html -->
|
||||||
|
|
||||||
|
<script type="text/javascript" src="{ROOT_PATH}style/portal/acp_portal.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
/**
|
||||||
|
* bbCode control by subBlue design [ www.subBlue.com ]
|
||||||
|
* Includes unixsafe colour palette selector by SHS`
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Startup variables
|
||||||
|
var imageTag = false;
|
||||||
|
var theSelection = false;
|
||||||
|
|
||||||
|
var bbcodeEnabled = true;
|
||||||
|
// Check for Browser & Platform for PC & IE specific bits
|
||||||
|
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||||
|
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
||||||
|
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
||||||
|
|
||||||
|
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
||||||
|
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
||||||
|
var baseHeight;
|
||||||
|
|
||||||
|
var form_name = 'acp_portal_welcome';
|
||||||
|
var text_name = 'welcome_message';
|
||||||
|
var load_draft = false;
|
||||||
|
var upload = false;
|
||||||
|
|
||||||
|
// Define the bbCode tags
|
||||||
|
var bbcode = new Array();
|
||||||
|
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
||||||
|
var imageTag = false;
|
||||||
|
|
||||||
|
// Helpline messages
|
||||||
|
var help_line = {
|
||||||
|
b: '{LA_BBCODE_B_HELP}',
|
||||||
|
i: '{LA_BBCODE_I_HELP}',
|
||||||
|
u: '{LA_BBCODE_U_HELP}',
|
||||||
|
q: '{LA_BBCODE_Q_HELP}',
|
||||||
|
c: '{LA_BBCODE_C_HELP}',
|
||||||
|
l: '{LA_BBCODE_L_HELP}',
|
||||||
|
o: '{LA_BBCODE_O_HELP}',
|
||||||
|
p: '{LA_BBCODE_P_HELP}',
|
||||||
|
w: '{LA_BBCODE_W_HELP}',
|
||||||
|
a: '{LA_BBCODE_A_HELP}',
|
||||||
|
s: '{LA_BBCODE_S_HELP}',
|
||||||
|
f: '{LA_BBCODE_F_HELP}',
|
||||||
|
e: '{LA_BBCODE_E_HELP}',
|
||||||
|
d: '{LA_BBCODE_D_HELP}'
|
||||||
|
<!-- BEGIN custom_tags -->
|
||||||
|
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
||||||
|
<!-- END custom_tags -->
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<a name="maincontent"></a>
|
<a name="maincontent"></a>
|
||||||
|
|
||||||
<h1>{L_TITLE}</h1>
|
<h1>{L_TITLE}</h1>
|
||||||
@@ -76,488 +132,6 @@
|
|||||||
<legend>{L_PORTAL_WELCOME}</legend>
|
<legend>{L_PORTAL_WELCOME}</legend>
|
||||||
<dl>
|
<dl>
|
||||||
<dd>
|
<dd>
|
||||||
<script type="text/javascript">
|
|
||||||
// <![CDATA[
|
|
||||||
/**
|
|
||||||
* bbCode control by subBlue design [ www.subBlue.com ]
|
|
||||||
* Includes unixsafe colour palette selector by SHS`
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Startup variables
|
|
||||||
var imageTag = false;
|
|
||||||
var theSelection = false;
|
|
||||||
|
|
||||||
var bbcodeEnabled = true;
|
|
||||||
// Check for Browser & Platform for PC & IE specific bits
|
|
||||||
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
|
||||||
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
|
|
||||||
var clientVer = parseInt(navigator.appVersion); // Get browser version
|
|
||||||
|
|
||||||
var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
|
|
||||||
var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
|
|
||||||
var baseHeight;
|
|
||||||
|
|
||||||
var form_name = 'acp_portal_welcome';
|
|
||||||
var text_name = 'welcome_message';
|
|
||||||
var load_draft = false;
|
|
||||||
var upload = false;
|
|
||||||
|
|
||||||
// Define the bbCode tags
|
|
||||||
var bbcode = new Array();
|
|
||||||
var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
|
|
||||||
var imageTag = false;
|
|
||||||
|
|
||||||
// Helpline messages
|
|
||||||
var help_line = {
|
|
||||||
b: '{LA_BBCODE_B_HELP}',
|
|
||||||
i: '{LA_BBCODE_I_HELP}',
|
|
||||||
u: '{LA_BBCODE_U_HELP}',
|
|
||||||
q: '{LA_BBCODE_Q_HELP}',
|
|
||||||
c: '{LA_BBCODE_C_HELP}',
|
|
||||||
l: '{LA_BBCODE_L_HELP}',
|
|
||||||
o: '{LA_BBCODE_O_HELP}',
|
|
||||||
p: '{LA_BBCODE_P_HELP}',
|
|
||||||
w: '{LA_BBCODE_W_HELP}',
|
|
||||||
a: '{LA_BBCODE_A_HELP}',
|
|
||||||
s: '{LA_BBCODE_S_HELP}',
|
|
||||||
f: '{LA_BBCODE_F_HELP}',
|
|
||||||
e: '{LA_BBCODE_E_HELP}',
|
|
||||||
d: '{LA_BBCODE_D_HELP}'
|
|
||||||
<!-- BEGIN custom_tags -->
|
|
||||||
,cb_{custom_tags.BBCODE_ID}: '{custom_tags.A_BBCODE_HELPLINE}'
|
|
||||||
<!-- END custom_tags -->
|
|
||||||
}
|
|
||||||
|
|
||||||
var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
|
|
||||||
var show_panel = 'options-panel';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shows the help messages in the helpline window
|
|
||||||
*/
|
|
||||||
function helpline(help)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fix a bug involving the TextRange object. From
|
|
||||||
* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
|
|
||||||
*/
|
|
||||||
function initInsertions()
|
|
||||||
{
|
|
||||||
var doc;
|
|
||||||
|
|
||||||
if (document.forms[form_name])
|
|
||||||
{
|
|
||||||
doc = document;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
doc = opener.document;
|
|
||||||
}
|
|
||||||
|
|
||||||
var textarea = doc.getElementById(text_name);
|
|
||||||
|
|
||||||
if (is_ie && typeof(baseHeight) != 'number')
|
|
||||||
{
|
|
||||||
textarea.focus();
|
|
||||||
baseHeight = doc.selection.createRange().duplicate().boundingHeight;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* bbstyle
|
|
||||||
*/
|
|
||||||
function bbstyle(bbnumber)
|
|
||||||
{
|
|
||||||
if (bbnumber != -1)
|
|
||||||
{
|
|
||||||
bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
insert_text('[*]');
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply bbcodes
|
|
||||||
*/
|
|
||||||
function bbfontstyle(bbopen, bbclose)
|
|
||||||
{
|
|
||||||
theSelection = false;
|
|
||||||
|
|
||||||
var textarea = document.getElementById(text_name);
|
|
||||||
|
|
||||||
textarea.focus();
|
|
||||||
|
|
||||||
if ((clientVer >= 4) && is_ie && is_win)
|
|
||||||
{
|
|
||||||
// Get text selection
|
|
||||||
theSelection = document.selection.createRange().text;
|
|
||||||
|
|
||||||
if (theSelection)
|
|
||||||
{
|
|
||||||
// Add tags around selection
|
|
||||||
document.selection.createRange().text = bbopen + theSelection + bbclose;
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
theSelection = '';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (document.getElementById(text_name).selectionEnd && (document.getElementById(text_name).selectionEnd - document.getElementById(text_name).selectionStart > 0))
|
|
||||||
{
|
|
||||||
mozWrap(document.getElementById(text_name), bbopen, bbclose);
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
theSelection = '';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//The new position for the cursor after adding the bbcode
|
|
||||||
var caret_pos = getCaretPosition(textarea).start;
|
|
||||||
var new_pos = caret_pos + bbopen.length;
|
|
||||||
|
|
||||||
// Open tag
|
|
||||||
insert_text(bbopen + bbclose);
|
|
||||||
|
|
||||||
// Center the cursor when we don't have a selection
|
|
||||||
// Gecko and proper browsers
|
|
||||||
if (!isNaN(textarea.selectionStart))
|
|
||||||
{
|
|
||||||
textarea.selectionStart = new_pos;
|
|
||||||
textarea.selectionEnd = new_pos;
|
|
||||||
}
|
|
||||||
// IE
|
|
||||||
else if (document.selection)
|
|
||||||
{
|
|
||||||
var range = textarea.createTextRange();
|
|
||||||
range.move("character", new_pos);
|
|
||||||
range.select();
|
|
||||||
storeCaret(textarea);
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea.focus();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert text at position
|
|
||||||
*/
|
|
||||||
function insert_text(text, spaces, popup)
|
|
||||||
{
|
|
||||||
var textarea;
|
|
||||||
|
|
||||||
if (!popup)
|
|
||||||
{
|
|
||||||
textarea = document.getElementById(text_name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
textarea = opener.document.getElementById(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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add inline attachment at position
|
|
||||||
*/
|
|
||||||
function attach_inline(index, filename)
|
|
||||||
{
|
|
||||||
insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
|
|
||||||
document.getElementById(text_name).focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add quote text to message
|
|
||||||
*/
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get text selection - not only the post content :(
|
|
||||||
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, '&');
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
if (bbcodeEnabled)
|
|
||||||
{
|
|
||||||
insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var lines = split_lines(theSelection);
|
|
||||||
for (i = 0; i < lines.length; i++)
|
|
||||||
{
|
|
||||||
insert_text('> ' + lines[i] + '\n')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
function split_lines(text)
|
|
||||||
{
|
|
||||||
var lines = text.split('\n');
|
|
||||||
var splitLines = new Array();
|
|
||||||
var j = 0;
|
|
||||||
for(i = 0; i < lines.length; i++)
|
|
||||||
{
|
|
||||||
if (lines[i].length <= 80)
|
|
||||||
{
|
|
||||||
splitLines[j] = lines[i];
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var line = lines[i];
|
|
||||||
do
|
|
||||||
{
|
|
||||||
var splitAt = line.indexOf(' ', 80);
|
|
||||||
|
|
||||||
if (splitAt == -1)
|
|
||||||
{
|
|
||||||
splitLines[j] = line;
|
|
||||||
j++
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
splitLines[j] = line.substring(0, splitAt);
|
|
||||||
line = line.substring(splitAt);
|
|
||||||
j++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while(splitAt != -1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return splitLines;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* From http://www.massless.org/mozedit/
|
|
||||||
*/
|
|
||||||
function mozWrap(txtarea, open, close)
|
|
||||||
{
|
|
||||||
var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : 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 = selStart + open.length;
|
|
||||||
txtarea.selectionEnd = selEnd + open.length;
|
|
||||||
txtarea.focus();
|
|
||||||
txtarea.scrollTop = scrollTop;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Insert at Caret position. Code from
|
|
||||||
* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
|
|
||||||
*/
|
|
||||||
function storeCaret(textEl)
|
|
||||||
{
|
|
||||||
if (textEl.createTextRange)
|
|
||||||
{
|
|
||||||
textEl.caretPos = document.selection.createRange().duplicate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Color pallette
|
|
||||||
*/
|
|
||||||
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 + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
|
|
||||||
document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;" style="margin: -4px 0px -4px 2px;"><img src="images/spacer.gif" width="' + width + '" height="' + (height+10) + '" alt="#' + color + '" title="#' + color + '" style="margin: -4px;" /></a>');
|
|
||||||
document.writeln('</td>');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir == 'v')
|
|
||||||
{
|
|
||||||
document.writeln('</tr>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dir == 'h')
|
|
||||||
{
|
|
||||||
document.writeln('</tr>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.writeln('</table>');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Caret Position object
|
|
||||||
*/
|
|
||||||
function caretPosition()
|
|
||||||
{
|
|
||||||
var start = null;
|
|
||||||
var end = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the caret position in an textarea
|
|
||||||
*/
|
|
||||||
function getCaretPosition(txtarea)
|
|
||||||
{
|
|
||||||
var caretPos = new caretPosition();
|
|
||||||
|
|
||||||
// simple Gecko/Opera way
|
|
||||||
if(txtarea.selectionStart || txtarea.selectionStart == 0)
|
|
||||||
{
|
|
||||||
caretPos.start = txtarea.selectionStart;
|
|
||||||
caretPos.end = txtarea.selectionEnd;
|
|
||||||
}
|
|
||||||
// dirty and slow IE way
|
|
||||||
else if(document.selection)
|
|
||||||
{
|
|
||||||
|
|
||||||
// get current selection
|
|
||||||
var range = document.selection.createRange();
|
|
||||||
|
|
||||||
// a new selection of the whole textarea
|
|
||||||
var range_all = document.body.createTextRange();
|
|
||||||
range_all.moveToElementText(txtarea);
|
|
||||||
|
|
||||||
// calculate selection start point by moving beginning of range_all to beginning of range
|
|
||||||
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;
|
|
||||||
|
|
||||||
// we ignore the end value for IE, this is already dirty enough and we don't need it
|
|
||||||
caretPos.start = txtarea.sel_start;
|
|
||||||
caretPos.end = txtarea.sel_start;
|
|
||||||
}
|
|
||||||
|
|
||||||
return caretPos;
|
|
||||||
}
|
|
||||||
// ]]>
|
|
||||||
</script>
|
|
||||||
<div id="colour_palette" style="display: none;">
|
<div id="colour_palette" style="display: none;">
|
||||||
<dl style="clear: left;">
|
<dl style="clear: left;">
|
||||||
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
|
<dt style="border: none;"><label>{L_FONT_COLOR}:</label><br /></dt>
|
||||||
|
|||||||
Reference in New Issue
Block a user