1a919807595aefc358db69f17b25910a30ca5f5f
2 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3 For licensing, see LICENSE.html or http://ckeditor.com/license
6 (function(){var a
=CKEDITOR
.htmlParser
.fragment
.prototype,b
=CKEDITOR
.htmlParser
.element
.prototype;a
.onlyChild
=b
.onlyChild=function(){var u
=this.children
,v
=u
.length
,w
=v
==1&&u
[0];return w
||null;};b
.removeAnyChildWithName=function(u
){var v
=this.children
,w
=[],x
;for(var y
=0;y
<v
.length
;y
++){x
=v
[y
];if(!x
.name
)continue;if(x
.name
==u
){w
.push(x
);v
.splice(y
--,1);}w
=w
.concat(x
.removeAnyChildWithName(u
));}return w
;};b
.getAncestor=function(u
){var v
=this.parent
;while(v
&&!(v
.name
&&v
.name
.match(u
)))v
=v
.parent
;return v
;};a
.firstChild
=b
.firstChild=function(u
){var v
;for(var w
=0;w
<this.children
.length
;w
++){v
=this.children
[w
];if(u(v
))return v
;else if(v
.name
){v
=v
.firstChild(u
);if(v
)return v
;}}return null;};b
.addStyle=function(u
,v
,w
){var A
=this;var x
,y
='';if(typeof v
=='string')y
+=u
+':'+v
+';';else{if(typeof u
=='object')for(var z
in u
){if(u
.hasOwnProperty(z
))y
+=z
+':'+u
[z
]+';';}else y
+=u
;w
=v
;}if(!A
.attributes
)A
.attributes
={};x
=A
.attributes
.style
||'';x
=(w
?[y
,x
]:[x
,y
]).join(';');A
.attributes
.style
=x
.replace(/^;|;(?=;)/,'');};CKEDITOR
.dtd
.parentOf=function(u
){var v
={};for(var w
in this){if(w
.indexOf('$')==-1&&this[w
][u
])v
[w
]=1;}return v
;};function c(u
){var v
=u
.children
,w
,x
,y
=u
.children
.length
,z
,A
,B
=/list-style-type:(.*?)(?:;|$)/,C
=CKEDITOR
.plugins
.pastefromword
.filters
.stylesFilter
;x
=u
.attributes
;if(B
.exec(x
.style
))return;for(var D
=0;D
<y
;D
++){w
=v
[D
];if(w
.attributes
.value
&&Number(w
.attributes
.value
)==D
+1)delete w
.attributes
.value
;z
=B
.exec(w
.attributes
.style
);if(z
)if(z
[1]==A
||!A
)A
=z
[1];else{A
=null;break;}}if(A
){for(D
=0;D
<y
;D
++){x
=v
[D
].attributes
;x
.style
&&(x
.style
=C([['list-style-type']])(x
.style
)||'');}u
.addStyle('list-style-type',A
);}};var d
=/^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i,e
=/^(?:\b0[^\s]*\s*){1,4}$/,f
='^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$',g
=new RegExp(f
),h
=new RegExp(f
.toUpperCase()),i
={decimal:/\d+/,'lower-roman':g
,'upper-roman':h
,'lower-alpha':/^[a-z]+$/,'upper-alpha':/^[A-Z]+$/},j
={disc
:/[l\u00B7\u2002]/,circle
:/[\u006F\u00D8]/,square
:/[\u006E\u25C6]/},k
={ol
:i
,ul
:j
},l
=[[1000,'M'],[900,'CM'],[500,'D'],[400,'CD'],[100,'C'],[90,'XC'],[50,'L'],[40,'XL'],[10,'X'],[9,'IX'],[5,'V'],[4,'IV'],[1,'I']],m
='ABCDEFGHIJKLMNOPQRSTUVWXYZ';function n(u
){u
=u
.toUpperCase();var v
=l
.length
,w
=0;for(var x
=0;x
<v
;++x
)for(var y
=l
[x
],z
=y
[1].length
;u
.substr(0,z
)==y
[1];u
=u
.substr(z
))w
+=y
[0];return w
;};function o(u
){u
=u
.toUpperCase();var v
=m
.length
,w
=1;for(var x
=1;u
.length
>0;x
*=v
){w
+=m
.indexOf(u
.charAt(u
.length
-1))*x
;u
=u
.substr(0,u
.length
-1);}return w
;
7 };var p
=0,q
=null,r
,s
=CKEDITOR
.plugins
.pastefromword
={utils
:{createListBulletMarker:function(u
,v
){var w
=new CKEDITOR
.htmlParser
.element('cke:listbullet');w
.attributes
={'cke:listsymbol':u
[0]};w
.add(new CKEDITOR
.htmlParser
.text(v
));return w
;},isListBulletIndicator:function(u
){var v
=u
.attributes
&&u
.attributes
.style
;if(/mso-list\s*:\s*Ignore/i.test(v
))return true;},isContainingOnlySpaces:function(u
){var v
;return(v
=u
.onlyChild())&&/^(:?\s| )+$/.test(v
.value
);},resolveList:function(u
){var v
=u
.attributes
,w
;if((w
=u
.removeAnyChildWithName('cke:listbullet'))&&w
.length
&&(w
=w
[0])){u
.name
='cke:li';if(v
.style
)v
.style
=s
.filters
.stylesFilter([['text-indent'],['line-height'],[/^margin(:?-left)?$/,null,function(x
){var y
=x
.split(' ');x
=CKEDITOR
.tools
.convertToPx(y
[3]||y
[1]||y
[0]);if(!p
&&q
!==null&&x
>q
)p
=x
-q
;q
=x
;v
['cke:indent']=p
&&Math
.ceil(x
/p)+1||1;}],[/^mso
-list
$/,null,function(x){x=x.split(' ');var y=Number(x[0].match(/\d
+/)),z=Number(x[1].match(/\d
+/));if(z==1){y!==r&&(v['cke:reset']=1);r=y;}v['cke:indent']=z;}]])(v.style,u)||'';if(!v['cke:indent']){q=0;v['cke:indent']=1;}CKEDITOR.tools.extend(v,w.attributes);return true;}else r=q=p=null;return false;},getStyleComponents:(function(){var u=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(u);return function(v,w,x){u.setStyle(v,w);var y={},z=x.length;for(var A=0;A<z;A++)y[x[A]]=u.getStyle(x[A]);return y;};})(),listDtdParents:CKEDITOR.dtd.parentOf('ol
')},filters:{flattenList:function(u,v){v=typeof v=='number
'?v:1;var w=u.attributes,x;switch(w.type){case 'a
':x='lower
-alpha
';break;case '1':x='decimal';break;}var y=u.children,z;for(var A=0;A<y.length;A++){z=y[A];if(z.name in CKEDITOR.dtd.$listItem){var B=z.attributes,C=z.children,D=C.length,E=C[D-1];if(E.name in CKEDITOR.dtd.$list){u.add(E,A+1);if(!--C.length)y.splice(A--,1);}z.name='cke
:li
';w.start&&!A&&(B.value=w.start);s.filters.stylesFilter([['tab
-stops
',null,function(H){var I=H.split(' ')[1].match(d);I&&(q=CKEDITOR.tools.convertToPx(I[0]));}],v==1?['mso
-list
',null,function(H){H=H.split(' ');var I=Number(H[0].match(/\d+/));I!==r&&(B['cke
:reset
']=1);r=I;}]:null])(B.style);B['cke
:indent
']=v;B['cke
:listtype
']=u.name;B['cke
:list
-style
-type
']=x;}else if(z.name in CKEDITOR.dtd.$list){arguments.callee.apply(this,[z,v+1]);y=y.slice(0,A).concat(z.children).concat(y.slice(A+1));u.children=[];for(var F=0,G=y.length;F<G;F++)u.add(y[F]);}}delete u.name;w['cke
:list
']=1;},assembleList:function(u){var v=u.children,w,x,y,z,A,B,C,D=[],E,F,G,H,I,J;
8 for(var K=0;K<v.length;K++){w=v[K];if('cke
:li
'==w.name){w.name='li
';x=w;y=x.attributes;G=y['cke
:listsymbol
'];G=G&&G.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);H=I=J=null;if(y['cke
:ignored
']){v.splice(K--,1);continue;}y['cke
:reset
']&&(C=A=B=null);z=Number(y['cke
:indent
']);if(z!=A)F=E=null;if(!G){H=y['cke
:listtype
']||'ol
';I=y['cke
:list
-style
-type
'];}else{if(F&&k[F][E].test(G[1])){H=F;I=E;}else for(var L in k)for(var M in k[L]){if(k[L][M].test(G[1]))if(L=='ol
'&&/alpha|roman/.test(M)){var N=/roman/.test(M)?n(G[1]):o(G[1]);if(!J||N<J){J=N;H=L;I=M;}}else{H=L;I=M;break;}}!H&&(H=G[2]?'ol
':'ul
');}F=H;E=I||(H=='ol
'?'decimal':'disc
');if(I&&I!=(H=='ol
'?'decimal':'disc
'))x.addStyle('list
-style
-type
',I);if(H=='ol
'&&G){switch(I){case 'decimal':J=Number(G[1]);break;case 'lower
-roman
':case 'upper
-roman
':J=n(G[1]);break;case 'lower
-alpha
':case 'upper
-alpha
':J=o(G[1]);break;}x.attributes.value=J;}if(!C){D.push(C=new CKEDITOR.htmlParser.element(H));C.add(x);v[K]=C;}else{if(z>A){D.push(C=new CKEDITOR.htmlParser.element(H));C.add(x);B.add(C);}else if(z<A){var O=A-z,P;while(O--&&(P=C.parent))C=P.parent;C.add(x);}else C.add(x);v.splice(K--,1);}B=x;A=z;}else if(C)C=A=B=null;}for(K=0;K<D.length;K++)c(D[K]);C=A=B=r=q=p=null;},falsyFilter:function(u){return false;},stylesFilter:function(u,v){return function(w,x){var y=[];(w||'').replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(A,B,C){B=B.toLowerCase();B=='font-family'&&(C=C.replace(/["']/g,''));var D,E,F,G;for(var H=0;H<u.length;H++){if(u[H]){D=u[H][0];E=u[H][1];F=u[H][2];G=u[H][3];if(B.match(D)&&(!E||C.match(E))){B=G||B;v&&(F=F||C);if(typeof F=='function')F=F(C,x,B);if(F&&F.push)B=F[0],F=F[1];if(typeof F=='string
')y.push([B,F]);return;}}}!v&&y.push([B,C]);});for(var z=0;z<y.length;z++)y[z]=y[z].join(':');return y.length?y.join(';')+';':false;};},elementMigrateFilter:function(u,v){return function(w){var x=v?new CKEDITOR.style(u,v)._.definition:u;w.name=x.element;CKEDITOR.tools.extend(w.attributes,CKEDITOR.tools.clone(x.attributes));w.addStyle(CKEDITOR.style.getStyleText(x));};},styleMigrateFilter:function(u,v){var w=this.elementMigrateFilter;return function(x,y){var z=new CKEDITOR.htmlParser.element(null),A={};A[v]=x;w(u,A)(z);z.children=y.children;y.children=[z];};},bogusAttrFilter:function(u,v){if(v.name.indexOf('cke
:')==-1)return false;},applyStyleFilter:null},getRules:function(u){var v=CKEDITOR.dtd,w=CKEDITOR.tools.extend({},v.$block,v.$listItem,v.$tableContent),x=u.config,y=this.filters,z=y.falsyFilter,A=y.stylesFilter,B=y.elementMigrateFilter,C=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),D=this.utils.createListBulletMarker,E=y.flattenList,F=y.assembleList,G=this.utils.isListBulletIndicator,H=this.utils.isContainingOnlySpaces,I=this.utils.resolveList,J=function(O){O=CKEDITOR.tools.convertToPx(O);
9 return isNaN(O)?O:O+'px
';},K=this.utils.getStyleComponents,L=this.utils.listDtdParents,M=x.pasteFromWordRemoveFontStyles!==false,N=x.pasteFromWordRemoveStyles!==false;return{elementNames:[[/meta|link|script/,'']],root:function(O){O.filterChildren();F(O);},elements:{'^':function(O){var P;if(CKEDITOR.env.gecko&&(P=y.applyStyleFilter))P(O);},$:function(O){var P=O.name||'',Q=O.attributes;if(P in w&&Q.style)Q.style=A([[/^(:?width|height)$/,null,J]])(Q.style)||'';if(P.match(/h\d/)){O.filterChildren();if(I(O))return;B(x['format_
'+P])(O);}else if(P in v.$inline){O.filterChildren();if(H(O))delete O.name;}else if(P.indexOf(':')!=-1&&P.indexOf('cke
')==-1){O.filterChildren();if(P=='v
:imagedata
'){var R=O.attributes['o
:href
'];if(R)O.attributes.src=R;O.name='img
';return;}delete O.name;}if(P in L){O.filterChildren();F(O);}},style:function(O){if(CKEDITOR.env.gecko){var P=O.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/),Q=P&&P[1],R={};if(Q){Q.replace(/[\n\r]/g,'').replace(/(.+?)\{(.+?)\}/g,function(S,T,U){T=T.split(',');var V=T.length,W;for(var X=0;X<V;X++)CKEDITOR.tools.trim(T[X]).replace(/^(\w+)(\.[\w-]+)?$/g,function(Y,Z,aa){Z=Z||'*';aa=aa.substring(1,aa.length);if(aa.match(/MsoNormal/))return;if(!R[Z])R[Z]={};if(aa)R[Z][aa]=U;else R[Z]=U;});});y.applyStyleFilter=function(S){var T=R['*']?'*':S.name,U=S.attributes&&S.attributes['class'],V;if(T in R){V=R[T];if(typeof V=='object
')V=V[U];V&&S.addStyle(V,true);}};}}return false;},p:function(O){if(/MsoListParagraph/.exec(O.attributes['class'])){var P=O.firstChild(function(S){return S.type==CKEDITOR.NODE_TEXT&&!H(S.parent);}),Q=P&&P.parent,R=Q&&Q.attributes;R&&!R.style&&(R.style='mso
-list
: Ignore
;');}O.filterChildren();if(I(O))return;if(x.enterMode==CKEDITOR.ENTER_BR){delete O.name;O.add(new CKEDITOR.htmlParser.element('br
'));}else B(x['format_
'+(x.enterMode==CKEDITOR.ENTER_P?'p
':'div
')])(O);},div:function(O){var P=O.onlyChild();if(P&&P.name=='table
'){var Q=O.attributes;P.attributes=CKEDITOR.tools.extend(P.attributes,Q);Q.style&&P.addStyle(Q.style);var R=new CKEDITOR.htmlParser.element('div
');R.addStyle('clear
','both
');O.add(R);delete O.name;}},td:function(O){if(O.getAncestor('thead
'))O.name='th
';},ol:E,ul:E,dl:E,font:function(O){if(G(O.parent)){delete O.name;return;}O.filterChildren();var P=O.attributes,Q=P.style,R=O.parent;if('font
'==R.name){CKEDITOR.tools.extend(R.attributes,O.attributes);Q&&R.addStyle(Q);delete O.name;}else{Q=Q||'';if(P.color){P.color!='#000000'&&(Q+='color
:'+P.color+';');delete P.color;
10 }if(P.face){Q+='font
-family
:'+P.face+';';delete P.face;}if(P.size){Q+='font
-size
:'+(P.size>3?'large
':P.size<3?'small
':'medium
')+';';delete P.size;}O.name='span
';O.addStyle(Q);}},span:function(O){if(G(O.parent))return false;O.filterChildren();if(H(O)){delete O.name;return null;}if(G(O)){var P=O.firstChild(function(Y){return Y.value||Y.name=='img
';}),Q=P&&(P.value||'l
.'),R=Q&&Q.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);if(R){var S=D(R,Q),T=O.getAncestor('span
');if(T&&/ mso-hide:\s*all|display:\s*none /.test(T.attributes.style))S.attributes['cke
:ignored
']=1;return S;}}var U=O.children,V=O.attributes,W=V&&V.style,X=U&&U[0];if(W)V.style=A([['line
-height
'],[/^font-family$/,null,!M?C(x.font_style,'family
'):null],[/^font-size$/,null,!M?C(x.fontSize_style,'size
'):null],[/^color$/,null,!M?C(x.colorButton_foreStyle,'color
'):null],[/^background-color$/,null,!M?C(x.colorButton_backStyle,'color
'):null]])(W,O)||'';return null;},b:B(x.coreStyles_bold),i:B(x.coreStyles_italic),u:B(x.coreStyles_underline),s:B(x.coreStyles_strike),sup:B(x.coreStyles_superscript),sub:B(x.coreStyles_subscript),a:function(O){var P=O.attributes;if(P&&!P.href&&P.name)delete O.name;else if(CKEDITOR.env.webkit&&P.href&&P.href.match(/file:\/\/\/[\S]+#/i))P.href=P.href.replace(/file:\/\/\/[^#]+/i,'');},'cke
:listbullet
':function(O){if(O.getAncestor(/h\d/)&&!x.pasteFromWordNumberedHeadingToList)delete O.name;}},attributeNames:[[/^onmouse(:?out|over)/,''],[/^onload$/,''],[/(?:v|o):\w+/,''],[/^lang/,'']],attributes:{style:A(N?[[/^list-style-type$/,null],[/^margin$|^margin-(?!bottom|top)/,null,function(O,P,Q){if(P.name in {p:1,div:1}){var R=x.contentsLangDirection=='ltr
'?'margin
-left
':'margin
-right
';if(Q=='margin
')O=K(Q,O,[R])[R];else if(Q!=R)return null;if(O&&!e.test(O))return[R,O];}return null;}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(O,P){if(P.name=='img
')return O;}],[/^width|height$/,null,function(O,P){if(P.name in {table:1,td:1,th:1,img:1})return O;}]]:[[/^mso-/],[/-color$/,null,function(O){if(O=='transparent
')return false;if(CKEDITOR.env.gecko)return O.replace(/-moz-use-text-color/g,'transparent
');}],[/^margin$/,e],['text
-indent
','0cm
'],['page
-break-before
'],['tab
-stops
'],['display
','none
'],M?[/font-?/]:null],N),width:function(O,P){if(P.name in v.$tableContent)return false;},border:function(O,P){if(P.name in v.$tableContent)return false;},'class':z,bgcolor:z,valign:N?z:function(O,P){P.addStyle('vertical
-align
',O);return false;}},comment:!CKEDITOR.env.ie?function(O,P){var Q=O.match(/<img.*?>/),R=O.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);
11 if(R){var S=R[1]||Q&&'l
.',T=S&&S.match(/>(?:[(]?)([^\s]+?)([.)]?)</);return D(T,S);}if(CKEDITOR.env.gecko&&Q){var U=CKEDITOR.htmlParser.fragment.fromHtml(Q[0]).children[0],V=P.previous,W=V&&V.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/),X
=W
&&W
[1];X
&&(U
.attributes
.src
=X
);return U
;}return false;}:z
};}},t=function(){this.dataFilter
=new CKEDITOR
.htmlParser
.filter();};t
.prototype={toHtml:function(u
){var v
=CKEDITOR
.htmlParser
.fragment
.fromHtml(u
,false),w
=new CKEDITOR
.htmlParser
.basicWriter();v
.writeHtml(w
,this.dataFilter
);return w
.getHtml(true);}};CKEDITOR
.cleanWord=function(u
,v
){if(CKEDITOR
.env
.gecko
)u
=u
.replace(/(<!--\[if[^<]*?\])-->([\S\s]*?)<!--(\[endif\]-->)/gi,'$1$2$3');var w
=new t(),x
=w
.dataFilter
;x
.addRules(CKEDITOR
.plugins
.pastefromword
.getRules(v
));v
.fire('beforeCleanWord',{filter
:x
});try{u
=w
.toHtml(u
,false);}catch(y
){alert(v
.lang
.pastefromword
.error
);}u
=u
.replace(/cke:.*?".*?"/g,'');u
=u
.replace(/style=""/g,'');u
=u
.replace(/<span>/g,'');return u
;};})();