4 if (document.selection)
6 var str = document.selection.createRange().text;
7 document.forms['entryform'].elements['text'].focus();
8 var sel = document.selection.createRange();
9 sel.text = "[" + v + "]" + str + "[/" + v + "]";
13 else if ((typeof document.forms['entryform'].elements['text'].selectionStart) != 'undefined')
15 var txtarea = document.forms['entryform'].elements['text'];
16 var selLength = txtarea.textLength;
17 var selStart = txtarea.selectionStart;
18 var selEnd = txtarea.selectionEnd;
19 var oldScrollTop = txtarea.scrollTop;
20 var s1 = (txtarea.value).substring(0,selStart);
21 var s2 = (txtarea.value).substring(selStart, selEnd);
22 var s3 = (txtarea.value).substring(selEnd, selLength);
23 txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
24 txtarea.selectionStart = s1.length;
25 txtarea.selectionEnd = s1.length + 5 + s2.length + v.length * 2;
26 txtarea.scrollTop = oldScrollTop;
30 else insert('[' + v + '][/' + v + '] ');
34 * insert BB-Codes without text content
37 * @param string element-ID
39 function insertIt(code, id) {
43 if ($(id).createTextRange)
45 document.selection.createRange().duplicate().text = code;
48 else if ((typeof $(id).selectionStart) != 'undefined')
50 var selEnd = $(id).selectionEnd;
51 var txtLen = $(id).value.length;
52 var txtbefore = $(id).value.substring(0,selEnd);
53 var txtafter = $(id).value.substring(selEnd, txtLen);
54 var oldScrollTop = $(id).scrollTop;
55 $(id).value = txtbefore + code + txtafter;
56 $(id).selectionStart = txtbefore.length + code.length;
57 $(id).selectionEnd = txtbefore.length + code.length;
58 $(id).scrollTop = oldScrollTop;
68 function insert_link(form,field,link_text,link_target)
71 if (document.selection)
73 var str = document.selection.createRange().text;
74 document.forms[form].elements[field].focus();
75 var sel = document.selection.createRange();
76 var insert_link = prompt(link_target,'http://');
77 if(sel.text=='' && insert_link!='' && insert_link!=null) str = prompt(link_text,'');
79 if(insert_link && str!=null)
83 sel.text = "[link=" + insert_link + "]" + str + "[/link]";
87 sel.text = "[link]" + insert_link + "[/link]";
93 else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined')
95 var txtarea = document.forms[form].elements[field];
96 var selLength = txtarea.textLength;
97 var selStart = txtarea.selectionStart;
98 var selEnd = txtarea.selectionEnd;
99 var oldScrollTop = txtarea.scrollTop;
100 var s1 = (txtarea.value).substring(0,selStart);
101 var s2 = (txtarea.value).substring(selStart, selEnd);
102 var s3 = (txtarea.value).substring(selEnd, selLength);
104 var insert_link = prompt(link_target,'http://');
105 if(selEnd-selStart==0 && insert_link!='' && insert_link!=null) s2 = prompt(link_text,'');
106 if(insert_link && s2!=null)
110 txtarea.value = s1 + '[link=' + insert_link + ']' + s2 + '[/link]' + s3;
111 var codelength = 14 + insert_link.length + s2.length;
115 txtarea.value = s1 + '[link]' + insert_link + '[/link]' + s3;
116 var codelength = 13 + insert_link.length;
118 txtarea.selectionStart = s1.length;
119 txtarea.selectionEnd = s1.length + codelength;
120 txtarea.scrollTop = oldScrollTop;
125 else insert('[link=http://www.domain.tld/]Link[/link]');
129 * This function inserts the bb-code buttons
130 * for the textarea (#text) into the form.
133 function bbCodeButtons(Buttons) {
134 var o = Buttons.length;
141 for (var i=0;i<o;i++)
144 output[j] = "<input type=\"button\" value=\""+ Buttons[i].get('text') +"\" title=\"" + Buttons[i].get('titel') + "\" class=\"bb-button\" onclick=\"bbcode('"+ Buttons[i].get('value') +"')\"><br />";
148 $('buttonspace').update(output.join("\n") + "\n");
152 * This function inserts the smilies buttons
153 * for the textarea (#text) into the form.
155 function auge_smilies_buttons(Smilies) {
156 var o = Smilies.length;
163 for (var i=0; i<6; i++)
165 output[i] = "<button name=\"smiley\" type=\"button\" value=\""+ Smilies[i].get('value') +"\" title=\""+ Smilies[i].get('title') + Smilies[i].get('value') +"\" onclick=\"insertIt(this.value,'text');\"><img src=\"img/smilies/"+ Smilies[i].get('url') +"\" alt=\""+ Smilies[i].get('value') +"\"></button>";
168 output[i] = output[i] +"<br />";
174 output[j] = "<span class=\"js-handler\" title=\""+ Smilies[j].get('title') +"\" onclick=\"moreSmilies(auge_smilies)\">"+ Smilies[j].get('value') +"</span>";
177 output[j] = "<br />"+ output[j];
181 Element.insert($('buttonspace'), {'bottom': output.join("")});
187 * delete text of an form element with given ID
190 function clearText(a) {
195 function moreSmilies(Smilies) {
197 if ($('add-smilies'))
199 $('add-smilies').remove();
203 var o = Smilies.size() - 1;
206 var div = new Element('div');
207 div.writeAttribute('id', 'add-smilies');
208 div.writeAttribute('class', 'additional-menu');
210 for (i = 6; i < o; i++)
213 buttons[j] = "<button name=\"smiley\" type=\"button\" value=\""+ Smilies[i].get('value') +"\" title=\""+ Smilies[i].get('title') + Smilies[i].get('value') +"\" onclick=\"insertIt(this.value,'text'); destroyElement('add-smilies');\"><img src=\"img/smilies/"+ Smilies[i].get('url') +"\" alt=\""+ Smilies[i].get('value') +"\"></button>";
216 buttons[j] = buttons[j] +"<br />";
218 // buttons[j] = SmileyButton(Smilies[i]);
220 Element.insert(div, buttons.join(''));
221 // alert(div.inspect());
223 $('buttonspace').insert(div);
227 function destroyElement(name) {
231 function createPopup(url, width, height) {
232 winpops=window.open(url,"", "width=" + width + ", height=" + height + ", scrollbars, resizable");
236 var img1 = new Image();
237 img1.src ="img/link_mo.png";
238 var img2 = new Image();
239 img2.src ="img/next_mo.png";
240 var img3 = new Image();
241 img3.src ="img/prev_mo.png";
242 var img4 = new Image();
243 img4.src ="img/update_mo.png";