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