var qtButtons = new Array();
var qtOpenTags = new Array();
var height_max = 30;	var height_min = 5;	var height_step = 5;	function qtButton(id, display, tagStart, tagEnd, title, access, open) {
this.id = id;	this.display = display;	this.tagStart = tagStart;	this.tagEnd = tagEnd;	this.title = title;	this.access = access;	this.open = open;	}
qtButtons.push(
new qtButton('qt_bold', 'Fett', '<strong>' ,'</strong>' ,'Fettschrift', 'b')
);
qtButtons.push(
new qtButton('qt_italic', 'Kursiv', '<em>', '</em>' ,'Kursivschrift', 'k')
);
qtButtons.push(
new qtButton('qt_block', 'Zitat', '<blockquote>', '</blockquote>' ,'Zitieren', 'z')
);
qtButtons.push(
new qtButton('qt_code', 'Code', '<code>', '</code>' ,'Code', 'c')
);
qtButtons.push(
new qtButton('qt_link', 'Link', '', '</a>' ,'Link einf&uuml;gen', 'l')
);
/* qtButtons.push(
new qtButton('qt_close', 'Tags schliessen', '', '' ,'Alle Tags schliessen', 'l', -1)
); */
qtButtons.push(
new qtButton('qt_increase', '+', '', '' ,'Textfeld vergr&ouml;&szlig;ern', 'l', -1)
);
qtButtons.push(
new qtButton('qt_decrease', '-', '', '' ,'Textfeld verkleinern', 'l', -1)
);
function displayQuicktags(textareaID) {
textarea_id = textareaID;
for (i = 0; i < qtButtons.length; i++) {
qtShowButton(qtButtons[i], i);
}
}
function qtTextareaSize(type) {
var height_current = document.getElementById(textarea_id).rows;
switch (type) {
case 'increase':
if ( (height_current + height_step) > height_max ) {
var my_heightchange = height_max;
} else {
var my_heightchange = height_current + height_step;
}
break;
case 'decrease':
if ( (height_current - height_step) < height_min ) {
var my_heightchange = height_min;
} else {
var my_heightchange = height_current - height_step;
}
break;
default:
break;
}
document.getElementById(textarea_id).rows = my_heightchange;
}
function qtInsertLink(myField, i, defaultValue) {
if (!defaultValue) {
defaultValue = 'http://';
}
if (!qtCheckOpenTags(i)) {
var URL = prompt('URL:' ,defaultValue);
if (URL) {
qtButtons[i].tagStart = '<a href="' + URL + '">';
qtInsertTag(myField, i);
}
}
else {
qtInsertTag(myField, i);
}
}
function qtShowButton(button, i) {
if (button.access) {
var accesskey = ' accesskey = "' + button.access + '"'
}
else {
var accesskey = '';
}
if (button.title) {
var titlevalue = ' title = "' + button.title + '"'
}
else {
var titlevalue = '';
}
switch (button.id) {
case 'qt_close':
document.write('<input type="button" id="' + button.id + '" ' + accesskey + titlevalue + ' onclick="qtCloseAllTags();" value="' + button.display + '" />');
break;
case 'qt_link':
document.write('<input type="button" id="' + button.id + '" ' + accesskey + titlevalue + ' onclick="qtInsertLink(document.getElementById(textarea_id), ' + i + ');" value="' + button.display + '" />');
break;
case 'qt_increase':
document.write('<input type="button" id="' + button.id + '" ' + accesskey + titlevalue + ' onclick="qtTextareaSize(\'increase\');" value="' + button.display + '" />');
break;
case 'qt_decrease':
document.write('<input type="button" id="' + button.id + '" ' + accesskey + titlevalue + ' onclick="qtTextareaSize(\'decrease\');" value="' + button.display + '" />');
break;
default:
document.write('<input type="button" id="' + button.id + '" ' + accesskey + titlevalue + ' onclick="qtInsertTag(document.getElementById(textarea_id), ' + i + ');" value="' + button.display + '" />');
break;
}
}
function qtAddTag(button) {
if (qtButtons[button].tagEnd != '') {
qtOpenTags[qtOpenTags.length] = button;
document.getElementById(qtButtons[button].id).value = '/' + document.getElementById(qtButtons[button].id).value;
}
}
function qtRemoveTag(button) {
for (i = 0; i < qtOpenTags.length; i++) {
if (qtOpenTags[i] == button) {
qtOpenTags.splice(i, 1);
document.getElementById(qtButtons[button].id).value = document.getElementById(qtButtons[button].id).value.replace('/', '');
}
}
}
function qtCheckOpenTags(button) {
var tag = 0;
for (i = 0; i < qtOpenTags.length; i++) {
if (qtOpenTags[i] == button) {
tag++;
}
}
if (tag > 0) {
return true;
}
else {
return false;
}
}	function qtCloseAllTags() {
var count = qtOpenTags.length;
for (o = 0; o < count; o++) {
qtInsertTag(document.getElementById(textarea_id), qtOpenTags[qtOpenTags.length - 1]);
}
}
function qtInsertTag(myField, i) {
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
if (sel.text.length > 0) {
sel.text = qtButtons[i].tagStart + sel.text + qtButtons[i].tagEnd;
}
else {
if (!qtCheckOpenTags(i) || qtButtons[i].tagEnd == '') {
sel.text = qtButtons[i].tagStart;
qtAddTag(i);
}
else {
sel.text = qtButtons[i].tagEnd;
qtRemoveTag(i);
}
}
myField.focus();
}
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var cursorPos = endPos;
var scrollTop = myField.scrollTop;
if (startPos != endPos) {
myField.value = myField.value.substring(0, startPos)
+ qtButtons[i].tagStart
+ myField.value.substring(startPos, endPos)
+ qtButtons[i].tagEnd
+ myField.value.substring(endPos, myField.value.length);
cursorPos += qtButtons[i].tagStart.length + qtButtons[i].tagEnd.length;
}
else {
if (!qtCheckOpenTags(i) || qtButtons[i].tagEnd == '') {
myField.value = myField.value.substring(0, startPos)
+ qtButtons[i].tagStart
+ myField.value.substring(endPos, myField.value.length);
qtAddTag(i);
cursorPos = startPos + qtButtons[i].tagStart.length;
}
else {
myField.value = myField.value.substring(0, startPos)
+ qtButtons[i].tagEnd
+ myField.value.substring(endPos, myField.value.length);
qtRemoveTag(i);
cursorPos = startPos + qtButtons[i].tagEnd.length;
}
}
myField.focus();
myField.selectionStart = cursorPos;
myField.selectionEnd = cursorPos;
myField.scrollTop = scrollTop;
}
else {
if (!qtCheckOpenTags(i) || qtButtons[i].tagEnd == '') {
myField.value += qtButtons[i].tagStart;
qtAddTag(i);
}
else {
myField.value += qtButtons[i].tagEnd;
qtRemoveTag(i);
}
myField.focus();
}
}
function qtInsertContent(myField, myValue) {
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
myField.focus();
}
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
var scrollTop = myField.scrollTop;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
myField.focus();
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
myField.scrollTop = scrollTop;
} else {
myField.value += myValue;
myField.focus();
}
}
