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