1 |
|
ti
n
yMC
E
.
i
m
p
o
r
t
Plug
in
Languag
e
Pa
c
k('p
a
s
te
'
);var
T
iny
MCE_
PastePlugi
n
=
{
getI
n
fo
:function(
){r
e
t
ur
n{
l
ongname:'P
a
s
t
e
t
e
x
t
/w
or
d
',
a
uth
o
r:
'
Moxie
c
od
e
Sy
ste
ms
AB
',
author
u
rl:'http:/
/ti
n
ym
c
e.mox
i
ec
o
de.com',i
n
fo
u
rl:'http:/
/w
i
k
i
.mox
i
e
co
d
e
.
com/
ind
e
x
.
p
hp/Ti
n
yMCE:P
l
u
gins
/paste
',version:
t
inyMCE.maj
orV
e
rsion+"."+
t
inyMCE
.
m
i
norV
e
rs
i
on}}
,in
i
tI
n
stanc
e:
function(i
nst)
{
if(tinyMCE
.isMSIE&&t
in
yMCE.getPa
ram("paste
_
a
u
to_c
l
ean
u
p_on_past
e
",fa
lse
))
t
inyMCE
.
addEvent(
ins
t
.g
e
t
Body
(
),"pas
t
e"
,
T
in
yMCE_P
a
s
t
e
Plugin
.
_h
and
l
ePaste
Event)},ha
n
d
leEvent:
function(
e
){if(
!tinyMCE.
i
sR
e
alIE&&t
in
y
M
CE.
ge
tPa
r
am("
p
ast
e
_auto_c
le
an
u
p_on_
paste
",false)&&
e.ctrlKey&
&e.keyC
o
d
e==86&&e
.
t
ype=="keyd
own"){
wi
n
d
ow.s
e
t
T
i
m
e
o
u
t('t
in
yMCE.s
el
e
c
t
e
d
I
n
s
t
a
n
c
e
.
exec
Command(
"
mce
Past
e
T
e
xt",
t
rue)
',
1);ret
u
r
n
ti
n
yMCE.cance
lEvent
(
e
)
}r
e
turn
tru
e
},g
e
tControlHT
ML:fun
c
ti
o
n
(
cn){switch
(cn){case"
pa
s
t
e
t
e
x
t
":r
e
turn
tinyMCE
.
get
Button
HTML
(
cn,
'
lang_
paste
_
text
_desc
',
'
{
$plug
i
nur
l
}/imag
e
s
/
paste
text
.gif
',
'mcePasteT
ext',
true
);
cas
e
"pastewor
d
":return
tinyMCE
.
get
Button
HTML
(
cn,
'
lang_
paste
_
word
_desc
',
'
{
$plug
i
nur
l
}/imag
e
s
/
paste
word
.gif
',
'mcePasteW
ord',
true
);
case"s
e
lectall":r
eturn
tinyMCE
.
get
Button
HTML
(
cn,
'
lang_
selectall
_desc
',
'
{
$plug
i
nur
l
}/imag
e
s
/
selectall
.gif
',
'mceSelect
All'
,true)
}
r
et
u
r
n''},execC
om
m
a
nd:func
t
ion(
e
di
to
r
_
id,e
le
ment,comm
an
d,
u
ser
_
i
n
terf
a
c
e
,
v
al
u
e)
{
s
wi
t
ch
(
c
o
mma
n
d
){
cas
e
"mc
ePaste
Text":if(u
s
e
r_i
nt
erfac
e)
{
if(
(
tiny
MCE
.is
MS
IE&&
!tinyMCE.i
sOp
e
ra)&&!tiny
MCE
.getParam(
'
paste_
use_di
a
l
o
g',fa
l
s
e
))TinyMCE_
P
a
stePlugi
n
.
_
i
n
sertText(c
li
p
boardD
a
t
a.g
e
tData(
"
Text")
,
true);e
lse
{
var
t
e
mplate=
n
e
w
Arr
a
y
(
);template
['
f
ile']='../
../pl
u
gi
n
s/pas
t
e
/past
e
t
e
xt
.
htm';templ
ate['width
']=450;
t
emp
l
at
e
['h
e
ight']=400
;var
plain_t
e
xt="";tin
y
M
C
E.
o
p
e
nW
indow
(template,
{
e
di
t
or_
i
d:
e
dit
o
r_id,plain
_
t
ex
t
:pla
i
n
_text,r
e
sizabl
e
:"y
e
s",s
c
r
o
llb
a
rs:"no",i
n
line:"yes
"
,
mce
Do:'insert
'})}}else
TinyMCE_
Paste
Plugin._in
sert
Text
(value['ht
ml']
,
value['lin
eb
r
e
aks']
);
r
e
tur
n
t
rue;
ca
se"m
ce
Past
e
W
o
rd"
:
i
f
(
u
ser_i
n
terfa
c
e){if((tin
yMCE.isMSI
E&&!
ti
n
yMCE.isOpe
ra
)
&&!tinyMCE
.g
et
Pa
r
am
(
'
p
aste
_us
e
_dial
o
g
',
f
a
lse)){Tiny
MCE_PasteP
l
u
gin._inser
t
W
or
dC
o
ntent(T
i
nyMCE_Past
e
Plugin._
c
lipb
o
ar
d
HTML())}
e
l
s
e{var
tem
plate=new
A
rray();tem
plate['fil
e']=
'
../../plug
ins/paste/
p
a
s
t
ew
or
d.htm';tem
p
l
ate[
'
widt
h
']=450;
t
empla
t
e['height'
]=400;var
p
lain_text=
"";
tiny
MCE
.
o
penW
i
nd
o
w(t
e
m
plate
,
{ed
i
t
o
r
_id
:
edi
t
or_id,plai
n_
t
ext:
p
la
i
n_te
x
t,res
i
zabl
e
:"yes",s
c
r
o
llbars:"no
",inline:"
y
e
s",m
c
eD
o
:'
in
sert'})}}e
ls
e
TinyMCE
_Paste
Plugin
._in
s
er
t
Wo
r
dC
on
t
e
n
t(valu
e
);
r
e
tu
r
n
true;ca
s
e
"
mceSelectA
ll
"
:
tiny
MCE.execIn
stan
ce
Com
m
and(ed
i
t
or
_id,'selec
tall');r
e
tu
r
n
true
}
return
false
},_handleP
asteEvent:
function(e
){
switch(e.t
ype){case"
paste":
var
html=
TinyMCE_Pa
s
t
ePlug
i
n
._clipboar
dHTML()
;var
r
,
inst
=t
i
nyMCE
.
sel
ect
ed
In
s
t
a
n
ce
;if(
inst
&&(r=
in
s
t
.getRng())
&&r.text.l
ength>0)
tinyMCE
.execComma
nd('delete
');if(html
&&html.len
gth>0)
tinyMCE
.execComma
nd('mcePas
teWord',fa
lse,html);
t
i
n
yMC
E
.cancel
Event
(e);
return
false}retu
rn
true
},_insertT
ext:functi
on(content
,bLinebrea
ks){if(con
tent&&cont
ent.length
>0){if(bLi
nebreaks){
if(t
i
nyMCE
.getParam(
"paste_cre
ate_paragr
aphs",true
)){var
rl=t
i
nyMCE
.getParam(
"paste_rep
lace_list"
,'\u2122,<
sup>TM</su
p>,\u2026,
...,\u201c
|\u201d,",
\u2019,\',
\u2013|\u2
014|\u2015
|\u2212,-'
).split(',
');for(var
i=0;i<rl.l
ength;i+=2
)content=c
ontent.rep
lace(new
RegExp(rl[
i],'gi'),r
l[i+1]);co
ntent=
t
i
n
yMCE
.re
gexpRe
place(
content,"
\r\n\r\n
"
,
"
</p><p>
","gi"
);content=
t
i
n
yMCE
.re
gexpRe
place(
content,"
\r\r
"
,
"
</p><p>
","gi"
);content=
t
i
n
yMCE
.re
gexpRe
place(
content,"
\n\n
"
,
"
</p><p>
","gi"
);if((pos=
content.in
dexOf('</p
><p>'))!=-
1){t
i
nyMCE
.execComma
nd("Delete
");var
node=t
i
nyMCE
.select
edInsta
n
ce
.get
F
o
cusElem
e
nt
();var
breakElms=
new
Array()
;do{if(nod
e.nodeType
==1){if(no
de.nodeNam
e=="TD"||n
ode.nodeNa
me=="BODY"
)break;bre
akElms[bre
akElms.len
gth]=node
}}while(no
de=node.pa
rentNode);
var
before="",
after="</p
>";before+
=content.s
ubstring(0
,pos);for(
var
i=0;i<brea
kElms.leng
th;i++){be
fore+="</"
+breakElms
[i].nodeNa
me+">";aft
er+="<"+br
eakElms[(b
reakElms.l
ength-1)-i
].nodeName
+">"
}before+="
<p>";conte
nt=before+
content.su
bstring(po
s+7)+after
}}if(t
i
nyMCE
.getParam(
"paste_cre
ate_linebr
eaks",true
)){content
=
t
i
n
yMCE
.re
gexpRe
place(
content,"
\r\n
"
,
"
<br
/>
","gi"
);content=
t
i
n
yMCE
.re
gexpRe
place(
content,"
\r
"
,
"
<br
/>
","gi"
);content=
t
i
n
yMCE
.re
gexpRe
place(
content,"
\n
"
,
"
<br
/>
","gi"
)
}}t
i
nyMCE
.execComma
nd("mceIns
ertRawHTML
",false,co
ntent)
}},_insert
WordConten
t:function
(content){
if(content
&&content.
length>0){
var
bull=Strin
g.fromChar
Code(8226)
;var
middot=Str
ing.fromCh
arCode(183
);
var
cb;
if(
(cb=tinyMC
E
.getParam(
"
paste_inse
rt_word_co
ntent_call
back
","")
)
!=""
)content=e
v
al
(
c
b
+"(
'before',
content)
")
;var
rl=
tinyMCE
.getParam(
"paste_rep
lace_list"
,'\u2122,<
sup>TM</su
p>,\u2026,
...,\u201c
|\u201d,",
\u2019,\',
\u2013|\u2
014|\u2015
|\u2212,-'
).split(',
');for(var
i=0;i<rl.l
ength;i+=2
)content=c
ontent.rep
lace(new
RegExp(rl[
i],'gi'),r
l[i+1]);if
(t
i
nyMCE
.getParam(
"paste_con
vert_heade
rs_to_stro
ng",false)
){content=
content.re
place(new
RegExp('<p
class=MsoH
eading.*?>
(.*?)<\/p>
','gi'),'<
p><b>$1</b
></p>')
}content=c
ontent.rep
lace(new
RegExp('ta
b-stops:
list
[0-9]+.0pt
">','gi'),
'">'+"--li
st--");con
tent=conte
nt.replace
(new
RegExp(bul
l+"(.*?)<B
R>","gi"),
"<p>"+midd
ot+"$1</p>
");content
=content.r
eplace(new
RegExp('<S
PAN
style="mso
-list:
Ignore">',
'gi'),"<sp
an>"+bull)
;content=c
ontent.rep
lace(/<o:p
><\/o:p>/g
i,"");cont
ent=conten
t.replace(
new
RegExp('<b
r
style="pag
e-break-be
fore:
always;.*>
','gi'),'-
-
page
break
--');conte
nt=content
.replace(n
ew
RegExp('<(
!--)([^>]*
)(--)>','g
'),"");if(
t
i
nyMCE
.getParam(
"paste_rem
ove_spans"
,true))con
tent=conte
nt.replace
(/<\/?span
[^>]*>/gi,
"");if(t
i
nyMCE
.getParam(
"paste_rem
ove_styles
",true))co
ntent=cont
ent.replac
e(new
RegExp('<(
\\w[^>]*)
style="([^
"]*)"([^>]
*)','gi'),
"<$1$3");c
ontent=con
tent.repla
ce(/<\/?fo
nt[^>]*>/g
i,"");swit
ch(t
i
nyMCE
.getParam(
"paste_str
ip_class_a
ttributes"
,"all")){c
ase"all":c
ontent=con
tent.repla
ce(/<(\w[^
>]*)
class=([^
|>]*)([^>]
*)/gi,"<$1
$3");break
;case"mso"
:content=c
ontent.rep
lace(new
RegExp('<(
\\w[^>]*)
class="?ms
o([^
|>]*)([^>]
*)','gi'),
"<$1$3");b
reak
}content=c
ontent.rep
lace(new
RegExp('hr
ef="?'+
TinyMCE_Pa
s
t
ePlug
i
n
._reEscape
(""+docume
nt.locatio
n)+'','gi'
),'href="'
+t
i
nyMCE.
s
e
tt
i
ngs['
document
_b
ase
_url']
);content=
content.re
place(/<(\
w[^>]*)
lang=([^
|>]*)([^>]
*)/gi,"<$1
$3");conte
nt=content
.replace(/
<\\?\?xml[
^>]*>/gi,"
");content
=content.r
eplace(/<\
/?\w+:[^>]
*>/gi,"");
content=co
ntent.repl
ace(/--
page
break
--\s*<p>&n
bsp;<\/p>/
gi,"");con
tent=conte
nt.replace
(/--
page
break
--/gi,"");
if(!t
i
nyMCE.
s
e
tt
i
n
g
s[
'force_p_n
ewlines'
]
){content=
content.re
place('','
','gi');co
ntent=cont
ent.replac
e('</p>','
<br
/><br
/>','gi')
}if(!tiny
MCE
.is
MS
IE&&!t
i
nyMCE.
s
e
tt
i
n
g
s[
'force_p_n
ewlines'
]
){content=
content.re
place(/<\/
?p[^>]*>/g
i,"")
}content=c
ontent.rep
lace(/<\/?
div[^>]*>/
gi,"");if(
t
i
nyMCE
.getParam(
"paste_con
vert_middo
t_lists",t
rue)){var
div=
do
cu
m
ent
.create
Element
("div"
);div.in
n
erHTML=
content
;var
className=
t
i
nyMCE
.getParam(
"paste_uni
ndented_li
st_class",
"unIndente
dList");wh
ile(
TinyMCE_Pa
s
t
ePlug
i
n
._convertM
iddots(div
,"--list--
"));while(
TinyMCE_Pa
s
t
ePlug
i
n
._convertM
iddots(div
,middot,cl
assName));
while(
TinyMCE_Pa
s
t
ePlug
i
n
._convertM
iddots(div
,bull));co
ntent=div.
innerHTML
}if(t
i
nyMCE
.getParam(
"paste_con
vert_heade
rs_to_stro
ng",false)
){content=
content.re
place(/<h[
1-6]> 
;<\/h[1-6]
>/gi,'<p>&
nbsp; 
;</p>');co
ntent=cont
ent.replac
e(/<h[1-6]
>/gi,'<p><
b>');conte
nt=content
.replace(/
<\/h[1-6]>
/gi,'</b><
/p>');cont
ent=conten
t.replace(
/<b>
<\/b>/gi,'
<b> &
nbsp;</b>'
);content=
content.re
place(/^(&
nbsp;)*/gi
,'')
}content=c
ontent.rep
lace(/--li
st--/gi,""
);if(
(cb=tinyMC
E
.getParam(
"
paste_inse
rt_word_co
ntent_call
back
","")
)
!=""
)content=e
v
al
(
c
b
+"(
'after',
content)
")
;t
i
nyMCE
.execComma
nd("mceIns
ertContent
",false,co
ntent);if(
t
i
nyMCE
.getParam(
'paste_for
ce_cleanup
_wordpaste
',true))
window.set
Timeout(
'
ti
n
yMCE
.execComma
nd("mceCle
anup");
'
,1);}}
,_reEscape
:function(
s){var
l="?.\\*[]
(){}+^$:";
var
o="";for(v
ar
i=0;i<s.le
ngth;i++){
var
c=s.charAt
(i);if(l.i
ndexOf(c)!
=-1)o+='\\
'+c;else
o+=c
}return
o
},_convert
Middots:fu
nction(div
,search,cl
ass_name){
var
mdot=Strin
g.fromChar
Code(183)
;var
bull=Strin
g.fromChar
Code(8226)
;var
nodes
=div.getEl
ementsByTa
gName("p")
;
var
prevul;
for(
var
i=0;i<node
s.length;i
++){
var
p=nodes[i]
;if(p.inne
rHTML.inde
xOf(search
)==0){
var
ul=
do
cu
m
ent
.create
Element
("ul");if(
class_name
)ul.classN
ame=class_
name;
var
li=
do
cu
m
ent
.create
Element
("li");li.
innerHTML=
p.innerHTM
L.replace(
new
RegExp(''+
mdot+'|'+b
ull+'|--li
st--| 
;',"gi"),'
');ul.appe
ndChild(li
);
var
np=p.nextS
ibling;whi
le(np){if(
np.nodeTyp
e==3&&new
RegExp('^\
\s$','m').
test(np.no
deValue)){
np=np.next
Sibling;co
ntinue
}if(search
==mdot){if
(np.nodeTy
pe==1&&new
RegExp('^o
(\\s+|&nbs
p;)').test
(np.innerH
TML)){if(!
prevul){pr
evul=ul;ul
=
do
cu
m
ent
.create
Element
("ul");pre
vul.append
Child(ul)
}np.innerH
TML=np.inn
erHTML.rep
lace(/^o/,
'')
}else{if(p
revul){ul=
prevul;pre
vul=null
}if(np.nod
eType!=1||
np.innerHT
ML.indexOf
(search)!=
0)break
}}else{if(
np.nodeTyp
e!=1||np.i
nnerHTML.i
ndexOf(sea
rch)!=0)br
eak
}
var
cp=np.next
Sibling;
var
li=
do
cu
m
ent
.create
Element
("li");li.
innerHTML=
np.innerHT
ML.replace
(new
RegExp(''+
mdot+'|'+b
ull+'|--li
st--| 
;',"gi"),'
');np.pare
ntNode.rem
oveChild(n
p);ul.appe
ndChild(li
);np=cp
}p.parentN
ode.replac
eChild(ul,
p);return
true
}}return
false
},_clipboa
rdHTML:fun
ction(){va
r
div=docume
nt.getElem
entById('_
TinyMCE_cl
ipboardHTM
L');if(!di
v){var
div=docume
nt.createE
lement('DI
V');div.id
='_TinyMCE
_clipboard
HTML';with
(div.style
){visibili
ty='hidden
';overflow
='hidden';
position='
absolute';
width=1;he
ight=1
}document.
body.appen
dChild(div
)
}div.inner
HTML='';va
r
rng=docume
nt.body.cr
eateTextRa
nge();rng.
moveToElem
entText(di
v);rng.exe
cCommand('
Paste');va
r
html=div.i
nnerHTML;d
iv.innerHT
ML='';retu
rn
html
}}
;tiny
MCE
.
add
Plugin
(
"
paste
"
,
T
iny
MCE_
PastePlugi
n);
|
|
1 |
|
(func
ti
o
n
(){var
E
vent=t
i
ny
m
ce.d
o
m.Event;
t
in
ymc
e
.
c
re
a
te
(
'
t
iny
mce.plugin
s.
PastePlugi
n
',
{
i
n
it
:function(
e
d,
ur
l
){v
a
r
t
=
t
his;t.
e
di
t
or
=e
d
;ed.
a
ddC
o
mmand(
'
m
c
e
Pa
ste
Text
',
f
u
n
c
t
i
o
n
(
u
i
,v){
i
f(u
i
){
e
d
.
w
ind
owManag
e
r
.
o
p
e
n
({fi
l
e:
u
rl+'
/paste
t
e
x
t
.
ht
m
',w
i
dth:450,h
e
i
ght:400
,in
l
i
n
e:
1},
{
plug
in
_
u
r
l
:
u
rl});}
e
lse
t
.
_
ins
er
t
T
e
x
t
(
v.h
t
ml
,
v.l
in
ebre
a
k
s
);});
e
d
.
addComm
and
('mc
ePaste
Wor
d
',
function(
ui,v
){if(
u
i
){
e
d.w
in
dow
M
ana
ge
r
.o
p
e
n({fi
le
:
u
rl+'/
paste
w
o
r
d
.
h
t
m',
wi
d
th:450,h
e
igh
t
:400,
i
nlin
e
:1},{pl
u
g
in
_url:url})
;}
el
s
e
t
._ins
e
rtWor
d
Co
n
t
e
n
t(v);});
e
d
.
add
Command(
'
mce
S
e
l
e
c
t
All
',
f
u
n
c
ti
o
n
(
)
{
e
d.
e
x
e
c
C
o
mma
n
d
(
'
s
e
l
e
c
t
all');});
e
d
.
add
Button
(
'
paste
text
',
{
t
i
t
l
e
:'pa
s
te.
paste
_
text
_desc
',
cmd:
'mcePasteT
ext',
ui:
true
}
);
e
d
.
add
Button
(
'
paste
word
',
{
t
i
t
l
e
:'pa
s
te.
paste
_
word
_desc
',
cmd:
'mcePasteW
ord',
ui:
true
}
);
e
d
.
add
Button
(
'
selectall
',
{
t
i
t
l
e
:'pa
s
te.
selectall
_desc
',
cmd:
'mceSelect
All'
}
);if(ed.g
et
Pa
r
a
m
("p
a
s
t
e
_au
to
_
c
le
an
u
p
_
o
n
_p
a
st
e
"
,
f
al
s
e)
)
{
ed.onPa
s
t
e.add
(
fun
c
ti
o
n
(e
d
,e
){
r
e
turn
t._handl
ePaste
Ev
e
nt
(
e)
});}
if(
!
tiny
mce
.is
IE&&
e
d
.getParam(
"
paste_
a
ut
o
_c
l
e
a
n
up
_
o
n
_
p
a
s
t
e
"
,
fa
lse
))
{
e
d.o
n
K
e
yDo
w
n.
a
dd
(
f
u
n
c
t
ion(
e
d,
e
){if(
e
.
c
t
r
l
K
e
y&&
e
.k
e
y
C
o
d
e
==86){w
indow
.s
e
t
T
i
m
e
o
u
t
(func
t
i
o
n
(){
e
d.
e
x
e
c
C
o
mm
a
n
d(
"
mce
Paste
Text
"
,
t
r
u
e
);
},1);Ev
e
nt
.
ca
n
ce
l(
e
);}});}},g
etInf
o
:
f
u
n
c
ti
o
n
(
)
{r
et
u
r
n{longn
am
e:
'
P
aste
t
e
xt/w
o
rd
',
a
u
t
h
or
:'M
o
x
i
e
c
o
d
e
Sy
s
tem
s
A
B
'
,
a
u
t
h
or
ur
l
:
'
h
t
t
p
://
tiny
mce
.
m
o
x
i
ec
o
d
e
.co
m
'
,
i
nf
o
u
r
l
:
'h
t
t
p
://w
i
ki.mo
x
i
e
c
o
d
e
.
c
o
m/
in
d
e
x.php/
TinyMCE
:
Plugin
s
/pas
t
e',ve
r
si
on
:
t
i
n
ymc
e
.majo
r
V
e
r
s
ion+
"
.
"
+
tiny
m
ce
.
m
i
n
or
V
e
r
sio
n
}
;
},_handleP
asteEvent:
function(e
){
var
html=
t
h
i
s
._clipboar
dHTML()
,
ed
=t
h
i
s
.
editor,
sel
=
ed
.
s
elec
t
io
n
,r
;if(
ed
&&(r=
s
el
.getRng())
&&r.text.l
ength>0)
ed
.execComma
nd('delete
');if(html
&&html.len
gth>0)
ed
.execComma
nd('mcePas
teWord',fa
lse,html);
re
t
ur
n
E
vent
.cancel
(e);
},_insertT
ext:functi
on(content
,bLinebrea
ks){if(con
tent&&cont
ent.length
>0){if(bLi
nebreaks){
if(t
h
i
s.editor
.getParam(
"paste_cre
ate_paragr
aphs",true
)){var
rl=t
h
i
s.editor
.getParam(
"paste_rep
lace_list"
,'\u2122,<
sup>TM</su
p>,\u2026,
...,\u201c
|\u201d,",
\u2019,\',
\u2013|\u2
014|\u2015
|\u2212,-'
).split(',
');for(var
i=0;i<rl.l
ength;i+=2
)content=c
ontent.rep
lace(new
RegExp(rl[
i],'gi'),r
l[i+1]);co
ntent=
con
t
e
n
t
.re
place(
/
\r\n\r\n
/g
,
'
</p><p>
'
);content=
con
t
e
n
t
.re
place(
/
\r\r
/g
,
'
</p><p>
'
);content=
con
t
e
n
t
.re
place(
/
\n\n
/g
,
'
</p><p>
'
);if((pos=
content.in
dexOf('</p
><p>'))!=-
1){t
h
i
s.editor
.execComma
nd("Delete
");var
node=t
h
i
s.editor
.select
io
n
.get
N
o
d
e
();var
breakElms=
[]
;do{if(nod
e.nodeType
==1){if(no
de.nodeNam
e=="TD"||n
ode.nodeNa
me=="BODY"
)break;bre
akElms[bre
akElms.len
gth]=node
;
}}while(no
de=node.pa
rentNode);
var
before="",
after="</p
>";before+
=content.s
ubstring(0
,pos);for(
var
i=0;i<brea
kElms.leng
th;i++){be
fore+="</"
+breakElms
[i].nodeNa
me+">";aft
er+="<"+br
eakElms[(b
reakElms.l
ength-1)-i
].nodeName
+">"
;
}before+="
<p>";conte
nt=before+
content.su
bstring(po
s+7)+after
;
}}if(t
h
i
s.editor
.getParam(
"paste_cre
ate_linebr
eaks",true
)){content
=
con
t
e
n
t
.re
place(
/
\r\n
/g
,
'
<br
/>
'
);content=
con
t
e
n
t
.re
place(
/
\r
/g
,
'
<br
/>
'
);content=
con
t
e
n
t
.re
place(
/
\n
/g
,
'
<br
/>
'
)
;
}}t
h
i
s.editor
.execComma
nd("mceIns
ertRawHTML
",false,co
ntent)
;
}},_insert
WordConten
t:function
(content){
var
t=this,ed=
t.editor;
if(content
&&content.
length>0){
var
bull=Strin
g.fromChar
Code(8226)
;var
middot=Str
ing.fromCh
arCode(183
);
if(
ed
.getParam(
'
paste_inse
rt_word_co
ntent_call
back
'
)
)content=e
d.execC
al
lback
(
'paste_ins
ert_word_
c
ontent_cal
l
b
ack',
'before',c
ontent)
;var
rl=
ed
.getParam(
"paste_rep
lace_list"
,'\u2122,<
sup>TM</su
p>,\u2026,
...,\u201c
|\u201d,",
\u2019,\',
\u2013|\u2
014|\u2015
|\u2212,-'
).split(',
');for(var
i=0;i<rl.l
ength;i+=2
)content=c
ontent.rep
lace(new
RegExp(rl[
i],'gi'),r
l[i+1]);if
(t
h
i
s.editor
.getParam(
"paste_con
vert_heade
rs_to_stro
ng",false)
){content=
content.re
place(new
RegExp('<p
class=MsoH
eading.*?>
(.*?)<\/p>
','gi'),'<
p><b>$1</b
></p>')
;
}content=c
ontent.rep
lace(new
RegExp('ta
b-stops:
list
[0-9]+.0pt
">','gi'),
'">'+"--li
st--");con
tent=conte
nt.replace
(new
RegExp(bul
l+"(.*?)<B
R>","gi"),
"<p>"+midd
ot+"$1</p>
");content
=content.r
eplace(new
RegExp('<S
PAN
style="mso
-list:
Ignore">',
'gi'),"<sp
an>"+bull)
;content=c
ontent.rep
lace(/<o:p
><\/o:p>/g
i,"");cont
ent=conten
t.replace(
new
RegExp('<b
r
style="pag
e-break-be
fore:
always;.*>
','gi'),'-
-
page
break
--');conte
nt=content
.replace(n
ew
RegExp('<(
!--)([^>]*
)(--)>','g
'),"");if(
t
h
i
s.editor
.getParam(
"paste_rem
ove_spans"
,true))con
tent=conte
nt.replace
(/<\/?span
[^>]*>/gi,
"");if(t
h
i
s.editor
.getParam(
"paste_rem
ove_styles
",true))co
ntent=cont
ent.replac
e(new
RegExp('<(
\\w[^>]*)
style="([^
"]*)"([^>]
*)','gi'),
"<$1$3");c
ontent=con
tent.repla
ce(/<\/?fo
nt[^>]*>/g
i,"");swit
ch(t
h
i
s.editor
.getParam(
"paste_str
ip_class_a
ttributes"
,"all")){c
ase"all":c
ontent=con
tent.repla
ce(/<(\w[^
>]*)
class=([^
|>]*)([^>]
*)/gi,"<$1
$3");break
;case"mso"
:content=c
ontent.rep
lace(new
RegExp('<(
\\w[^>]*)
class="?ms
o([^
|>]*)([^>]
*)','gi'),
"<$1$3");b
reak
;
}content=c
ontent.rep
lace(new
RegExp('hr
ef="?'+
t
h
i
s
._reEscape
(""+docume
nt.locatio
n)+'','gi'
),'href="'
+t
h
i
s
.
e
d
i
tor.
document
B
ase
URI.getURI
()
);content=
content.re
place(/<(\
w[^>]*)
lang=([^
|>]*)([^>]
*)/gi,"<$1
$3");conte
nt=content
.replace(/
<\\?\?xml[
^>]*>/gi,"
");content
=content.r
eplace(/<\
/?\w+:[^>]
*>/gi,"");
content=co
ntent.repl
ace(/--
page
break
--\s*<p>&n
bsp;<\/p>/
gi,"");con
tent=conte
nt.replace
(/--
page
break
--/gi,"");
if(!t
h
i
s
.
e
d
i
tor.
g
etParam(
'force_p_n
ewlines'
)
){content=
content.re
place('','
','gi');co
ntent=cont
ent.replac
e('</p>','
<br
/><br
/>','gi')
;
}if(!tiny
mce
.is
IE&&!t
h
i
s
.
e
d
i
tor.
g
etParam(
'force_p_n
ewlines'
)
){content=
content.re
place(/<\/
?p[^>]*>/g
i,"")
;
}content=c
ontent.rep
lace(/<\/?
div[^>]*>/
gi,"");if(
t
h
i
s.editor
.getParam(
"paste_con
vert_middo
t_lists",t
rue)){var
div=
ed.
do
m
.create
("div"
,
n
ull,
content
)
;var
className=
t
h
i
s.editor
.getParam(
"paste_uni
ndented_li
st_class",
"unIndente
dList");wh
ile(
t
h
i
s
._convertM
iddots(div
,"--list--
"));while(
t
h
i
s
._convertM
iddots(div
,middot,cl
assName));
while(
t
h
i
s
._convertM
iddots(div
,bull));co
ntent=div.
innerHTML
;
}if(t
h
i
s.editor
.getParam(
"paste_con
vert_heade
rs_to_stro
ng",false)
){content=
content.re
place(/<h[
1-6]> 
;<\/h[1-6]
>/gi,'<p>&
nbsp; 
;</p>');co
ntent=cont
ent.replac
e(/<h[1-6]
>/gi,'<p><
b>');conte
nt=content
.replace(/
<\/h[1-6]>
/gi,'</b><
/p>');cont
ent=conten
t.replace(
/<b>
<\/b>/gi,'
<b> &
nbsp;</b>'
);content=
content.re
place(/^(&
nbsp;)*/gi
,'')
;
}content=c
ontent.rep
lace(/--li
st--/gi,""
);if(
ed
.getParam(
'
paste_inse
rt_word_co
ntent_call
back
'
)
)content=e
d.execC
al
lback
(
'paste_ins
ert_word_
c
ontent_cal
l
b
ack',
'after',co
ntent)
;t
h
i
s.editor
.execComma
nd("mceIns
ertContent
",false,co
ntent);if(
t
h
i
s.editor
.getParam(
'paste_for
ce_cleanup
_wordpaste
',true))
{var
ed=this.ed
itor;
window.set
Timeout(
func
ti
o
n
(){ed
.execComma
nd("mceCle
anup");
}
,1);}}
}
,_reEscape
:function(
s){var
l="?.\\*[]
(){}+^$:";
var
o="";for(v
ar
i=0;i<s.le
ngth;i++){
var
c=s.charAt
(i);if(l.i
ndexOf(c)!
=-1)o+='\\
'+c;else
o+=c
;
}return
o
;
},_convert
Middots:fu
nction(div
,search,cl
ass_name){
var
ed=this.ed
itor,
mdot=Strin
g.fromChar
Code(183)
,
bull=Strin
g.fromChar
Code(8226)
;var
nodes
,prevul,i,
p,ul,li,np
,cp,li;nod
es
=div.getEl
ementsByTa
gName("p")
;
for(
i=0;i<node
s.length;i
++){
p=nodes[i]
;if(p.inne
rHTML.inde
xOf(search
)==0){
ul=
ed.
do
m
.create
("ul");if(
class_name
)ul.classN
ame=class_
name;
li=
ed.
do
m
.create
("li");li.
innerHTML=
p.innerHTM
L.replace(
new
RegExp(''+
mdot+'|'+b
ull+'|--li
st--| 
;',"gi"),'
');ul.appe
ndChild(li
);
np=p.nextS
ibling;whi
le(np){if(
np.nodeTyp
e==3&&new
RegExp('^\
\s$','m').
test(np.no
deValue)){
np=np.next
Sibling;co
ntinue
;
}if(search
==mdot){if
(np.nodeTy
pe==1&&new
RegExp('^o
(\\s+|&nbs
p;)').test
(np.innerH
TML)){if(!
prevul){pr
evul=ul;ul
=
ed.
do
m
.create
("ul");pre
vul.append
Child(ul)
;
}np.innerH
TML=np.inn
erHTML.rep
lace(/^o/,
'')
;
}else{if(p
revul){ul=
prevul;pre
vul=null
;
}if(np.nod
eType!=1||
np.innerHT
ML.indexOf
(search)!=
0)break
;
}}else{if(
np.nodeTyp
e!=1||np.i
nnerHTML.i
ndexOf(sea
rch)!=0)br
eak
;
}
cp=np.next
Sibling;
li=
ed.
do
m
.create
("li");li.
innerHTML=
np.innerHT
ML.replace
(new
RegExp(''+
mdot+'|'+b
ull+'|--li
st--| 
;',"gi"),'
');np.pare
ntNode.rem
oveChild(n
p);ul.appe
ndChild(li
);np=cp
;
}p.parentN
ode.replac
eChild(ul,
p);return
true
;
}}return
false
;
},_clipboa
rdHTML:fun
ction(){va
r
div=docume
nt.getElem
entById('_
TinyMCE_cl
ipboardHTM
L');if(!di
v){var
div=docume
nt.createE
lement('DI
V');div.id
='_TinyMCE
_clipboard
HTML';with
(div.style
){visibili
ty='hidden
';overflow
='hidden';
position='
absolute';
width=1;he
ight=1
;
}document.
body.appen
dChild(div
)
;
}div.inner
HTML='';va
r
rng=docume
nt.body.cr
eateTextRa
nge();rng.
moveToElem
entText(di
v);rng.exe
cCommand('
Paste');va
r
html=div.i
nnerHTML;d
iv.innerHT
ML='';retu
rn
html
;
}}
)
;tiny
mce
.
Plugin
Manager.ad
d
(
'
paste
'
,
t
iny
mce.plugin
s.
PastePlugi
n);
})();
|