Codechange: Gruppierung der Ausgabe der Benutzerliste, Tabellen mit <thead> und ...
[wmmkf.git] / javascripts.js
blob51a4e34c9395416db58e1a4fc997ad09d611730e
1 function bbcode(v)
2  {
3  // for IE
4  if (document.selection)
5    {
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 + "]";
10     return;
11    }
12   // for Mozilla
13   else if ((typeof document.forms['entryform'].elements['text'].selectionStart) != 'undefined')
14    {
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;
27     txtarea.focus();
28     return;
29    }
30   else insert('[' + v + '][/' + v + '] ');
31  }
33 /**
34  * insert BB-Codes without text content
35  *
36  * @param string code
37  * @param string element-ID
38  */
39 function insertIt(code, id) {
41 $(id).focus();
43 if ($(id).createTextRange)
44         {
45         document.selection.createRange().duplicate().text = code;
46         }
47 // for Mozilla
48 else if ((typeof $(id).selectionStart) != 'undefined')
49         {
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;
59         $(id).focus();
60    }
61   else
62    {
63         $(id).value += code;
64         $(id).focus();
65    }
68 function insert_link(form,field,link_text,link_target)
69  {
70  // for IE
71  if (document.selection)
72    {
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)
80      {
81       if(str!='')
82        {
83         sel.text = "[link=" + insert_link + "]" + str + "[/link]";
84        }
85       else
86        {
87         sel.text = "[link]" + insert_link + "[/link]";
88        }
89      }
90     return;
91    }
92   // for Mozilla
93   else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined')
94    {
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)
107      {
108       if(s2!='')
109        {
110         txtarea.value = s1 + '[link=' + insert_link + ']' + s2 + '[/link]' + s3;
111         var codelength = 14 + insert_link.length + s2.length;
112        }
113       else
114        {
115         txtarea.value = s1 + '[link]' + insert_link + '[/link]' + s3;
116         var codelength = 13 + insert_link.length;
117        }
118       txtarea.selectionStart = s1.length;
119       txtarea.selectionEnd = s1.length + codelength;
120       txtarea.scrollTop = oldScrollTop;
121       txtarea.focus();
122       return;
123      }
124    }
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.
131  */
133 function bbCodeButtons(Buttons) {
134 var o = Buttons.length;
135 var x = o - 1;
136 var output = $A();
137 var j = 0;
139 if (Buttons && o>0)
140         {
141         for (var i=0;i<o;i++)
142                 {
143                 j = i + 1;
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 />";
145                 }
146         j = j + 1;
147         }
148 $('buttonspace').update(output.join("\n") + "\n");
152  * This function inserts the smilies buttons
153  * for the textarea (#text) into the form.
154  */
155 function auge_smilies_buttons(Smilies) {
156 var o = Smilies.length;
157 var x = o - 1;
158 var output = $A();
159 var j = 0;
161 if (Smilies && o>0)
162         {
163         for (var i=0; i<6; i++)
164                 {
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>";
166                 if (i % 2 == 1)
167                         {
168                         output[i] = output[i] +"<br />";
169                         }
170                 }
171         if (o > i)
172                 {
173                 j = o - 1;
174                 output[j] = "<span class=\"js-handler\" title=\""+ Smilies[j].get('title') +"\" onclick=\"moreSmilies(auge_smilies)\">"+ Smilies[j].get('value') +"</span>";
175                 if (i % 2 == 1)
176                         {
177                         output[j] = "<br />"+ output[j];
178                         }
179                 }
180         }
181 Element.insert($('buttonspace'), {'bottom': output.join("")});
187  * delete text of an form element with given ID
188  * @param string ID
189  */
190 function clearText(a) {
191 $(a).focus();
192 $(a).value = "";
195 function moreSmilies(Smilies) {
197 if ($('add-smilies'))
198         {
199         $('add-smilies').remove();
200         }
201 else
202         {
203         var o = Smilies.size() - 1;
204         var buttons = $A();
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++)
211                 {
212                 j = i - 6;
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>";
214                 if (i % 2 == 1)
215                         {
216                         buttons[j] = buttons[j] +"<br />";
217                         }
218 //              buttons[j] = SmileyButton(Smilies[i]);
219                 }
220         Element.insert(div, buttons.join(''));
221 //      alert(div.inspect());
223         $('buttonspace').insert(div);
224         }
227 function destroyElement(name) {
228 $(name).remove();
231 function createPopup(url, width, height) {
232   winpops=window.open(url,"", "width=" + width + ", height=" + height + ", scrollbars, resizable");
233   return false;
234         }
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";