summaryrefslogtreecommitdiff
path: root/assets/bd4d787c/editor.js
diff options
context:
space:
mode:
authorPatrick Seeger <pseeger@ccwn.org>2012-04-15 18:37:40 +0200
committerPatrick Seeger <pseeger@ccwn.org>2012-04-15 18:37:40 +0200
commitfeb2fe055435e7ecdc657cacee2aaf7dc339dbc9 (patch)
tree77fa07572ae7a5a2b6e808c97b9adc7f035059b3 /assets/bd4d787c/editor.js
parentba20ededac6fd68d281603e8c9273f5134d21a4c (diff)
Irgendwas in der art von posts
Diffstat (limited to 'assets/bd4d787c/editor.js')
-rw-r--r--assets/bd4d787c/editor.js140
1 files changed, 140 insertions, 0 deletions
diff --git a/assets/bd4d787c/editor.js b/assets/bd4d787c/editor.js
new file mode 100644
index 0000000..7317d3b
--- /dev/null
+++ b/assets/bd4d787c/editor.js
@@ -0,0 +1,140 @@
+/**
+ * Some browser detection
+ */
+var clientPC = navigator.userAgent.toLowerCase(); // Get client info
+var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1)
+ && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1));
+var is_safari = ((clientPC.indexOf('AppleWebKit')!=-1) && (clientPC.indexOf('spoofer')==-1));
+var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ));
+if (clientPC.indexOf('opera')!=-1) {
+ var is_opera = true;
+ var is_opera_preseven = (window.opera && !document.childNodes);
+ var is_opera_seven = (window.opera && document.childNodes);
+}
+
+//{{{ insertTags
+/**
+ * apply tagOpen/tagClose to selection in textarea, use sampleText instead
+ * of selection if there is none copied and adapted from phpBB
+ *
+ * @author phpBB development team
+ * @author MediaWiki development team
+ * @author Andreas Gohr <andi@splitbrain.org>
+ * @author Jim Raynor <jim_raynor@web.de>
+ */
+function insertTags(elID, tagOpen, tagClose, sampleText) {
+ tagOpen = tagOpen.replace(/bslashN/g,'\n');
+ tagClose = tagClose.replace(/bslashN/g,'\n');
+ var txtarea = document.getElementById(elID);
+ // IE
+ if(document.selection && !is_gecko) {
+ var theSelection = document.selection.createRange().text;
+ var replaced = true;
+ if(!theSelection){
+ replaced = false;
+ theSelection=sampleText;
+ }
+ txtarea.focus();
+
+ // This has change
+ text = theSelection;
+ if(theSelection.charAt(theSelection.length - 1) == " "){// exclude ending space char, if any
+ theSelection = theSelection.substring(0, theSelection.length - 1);
+ r = document.selection.createRange();
+ r.text = tagOpen + theSelection + tagClose + " ";
+ } else {
+ r = document.selection.createRange();
+ r.text = tagOpen + theSelection + tagClose;
+ }
+ if(!replaced){
+ r.moveStart('character',-text.length-tagClose.length);
+ r.moveEnd('character',-tagClose.length);
+ }
+ r.select();
+ // Mozilla
+ } else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
+ var replaced = false;
+ var startPos = txtarea.selectionStart;
+ var endPos = txtarea.selectionEnd;
+ if(endPos - startPos) replaced = true;
+ var scrollTop=txtarea.scrollTop;
+ var myText = (txtarea.value).substring(startPos, endPos);
+ if(!myText) { myText=sampleText;}
+ if(myText.charAt(myText.length - 1) == " "){ // exclude ending space char, if any
+ subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
+ } else {
+ subst = tagOpen + myText + tagClose;
+ }
+ txtarea.value = txtarea.value.substring(0, startPos) + subst +
+ txtarea.value.substring(endPos, txtarea.value.length);
+ txtarea.focus();
+
+ //set new selection
+ if(replaced){
+ var cPos=startPos+(tagOpen.length+myText.length+tagClose.length);
+ txtarea.selectionStart=cPos;
+ txtarea.selectionEnd=cPos;
+ }else{
+ txtarea.selectionStart=startPos+tagOpen.length;
+ txtarea.selectionEnd=startPos+tagOpen.length+myText.length;
+ }
+ txtarea.scrollTop=scrollTop;
+ // All others
+ } else {
+ var copy_alertText=alertText;
+ var re1=new RegExp("\\$1","g");
+ var re2=new RegExp("\\$2","g");
+ copy_alertText=copy_alertText.replace(re1,sampleText);
+ copy_alertText=copy_alertText.replace(re2,tagOpen+sampleText+tagClose);
+ var text;
+ if (sampleText) {
+ text=prompt(copy_alertText);
+ } else {
+ text="";
+ }
+ if(!text) { text=sampleText;}
+ text=tagOpen+text+tagClose;
+ //append to the end
+ txtarea.value += "\n"+text;
+
+ // in Safari this causes scrolling
+ if(!is_safari) {
+ txtarea.focus();
+ }
+
+ }
+ // reposition cursor if possible
+ if (txtarea.createTextRange) txtarea.caretPos = document.selection.createRange().duplicate();
+
+ return false;
+}
+// }}}
+
+// {{{ moreRows
+/**
+ * Adds 2 more rows to a textarea
+ */
+function moreRows(textareaId)
+{
+ document.getElementById(textareaId).rows = document.getElementById(textareaId).rows + 2;
+} // }}}
+
+// {{{ lessRows
+/**
+ * Reduces a textarea by 2 rows
+ */
+function lessRows(textareaId)
+{
+ if( document.getElementById(textareaId).rows>2 )
+ document.getElementById(textareaId).rows = document.getElementById(textareaId).rows - 2;
+}// }}}
+
+// {{{ padText
+function padText(text, length)
+{
+ var result="";
+ for(i=0; i<length; i++)
+ result = result + text;
+ return result;
+}
+// }}}