3 // bbCode control by subBlue design : www.subBlue.com
6 var theSelection
= false;
8 // Check for Browser & Platform for PC & IE specific bits
9 // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
10 var clientPC
= navigator
.userAgent
.toLowerCase(); // Get client info
11 var clientVer
= parseInt(navigator
.appVersion
); // Get browser version
13 var is_ie
= ((clientPC
.indexOf("msie") != -1) && (clientPC
.indexOf("opera") == -1));
14 var is_nav
= ((clientPC
.indexOf('mozilla')!=-1) && (clientPC
.indexOf('spoofer')==-1)
15 && (clientPC
.indexOf('compatible') == -1) && (clientPC
.indexOf('opera')==-1)
16 && (clientPC
.indexOf('webtv')==-1) && (clientPC
.indexOf('hotjava')==-1));
19 var is_win
= ((clientPC
.indexOf("win")!=-1) || (clientPC
.indexOf("16bit") != -1));
20 var is_mac
= (clientPC
.indexOf("mac")!=-1);
24 function barre_inserer(text
,champ
) {
26 if( document
.selection
){
28 var r
= document
.selection
.createRange();
29 if ((r
== null) || (typeof(r
.selectionStart
) == "undefined")) {
30 txtarea
.selectionStart
= txtarea
.value
.length
;
31 txtarea
.selectionEnd
= txtarea
.selectionStart
;
34 var re
= txtarea
.createTextRange();
35 var rc
= re
.duplicate();
36 re
.moveToBookmark(r
.getBookmark());
37 rc
.setEndPoint('EndToStart', re
);
38 txtarea
.selectionStart
= rc
.text
.length
;
39 txtarea
.selectionEnd
= rc
.text
.length
+ r
.text
.length
;
42 mozWrap(txtarea
, '', text
);
46 // Shows the help messages in the helpline window
47 function helpline(help
, champ
) {
52 function setCaretToEnd (input
) {
53 setSelectionRange(input
, input
.value
.length
, input
.value
.length
);
57 function setSelectionRange(input
, selectionStart
, selectionEnd
) {
58 if (input
.setSelectionRange
) {
60 input
.setSelectionRange(selectionStart
, selectionEnd
);
62 else if (input
.createTextRange
) {
63 var range
= input
.createTextRange();
65 range
.moveEnd('character', selectionEnd
);
66 range
.moveStart('character', selectionStart
);
71 // From http://www.massless.org/mozedit/
72 function mozWrap(txtarea
, open
, close
)
74 var selLength
= txtarea
.textLength
;
75 var selStart
= txtarea
.selectionStart
;
76 var selEnd
= txtarea
.selectionEnd
;
77 if (selEnd
== 1 || selEnd
== 2)
79 var selTop
= txtarea
.scrollTop
;
81 // Raccourcir la selection par double-clic si dernier caractere est espace
82 if (selEnd
- selStart
> 0 && (txtarea
.value
).substring(selEnd
-1,selEnd
) == ' ') selEnd
= selEnd
-1;
84 var s1
= (txtarea
.value
).substring(0,selStart
);
85 var s2
= (txtarea
.value
).substring(selStart
, selEnd
)
86 var s3
= (txtarea
.value
).substring(selEnd
, selLength
);
88 // Eviter melange bold-italic-intertitre
89 if ((txtarea
.value
).substring(selEnd
,selEnd
+1) == '}' && close
.substring(0,1) == "}") close
= close
+ " ";
90 if ((txtarea
.value
).substring(selEnd
-1,selEnd
) == '}' && close
.substring(0,1) == "}") close
= " " + close
;
91 if ((txtarea
.value
).substring(selStart
-1,selStart
) == '{' && open
.substring(0,1) == "{") open
= " " + open
;
92 if ((txtarea
.value
).substring(selStart
,selStart
+1) == '{' && open
.substring(0,1) == "{") open
= open
+ " ";
94 txtarea
.value
= s1
+ open
+ s2
+ close
+ s3
;
95 selDeb
= selStart
+ open
.length
;
96 selFin
= selEnd
+ close
.length
;
97 window
.setSelectionRange(txtarea
, selDeb
, selFin
);
98 txtarea
.scrollTop
= selTop
;
104 // Insert at Claret position. Code from
105 // http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
106 function storeCaret (textEl
) {
107 if (textEl
.createTextRange
)
108 textEl
.caretPos
= document
.selection
.createRange().duplicate();