Changeset 29203
- Timestamp:
- 07/17/2014 12:58:41 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/tinymce/plugins/image/plugin.js
r28768 r29203 217 217 } 218 218 219 function srcChange() { 219 function srcChange(e) { 220 var meta = e.meta || {}; 221 220 222 if (imageListCtrl) { 221 223 imageListCtrl.value(editor.convertURL(this.value(), 'src')); 222 224 } 223 225 224 getImageSize(this.value(), function(data) { 225 if (data.width && data.height && imageDimensions) { 226 width = data.width; 227 height = data.height; 228 229 win.find('#width').value(width); 230 win.find('#height').value(height); 231 } 232 }); 226 tinymce.each(meta, function(value, key) { 227 win.find('#' + key).value(value); 228 }); 229 230 if (!meta.width && !meta.height) { 231 getImageSize(this.value(), function(data) { 232 if (data.width && data.height && imageDimensions) { 233 width = data.width; 234 height = data.height; 235 236 win.find('#width').value(width); 237 win.find('#height').value(height); 238 } 239 }); 240 } 233 241 } 234 242 … … 298 306 // General settings shared between simple and advanced dialogs 299 307 var generalFormItems = [ 300 {name: 'src', type: 'filepicker', filetype: 'image', label: 'Source', autofocus: true, onchange: srcChange}, 308 { 309 name: 'src', 310 type: 'filepicker', 311 filetype: 'image', 312 label: 'Source', 313 autofocus: true, 314 onchange: srcChange 315 }, 301 316 imageListCtrl 302 317 ]; -
trunk/src/wp-includes/js/tinymce/plugins/image/plugin.min.js
r28768 r29203 1 tinymce.PluginManager.add("image",function(a){function b(a,b){function c(a,c){d.parentNode&&d.parentNode.removeChild(d),b({width:a,height:c})}var d=document.createElement("img");d.onload=function(){c(d.clientWidth,d.clientHeight)},d.onerror=function(){c()};var e=d.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left=0,e.width=e.height="auto",document.body.appendChild(d),d.src=a}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){return function(){var c=a.settings.image_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function e(d){function e(){var a,b,c,d;a=j.find("#width")[0],b=j.find("#height")[0],a&&b&&(c=a.value(),d=b.value(),j.find("#constrain")[0].checked()&&k&&l&&c&&d&&(k!=c?(d=Math.round(c/k*d),b.value(d)):(c=Math.round(d/l*c),a.value(c))),k=c,l=d)}function f(){function b(b){function c(){b.onload=b.onerror=null,a.selection&&(a.selection.select(b),a.nodeChanged())}b.onload=function(){o.width||o.height||!r||(p.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),a.fire("wpNewImageRefresh",{node:b})),c()},b.onerror=c}i(),e(),o=tinymce.extend(o,j.toJSON());var c=o.caption;o.alt||(o.alt=""),""===o.width&&(o.width=null),""===o.height&&(o.height=null),o.style||(o.style=null),o={src:o.src,alt:o.alt,width:o.width,height:o.height,style:o.style,"class":o["class"]},a.undoManager.transact(function(){var d={node:q,data:o,caption:c};return a.fire("wpImageFormSubmit",{imgData:d}),d.cancel?void b(d.node):o.src?(q?p.setAttribs(q,o):(o.id="__mcenew",a.focus(),a.selection.setContent(p.createHTML("img",o)),q=p.get("__mcenew"),p.setAttrib(q,"id",null)),void b(q)):void(q&&(p.remove(q),a.focus(),a.nodeChanged()))})}function g(a){return a&&(a=a.replace(/px$/,"")),a}function h( ){m&&m.value(a.convertURL(this.value(),"src")),b(this.value(),function(a){a.width&&a.height&&r&&(k=a.width,l=a.height,j.find("#width").value(k),j.find("#height").value(l))})}function i(){function b(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a}if(a.settings.image_advtab){var c=j.toJSON(),d=p.parseStyle(c.style);delete d.margin,d["margin-top"]=d["margin-bottom"]=b(c.vspace),d["margin-left"]=d["margin-right"]=b(c.hspace),d["border-width"]=b(c.border),j.find("#style").value(p.serializeStyle(p.parseStyle(p.serializeStyle(d))))}}var j,k,l,m,n,o={},p=a.dom,q=a.selection.getNode(),r=a.settings.image_dimensions!==!1;k=p.getAttrib(q,"width"),l=p.getAttrib(q,"height"),"IMG"!=q.nodeName||q.getAttribute("data-mce-object")||q.getAttribute("data-mce-placeholder")?q=null:(o={src:p.getAttrib(q,"src"),alt:p.getAttrib(q,"alt"),"class":p.getAttrib(q,"class"),width:k,height:l},a.fire("wpLoadImageData",{imgData:{data:o,node:q}})),d&&(m={type:"listbox",label:"Image list",values:c(d,function(b){b.value=a.convertURL(b.value||b.url,"src")},[{text:"None",value:""}]),value:o.src&&a.convertURL(o.src,"src"),onselect:function(a){var b=j.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),j.find("#src").value(a.control.value()).fire("change")},onPostRender:function(){m=this}}),a.settings.image_class_list&&(n={name:"class",type:"listbox",label:"Class",values:c(a.settings.image_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})})})});var s=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:h},m];a.settings.image_description!==!1&&s.push({name:"alt",type:"textbox",label:"Image description"}),r&&s.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),s.push(n),a.fire("wpLoadImageForm",{data:s}),a.settings.image_advtab?(q&&(o.hspace=g(q.style.marginLeft||q.style.marginRight),o.vspace=g(q.style.marginTop||q.style.marginBottom),o.border=g(q.style.borderWidth),o.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(q,"style")))),j=a.windowManager.open({title:"Insert/edit image",data:o,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:i},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:f})):j=a.windowManager.open({title:"Insert/edit image",data:o,body:s,onSubmit:f})}a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:d(e),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),a.addMenuItem("image",{icon:"image",text:"Insert image",onclick:d(e),context:"insert",prependToContext:!0}),a.addCommand("mceImage",d(e))});1 tinymce.PluginManager.add("image",function(a){function b(a,b){function c(a,c){d.parentNode&&d.parentNode.removeChild(d),b({width:a,height:c})}var d=document.createElement("img");d.onload=function(){c(d.clientWidth,d.clientHeight)},d.onerror=function(){c()};var e=d.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left=0,e.width=e.height="auto",document.body.appendChild(d),d.src=a}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){return function(){var c=a.settings.image_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function e(d){function e(){var a,b,c,d;a=j.find("#width")[0],b=j.find("#height")[0],a&&b&&(c=a.value(),d=b.value(),j.find("#constrain")[0].checked()&&k&&l&&c&&d&&(k!=c?(d=Math.round(c/k*d),b.value(d)):(c=Math.round(d/l*c),a.value(c))),k=c,l=d)}function f(){function b(b){function c(){b.onload=b.onerror=null,a.selection&&(a.selection.select(b),a.nodeChanged())}b.onload=function(){o.width||o.height||!r||(p.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),a.fire("wpNewImageRefresh",{node:b})),c()},b.onerror=c}i(),e(),o=tinymce.extend(o,j.toJSON());var c=o.caption;o.alt||(o.alt=""),""===o.width&&(o.width=null),""===o.height&&(o.height=null),o.style||(o.style=null),o={src:o.src,alt:o.alt,width:o.width,height:o.height,style:o.style,"class":o["class"]},a.undoManager.transact(function(){var d={node:q,data:o,caption:c};return a.fire("wpImageFormSubmit",{imgData:d}),d.cancel?void b(d.node):o.src?(q?p.setAttribs(q,o):(o.id="__mcenew",a.focus(),a.selection.setContent(p.createHTML("img",o)),q=p.get("__mcenew"),p.setAttrib(q,"id",null)),void b(q)):void(q&&(p.remove(q),a.focus(),a.nodeChanged()))})}function g(a){return a&&(a=a.replace(/px$/,"")),a}function h(c){var d=c.meta||{};m&&m.value(a.convertURL(this.value(),"src")),tinymce.each(d,function(a,b){j.find("#"+b).value(a)}),d.width||d.height||b(this.value(),function(a){a.width&&a.height&&r&&(k=a.width,l=a.height,j.find("#width").value(k),j.find("#height").value(l))})}function i(){function b(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a}if(a.settings.image_advtab){var c=j.toJSON(),d=p.parseStyle(c.style);delete d.margin,d["margin-top"]=d["margin-bottom"]=b(c.vspace),d["margin-left"]=d["margin-right"]=b(c.hspace),d["border-width"]=b(c.border),j.find("#style").value(p.serializeStyle(p.parseStyle(p.serializeStyle(d))))}}var j,k,l,m,n,o={},p=a.dom,q=a.selection.getNode(),r=a.settings.image_dimensions!==!1;k=p.getAttrib(q,"width"),l=p.getAttrib(q,"height"),"IMG"!=q.nodeName||q.getAttribute("data-mce-object")||q.getAttribute("data-mce-placeholder")?q=null:(o={src:p.getAttrib(q,"src"),alt:p.getAttrib(q,"alt"),"class":p.getAttrib(q,"class"),width:k,height:l},a.fire("wpLoadImageData",{imgData:{data:o,node:q}})),d&&(m={type:"listbox",label:"Image list",values:c(d,function(b){b.value=a.convertURL(b.value||b.url,"src")},[{text:"None",value:""}]),value:o.src&&a.convertURL(o.src,"src"),onselect:function(a){var b=j.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),j.find("#src").value(a.control.value()).fire("change")},onPostRender:function(){m=this}}),a.settings.image_class_list&&(n={name:"class",type:"listbox",label:"Class",values:c(a.settings.image_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})})})});var s=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:h},m];a.settings.image_description!==!1&&s.push({name:"alt",type:"textbox",label:"Image description"}),r&&s.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),s.push(n),a.fire("wpLoadImageForm",{data:s}),a.settings.image_advtab?(q&&(o.hspace=g(q.style.marginLeft||q.style.marginRight),o.vspace=g(q.style.marginTop||q.style.marginBottom),o.border=g(q.style.borderWidth),o.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(q,"style")))),j=a.windowManager.open({title:"Insert/edit image",data:o,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:i},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:f})):j=a.windowManager.open({title:"Insert/edit image",data:o,body:s,onSubmit:f})}a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:d(e),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),a.addMenuItem("image",{icon:"image",text:"Insert image",onclick:d(e),context:"insert",prependToContext:!0}),a.addCommand("mceImage",d(e))}); -
trunk/src/wp-includes/js/tinymce/plugins/media/plugin.js
r28768 r29203 21 21 ]; 22 22 23 var embedChange = (tinymce.Env.ie && tinymce.Env.ie <= 8) ? 'onChange' : 'onInput'; 24 23 25 function guessMime(url) { 24 26 if (url.indexOf('.mp3') != -1) { … … 63 65 function showDialog() { 64 66 var win, width, height, data; 67 65 68 var generalFormItems = [ 66 {name: 'source1', type: 'filepicker', filetype: 'media', size: 40, autofocus: true, label: 'Source'} 69 { 70 name: 'source1', 71 type: 'filepicker', 72 filetype: 'media', 73 size: 40, 74 autofocus: true, 75 label: 'Source', 76 onchange: function(e) { 77 tinymce.each(e.meta, function(value, key) { 78 win.find('#' + key).value(value); 79 }); 80 } 81 } 67 82 ]; 68 83 … … 117 132 width = data.width; 118 133 height = data.height; 134 135 var embedTextBox = { 136 id: 'mcemediasource', 137 type: 'textbox', 138 flex: 1, 139 name: 'embed', 140 value: getSource(), 141 multiline: true, 142 label: 'Source' 143 }; 144 145 function updateValueOnChange() { 146 data = htmlToData( this.value() ); 147 this.parent().parent().fromJSON(data); 148 } 149 150 embedTextBox[embedChange] = updateValueOnChange; 119 151 120 152 win = editor.windowManager.open({ … … 150 182 forId: 'mcemediasource' 151 183 }, 152 { 153 id: 'mcemediasource', 154 type: 'textbox', 155 flex: 1, 156 name: 'embed', 157 value: getSource(), 158 multiline: true, 159 label: 'Source' 160 } 184 embedTextBox 161 185 ] 162 186 } … … 421 445 height: data.height 422 446 }); 423 break;447 break; 424 448 } 425 449 … … 437 461 }); 438 462 } 439 break;463 break; 440 464 441 465 case "iframe": … … 443 467 src: data.source1 444 468 }); 445 break;469 break; 446 470 447 471 case "source": … … 458 482 } 459 483 } 460 break;484 break; 461 485 462 486 case "img": … … 524 548 var specialElements = editor.schema.getSpecialElements(); 525 549 tinymce.each('video audio iframe object'.split(' '), function(name) { 526 specialElements[name] = new RegExp('<\/' + name + '[^>]*>', 'gi');550 specialElements[name] = new RegExp('<\/' + name + '[^>]*>', 'gi'); 527 551 }); 528 552 -
trunk/src/wp-includes/js/tinymce/plugins/media/plugin.min.js
r28768 r29203 1 tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r<i.length;r++)if(-1!==t.indexOf(i[r].filter))return i[r]}function o(){function t(e){var t, a,c,s;t=i.find("#width")[0],a=i.find("#height")[0],c=t.value(),s=a.value(),i.find("#constrain")[0].checked()&&r&&o&&c&&s&&(e.control==t?(s=Math.round(c/r*s),a.value(s)):(c=Math.round(s/o*c),t.value(c))),r=c,o=s}var i,r,o,m,d=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source"}];e.settings.media_alt_source!==!1&&d.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&d.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1&&d.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),m=n(e.selection.getNode()),r=m.width,o=m.height,i=e.windowManager.open({title:"Insert/edit video",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){m=s(this.next().find("#embed").value()),this.fromJSON(m)},items:d},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(c(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},{id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:a(),multiline:!0,label:"Source"}]}],onSubmit:function(){var t,i,r,o;for(t=e.dom.select("img[data-mce-object]"),e.insertContent(c(this.toJSON())),i=e.dom.select("img[data-mce-object]"),r=0;r<t.length;r++)for(o=i.length-1;o>=0;o--)t[r]==i[o]&&i.splice(o,1);e.selection.select(i[0]),e.nodeChanged()}})}function a(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function c(o){var a="";if(!o.source1&&(tinymce.extend(o,s(o.embed)),!o.source1))return"";if(o.source2||(o.source2=""),o.poster||(o.poster=""),o.source1=e.convertURL(o.source1,"source"),o.source2=e.convertURL(o.source2,"source"),o.source1mime=i(o.source1),o.source2mime=i(o.source2),o.poster=e.convertURL(o.poster,"poster"),o.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),tinymce.each(d,function(e){var t,i,r;if(t=e.regex.exec(o.source1)){for(r=e.url,i=0;t[i];i++)r=r.replace("$"+i,function(){return t[i]});o.source1=r,o.type=e.type,o.width=o.width||e.w,o.height=o.height||e.h}}),o.embed)a=m(o.embed,o,!0);else{var c=r(o.source1);c&&(o.type="script",o.width=c.width,o.height=c.height),o.width=o.width||300,o.height=o.height||150,tinymce.each(o,function(t,i){o[i]=e.dom.encode(t)}),"iframe"==o.type?a+='<iframe src="'+o.source1+'" width="'+o.width+'" height="'+o.height+'"></iframe>':"application/x-shockwave-flash"==o.source1mime?(a+='<object data="'+o.source1+'" width="'+o.width+'" height="'+o.height+'" type="application/x-shockwave-flash">',o.poster&&(a+='<img src="'+o.poster+'" width="'+o.width+'" height="'+o.height+'" />'),a+="</object>"):-1!=o.source1mime.indexOf("audio")?e.settings.audio_template_callback?a=e.settings.audio_template_callback(o):a+='<audio controls="controls" src="'+o.source1+'">'+(o.source2?'\n<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==o.type?a+='<script src="'+o.source1+'"></script>':a=e.settings.video_template_callback?e.settings.video_template_callback(o):'<video width="'+o.width+'" height="'+o.height+'"'+(o.poster?' poster="'+o.poster+'"':"")+' controls="controls">\n<source src="'+o.source1+'"'+(o.source1mime?' type="'+o.source1mime+'"':"")+" />\n"+(o.source2?'<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</video>"}return a}function s(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var o=r(i.map.src);if(!o)return;t={type:"script",source1:i.map.src,width:o.width,height:o.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function n(t){return t.getAttribute("data-mce-object")?s(e.serializer.serialize(t,{selection:!0})):{}}function m(e,t,i){function r(e,t){var i,r,o,a;for(i in t)if(o=""+t[i],e.map[i])for(r=e.length;r--;)a=e[r],a.name==i&&(o?(e.map[i]=o,a.value=o):(delete e.map[i],e.splice(r,1)));else o&&(e.push({name:i,value:o}),e.map[i]=o)}var o,a=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,s,n){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(s,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(s,{poster:t.poster,src:""}),t.source2&&r(s,{src:""});break;case"iframe":r(s,{src:t.source1});break;case"source":if(c++,2>=c&&(r(s,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;o=!0}a.start(e,s,n)},end:function(e){if("video"==e&&i)for(var s=1;2>=s;s++)if(t["source"+s]){var n=[];n.map={},s>c&&(r(n,{src:t["source"+s],type:t["source"+s+"mime"]}),a.start("source",n,!0))}if(t.poster&&"object"==e&&i&&!o){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),a.start("img",m,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var d=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var o,a,c,s,n,m,d,u,l=t.length;l--;)if(a=t[l],a.parent&&("script"!=a.name||(u=r(a.attr("src"))))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,u&&(u.width&&a.attr("width",u.width.toString()),u.height&&a.attr("height",u.height.toString())),m=a.attributes,o=m.length;o--;)s=m[o].name,n=m[o].value,"width"!==s&&"height"!==s&&"style"!==s&&(("data"==s||"src"==s)&&(n=e.convertURL(n,s)),c.attr("data-mce-p-"+s,n));d=a.firstChild&&a.firstChild.value,d&&(c.attr("data-mce-html",escape(d)),c.firstChild=null),c.attr({width:a.attr("width")||"300",height:a.attr("height")||("audio"==i?"30":"150"),style:a.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),a.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,o,a,c,s,n,m=e.length;m--;)if(i=e[m],i.parent){for(n=i.attr(t),r=new tinymce.html.Node(n,1),"audio"!=n&&"script"!=n&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),a=i.attributes,o=a.length;o--;){var d=a[o].name;0===d.indexOf("data-mce-p-")&&r.attr(d.substr(11),a[o].value)}"script"==n&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(s=new tinymce.html.Node("#text",3),s.raw=!0,s.value=unescape(c),r.append(s)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(m(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:!0})});1 tinymce.PluginManager.add("media",function(e,t){function i(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":-1!=e.indexOf(".swf")?"application/x-shockwave-flash":""}function r(t){var i=e.settings.media_scripts;if(i)for(var r=0;r<i.length;r++)if(-1!==t.indexOf(i[r].filter))return i[r]}function o(){function t(e){var t,i,a,c;t=r.find("#width")[0],i=r.find("#height")[0],a=t.value(),c=i.value(),r.find("#constrain")[0].checked()&&o&&m&&a&&c&&(e.control==t?(c=Math.round(a/o*c),i.value(c)):(a=Math.round(c/m*a),t.value(a))),o=a,m=c}function i(){u=n(this.value()),this.parent().parent().fromJSON(u)}var r,o,m,u,l=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onchange:function(e){tinymce.each(e.meta,function(e,t){r.find("#"+t).value(e)})}}];e.settings.media_alt_source!==!1&&l.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),e.settings.media_poster!==!1&&l.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),e.settings.media_dimensions!==!1&&l.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),u=s(e.selection.getNode()),o=u.width,m=u.height;var h={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:a(),multiline:!0,label:"Source"};h[d]=i,r=e.windowManager.open({title:"Insert/edit video",data:u,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){u=n(this.next().find("#embed").value()),this.fromJSON(u)},items:l},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(c(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},h]}],onSubmit:function(){var t,i,r,o;for(t=e.dom.select("img[data-mce-object]"),e.insertContent(c(this.toJSON())),i=e.dom.select("img[data-mce-object]"),r=0;r<t.length;r++)for(o=i.length-1;o>=0;o--)t[r]==i[o]&&i.splice(o,1);e.selection.select(i[0]),e.nodeChanged()}})}function a(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function c(o){var a="";if(!o.source1&&(tinymce.extend(o,n(o.embed)),!o.source1))return"";if(o.source2||(o.source2=""),o.poster||(o.poster=""),o.source1=e.convertURL(o.source1,"source"),o.source2=e.convertURL(o.source2,"source"),o.source1mime=i(o.source1),o.source2mime=i(o.source2),o.poster=e.convertURL(o.poster,"poster"),o.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),tinymce.each(u,function(e){var t,i,r;if(t=e.regex.exec(o.source1)){for(r=e.url,i=0;t[i];i++)r=r.replace("$"+i,function(){return t[i]});o.source1=r,o.type=e.type,o.width=o.width||e.w,o.height=o.height||e.h}}),o.embed)a=m(o.embed,o,!0);else{var c=r(o.source1);c&&(o.type="script",o.width=c.width,o.height=c.height),o.width=o.width||300,o.height=o.height||150,tinymce.each(o,function(t,i){o[i]=e.dom.encode(t)}),"iframe"==o.type?a+='<iframe src="'+o.source1+'" width="'+o.width+'" height="'+o.height+'"></iframe>':"application/x-shockwave-flash"==o.source1mime?(a+='<object data="'+o.source1+'" width="'+o.width+'" height="'+o.height+'" type="application/x-shockwave-flash">',o.poster&&(a+='<img src="'+o.poster+'" width="'+o.width+'" height="'+o.height+'" />'),a+="</object>"):-1!=o.source1mime.indexOf("audio")?e.settings.audio_template_callback?a=e.settings.audio_template_callback(o):a+='<audio controls="controls" src="'+o.source1+'">'+(o.source2?'\n<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==o.type?a+='<script src="'+o.source1+'"></script>':a=e.settings.video_template_callback?e.settings.video_template_callback(o):'<video width="'+o.width+'" height="'+o.height+'"'+(o.poster?' poster="'+o.poster+'"':"")+' controls="controls">\n<source src="'+o.source1+'"'+(o.source1mime?' type="'+o.source1mime+'"':"")+" />\n"+(o.source2?'<source src="'+o.source2+'"'+(o.source2mime?' type="'+o.source2mime+'"':"")+" />\n":"")+"</video>"}return a}function n(e){var t={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(e,i){if(t.source1||"param"!=e||(t.source1=i.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t.type||(t.type=e),t=tinymce.extend(i.map,t)),"script"==e){var o=r(i.map.src);if(!o)return;t={type:"script",source1:i.map.src,width:o.width,height:o.height}}"source"==e&&(t.source1?t.source2||(t.source2=i.map.src):t.source1=i.map.src),"img"!=e||t.poster||(t.poster=i.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function s(t){return t.getAttribute("data-mce-object")?n(e.serializer.serialize(t,{selection:!0})):{}}function m(e,t,i){function r(e,t){var i,r,o,a;for(i in t)if(o=""+t[i],e.map[i])for(r=e.length;r--;)a=e[r],a.name==i&&(o?(e.map[i]=o,a.value=o):(delete e.map[i],e.splice(r,1)));else o&&(e.push({name:i,value:o}),e.map[i]=o)}var o,a=new tinymce.html.Writer,c=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(e){a.comment(e)},cdata:function(e){a.cdata(e)},text:function(e,t){a.text(e,t)},start:function(e,n,s){switch(e){case"video":case"object":case"embed":case"img":case"iframe":r(n,{width:t.width,height:t.height})}if(i)switch(e){case"video":r(n,{poster:t.poster,src:""}),t.source2&&r(n,{src:""});break;case"iframe":r(n,{src:t.source1});break;case"source":if(c++,2>=c&&(r(n,{src:t["source"+c],type:t["source"+c+"mime"]}),!t["source"+c]))return;break;case"img":if(!t.poster)return;o=!0}a.start(e,n,s)},end:function(e){if("video"==e&&i)for(var n=1;2>=n;n++)if(t["source"+n]){var s=[];s.map={},n>c&&(r(s,{src:t["source"+n],type:t["source"+n+"mime"]}),a.start("source",s,!0))}if(t.poster&&"object"==e&&i&&!o){var m=[];m.map={},r(m,{src:t.poster,width:t.width,height:t.height}),a.start("img",m,!0)}a.end(e)}},new tinymce.html.Schema({})).parse(e),a.getContent()}var u=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}],d=tinymce.Env.ie&&tinymce.Env.ie<=8?"onChange":"onInput";e.on("ResolveName",function(e){var t;1==e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var i=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){i[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(t,i){for(var o,a,c,n,s,m,u,d,l=t.length;l--;)if(a=t[l],a.parent&&("script"!=a.name||(d=r(a.attr("src"))))){for(c=new tinymce.html.Node("img",1),c.shortEnded=!0,d&&(d.width&&a.attr("width",d.width.toString()),d.height&&a.attr("height",d.height.toString())),m=a.attributes,o=m.length;o--;)n=m[o].name,s=m[o].value,"width"!==n&&"height"!==n&&"style"!==n&&(("data"==n||"src"==n)&&(s=e.convertURL(s,n)),c.attr("data-mce-p-"+n,s));u=a.firstChild&&a.firstChild.value,u&&(c.attr("data-mce-html",escape(u)),c.firstChild=null),c.attr({width:a.attr("width")||"300",height:a.attr("height")||("audio"==i?"30":"150"),style:a.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),a.replace(c)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var i,r,o,a,c,n,s,m=e.length;m--;)if(i=e[m],i.parent){for(s=i.attr(t),r=new tinymce.html.Node(s,1),"audio"!=s&&"script"!=s&&r.attr({width:i.attr("width"),height:i.attr("height")}),r.attr({style:i.attr("style")}),a=i.attributes,o=a.length;o--;){var u=a[o].name;0===u.indexOf("data-mce-p-")&&r.attr(u.substr(11),a[o].value)}"script"==s&&r.attr("type","text/javascript"),c=i.attr("data-mce-html"),c&&(n=new tinymce.html.Node("#text",3),n.raw=!0,n.value=unescape(c),r.append(n)),i.replace(r)}})}),e.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");("audio"==t||"script"==t)&&e.preventDefault()}),e.on("objectResized",function(e){var t,i=e.target;i.getAttribute("data-mce-object")&&(t=i.getAttribute("data-mce-html"),t&&(t=unescape(t),i.setAttribute("data-mce-html",escape(m(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:o,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:o,context:"insert",prependToContext:!0})}); -
trunk/src/wp-includes/js/tinymce/plugins/paste/plugin.js
r28932 r29203 171 171 } 172 172 173 html = filter(html, [ 174 /<!\[[^\]]+\]>/g // Conditional comments 175 ]); 176 173 177 walk(domParser.parse(html)); 174 178 … … 183 187 */ 184 188 function trimHtml(html) { 185 var trimSpaces = function(all, s1, s2) {189 function trimSpaces(all, s1, s2) { 186 190 // WebKit meant to preserve multiple spaces but instead inserted around all inline tags, 187 // including the spans with inline sty pes created on paste191 // including the spans with inline styles created on paste 188 192 if (!s1 && !s2) { 189 193 return ' '; … … 191 195 192 196 return '\u00a0'; 193 } ;197 } 194 198 195 199 html = filter(html, [ … … 536 540 537 541 function getCaretRangeFromEvent(e) { 538 var doc = editor.getDoc(), rng ;542 var doc = editor.getDoc(), rng, point; 539 543 540 544 if (doc.caretPositionFromPoint) { 541 varpoint = doc.caretPositionFromPoint(e.clientX, e.clientY);545 point = doc.caretPositionFromPoint(e.clientX, e.clientY); 542 546 rng = doc.createRange(); 543 547 rng.setStart(point.offsetNode, point.offset); … … 545 549 } else if (doc.caretRangeFromPoint) { 546 550 rng = doc.caretRangeFromPoint(e.clientX, e.clientY); 551 } else if (doc.body.createTextRange) { 552 rng = doc.body.createTextRange(); 553 554 try { 555 rng.moveToPoint(e.clientX, e.clientY); 556 rng.collapse(true); 557 } catch (ex) { 558 // Append to top or bottom depending on drop location 559 rng.collapse(e.clientY < doc.body.clientHeight); 560 } 547 561 } 548 562 … … 836 850 var currentListNode, prevListNode, lastLevel = 1; 837 851 838 function convertParagraphToLi(paragraphNode, listStartTextNode, listName, start) { 852 function getText(node) { 853 var txt = ''; 854 855 if (node.type === 3) { 856 return node.value; 857 } 858 859 if ((node = node.firstChild)) { 860 do { 861 txt += getText(node); 862 } while ((node = node.next)); 863 } 864 865 return txt; 866 } 867 868 function trimListStart(node, regExp) { 869 if (node.type === 3) { 870 if (regExp.test(node.value)) { 871 node.value = node.value.replace(regExp, ''); 872 return false; 873 } 874 } 875 876 if ((node = node.firstChild)) { 877 do { 878 if (!trimListStart(node, regExp)) { 879 return false; 880 } 881 } while ((node = node.next)); 882 } 883 884 return true; 885 } 886 887 function removeIgnoredNodes(node) { 888 if (node._listIgnore) { 889 node.remove(); 890 return; 891 } 892 893 if ((node = node.firstChild)) { 894 do { 895 removeIgnoredNodes(node); 896 } while ((node = node.next)); 897 } 898 } 899 900 function convertParagraphToLi(paragraphNode, listName, start) { 839 901 var level = paragraphNode._listLevel || lastLevel; 840 902 … … 867 929 868 930 paragraphNode.name = 'li'; 869 listStartTextNode.value = '';870 871 var nextNode = listStartTextNode.next;872 if (nextNode && nextNode.type == 3) {873 nextNode.value = nextNode.value.replace(/^\u00a0+/, '');874 }875 931 876 932 // Append list to previous list if it exists … … 880 936 881 937 lastLevel = level; 938 939 // Remove start of list item "1. " or "· " etc 940 removeIgnoredNodes(paragraphNode); 941 trimListStart(paragraphNode, /^\u00a0+/); 942 trimListStart(paragraphNode, /^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/); 943 trimListStart(paragraphNode, /^\u00a0+/); 882 944 } 883 945 … … 889 951 if (node.name == 'p' && node.firstChild) { 890 952 // Find first text node in paragraph 891 var nodeText = '';953 var nodeText = getText(node); 892 954 var listStartTextNode = node.firstChild; 893 955 894 while (listStartTextNode) {895 nodeText = listStartTextNode.value;896 if (nodeText) {897 break;898 }899 900 listStartTextNode = listStartTextNode.firstChild;901 }902 903 956 // Detect unordered lists look for bullets 904 if (/^ \s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(nodeText)) {905 convertParagraphToLi(node, listStartTextNode,'ul');957 if (/^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(nodeText)) { 958 convertParagraphToLi(node, 'ul'); 906 959 continue; 907 960 } 908 961 909 962 // Detect ordered lists 1., a. or ixv. 910 if (/^ \s*\w+\.$/.test(nodeText)) {963 if (/^[\s\u00a0]*\w+\./.test(nodeText) && !/^[\s\u00a0]*\w+\.\s*[^\s]+/.test(listStartTextNode.value)) { 911 964 // Parse OL start number 912 965 var matches = /([0-9])\./.exec(nodeText); … … 916 969 } 917 970 918 convertParagraphToLi(node, listStartTextNode,'ol', start);971 convertParagraphToLi(node, 'ol', start); 919 972 continue; 920 973 } 921 974 975 // Convert paragraphs marked as lists but doesn't look like anything 976 if (node._listLevel) { 977 convertParagraphToLi(node, 'ul', 1); 978 continue; 979 } 980 922 981 currentListNode = null; 923 982 } … … 926 985 927 986 function filterStyles(node, styleValue) { 928 var outputStyles = {}, styles = editor.dom.parseStyle(styleValue); 929 930 // Parse out list indent level for lists 931 if (node.name === 'p') { 932 var matches = /mso-list:\w+ \w+([0-9]+)/.exec(styleValue); 933 934 if (matches) { 935 node._listLevel = parseInt(matches[1], 10); 936 } 937 } 987 var outputStyles = {}, matches, styles = editor.dom.parseStyle(styleValue); 938 988 939 989 Tools.each(styles, function(value, name) { 940 990 // Convert various MS styles to W3C styles 941 991 switch (name) { 992 case 'mso-list': 993 // Parse out list indent level for lists 994 matches = /\w+ \w+([0-9]+)/i.exec(styleValue); 995 if (matches) { 996 node._listLevel = parseInt(matches[1], 10); 997 } 998 999 // Remove these nodes <span style="mso-list:Ignore">o</span> 1000 // Since the span gets removed we mark the text node and the span 1001 if (/Ignore/i.test(value) && node.firstChild) { 1002 node._listIgnore = true; 1003 node.firstChild._listIgnore = true; 1004 } 1005 1006 break; 1007 942 1008 case "horiz-align": 943 1009 name = "text-align"; … … 1097 1163 1098 1164 className = node.attr('class'); 1099 if (/^(MsoCommentReference|MsoCommentText|msoDel )$/i.test(className)) {1165 if (/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(className)) { 1100 1166 node.remove(); 1101 1167 } … … 1305 1371 } 1306 1372 1307 return '';1373 return before + after; 1308 1374 }); 1309 1375 } else { … … 1444 1510 }); 1445 1511 1446 expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/ Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks","tinymce/pasteplugin/Plugin"]);1512 expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/WordFilter"]); 1447 1513 })(this); -
trunk/src/wp-includes/js/tinymce/plugins/paste/plugin.min.js
r28932 r29203 1 !function(e,t){"use strict";function n(e,t){for(var n, i=[],r=0;r<e.length;++r){if(n=s[e[r]]||a(e[r]),!n)throw"module definition dependecy not found: "+e[r];i.push(n)}t.apply(null,i)}function i(e,i,r){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(i===t)throw"invalid module definition, dependencies must be specified";if(r===t)throw"invalid module definition, definition function must be specified";n(i,function(){s[e]=r.apply(null,arguments)})}function r(e){return!!s[e]}function a(t){for(var n=e,i=t.split(/[.\/]/),r=0;r<i.length;++r){if(!n[i[r]])return;n=n[i[r]]}return n}function o(n){for(var i=0;i<n.length;i++){for(var r=e,a=n[i],o=a.split(/[.\/]/),l=0;l<o.length-1;++l)r[o[l]]===t&&(r[o[l]]={}),r=r[o[l]];r[o[o.length-1]]=s[a]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",d="tinymce/html/DomParser",f="tinymce/html/Schema",u="tinymce/pasteplugin/Clipboard",p="tinymce/Env",m="tinymce/util/VK",g="tinymce/pasteplugin/WordFilter",v="tinymce/html/Serializer",h="tinymce/html/Node",b="tinymce/pasteplugin/Quirks",y="tinymce/pasteplugin/Plugin",w="tinymce/PluginManager";i(l,[c,d,f],function(e,t,n){function i(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function r(i){function r(e){var t=e.name,n=e;if("br"===t)return void(s+="\n");if(l[t]&&(s+=" "),c[t])return void(s+=" ");if(3==e.type&&(s+=e.value),!e.shortEnded&&(e=e.firstChild))do r(e);while(e=e.next);d[t]&&n.next&&(s+="\n","p"==t&&(s+="\n"))}var a=new n,o=new t({},a),s="",l=a.getShortEndedElements(),c=e.makeMap("script noscript style textarea video audio iframe object"," "),d=a.getBlockElements();return r(o.parse(i)),s}function a(e){var t=function(e,t,n){return t||n?"\u00a0":" "};return e=i(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,t],/<br>$/i])}return{filter:i,innerText:r,trimHtml:a}}),i(u,[p,m,l],function(e,t,n){return function(i){function r(e){var t,n=i.dom;if(t=i.fire("BeforePastePreProcess",{content:e}),t=i.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(i.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var r=n.add(i.getBody(),"div",{style:"display:none"},e);t=i.fire("PastePostProcess",{node:r}),n.remove(r),e=t.node.innerHTML}t.isDefaultPrevented()||i.insertContent(e,{merge:i.settings.paste_merge_formats!==!1})}}function a(e){e=i.dom.encode(e).replace(/\r\n/g,"\n");var t=i.dom.getParent(i.selection.getStart(),i.dom.isBlock),a=i.settings.forced_root_block,o;a&&(o=i.dom.createHTML(a,i.settings.forced_root_block_attrs),o=o.substr(0,o.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!a?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+o],[/^(.*<\/p>)(<p>)$/,o+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=o+e)),r(e)}function o(){var t=i.dom,n=i.getBody(),r=i.dom.getViewPort(i.getWin()),a=r.y,o=20,s;if(y=i.selection.getRng(),i.inline&&(s=i.selection.getScrollContainer(),s&&s.scrollTop>0&&(a=s.scrollTop)),y.getClientRects){var l=y.getClientRects();if(l.length)o=a+(l[0].top-t.getPos(n).y);else{o=a;var c=y.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(o=t.getPos(c,s||n).y))}}b=t.add(i.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+o+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},x),(e.ie||e.gecko)&&t.setStyle(b,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(b,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),b.focus(),i.selection.select(b,!0)}function s(){if(b){for(var e;e=i.dom.get("mcepastebin");)i.dom.remove(e),i.dom.unbind(e);y&&i.selection.setRng(y)}b=y=null}function l(){var e="",t,n,r,a;for(t=i.dom.select("div[id=mcepastebin]"),n=0;n<t.length;n++)r=t[n],r.firstChild&&"mcepastebin"==r.firstChild.id&&(r=r.firstChild),a=r.innerHTML,e!=x&&(e+=a);return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var i=0;i<e.types.length;i++){var r=e.types[i];t[r]=e.getData(r)}}return t}function d(e){return c(e.clipboardData||i.getDoc().dataTransfer)}function f(e,t){function n(n){function a(){t&&(i.selection.setRng(t),t=null),r('<img src="'+l.result+'">')}var o,s,l;if(n)for(o=0;o<n.length;o++)if(s=n[o],/^image\/(jpeg|png|gif)$/.test(s.type))return l=new FileReader,l.onload=a,l.readAsDataURL(s.getAsFile?s.getAsFile():s),e.preventDefault(),!0}var a=e.clipboardData||e.dataTransfer;return i.settings.paste_data_images&&a?n(a.items)||n(a.files):void 0}function u(e){var t=e.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&t&&t.items&&0===t.items.length}function p(e){var t=i.getDoc(),n;if(t.caretPositionFromPoint){var r=t.caretPositionFromPoint(e.clientX,e.clientY);n=t.createRange(),n.setStart(r.offsetNode,r.offset),n.collapse(!0)}else t.caretRangeFromPoint&&(n=t.caretRangeFromPoint(e.clientX,e.clientY));return n}function m(e,t){return t in e&&e[t].length>0}function g(e){return t.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function v(){i.on("keydown",function(t){function n(e){g(e)&&!e.isDefaultPrevented()&&s()}if(g(t)&&!t.isDefaultPrevented()){if(P=t.shiftKey&&86==t.keyCode,P&&e.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),w=(new Date).getTime(),e.ie&&P)return t.preventDefault(),void i.fire("paste",{ieFake:!0});s(),o(),i.once("keyup",n),i.once("paste",function(){i.off("keyup",n)})}}),i.on("paste",function(t){var c=d(t),p=(new Date).getTime()-w<1e3,g="text"==h.pasteFormat||P;return P=!1,t.isDefaultPrevented()||u(t)?void s():f(t)?void s():(p||t.preventDefault(),!e.ie||p&&!t.ieFake||(o(),i.dom.bind(b,"paste",function(e){e.stopPropagation()}),i.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e;return m(c,"text/html")?e=c["text/html"]:(e=l(),e==x&&(g=!0)),e=n.trimHtml(e),b&&b.firstChild&&"mcepastebin"===b.firstChild.id&&(g=!0),s(),g&&(e=m(c,"text/plain")&&-1==e.indexOf("</p>")?c["text/plain"]:n.innerText(e)),e==x?void(p||i.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(g?a(e):r(e))},0))}),i.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",i.selection.getContent())}catch(t){}}),i.on("drop",function(e){var t=p(e);if(!e.isDefaultPrevented()&&!f(e,t)&&t){var n=c(e.dataTransfer),o=n["mce-internal"]||n["text/html"]||n["text/plain"];o&&(e.preventDefault(),i.undoManager.transact(function(){n["mce-internal"]&&i.execCommand("Delete"),i.selection.setRng(t),n["text/html"]?r(o):a(o)}))}}),i.on("dragover dragend",function(e){var t,n=e.dataTransfer;if(i.settings.paste_data_images&&n)for(t=0;t<n.types.length;t++)if("Files"==n.types[t])return e.preventDefault(),!1})}var h=this,b,y,w=0,x="%MCEPASTEBIN%",P;h.pasteHtml=r,h.pasteText=a,i.on("preInit",function(){v(),i.parser.addNodeFilter("img",function(t){if(!i.settings.paste_data_images)for(var n=t.length;n--;){var r=t[n].attributes.map.src;r&&/^(data:image|webkit\-fake\-url)/.test(r)&&(t[n].attr("data-mce-object")||r===e.transparentSrc||t[n].remove())}})})}}),i(g,[c,d,f,v,h,l],function(e,t,n,i,r,a){function o(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function d(e){function t(e,t,o,s){var l=e._listLevel||a;l!=a&&(a>l?n&&(n=n.parent.parent):(i=n,n=null)),n&&n.name==o?n.append(e):(i=i||n,n=new r(o,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>a&&i&&i.lastChild.append(n),a=l}for(var n,i,a=1,o=e.getAll("p"),s=0;s<o.length;s++)if(e=o[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\.$/.test(l)){var d=/([0-9])\./.exec(l),f=1;d&&(f=parseInt(d[1],10)),t(e,c,"ol",f);continue}n=null}}function f(t,n){var i={},a=s.dom.parseStyle(n);if("p"===t.name){var o=/mso-list:\w+ \w+([0-9]+)/.exec(n);o&&(t._listLevel=parseInt(o[1],10))}return e.each(a,function(e,n){switch(n){case"horiz-align":n="text-align";break;case"vert-align":n="vertical-align";break;case"font-color":case"mso-foreground":n="color";break;case"mso-background":case"mso-highlight":n="background";break;case"font-weight":case"font-style":return void("normal"!=e&&(i[n]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void t.remove()}return 0===n.indexOf("mso-comment")?void t.remove():void(0!==n.indexOf("mso-")&&("all"==p||m&&m[n])&&(i[n]=e))}),/(bold)/i.test(i["font-weight"])&&(delete i["font-weight"],t.wrap(new r("b",1))),/(italic)/i.test(i["font-style"])&&(delete i["font-style"],t.wrap(new r("i",1))),i=s.dom.serializeStyle(i,t.name),i?i:null}var u=c.content,p,m;if(p=l.paste_retain_style_properties,p&&(m=e.makeMap(p.split(/[, ]/))),l.paste_enable_default_filters!==!1&&o(c.content)){c.wordContent=!0,u=a.filter(u,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\u00a0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\u00a0"):""}]]);var g=l.paste_word_valid_elements;g||(g="-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br,del");var v=new n({valid_elements:g,valid_children:"-li[p]"});e.each(v.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var h=new t({},v);h.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",f(n,n.attr("style"))),"span"==n.name&&n.parent&&!n.attributes.length&&n.unwrap()}),h.addAttributeFilter("class",function(e){for(var t=e.length,n,i;t--;)n=e[t],i=n.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(i)&&n.remove(),n.attr("class",null)}),h.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),h.addNodeFilter("a",function(e){for(var t=e.length,n,i,r;t--;)if(n=e[t],i=n.attr("href"),r=n.attr("name"),i&&-1!=i.indexOf("#_msocom_"))n.remove();else if(i&&0===i.indexOf("file://")&&(i=i.split("#")[1],i&&(i="#"+i)),i||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){n.unwrap();continue}n.attr({href:i,name:r})}else n.unwrap()});var b=h.parse(u);d(b),c.content=new i({},v).serialize(b)}})}return s.isWordContent=o,s}),i(b,[p,c,g,l],function(e,t,n,i){return function(r){function a(e){r.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function o(e){if(!n.isWordContent(e))return e;var a=[];t.each(r.schema.getBlockElements(),function(e,t){a.push(t)});var o=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+a.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=i.filter(e,[[o,"$1"]]),e=i.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function s(e){if(n.isWordContent(e))return e;var t=r.settings.paste_webkit_styles;if(r.settings.paste_remove_styles_if_webkit===!1||"all"==t)return e;if(t&&(t=t.split(/[, ]/)),t){var i=r.dom,a=r.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,n,r,o){var s=i.parseStyle(r,"span"),l={};if("none"===t)return n+o;for(var c=0;c<t.length;c++){var d=s[t[c]],f=i.getStyle(a,t[c],!0);/color/.test(t[c])&&(d=i.toHex(d),f=i.toHex(f)),f!=d&&(l[t[c]]=d)}return l=i.serializeStyle(l,"span"),l?n+' style="'+l+'"'+o:""})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,i){return t+' style="'+n+'"'+i})}e.webkit&&a(s),e.ie&&a(o)}}),i(y,[w,u,g,b],function(e,t,n,i){var r;e.add("paste",function(e){function a(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),r||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),r=!0))}var o=this,s,l=e.settings;o.clipboard=s=new t(e),o.quirks=new i(e),o.wordFilter=new n(e),e.settings.paste_as_text&&(o.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(o,o,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(o,o,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&o.clipboard.pasteHtml(t.content),t.text&&o.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:a,active:"text"==o.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:a})})}),o([l,u,g,b,y])}(this);1 !function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Utils",c="tinymce/util/Tools",u="tinymce/html/DomParser",d="tinymce/html/Schema",f="tinymce/pasteplugin/Clipboard",p="tinymce/Env",m="tinymce/util/VK",h="tinymce/pasteplugin/WordFilter",g="tinymce/html/Serializer",v="tinymce/html/Node",y="tinymce/pasteplugin/Quirks",b="tinymce/pasteplugin/Plugin",C="tinymce/PluginManager";r(l,[c,u,d],function(e,t,n){function r(t,n){return e.each(n,function(e){t=e.constructor==RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}function i(i){function o(e){var t=e.name,n=e;if("br"===t)return void(l+="\n");if(c[t]&&(l+=" "),u[t])return void(l+=" ");if(3==e.type&&(l+=e.value),!e.shortEnded&&(e=e.firstChild))do o(e);while(e=e.next);d[t]&&n.next&&(l+="\n","p"==t&&(l+="\n"))}var a=new n,s=new t({},a),l="",c=a.getShortEndedElements(),u=e.makeMap("script noscript style textarea video audio iframe object"," "),d=a.getBlockElements();return i=r(i,[/<!\[[^\]]+\]>/g]),o(s.parse(i)),l}function o(e){function t(e,t,n){return t||n?"\xa0":" "}return e=r(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,t],/<br>$/i])}return{filter:r,innerText:i,trimHtml:o}}),r(f,[p,m,l],function(e,t,n){return function(r){function i(e){var t,n=r.dom;if(t=r.fire("BeforePastePreProcess",{content:e}),t=r.fire("PastePreProcess",t),e=t.content,!t.isDefaultPrevented()){if(r.hasEventListeners("PastePostProcess")&&!t.isDefaultPrevented()){var i=n.add(r.getBody(),"div",{style:"display:none"},e);t=r.fire("PastePostProcess",{node:i}),n.remove(i),e=t.node.innerHTML}t.isDefaultPrevented()||r.insertContent(e,{merge:r.settings.paste_merge_formats!==!1})}}function o(e){e=r.dom.encode(e).replace(/\r\n/g,"\n");var t=r.dom.getParent(r.selection.getStart(),r.dom.isBlock),o=r.settings.forced_root_block,a;o&&(a=r.dom.createHTML(o,r.settings.forced_root_block_attrs),a=a.substr(0,a.length-3)+">"),t&&/^(PRE|DIV)$/.test(t.nodeName)||!o?e=n.filter(e,[[/\n/g,"<br>"]]):(e=n.filter(e,[[/\n\n/g,"</p>"+a],[/^(.*<\/p>)(<p>)$/,a+"$1"],[/\n/g,"<br />"]]),-1!=e.indexOf("<p>")&&(e=a+e)),i(e)}function a(){var t=r.dom,n=r.getBody(),i=r.dom.getViewPort(r.getWin()),o=i.y,a=20,s;if(b=r.selection.getRng(),r.inline&&(s=r.selection.getScrollContainer(),s&&s.scrollTop>0&&(o=s.scrollTop)),b.getClientRects){var l=b.getClientRects();if(l.length)a=o+(l[0].top-t.getPos(n).y);else{a=o;var c=b.startContainer;c&&(3==c.nodeType&&c.parentNode!=n&&(c=c.parentNode),1==c.nodeType&&(a=t.getPos(c,s||n).y))}}y=t.add(r.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+a+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},x),(e.ie||e.gecko)&&t.setStyle(y,"left","rtl"==t.getStyle(n,"direction",!0)?65535:-65535),t.bind(y,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),y.focus(),r.selection.select(y,!0)}function s(){if(y){for(var e;e=r.dom.get("mcepastebin");)r.dom.remove(e),r.dom.unbind(e);b&&r.selection.setRng(b)}y=b=null}function l(){var e="",t,n,i,o;for(t=r.dom.select("div[id=mcepastebin]"),n=0;n<t.length;n++)i=t[n],i.firstChild&&"mcepastebin"==i.firstChild.id&&(i=i.firstChild),o=i.innerHTML,e!=x&&(e+=o);return e}function c(e){var t={};if(e&&e.types){var n=e.getData("Text");n&&n.length>0&&(t["text/plain"]=n);for(var r=0;r<e.types.length;r++){var i=e.types[r];t[i]=e.getData(i)}}return t}function u(e){return c(e.clipboardData||r.getDoc().dataTransfer)}function d(e,t){function n(n){function o(){t&&(r.selection.setRng(t),t=null),i('<img src="'+l.result+'">')}var a,s,l;if(n)for(a=0;a<n.length;a++)if(s=n[a],/^image\/(jpeg|png|gif)$/.test(s.type))return l=new FileReader,l.onload=o,l.readAsDataURL(s.getAsFile?s.getAsFile():s),e.preventDefault(),!0}var o=e.clipboardData||e.dataTransfer;return r.settings.paste_data_images&&o?n(o.items)||n(o.files):void 0}function f(e){var t=e.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&t&&t.items&&0===t.items.length}function p(e){var t=r.getDoc(),n,i;if(t.caretPositionFromPoint)i=t.caretPositionFromPoint(e.clientX,e.clientY),n=t.createRange(),n.setStart(i.offsetNode,i.offset),n.collapse(!0);else if(t.caretRangeFromPoint)n=t.caretRangeFromPoint(e.clientX,e.clientY);else if(t.body.createTextRange){n=t.body.createTextRange();try{n.moveToPoint(e.clientX,e.clientY),n.collapse(!0)}catch(o){n.collapse(e.clientY<t.body.clientHeight)}}return n}function m(e,t){return t in e&&e[t].length>0}function h(e){return t.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function g(){r.on("keydown",function(t){function n(e){h(e)&&!e.isDefaultPrevented()&&s()}if(h(t)&&!t.isDefaultPrevented()){if(w=t.shiftKey&&86==t.keyCode,w&&e.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(t.stopImmediatePropagation(),C=(new Date).getTime(),e.ie&&w)return t.preventDefault(),void r.fire("paste",{ieFake:!0});s(),a(),r.once("keyup",n),r.once("paste",function(){r.off("keyup",n)})}}),r.on("paste",function(t){var c=u(t),p=(new Date).getTime()-C<1e3,h="text"==v.pasteFormat||w;return w=!1,t.isDefaultPrevented()||f(t)?void s():d(t)?void s():(p||t.preventDefault(),!e.ie||p&&!t.ieFake||(a(),r.dom.bind(y,"paste",function(e){e.stopPropagation()}),r.getDoc().execCommand("Paste",!1,null),c["text/html"]=l()),void setTimeout(function(){var e;return m(c,"text/html")?e=c["text/html"]:(e=l(),e==x&&(h=!0)),e=n.trimHtml(e),y&&y.firstChild&&"mcepastebin"===y.firstChild.id&&(h=!0),s(),h&&(e=m(c,"text/plain")&&-1==e.indexOf("</p>")?c["text/plain"]:n.innerText(e)),e==x?void(p||r.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(h?o(e):i(e))},0))}),r.on("dragstart",function(e){if(e.dataTransfer.types)try{e.dataTransfer.setData("mce-internal",r.selection.getContent())}catch(t){}}),r.on("drop",function(e){var t=p(e);if(!e.isDefaultPrevented()&&!d(e,t)&&t){var n=c(e.dataTransfer),a=n["mce-internal"]||n["text/html"]||n["text/plain"];a&&(e.preventDefault(),r.undoManager.transact(function(){n["mce-internal"]&&r.execCommand("Delete"),r.selection.setRng(t),n["text/html"]?i(a):o(a)}))}}),r.on("dragover dragend",function(e){var t,n=e.dataTransfer;if(r.settings.paste_data_images&&n)for(t=0;t<n.types.length;t++)if("Files"==n.types[t])return e.preventDefault(),!1})}var v=this,y,b,C=0,x="%MCEPASTEBIN%",w;v.pasteHtml=i,v.pasteText=o,r.on("preInit",function(){g(),r.parser.addNodeFilter("img",function(t){if(!r.settings.paste_data_images)for(var n=t.length;n--;){var i=t[n].attributes.map.src;i&&/^(data:image|webkit\-fake\-url)/.test(i)&&(t[n].attr("data-mce-object")||i===e.transparentSrc||t[n].remove())}})})}}),r(h,[c,u,d,g,v,l],function(e,t,n,r,i,o){function a(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}function s(s){var l=s.settings;s.on("BeforePastePreProcess",function(c){function u(e){function t(e){var n="";if(3===e.type)return e.value;if(e=e.firstChild)do n+=t(e);while(e=e.next);return n}function n(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do if(!n(e,t))return!1;while(e=e.next);return!0}function r(e){if(e._listIgnore)return void e.remove();if(e=e.firstChild)do r(e);while(e=e.next)}function o(e,t,o){var c=e._listLevel||l;c!=l&&(l>c?a&&(a=a.parent.parent):(s=a,a=null)),a&&a.name==t?a.append(e):(s=s||a,a=new i(t,1),o>1&&a.attr("start",""+o),e.wrap(a)),e.name="li",c>l&&s&&s.lastChild.append(a),l=c,r(e),n(e,/^\u00a0+/),n(e,/^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/),n(e,/^\u00a0+/)}for(var a,s,l=1,c=e.getAll("p"),u=0;u<c.length;u++)if(e=c[u],"p"==e.name&&e.firstChild){var d=t(e),f=e.firstChild;if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(d)){o(e,"ul");continue}if(/^[\s\u00a0]*\w+\./.test(d)&&!/^[\s\u00a0]*\w+\.\s*[^\s]+/.test(f.value)){var p=/([0-9])\./.exec(d),m=1;p&&(m=parseInt(p[1],10)),o(e,"ol",m);continue}if(e._listLevel){o(e,"ul",1);continue}a=null}}function d(t,n){var r={},o,a=s.dom.parseStyle(n);return e.each(a,function(e,i){switch(i){case"mso-list":o=/\w+ \w+([0-9]+)/i.exec(n),o&&(t._listLevel=parseInt(o[1],10)),/Ignore/i.test(e)&&t.firstChild&&(t._listIgnore=!0,t.firstChild._listIgnore=!0);break;case"horiz-align":i="text-align";break;case"vert-align":i="vertical-align";break;case"font-color":case"mso-foreground":i="color";break;case"mso-background":case"mso-highlight":i="background";break;case"font-weight":case"font-style":return void("normal"!=e&&(r[i]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void t.remove()}return 0===i.indexOf("mso-comment")?void t.remove():void(0!==i.indexOf("mso-")&&("all"==p||m&&m[i])&&(r[i]=e))}),/(bold)/i.test(r["font-weight"])&&(delete r["font-weight"],t.wrap(new i("b",1))),/(italic)/i.test(r["font-style"])&&(delete r["font-style"],t.wrap(new i("i",1))),r=s.dom.serializeStyle(r,t.name),r?r:null}var f=c.content,p,m;if(p=l.paste_retain_style_properties,p&&(m=e.makeMap(p.split(/[, ]/))),l.paste_enable_default_filters!==!1&&a(c.content)){c.wordContent=!0,f=o.filter(f,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var h=l.paste_word_valid_elements;h||(h="-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-table[width],-tr,-td[colspan|rowspan|width],-th,-thead,-tfoot,-tbody,-a[href|name],sub,sup,strike,br,del");var g=new n({valid_elements:h,valid_children:"-li[p]"});e.each(g.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var v=new t({},g);v.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",d(n,n.attr("style"))),"span"==n.name&&n.parent&&!n.attributes.length&&n.unwrap()}),v.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(r)&&n.remove(),n.attr("class",null)}),v.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),v.addNodeFilter("a",function(e){for(var t=e.length,n,r,i;t--;)if(n=e[t],r=n.attr("href"),i=n.attr("name"),r&&-1!=r.indexOf("#_msocom_"))n.remove();else if(r&&0===r.indexOf("file://")&&(r=r.split("#")[1],r&&(r="#"+r)),r||i){if(i&&!/^_?(?:toc|edn|ftn)/i.test(i)){n.unwrap();continue}n.attr({href:r,name:i})}else n.unwrap()});var y=v.parse(f);u(y),c.content=new r({},g).serialize(y)}})}return s.isWordContent=a,s}),r(y,[p,c,h,l],function(e,t,n,r){return function(i){function o(e){i.on("BeforePastePreProcess",function(t){t.content=e(t.content)})}function a(e){if(!n.isWordContent(e))return e;var o=[];t.each(i.schema.getBlockElements(),function(e,t){o.push(t)});var a=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+o.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=r.filter(e,[[a,"$1"]]),e=r.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function s(e){if(n.isWordContent(e))return e;var t=i.settings.paste_webkit_styles;if(i.settings.paste_remove_styles_if_webkit===!1||"all"==t)return e;if(t&&(t=t.split(/[, ]/)),t){var r=i.dom,o=i.selection.getNode();e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,n,i,a){var s=r.parseStyle(i,"span"),l={};if("none"===t)return n+a;for(var c=0;c<t.length;c++){var u=s[t[c]],d=r.getStyle(o,t[c],!0);/color/.test(t[c])&&(u=r.toHex(u),d=r.toHex(d)),d!=u&&(l[t[c]]=u)}return l=r.serializeStyle(l,"span"),l?n+' style="'+l+'"'+a:n+a})}else e=e.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return e=e.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}e.webkit&&o(s),e.ie&&o(a)}}),r(b,[C,f,h,y],function(e,t,n,r){var i;e.add("paste",function(e){function o(){"text"==s.pasteFormat?(this.active(!1),s.pasteFormat="html"):(s.pasteFormat="text",this.active(!0),i||(e.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),i=!0))}var a=this,s,l=e.settings;a.clipboard=s=new t(e),a.quirks=new r(e),a.wordFilter=new n(e),e.settings.paste_as_text&&(a.clipboard.pasteFormat="text"),l.paste_preprocess&&e.on("PastePreProcess",function(e){l.paste_preprocess.call(a,a,e)}),l.paste_postprocess&&e.on("PastePostProcess",function(e){l.paste_postprocess.call(a,a,e)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&a.clipboard.pasteHtml(t.content),t.text&&a.clipboard.pasteText(t.text)}),e.paste_block_drop&&e.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),e.settings.paste_data_images||e.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&t.files.length>0&&e.preventDefault()}),e.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:o,active:"text"==a.clipboard.pasteFormat}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:s.pasteFormat,onclick:o})})}),a([l,h])}(this); -
trunk/src/wp-includes/js/tinymce/plugins/textcolor/plugin.js
r28768 r29203 13 13 14 14 tinymce.PluginManager.add('textcolor', function(editor) { 15 var VK = tinymce.util.VK; 15 var cols, rows; 16 17 rows = editor.settings.textcolor_rows || 5; 18 cols = editor.settings.textcolor_cols || 8; 19 20 function getCurrentColor(format) { 21 var color; 22 23 editor.dom.getParents(editor.selection.getStart(), function(elm) { 24 var value; 25 26 if ((value = elm.style[format == 'forecolor' ? 'color' : 'background-color'])) { 27 color = value; 28 } 29 }); 30 31 return color; 32 } 16 33 17 34 function mapColors() { … … 50 67 "00CCFF", "Sky blue", 51 68 "993366", "Red violet", 52 " C0C0C0", "Silver",69 "FFFFFF", "White", 53 70 "FF99CC", "Pink", 54 71 "FFCC99", "Peach", … … 57 74 "CCFFFF", "Pale cyan", 58 75 "99CCFF", "Light sky blue", 59 "CC99FF", "Plum", 60 "FFFFFF", "White" 76 "CC99FF", "Plum" 61 77 ]; 62 78 … … 64 80 colors.push({ 65 81 text: colorMap[i + 1], 66 color: colorMap[i]82 color: '#' + colorMap[i] 67 83 }); 68 84 } … … 72 88 73 89 function renderColorPicker() { 74 var ctrl = this, colors, color, html, last, rows, cols, x, y, i; 90 var ctrl = this, colors, color, html, last, x, y, i, id = ctrl._id, count = 0; 91 92 function getColorCellHtml(color, title) { 93 var isNoColor = color == 'transparent'; 94 95 return ( 96 '<td class="mce-grid-cell' + (isNoColor ? ' mce-colorbtn-trans' : '') + '">' + 97 '<div id="' + id + '-' + (count++) + '"' + 98 ' data-mce-color="' + (color ? color : '') + '"' + 99 ' role="option"' + 100 ' tabIndex="-1"' + 101 ' style="' + (color ? 'background-color: ' + color : '') + '"' + 102 ' title="' + tinymce.translate(title) + '">' + 103 (isNoColor ? '×' : '') + 104 '</div>' + 105 '</td>' 106 ); 107 } 75 108 76 109 colors = mapColors(); 110 colors.push({ 111 text: tinymce.translate("No color"), 112 color: "transparent" 113 }); 77 114 78 115 html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>'; 79 116 last = colors.length - 1; 80 rows = editor.settings.textcolor_rows || 5;81 cols = editor.settings.textcolor_cols || 8;82 117 83 118 for (y = 0; y < rows; y++) { … … 91 126 } else { 92 127 color = colors[i]; 93 html += ( 94 '<td>' + 95 '<div id="' + ctrl._id + '-' + i + '"' + 96 ' data-mce-color="' + color.color + '"' + 97 ' role="option"' + 98 ' tabIndex="-1"' + 99 ' style="' + (color ? 'background-color: #' + color.color : '') + '"' + 100 ' title="' + color.text + '">' + 101 '</div>' + 102 '</td>' 103 ); 128 html += getColorCellHtml(color.color, color.text); 104 129 } 105 130 } … … 108 133 } 109 134 110 if (editor.settings.textcolor_enable_hex) { 111 var hexIdN = last + 1; 112 var hexInputColSpan = cols - 1; 135 if (editor.settings.color_picker_callback) { 113 136 html += ( 114 137 '<tr>' + 115 '<td>' + 116 '<div id="' + ctrl._id + '-' + hexIdN + '"' + 117 'data-mce-color=""' + 118 'style="background-color: #FFFFFF"' + 119 'data-mce-hex-picker="true"' + 120 'role="option" ' + 121 '>' + 138 '<td colspan="' + cols + '" class="mce-custom-color-btn">' + 139 '<div id="' + id + '-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" ' + 140 'role="button" tabindex="-1" aria-labelledby="' + id + '-c" style="width: 100%">' + 141 '<button type="button" role="presentation" tabindex="-1">' + tinymce.translate('Custom...') + '</button>' + 122 142 '</div>' + 123 '</td>' +124 '<td colspan="' + hexInputColSpan + '">' +125 '# <input type="text" class="mce-textcolor-hexpicker"' +126 'role="textbox" name="mce-hexcolorpicker"' +127 'id="' + ctrl._id + '-hexcolorpicker" maxlength="6" >' +128 143 '</td>' + 129 144 '</tr>' 130 145 ); 146 147 html += '<tr>'; 148 149 for (x = 0; x < cols; x++) { 150 html += getColorCellHtml('', 'Custom color'); 151 } 152 153 html += '</tr>'; 131 154 } 132 155 … … 134 157 135 158 return html; 159 } 160 161 function applyFormat(format, value) { 162 editor.focus(); 163 editor.formatter.apply(format, {value: value}); 164 editor.nodeChanged(); 165 } 166 167 function removeFormat(format) { 168 editor.focus(); 169 editor.formatter.remove(format, {value: null}, null, true); 170 editor.nodeChanged(); 136 171 } 137 172 138 173 function onPanelClick(e) { 139 174 var buttonCtrl = this.parent(), value; 140 141 if (e.target.getAttribute('disabled')) { 142 return; 143 } 144 if ((value = e.target.getAttribute('data-mce-color'))) { 175 176 function selectColor(value) { 177 buttonCtrl.hidePanel(); 178 buttonCtrl.color(value); 179 applyFormat(buttonCtrl.settings.format, value); 180 } 181 182 function setDivColor(div, value) { 183 div.style.background = value; 184 div.setAttribute('data-mce-color', value); 185 } 186 187 if (tinymce.DOM.getParent(e.target, '.mce-custom-color-btn')) { 188 buttonCtrl.hidePanel(); 189 190 editor.settings.color_picker_callback.call(editor, function(value) { 191 var tableElm = buttonCtrl.panel.getEl().getElementsByTagName('table')[0]; 192 var customColorCells, div, i; 193 194 customColorCells = tinymce.map(tableElm.rows[tableElm.rows.length - 1].childNodes, function(elm) { 195 return elm.firstChild; 196 }); 197 198 for (i = 0; i < customColorCells.length; i++) { 199 div = customColorCells[i]; 200 if (!div.getAttribute('data-mce-color')) { 201 break; 202 } 203 } 204 205 // Shift colors to the right 206 // TODO: Might need to be the left on RTL 207 if (i == cols) { 208 for (i = 0; i < cols - 1; i++) { 209 setDivColor(customColorCells[i], customColorCells[i + 1].getAttribute('data-mce-color')); 210 } 211 } 212 213 setDivColor(div, value); 214 selectColor(value); 215 }, getCurrentColor(buttonCtrl.settings.format)); 216 } 217 218 value = e.target.getAttribute('data-mce-color'); 219 if (value) { 145 220 if (this.lastId) { 146 221 document.getElementById(this.lastId).setAttribute('aria-selected', false); … … 150 225 this.lastId = e.target.id; 151 226 227 if (value == 'transparent') { 228 removeFormat(buttonCtrl.settings.format); 229 buttonCtrl.hidePanel(); 230 return; 231 } 232 233 selectColor(value); 234 } else if (value !== null) { 152 235 buttonCtrl.hidePanel(); 153 value = '#' + value;154 buttonCtrl.color(value);155 editor.execCommand(buttonCtrl.settings.selectcmd, false, value);156 236 } 157 237 } … … 161 241 162 242 if (self._color) { 163 editor.execCommand(self.settings.selectcmd, false, self._color); 164 } 165 } 166 167 /** 168 * isValidHex checks if the provided string is valid hex color string 169 * 170 * @param {string} hexString 3 or 6 chars string representing a color. 171 * @return {Boolean} [true] the string is valid hex color 172 * [false] the string is not valid hex color 173 */ 174 function isValidHex(hexString) { 175 return /(^[0-9A-F]{3,6}$)/i.test(hexString); 176 } 177 178 /** 179 * isSpecialStroke checks if the keyCode is currently a special one: 180 * backspace, delete, arrow keys (left/right) 181 * or if it's a special ctrl+x/c/v 182 * 183 * @param {string} keyCode 184 * @return {Boolean} 185 */ 186 function isSpecialStroke(e) { 187 var keyCode = e.keyCode; 188 // Allow delete and backspace 189 if (keyCode === VK.BACKSPACE || keyCode === VK.DELETE ) { 190 return true; 191 } 192 193 // Allow arrow movements 194 if (keyCode === VK.LEFT || keyCode === VK.RIGHT) { 195 return true; 196 } 197 198 // Allow CTRL/CMD + C/V/X 199 if ((tinymce.isMac ? e.metaKey : e.ctrlKey) && (keyCode == 67 || keyCode == 88 || keyCode == 86)) { 200 return true; 201 } 202 203 return false; 204 } 205 206 function initHexPicker(e) { 207 if (!editor.settings.textcolor_enable_hex) { 208 return; 209 } 210 211 var wrapper = document.querySelector('#' + e.target._id); 212 var input = wrapper.querySelector('[name="mce-hexcolorpicker"]'); 213 var hexcolorDiv = wrapper.querySelector('[data-mce-hex-picker]'); 214 var inputEvent = 'input'; 215 216 editor.dom.events.bind(input, 'keydown', function(e){ 217 var keyCode = e.keyCode; 218 219 if (isSpecialStroke(e)) { 220 return; 221 } 222 223 // Look for anything which is not A-Z or 0-9 and it is not a special char. 224 if (!((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 70) || (keyCode >= 96 && keyCode <= 105)) ) { 225 e.preventDefault(); 226 } 227 228 // On Enter, take it like a click on the hexcolorDiv 229 if ( (keyCode === VK.ENTER && isValidHex(input.value) ) ) { 230 hexcolorDiv.click(); 231 } 232 233 }); 234 235 // If IE8 we can't use the input event, so we have to 236 // listen for keypress and paste events. 237 // In IE9 the input implementation is buggy so 238 // we use the same events as we'd like on IE8 239 if (tinymce.Env.ie && tinymce.Env.ie <= 9) { 240 inputEvent = 'keypress paste blur keydown keyup propertychange'; 241 } 242 243 editor.dom.events.bind(input, inputEvent, function(){ 244 if (isValidHex(input.value)) { 245 hexcolorDiv.setAttribute('data-mce-color', input.value); 246 hexcolorDiv.setAttribute('style', 'background-color:#' + input.value); 247 hexcolorDiv.removeAttribute('disabled'); 248 } else { 249 hexcolorDiv.setAttribute('disabled', 'disabled'); 250 } 251 252 }); 253 243 applyFormat(self.settings.format, self._color); 244 } 254 245 } 255 246 … … 257 248 type: 'colorbutton', 258 249 tooltip: 'Text color', 259 selectcmd: 'ForeColor',250 format: 'forecolor', 260 251 panel: { 261 252 role: 'application', 262 253 ariaRemember: true, 263 254 html: renderColorPicker, 264 onclick: onPanelClick, 265 onPostRender: initHexPicker 255 onclick: onPanelClick 266 256 }, 267 257 onclick: onButtonClick … … 271 261 type: 'colorbutton', 272 262 tooltip: 'Background color', 273 selectcmd: 'HiliteColor',263 format: 'hilitecolor', 274 264 panel: { 275 265 role: 'application', 276 266 ariaRemember: true, 277 267 html: renderColorPicker, 278 onclick: onPanelClick, 279 onPostRender: initHexPicker 268 onclick: onPanelClick 280 269 }, 281 270 onclick: onButtonClick -
trunk/src/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js
r28768 r29203 1 tinymce.PluginManager.add("textcolor",function( e){function t(){var t,o,r=[];for(o=e.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],t=0;t<o.length;t+=2)r.push({text:o[t+1],color:o[t]});return r}function o(){var o,r,l,c,i,a,n,d,s,u=this;for(o=t(),l='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',c=o.length-1,i=e.settings.textcolor_rows||5,a=e.settings.textcolor_cols||8,d=0;i>d;d++){for(l+="<tr>",n=0;a>n;n++)s=d*a+n,s>c?l+="<td></td>":(r=o[s],l+='<td><div id="'+u._id+"-"+s+'" data-mce-color="'+r.color+'" role="option" tabIndex="-1" style="'+(r?"background-color: #"+r.color:"")+'" title="'+r.text+'"></div></td>');l+="</tr>"}if(e.settings.textcolor_enable_hex){var F=c+1,m=a-1;l+='<tr><td><div id="'+u._id+"-"+F+'"data-mce-color=""style="background-color: #FFFFFF"data-mce-hex-picker="true"role="option" ></div></td><td colspan="'+m+'"># <input type="text" class="mce-textcolor-hexpicker"role="textbox" name="mce-hexcolorpicker"id="'+u._id+'-hexcolorpicker" maxlength="6" ></td></tr>'}return l+="</tbody></table>"}function r(t){var o,r=this.parent();t.target.getAttribute("disabled")||(o=t.target.getAttribute("data-mce-color"))&&(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,r.hidePanel(),o="#"+o,r.color(o),e.execCommand(r.settings.selectcmd,!1,o))}function l(){var t=this;t._color&&e.execCommand(t.settings.selectcmd,!1,t._color)}function c(e){return/(^[0-9A-F]{3,6}$)/i.test(e)}function i(e){var t=e.keyCode;return t===n.BACKSPACE||t===n.DELETE?!0:t===n.LEFT||t===n.RIGHT?!0:(tinymce.isMac?e.metaKey:e.ctrlKey)&&(67==t||88==t||86==t)?!0:!1}function a(t){if(e.settings.textcolor_enable_hex){var o=document.querySelector("#"+t.target._id),r=o.querySelector('[name="mce-hexcolorpicker"]'),l=o.querySelector("[data-mce-hex-picker]"),a="input";e.dom.events.bind(r,"keydown",function(e){var t=e.keyCode;i(e)||(t>=48&&57>=t||t>=65&&70>=t||t>=96&&105>=t||e.preventDefault(),t===n.ENTER&&c(r.value)&&l.click())}),tinymce.Env.ie&&tinymce.Env.ie<=9&&(a="keypress paste blur keydown keyup propertychange"),e.dom.events.bind(r,a,function(){c(r.value)?(l.setAttribute("data-mce-color",r.value),l.setAttribute("style","background-color:#"+r.value),l.removeAttribute("disabled")):l.setAttribute("disabled","disabled")})}}var n=tinymce.util.VK;e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",selectcmd:"ForeColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r,onPostRender:a},onclick:l}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",selectcmd:"HiliteColor",panel:{role:"application",ariaRemember:!0,html:o,onclick:r,onPostRender:a},onclick:l})});1 tinymce.PluginManager.add("textcolor",function(t){function e(e){var o;return t.dom.getParents(t.selection.getStart(),function(t){var r;(r=t.style["forecolor"==e?"color":"background-color"])&&(o=r)}),o}function o(){var e,o,r=[];for(o=t.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],e=0;e<o.length;e+=2)r.push({text:o[e+1],color:"#"+o[e]});return r}function r(){function e(t,e){var o="transparent"==t;return'<td class="mce-grid-cell'+(o?" mce-colorbtn-trans":"")+'"><div id="'+m+"-"+F++ +'" data-mce-color="'+(t?t:"")+'" role="option" tabIndex="-1" style="'+(t?"background-color: "+t:"")+'" title="'+tinymce.translate(e)+'">'+(o?"×":"")+"</div></td>"}var r,l,a,n,c,d,u,g=this,m=g._id,F=0;for(r=o(),r.push({text:tinymce.translate("No color"),color:"transparent"}),a='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',n=r.length-1,d=0;s>d;d++){for(a+="<tr>",c=0;i>c;c++)u=d*i+c,u>n?a+="<td></td>":(l=r[u],a+=e(l.color,l.text));a+="</tr>"}if(t.settings.color_picker_callback){for(a+='<tr><td colspan="'+i+'" class="mce-custom-color-btn"><div id="'+m+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+m+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+tinymce.translate("Custom...")+"</button></div></td></tr>",a+="<tr>",c=0;i>c;c++)a+=e("","Custom color");a+="</tr>"}return a+="</tbody></table>"}function l(e,o){t.focus(),t.formatter.apply(e,{value:o}),t.nodeChanged()}function a(e){t.focus(),t.formatter.remove(e,{value:null},null,!0),t.nodeChanged()}function n(o){function r(t){s.hidePanel(),s.color(t),l(s.settings.format,t)}function n(t,e){t.style.background=e,t.setAttribute("data-mce-color",e)}var c,s=this.parent();if(tinymce.DOM.getParent(o.target,".mce-custom-color-btn")&&(s.hidePanel(),t.settings.color_picker_callback.call(t,function(t){var e,o,l,a=s.panel.getEl().getElementsByTagName("table")[0];for(e=tinymce.map(a.rows[a.rows.length-1].childNodes,function(t){return t.firstChild}),l=0;l<e.length&&(o=e[l],o.getAttribute("data-mce-color"));l++);if(l==i)for(l=0;i-1>l;l++)n(e[l],e[l+1].getAttribute("data-mce-color"));n(o,t),r(t)},e(s.settings.format))),c=o.target.getAttribute("data-mce-color")){if(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),o.target.setAttribute("aria-selected",!0),this.lastId=o.target.id,"transparent"==c)return a(s.settings.format),void s.hidePanel();r(c)}else null!==c&&s.hidePanel()}function c(){var t=this;t._color&&l(t.settings.format,t._color)}var i,s;s=t.settings.textcolor_rows||5,i=t.settings.textcolor_cols||8,t.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:r,onclick:n},onclick:c}),t.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:r,onclick:n},onclick:c})}); -
trunk/src/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css
r28768 r29203 1 .mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr }.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid td div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input.mce-textcolor-hexpicker{border:1px solid #d6d6d6;margin:2px;height:12px;font-size:11px}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}1 .mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB} -
trunk/src/wp-includes/js/tinymce/skins/lightgray/skin.min.css
r28768 r29203 1 .mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr }.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td div{border:1px solid #d6d6d6;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:focus{border-color:#a1a1a1}.mce-grid td div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input.mce-textcolor-hexpicker{border:1px solid #d6d6d6;margin:2px;height:12px;font-size:11px}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:not(.mce-disabled):active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}1 .mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb} -
trunk/src/wp-includes/js/tinymce/themes/modern/theme.js
r28568 r29203 343 343 width = Math.min(settings.max_width || 0xFFFF, width); 344 344 345 DOM. css(containerElm, 'width', width + (containerSize.width - iframeSize.width));346 DOM. css(iframeElm, 'width', width);345 DOM.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width)); 346 DOM.setStyle(iframeElm, 'width', width); 347 347 } 348 348 349 349 height = Math.max(settings.min_height || 100, height); 350 350 height = Math.min(settings.max_height || 0xFFFF, height); 351 DOM. css(iframeElm, 'height', height);351 DOM.setStyle(iframeElm, 'height', height); 352 352 353 353 editor.fire('ResizeEditor'); … … 384 384 } 385 385 386 panel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl' ]).moveBy(deltaX, deltaY);386 panel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl', 'tr-br']).moveBy(deltaX, deltaY); 387 387 } 388 388 } -
trunk/src/wp-includes/js/tinymce/themes/modern/theme.min.js
r28568 r29203 1 tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}var i=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||u.toolbar===!1||t(u.toolbar||f),i.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:i}:void 0}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m. css(o,"width",t+(a.width-s.width)),m.css(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.css(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t()]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur hide",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i,t.skinUiCss=tinymce.Env.documentMode<=7?n+"/skin.ie7.min.css":n+"/skin.min.css",e.contentCSS.push(n+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r});1 tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var n,o=[];if(t)return d(t.split(/[ ,]/),function(t){function i(){var i=e.selection;"bullist"==r&&i.selectorChanged("ul > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"UL"==n)}),"numlist"==r&&i.selectorChanged("ol > li",function(e,i){for(var n,o=i.parents.length;o--&&(n=i.parents[o].nodeName,"OL"!=n&&"UL"!=n););t.active(e&&"OL"==n)}),t.settings.stateSelector&&i.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&i.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var r;"|"==t?n=null:c.has(t)?(t={type:t},u.toolbar_items_size&&(t.size=u.toolbar_items_size),o.push(t),n=null):(n||(n={type:"buttongroup",items:[]},o.push(n)),e.buttons[t]&&(r=t,t=e.buttons[r],"function"==typeof t&&(t=t()),t.type=t.type||"button",u.toolbar_items_size&&(t.size=u.toolbar_items_size),t=c.create(t),n.items.push(t),e.initialized?i():e.on("init",i)))}),i.push({type:"toolbar",layout:"flow",items:o}),!0}var i=[];if(tinymce.isArray(u.toolbar)){if(0===u.toolbar.length)return;tinymce.each(u.toolbar,function(e,t){u["toolbar"+(t+1)]=e}),delete u.toolbar}for(var n=1;10>n&&t(u["toolbar"+n]);n++);return i.length||u.toolbar===!1||t(u.toolbar||f),i.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:i}:void 0}function i(){function t(t){var i;return"|"==t?{text:"|"}:i=e.menuItems[t]}function i(i){var n,o,r,a,s;if(s=tinymce.makeMap((u.removed_menuitems||"").split(/[ ,]/)),u.menu?(o=u.menu[i],a=!0):o=h[i],o){n={text:o.title},r=[],d((o.items||"").split(/[ ,]/),function(e){var i=t(e);i&&!s[e]&&r.push(t(e))}),a||d(e.menuItems,function(e){e.context==i&&("before"==e.separator&&r.push({text:"|"}),e.prependToContext?r.unshift(e):r.push(e),"after"==e.separator&&r.push({text:"|"}))});for(var l=0;l<r.length;l++)"|"==r[l].text&&(0===l||l==r.length-1)&&r.splice(l,1);if(n.menu=r,!n.menu.length)return null}return n}var n,o=[],r=[];if(u.menu)for(n in u.menu)r.push(n);else for(n in h)r.push(n);for(var a="string"==typeof u.menubar?u.menubar.split(/[ ,]/):r,s=0;s<a.length;s++){var l=a[s];l=i(l),l&&o.push(l)}return o}function n(t){function i(e){var i=t.find(e)[0];i&&i.focus(!0)}e.shortcuts.add("Alt+F9","",function(){i("menubar")}),e.shortcuts.add("Alt+F10","",function(){i("toolbar")}),e.shortcuts.add("Alt+F11","",function(){i("elementpath")}),t.on("cancel",function(){e.focus()})}function o(t,i){function n(e){return{width:e.clientWidth,height:e.clientHeight}}var o,r,a,s;o=e.getContainer(),r=e.getContentAreaContainer().firstChild,a=n(o),s=n(r),null!==t&&(t=Math.max(u.min_width||100,t),t=Math.min(u.max_width||65535,t),m.setStyle(o,"width",t+(a.width-s.width)),m.setStyle(r,"width",t)),i=Math.max(u.min_height||100,i),i=Math.min(u.max_height||65535,i),m.setStyle(r,"height",i),e.fire("ResizeEditor")}function r(t,i){var n=e.getContentAreaContainer();l.resizeTo(n.clientWidth+t,n.clientHeight+i)}function a(o){function r(){if(h&&h.moveRel&&h.visible()&&!h._fixed){var t=e.selection.getScrollContainer(),i=e.getBody(),n=0,o=0;if(t){var r=m.getPos(i),a=m.getPos(t);n=Math.max(0,a.x-r.x),o=Math.max(0,a.y-r.y)}h.fixed(!1).moveRel(i,e.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(n,o)}}function a(){h&&(h.show(),r(),m.addClass(e.getBody(),"mce-edit-focus"))}function s(){h&&(h.hide(),m.removeClass(e.getBody(),"mce-edit-focus"))}function d(){return h?void(h.visible()||a()):(h=l.panel=c.create({type:f?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!f,border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t()]}),e.fire("BeforeRenderUI"),h.renderTo(f||document.body).reflow(),n(h),a(),e.on("nodeChange",r),e.on("activate",a),e.on("deactivate",s),void e.nodeChanged())}var h,f;return u.fixed_toolbar_container&&(f=m.select(u.fixed_toolbar_container)[0]),u.content_editable=!0,e.on("focus",function(){o.skinUiCss?tinymce.DOM.styleSheetLoader.load(o.skinUiCss,d,d):d()}),e.on("blur hide",s),e.on("remove",function(){h&&(h.remove(),h=null)}),o.skinUiCss&&tinymce.DOM.styleSheetLoader.load(o.skinUiCss),{}}function s(r){var a,s,d;return r.skinUiCss&&tinymce.DOM.loadCSS(r.skinUiCss),a=l.panel=c.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[u.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:i()},t(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),u.resize!==!1&&(s={type:"resizehandle",direction:u.resize,onResizeStart:function(){var t=e.getContentAreaContainer().firstChild;d={width:t.clientWidth,height:t.clientHeight}},onResize:function(e){"both"==u.resize?o(d.width+e.deltaX,d.height+e.deltaY):o(null,d.height+e.deltaY)}}),u.statusbar!==!1&&a.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},s]}),u.readonly&&a.find("*").disabled(!0),e.fire("BeforeRenderUI"),a.renderBefore(r.targetNode).reflow(),u.width&&tinymce.DOM.setStyle(a.getEl(),"width",u.width),e.on("remove",function(){a.remove(),a=null}),n(a),{iframeContainer:a.find("#iframe")[0].getEl(),editorContainer:a.getEl()}}var l=this,u=e.settings,c=tinymce.ui.Factory,d=tinymce.each,m=tinymce.DOM,h={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";l.renderUI=function(t){var i=u.skin!==!1?u.skin||"lightgray":!1;if(i){var n=u.skin_url;n=n?e.documentBaseURI.toAbsolute(n):tinymce.baseURL+"/skins/"+i,t.skinUiCss=tinymce.Env.documentMode<=7?n+"/skin.ie7.min.css":n+"/skin.min.css",e.contentCSS.push(n+"/content"+(e.inline?".inline":"")+".min.css")}return e.on("ProgressState",function(e){l.throbber=l.throbber||new tinymce.ui.Throbber(l.panel.getEl("body")),e.state?l.throbber.show(e.time):l.throbber.hide()}),u.inline?a(t):s(t)},l.resizeTo=o,l.resizeBy=r}); -
trunk/src/wp-includes/js/tinymce/tinymce.js
r28795 r29203 1 // 4. 0.29 (2014-06-xx)1 // 4.1.2 (2014-07-15) 2 2 3 3 /** … … 663 663 664 664 /*jshint bitwise:false, expr:true, noempty:false, sub:true, eqnull:true, latedef:false, maxlen:255 */ 665 /*eslint dot-notation:0, no-empty:0, no-cond-assign:0, no-unused-expressions:0, new-cap:0, no-nested-ternary:0, func-style:0, no-bitwise:0, max-len:0, brace-style:0 */ 666 667 /* 668 * Sizzle CSS Selector Engine 669 * Copyright, The Dojo Foundation 670 * Released under the MIT, BSD, and GPL Licenses. 671 * More information: http://sizzlejs.com/ 665 /*eslint dot-notation:0, no-empty:0, no-cond-assign:0, no-unused-expressions:0, new-cap:0 */ 666 /*eslint no-nested-ternary:0, func-style:0, no-bitwise:0, max-len:0, brace-style:0, no-return-assign:0 */ 667 668 /** 669 * Sizzle CSS Selector Engine v@VERSION 670 * http://sizzlejs.com/ 671 * 672 * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors 673 * Released under the MIT license 674 * http://jquery.org/license 675 * 676 * Date: @DATE 672 677 */ 673 678 define("tinymce/dom/Sizzle", [], function() { 674 679 var i, 675 cachedruns,680 support, 676 681 Expr, 677 682 getText, 678 683 isXML, 684 tokenize, 679 685 compile, 686 select, 680 687 outermostContext, 681 recompare,682 688 sortInput, 689 hasDuplicate, 683 690 684 691 // Local document vars … … 695 702 expando = "sizzle" + -(new Date()), 696 703 preferredDoc = window.document, 697 support = {},698 704 dirruns = 0, 699 705 done = 0, … … 701 707 tokenCache = createCache(), 702 708 compilerCache = createCache(), 703 hasDuplicate = false, 704 sortOrder = function() { return 0; }, 709 sortOrder = function( a, b ) { 710 if ( a === b ) { 711 hasDuplicate = true; 712 } 713 return 0; 714 }, 705 715 706 716 // General-purpose constants … … 708 718 MAX_NEGATIVE = 1 << 31, 709 719 710 // Array methods 720 // Instance methods 721 hasOwn = ({}).hasOwnProperty, 711 722 arr = [], 712 723 pop = arr.pop, … … 726 737 }, 727 738 739 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 728 740 729 741 // Regular expressions 730 742 731 // Whitespace charactershttp://www.w3.org/TR/css3-selectors/#whitespace743 // http://www.w3.org/TR/css3-selectors/#whitespace 732 744 whitespace = "[\\x20\\t\\r\\n\\f]", 733 // http://www.w3.org/TR/css3-syntax/#characters 734 characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", 735 736 // Loosely modeled on CSS identifier characters 737 // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors 738 // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier 739 identifier = characterEncoding.replace( "w", "w#" ), 740 741 // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors 742 operators = "([*^$|!~]?=)", 743 attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + 744 "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", 745 746 // Prefer arguments quoted, 747 // then not containing pseudos/brackets, 748 // then attribute selectors/non-parenthetical expressions, 749 // then anything else 750 // These preferences are here to reduce the number of selectors 751 // needing tokenize in the PSEUDO preFilter 752 pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", 745 746 // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier 747 identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", 748 749 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors 750 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 751 // Operator (capture 2) 752 "*([*^$|!~]?=)" + whitespace + 753 // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 754 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + 755 "*\\]", 756 757 pseudos = ":(" + identifier + ")(?:\\((" + 758 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 759 // 1. quoted (capture 3; capture 4 or capture 5) 760 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 761 // 2. simple (capture 6) 762 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 763 // 3. anything else (capture 2) 764 ".*" + 765 ")\\)|)", 753 766 754 767 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter … … 756 769 757 770 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), 758 rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), 771 rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), 772 773 rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), 774 759 775 rpseudo = new RegExp( pseudos ), 760 776 ridentifier = new RegExp( "^" + identifier + "$" ), 761 777 762 778 matchExpr = { 763 "ID": new RegExp( "^#(" + characterEncoding + ")" ), 764 "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), 765 "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), 766 "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), 779 "ID": new RegExp( "^#(" + identifier + ")" ), 780 "CLASS": new RegExp( "^\\.(" + identifier + ")" ), 781 "TAG": new RegExp( "^(" + identifier + "|[*])" ), 767 782 "ATTR": new RegExp( "^" + attributes ), 768 783 "PSEUDO": new RegExp( "^" + pseudos ), … … 770 785 "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + 771 786 "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), 787 "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), 772 788 // For use in libraries implementing .is() 773 789 // We use this for POS matching in `select` … … 776 792 }, 777 793 778 rsibling = /[\x20\t\r\n\f]*[+~]/,779 780 rnative = /^[^{]+\{\s*\[native code/,781 782 // Easily-parseable/retrievable ID or TAG or CLASS selectors783 rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,784 785 794 rinputs = /^(?:input|select|textarea|button)$/i, 786 795 rheader = /^h\d$/i, 787 796 797 rnative = /^[^{]+\{\s*\[native \w/, 798 799 // Easily-parseable/retrievable ID or TAG or CLASS selectors 800 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 801 802 rsibling = /[+~]/, 788 803 rescape = /'|\\/g, 789 rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,790 804 791 805 // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters 792 runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,793 funescape = function( _, escaped ) {806 runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), 807 funescape = function( _, escaped, escapedWhitespace ) { 794 808 var high = "0x" + escaped - 0x10000; 795 809 // NaN means non-codepoint 796 return high !== high ? 810 // Support: Firefox<24 811 // Workaround erroneous numeric interpretation of +"0x" 812 return high !== high || escapedWhitespace ? 797 813 escaped : 798 // BMP codepoint799 814 high < 0 ? 815 // BMP codepoint 800 816 String.fromCharCode( high + 0x10000 ) : 801 817 // Supplemental Plane codepoint (surrogate pair) … … 832 848 } 833 849 834 /**835 * For feature detection836 * @param {Function} fn The function to test for native support837 */838 function isNative( fn ) {839 return rnative.test( fn + "" );840 }841 842 /**843 * Create key-value caches of limited size844 * @returns {Function(string, Object)} Returns the Object data after storing it on itself with845 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)846 * deleting the oldest entry847 */848 function createCache() {849 var cache,850 keys = [];851 852 cache = function( key, value ) {853 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)854 if ( keys.push( key += " " ) > Expr.cacheLength ) {855 // Only keep the most recent entries856 delete cache[ keys.shift() ];857 }858 cache[ key ] = value;859 return value;860 };861 862 return cache;863 }864 865 /**866 * Mark a function for special use by Sizzle867 * @param {Function} fn The function to mark868 */869 function markFunction( fn ) {870 fn[ expando ] = true;871 return fn;872 }873 874 /**875 * Support testing using an element876 * @param {Function} fn Passed the created div and expects a boolean result877 */878 function assert( fn ) {879 var div = document.createElement("div");880 881 try {882 return !!fn( div );883 } catch (e) {884 return false;885 } finally {886 // release memory in IE887 div = null;888 }889 }890 891 850 function Sizzle( selector, context, results, seed ) { 892 851 var match, elem, m, nodeType, … … 918 877 elem = context.getElementById( m ); 919 878 // Check parentNode to catch when Blackberry 4.6 returns 920 // nodes that are no longer in the document #6963879 // nodes that are no longer in the document (jQuery #6963) 921 880 if ( elem && elem.parentNode ) { 922 881 // Handle the case where IE, Opera, and Webkit return items … … 944 903 945 904 // Speed-up: Sizzle(".CLASS") 946 } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {905 } else if ( (m = match[3]) && support.getElementsByClassName ) { 947 906 push.apply( results, context.getElementsByClassName( m ) ); 948 907 return results; … … 951 910 952 911 // QSA path 953 if ( support.qsa && !rbuggyQSA.test(selector) ) { 954 old = true; 955 nid = expando; 912 if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { 913 nid = old = expando; 956 914 newContext = context; 957 915 newSelector = nodeType === 9 && selector; … … 975 933 groups[i] = nid + toSelector( groups[i] ); 976 934 } 977 newContext = rsibling.test( selector ) && context.parentNode|| context;935 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; 978 936 newSelector = groups.join(","); 979 937 } … … 1000 958 1001 959 /** 1002 * Detect xml 960 * Create key-value caches of limited size 961 * @returns {Function(string, Object)} Returns the Object data after storing it on itself with 962 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 963 * deleting the oldest entry 964 */ 965 function createCache() { 966 var keys = []; 967 968 function cache( key, value ) { 969 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) 970 if ( keys.push( key + " " ) > Expr.cacheLength ) { 971 // Only keep the most recent entries 972 delete cache[ keys.shift() ]; 973 } 974 return (cache[ key + " " ] = value); 975 } 976 return cache; 977 } 978 979 /** 980 * Mark a function for special use by Sizzle 981 * @param {Function} fn The function to mark 982 */ 983 function markFunction( fn ) { 984 fn[ expando ] = true; 985 return fn; 986 } 987 988 /** 989 * Support testing using an element 990 * @param {Function} fn Passed the created div and expects a boolean result 991 */ 992 function assert( fn ) { 993 var div = document.createElement("div"); 994 995 try { 996 return !!fn( div ); 997 } catch (e) { 998 return false; 999 } finally { 1000 // Remove from its parent by default 1001 if ( div.parentNode ) { 1002 div.parentNode.removeChild( div ); 1003 } 1004 // release memory in IE 1005 div = null; 1006 } 1007 } 1008 1009 /** 1010 * Adds the same handler for all of the specified attrs 1011 * @param {String} attrs Pipe-separated list of attributes 1012 * @param {Function} handler The method that will be applied 1013 */ 1014 function addHandle( attrs, handler ) { 1015 var arr = attrs.split("|"), 1016 i = attrs.length; 1017 1018 while ( i-- ) { 1019 Expr.attrHandle[ arr[i] ] = handler; 1020 } 1021 } 1022 1023 /** 1024 * Checks document order of two siblings 1025 * @param {Element} a 1026 * @param {Element} b 1027 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b 1028 */ 1029 function siblingCheck( a, b ) { 1030 var cur = b && a, 1031 diff = cur && a.nodeType === 1 && b.nodeType === 1 && 1032 ( ~b.sourceIndex || MAX_NEGATIVE ) - 1033 ( ~a.sourceIndex || MAX_NEGATIVE ); 1034 1035 // Use IE sourceIndex if available on both nodes 1036 if ( diff ) { 1037 return diff; 1038 } 1039 1040 // Check if b follows a 1041 if ( cur ) { 1042 while ( (cur = cur.nextSibling) ) { 1043 if ( cur === b ) { 1044 return -1; 1045 } 1046 } 1047 } 1048 1049 return a ? 1 : -1; 1050 } 1051 1052 /** 1053 * Returns a function to use in pseudos for input types 1054 * @param {String} type 1055 */ 1056 function createInputPseudo( type ) { 1057 return function( elem ) { 1058 var name = elem.nodeName.toLowerCase(); 1059 return name === "input" && elem.type === type; 1060 }; 1061 } 1062 1063 /** 1064 * Returns a function to use in pseudos for buttons 1065 * @param {String} type 1066 */ 1067 function createButtonPseudo( type ) { 1068 return function( elem ) { 1069 var name = elem.nodeName.toLowerCase(); 1070 return (name === "input" || name === "button") && elem.type === type; 1071 }; 1072 } 1073 1074 /** 1075 * Returns a function to use in pseudos for positionals 1076 * @param {Function} fn 1077 */ 1078 function createPositionalPseudo( fn ) { 1079 return markFunction(function( argument ) { 1080 argument = +argument; 1081 return markFunction(function( seed, matches ) { 1082 var j, 1083 matchIndexes = fn( [], seed.length, argument ), 1084 i = matchIndexes.length; 1085 1086 // Match elements found at the specified indexes 1087 while ( i-- ) { 1088 if ( seed[ (j = matchIndexes[i]) ] ) { 1089 seed[j] = !(matches[j] = seed[j]); 1090 } 1091 } 1092 }); 1093 }); 1094 } 1095 1096 /** 1097 * Checks a node for validity as a Sizzle context 1098 * @param {Element|Object=} context 1099 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 1100 */ 1101 function testContext( context ) { 1102 return context && typeof context.getElementsByTagName !== strundefined && context; 1103 } 1104 1105 // Expose support vars for convenience 1106 support = Sizzle.support = {}; 1107 1108 /** 1109 * Detects XML nodes 1003 1110 * @param {Element|Object} elem An element or a document 1111 * @returns {Boolean} True iff elem is a non-HTML XML node 1004 1112 */ 1005 1113 isXML = Sizzle.isXML = function( elem ) { … … 1016 1124 */ 1017 1125 setDocument = Sizzle.setDocument = function( node ) { 1018 var doc = node ? node.ownerDocument || node : preferredDoc; 1126 var hasCompare, 1127 doc = node ? node.ownerDocument || node : preferredDoc, 1128 parent = doc.defaultView; 1019 1129 1020 1130 // If no document and documentElement is available, return … … 1029 1139 // Support tests 1030 1140 documentIsHTML = !isXML( doc ); 1141 1142 // Support: IE>8 1143 // If iframe document is assigned to "document" variable and if iframe has been reloaded, 1144 // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 1145 // IE6-8 do not support the defaultView property so parent will be undefined 1146 if ( parent && parent !== parent.top ) { 1147 // IE11 does not have attachEvent, so all must suffer 1148 if ( parent.addEventListener ) { 1149 parent.addEventListener( "unload", function() { 1150 setDocument(); 1151 }, false ); 1152 } else if ( parent.attachEvent ) { 1153 parent.attachEvent( "onunload", function() { 1154 setDocument(); 1155 }); 1156 } 1157 } 1158 1159 /* Attributes 1160 ---------------------------------------------------------------------- */ 1161 1162 // Support: IE<8 1163 // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) 1164 support.attributes = assert(function( div ) { 1165 div.className = "i"; 1166 return !div.getAttribute("className"); 1167 }); 1168 1169 /* getElement(s)By* 1170 ---------------------------------------------------------------------- */ 1031 1171 1032 1172 // Check if getElementsByTagName("*") returns only elements … … 1036 1176 }); 1037 1177 1038 // Check if attributes should be retrieved by attribute nodes 1039 support.attributes = assert(function( div ) { 1040 div.innerHTML = "<select></select>"; 1041 var type = typeof div.lastChild.getAttribute("multiple"); 1042 // IE8 returns a string for some attributes even when not present 1043 return type !== "boolean" && type !== "string"; 1178 // Support: IE<9 1179 support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); 1180 1181 // Support: IE<10 1182 // Check if getElementById returns elements by name 1183 // The broken getElementById methods don't pick up programatically-set names, 1184 // so use a roundabout getElementsByName test 1185 support.getById = assert(function( div ) { 1186 docElem.appendChild( div ).id = expando; 1187 return !doc.getElementsByName || !doc.getElementsByName( expando ).length; 1044 1188 }); 1045 1189 1046 // Check if getElementsByClassName can be trusted1047 support.getElementsByClassName = assert(function( div ) {1048 // Opera can't find a second classname (in 9.6)1049 div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";1050 if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {1051 return false;1052 }1053 1054 // Safari 3.2 caches class attributes and doesn't catch changes1055 div.lastChild.className = "e";1056 return div.getElementsByClassName("e").length === 2;1057 });1058 1059 // Check if getElementsByName privileges form controls or returns elements by ID1060 // If so, assume (for broader support) that getElementById returns elements by name1061 support.getByName = assert(function( div ) {1062 // Inject content1063 div.id = expando + 0;1064 // Support: Windows 8 Native Apps1065 // Assigning innerHTML with "name" attributes throws uncatchable exceptions1066 // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx1067 div.appendChild( document.createElement("a") ).setAttribute( "name", expando );1068 div.appendChild( document.createElement("i") ).setAttribute( "name", expando );1069 docElem.appendChild( div );1070 1071 // Test1072 var pass = doc.getElementsByName &&1073 // buggy browsers will return fewer than the correct 21074 doc.getElementsByName( expando ).length === 2 +1075 // buggy browsers will return more than the correct 01076 doc.getElementsByName( expando + 0 ).length;1077 1078 // Cleanup1079 docElem.removeChild( div );1080 1081 return pass;1082 });1083 1084 // Support: Webkit<537.321085 // Detached nodes confoundingly follow *each other*1086 support.sortDetached = assert(function( div1 ) {1087 return div1.compareDocumentPosition &&1088 // Should return 1, but Webkit returns 4 (following)1089 (div1.compareDocumentPosition( document.createElement("div") ) & 1);1090 });1091 1092 // IE6/7 return modified attributes1093 Expr.attrHandle = assert(function( div ) {1094 div.innerHTML = "<a href='#'></a>";1095 return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&1096 div.firstChild.getAttribute("href") === "#";1097 }) ?1098 {} :1099 {1100 "href": function( elem ) {1101 return elem.getAttribute( "href", 2 );1102 },1103 "type": function( elem ) {1104 return elem.getAttribute("type");1105 }1106 };1107 1108 1190 // ID find and filter 1109 if ( support.getBy Name) {1191 if ( support.getById ) { 1110 1192 Expr.find["ID"] = function( id, context ) { 1111 1193 if ( typeof context.getElementById !== strundefined && documentIsHTML ) { … … 1113 1195 // Check parentNode to catch when Blackberry 4.6 returns 1114 1196 // nodes that are no longer in the document #6963 1115 return m && m.parentNode ? [ m] : [];1197 return m && m.parentNode ? [ m ] : []; 1116 1198 } 1117 1199 }; … … 1123 1205 }; 1124 1206 } else { 1125 Expr.find["ID"] = function( id, context ) { 1126 if ( typeof context.getElementById !== strundefined && documentIsHTML ) { 1127 var m = context.getElementById( id ); 1128 1129 return m ? 1130 m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? 1131 [m] : 1132 undefined : 1133 []; 1134 } 1135 }; 1207 // Support: IE6/7 1208 // getElementById is not reliable as a find shortcut 1209 delete Expr.find["ID"]; 1210 1136 1211 Expr.filter["ID"] = function( id ) { 1137 1212 var attrId = id.replace( runescape, funescape ); … … 1169 1244 }; 1170 1245 1171 // Name1172 Expr.find["NAME"] = support.getByName && function( tag, context ) {1173 if ( typeof context.getElementsByName !== strundefined ) {1174 return context.getElementsByName( name );1175 }1176 };1177 1178 1246 // Class 1179 1247 Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { 1180 if ( typeof context.getElementsByClassName !== strundefined &&documentIsHTML ) {1248 if ( documentIsHTML ) { 1181 1249 return context.getElementsByClassName( className ); 1182 1250 } 1183 1251 }; 1252 1253 /* QSA/matchesSelector 1254 ---------------------------------------------------------------------- */ 1184 1255 1185 1256 // QSA and matchesSelector support … … 1188 1259 rbuggyMatches = []; 1189 1260 1190 // qSa(:focus) reports false when true (Chrome 21), 1191 // no need to also add to buggyMatches since matches checks buggyQSA 1192 // A support test would require too much code (would include document ready) 1193 rbuggyQSA = [ ":focus" ]; 1194 1195 if ( (support.qsa = isNative(doc.querySelectorAll)) ) { 1261 // qSa(:focus) reports false when true (Chrome 21) 1262 // We allow this because of a bug in IE8/9 that throws an error 1263 // whenever `document.activeElement` is accessed on an iframe 1264 // So, we allow :focus to pass through QSA all the time to avoid the IE error 1265 // See http://bugs.jquery.com/ticket/13378 1266 rbuggyQSA = []; 1267 1268 if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { 1196 1269 // Build QSA regex 1197 1270 // Regex strategy adopted from Diego Perini … … 1202 1275 // since its presence should be enough 1203 1276 // http://bugs.jquery.com/ticket/12359 1204 div.innerHTML = "<select><option selected=''></option></select>"; 1205 1206 // IE8 - Some boolean attributes are not treated correctly 1277 div.innerHTML = "<select msallowcapture=''><option selected=''></option></select>"; 1278 1279 // Support: IE8, Opera 11-12.16 1280 // Nothing should be selected when empty strings follow ^= or $= or *= 1281 // The test attribute must be unknown in Opera but "safe" for WinRT 1282 // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section 1283 if ( div.querySelectorAll("[msallowcapture^='']").length ) { 1284 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); 1285 } 1286 1287 // Support: IE8 1288 // Boolean attributes and "value" are not treated correctly 1207 1289 if ( !div.querySelectorAll("[selected]").length ) { 1208 rbuggyQSA.push( "\\[" + whitespace + "*(?: checked|disabled|ismap|multiple|readonly|selected|value)" );1290 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); 1209 1291 } 1210 1292 … … 1218 1300 1219 1301 assert(function( div ) { 1220 1221 // Opera 10-12/IE8 - ^= $= *= and empty values 1222 // Should not select anything 1223 div.innerHTML = "<input type='hidden' i=''/>"; 1224 if ( div.querySelectorAll("[i^='']").length ) { 1225 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); 1302 // Support: Windows 8 Native Apps 1303 // The type and name attributes are restricted during .innerHTML assignment 1304 var input = doc.createElement("input"); 1305 input.setAttribute( "type", "hidden" ); 1306 div.appendChild( input ).setAttribute( "name", "D" ); 1307 1308 // Support: IE8 1309 // Enforce case-sensitivity of name attribute 1310 if ( div.querySelectorAll("[name=d]").length ) { 1311 rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); 1226 1312 } 1227 1313 … … 1238 1324 } 1239 1325 1240 if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || 1326 if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || 1327 docElem.webkitMatchesSelector || 1241 1328 docElem.mozMatchesSelector || 1242 docElem.webkitMatchesSelector ||1243 1329 docElem.oMatchesSelector || 1244 1330 docElem.msMatchesSelector) )) ) { … … 1256 1342 } 1257 1343 1258 rbuggyQSA = new RegExp( rbuggyQSA.join("|") );1344 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); 1259 1345 rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); 1260 1346 1347 /* Contains 1348 ---------------------------------------------------------------------- */ 1349 hasCompare = rnative.test( docElem.compareDocumentPosition ); 1350 1261 1351 // Element contains another 1262 // Purposefully does not implement inclusive descend ant1352 // Purposefully does not implement inclusive descendent 1263 1353 // As in, an element does not contain itself 1264 contains = isNative(docElem.contains) || docElem.compareDocumentPosition?1354 contains = hasCompare || rnative.test( docElem.contains ) ? 1265 1355 function( a, b ) { 1266 1356 var adown = a.nodeType === 9 ? a.documentElement : a, … … 1283 1373 }; 1284 1374 1375 /* Sorting 1376 ---------------------------------------------------------------------- */ 1377 1285 1378 // Document order sorting 1286 sortOrder = docElem.compareDocumentPosition?1379 sortOrder = hasCompare ? 1287 1380 function( a, b ) { 1288 1381 … … 1293 1386 } 1294 1387 1295 var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );1296 1388 // Sort on method existence if only one input has compareDocumentPosition 1389 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 1297 1390 if ( compare ) { 1298 // Disconnected nodes 1299 if ( compare & 1 || 1300 (recompare && b.compareDocumentPosition( a ) === compare) ) { 1301 1302 // Choose the first element that is related to our preferred document 1303 if ( a === doc || contains(preferredDoc, a) ) { 1304 return -1; 1305 } 1306 if ( b === doc || contains(preferredDoc, b) ) { 1307 return 1; 1308 } 1309 1310 // Maintain original order 1311 return sortInput ? 1312 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 1313 0; 1314 } 1315 1316 return compare & 4 ? -1 : 1; 1317 } 1318 1319 // Not directly comparable, sort on existence of method 1320 return a.compareDocumentPosition ? -1 : 1; 1391 return compare; 1392 } 1393 1394 // Calculate position if both inputs belong to the same document 1395 compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? 1396 a.compareDocumentPosition( b ) : 1397 1398 // Otherwise we know they are disconnected 1399 1; 1400 1401 // Disconnected nodes 1402 if ( compare & 1 || 1403 (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { 1404 1405 // Choose the first element that is related to our preferred document 1406 if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { 1407 return -1; 1408 } 1409 if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { 1410 return 1; 1411 } 1412 1413 // Maintain original order 1414 return sortInput ? 1415 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 1416 0; 1417 } 1418 1419 return compare & 4 ? -1 : 1; 1321 1420 } : 1322 1421 function( a, b ) { 1422 // Exit early if the nodes are identical 1423 if ( a === b ) { 1424 hasDuplicate = true; 1425 return 0; 1426 } 1427 1323 1428 var cur, 1324 1429 i = 0, … … 1328 1433 bp = [ b ]; 1329 1434 1330 // Exit early if the nodes are identical1331 if ( a === b ) {1332 hasDuplicate = true;1333 return 0;1334 1335 1435 // Parentless nodes are either documents or disconnected 1336 } elseif ( !aup || !bup ) {1436 if ( !aup || !bup ) { 1337 1437 return a === doc ? -1 : 1338 1438 b === doc ? 1 : 1339 1439 aup ? -1 : 1340 1440 bup ? 1 : 1441 sortInput ? 1442 ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : 1341 1443 0; 1342 1444 … … 1371 1473 }; 1372 1474 1373 return doc ument;1475 return doc; 1374 1476 }; 1375 1477 … … 1387 1489 expr = expr.replace( rattributeQuotes, "='$1']" ); 1388 1490 1389 // rbuggyQSA always contains :focus, so no need for an existence check 1390 if ( support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { 1491 if ( support.matchesSelector && documentIsHTML && 1492 ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && 1493 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { 1494 1391 1495 try { 1392 1496 var ret = matches.call( elem, expr ); … … 1402 1506 } 1403 1507 1404 return Sizzle( expr, document, null, [ elem] ).length > 0;1508 return Sizzle( expr, document, null, [ elem ] ).length > 0; 1405 1509 }; 1406 1510 … … 1414 1518 1415 1519 Sizzle.attr = function( elem, name ) { 1416 var val;1417 1418 1520 // Set document vars if needed 1419 1521 if ( ( elem.ownerDocument || elem ) !== document ) { … … 1421 1523 } 1422 1524 1423 if ( documentIsHTML ) { 1424 name = name.toLowerCase(); 1425 } 1426 if ( (val = Expr.attrHandle[ name ]) ) { 1427 return val( elem ); 1428 } 1429 if ( !documentIsHTML || support.attributes ) { 1430 return elem.getAttribute( name ); 1431 } 1432 return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? 1433 name : 1434 val && val.specified ? val.value : null; 1525 var fn = Expr.attrHandle[ name.toLowerCase() ], 1526 // Don't get fooled by Object.prototype properties (jQuery #13807) 1527 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? 1528 fn( elem, name, !documentIsHTML ) : 1529 undefined; 1530 1531 return val !== undefined ? 1532 val : 1533 support.attributes || !documentIsHTML ? 1534 elem.getAttribute( name ) : 1535 (val = elem.getAttributeNode(name)) && val.specified ? 1536 val.value : 1537 null; 1435 1538 }; 1436 1539 … … 1439 1542 }; 1440 1543 1441 // Document sorting and removing duplicates 1544 /** 1545 * Document sorting and removing duplicates 1546 * @param {ArrayLike} results 1547 */ 1442 1548 Sizzle.uniqueSort = function( results ) { 1443 1549 var elem, … … 1448 1554 // Unless we *know* we can detect duplicates, assume their presence 1449 1555 hasDuplicate = !support.detectDuplicates; 1450 // Compensate for sort limitations1451 recompare = !support.sortDetached;1452 1556 sortInput = !support.sortStable && results.slice( 0 ); 1453 1557 results.sort( sortOrder ); … … 1464 1568 } 1465 1569 1570 // Clear input after sorting to release objects 1571 // See https://github.com/jquery/sizzle/pull/225 1572 sortInput = null; 1573 1466 1574 return results; 1467 1575 }; 1468 1469 /**1470 * Checks document order of two siblings1471 * @param {Element} a1472 * @param {Element} b1473 * @returns Returns -1 if a precedes b, 1 if a follows b1474 */1475 function siblingCheck( a, b ) {1476 var cur = b && a,1477 diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE );1478 1479 // Use IE sourceIndex if available on both nodes1480 if ( diff ) {1481 return diff;1482 }1483 1484 // Check if b follows a1485 if ( cur ) {1486 while ( (cur = cur.nextSibling) ) {1487 if ( cur === b ) {1488 return -1;1489 }1490 }1491 }1492 1493 return a ? 1 : -1;1494 }1495 1496 // Returns a function to use in pseudos for input types1497 function createInputPseudo( type ) {1498 return function( elem ) {1499 var name = elem.nodeName.toLowerCase();1500 return name === "input" && elem.type === type;1501 };1502 }1503 1504 // Returns a function to use in pseudos for buttons1505 function createButtonPseudo( type ) {1506 return function( elem ) {1507 var name = elem.nodeName.toLowerCase();1508 return (name === "input" || name === "button") && elem.type === type;1509 };1510 }1511 1512 // Returns a function to use in pseudos for positionals1513 function createPositionalPseudo( fn ) {1514 return markFunction(function( argument ) {1515 argument = +argument;1516 return markFunction(function( seed, matches ) {1517 var j,1518 matchIndexes = fn( [], seed.length, argument ),1519 i = matchIndexes.length;1520 1521 // Match elements found at the specified indexes1522 while ( i-- ) {1523 if ( seed[ (j = matchIndexes[i]) ] ) {1524 seed[j] = !(matches[j] = seed[j]);1525 }1526 }1527 });1528 });1529 }1530 1576 1531 1577 /** … … 1541 1587 if ( !nodeType ) { 1542 1588 // If no nodeType, this is expected to be an array 1543 for ( ; (node = elem[i]); i++) {1589 while ( (node = elem[i++]) ) { 1544 1590 // Do not traverse comment nodes 1545 1591 ret += getText( node ); … … 1547 1593 } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { 1548 1594 // Use textContent for elements 1549 // innerText usage removed for consistency of new lines ( see#11153)1595 // innerText usage removed for consistency of new lines (jQuery #11153) 1550 1596 if ( typeof elem.textContent === "string" ) { 1551 1597 return elem.textContent; … … 1573 1619 match: matchExpr, 1574 1620 1621 attrHandle: {}, 1622 1575 1623 find: {}, 1576 1624 … … 1587 1635 1588 1636 // Move the given value to match[3] whether quoted or unquoted 1589 match[3] = ( match[ 4] || match[5] || "" ).replace( runescape, funescape );1637 match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); 1590 1638 1591 1639 if ( match[2] === "~=" ) { … … 1630 1678 "PSEUDO": function( match ) { 1631 1679 var excess, 1632 unquoted = !match[ 5] && match[2];1680 unquoted = !match[6] && match[2]; 1633 1681 1634 1682 if ( matchExpr["CHILD"].test( match[0] ) ) { … … 1637 1685 1638 1686 // Accept quoted arguments as-is 1639 if ( match[ 4] ) {1640 match[2] = match[4] ;1687 if ( match[3] ) { 1688 match[2] = match[4] || match[5] || ""; 1641 1689 1642 1690 // Strip excess characters from unquoted arguments … … 1659 1707 filter: { 1660 1708 1661 "TAG": function( nodeName ) { 1662 if ( nodeName === "*" ) { 1663 return function() { return true; }; 1664 } 1665 1666 nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); 1667 return function( elem ) { 1668 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 1669 }; 1709 "TAG": function( nodeNameSelector ) { 1710 var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); 1711 return nodeNameSelector === "*" ? 1712 function() { return true; } : 1713 function( elem ) { 1714 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 1715 }; 1670 1716 }, 1671 1717 … … 1676 1722 (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && 1677 1723 classCache( className, function( elem ) { 1678 return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );1724 return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); 1679 1725 }); 1680 1726 }, … … 1868 1914 1869 1915 "contains": markFunction(function( text ) { 1916 text = text.replace( runescape, funescape ); 1870 1917 return function( elem ) { 1871 1918 return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; … … 1944 1991 "empty": function( elem ) { 1945 1992 // http://www.w3.org/TR/selectors/#empty-pseudo 1946 // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), 1947 // not comment, processing instructions, or others 1948 // Thanks to Diego Perini for the nodeName shortcut 1949 // Greater than "@" means alpha characters (specifically not starting with "#" or "?") 1993 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 1994 // but not by others (comment: 8; processing instruction: 7; etc.) 1995 // nodeType < 6 works because attributes (2) do not appear as children 1950 1996 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 1951 if ( elem.node Name > "@" || elem.nodeType === 3 || elem.nodeType === 4) {1997 if ( elem.nodeType < 6 ) { 1952 1998 return false; 1953 1999 } … … 1976 2022 "text": function( elem ) { 1977 2023 var attr; 1978 // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)1979 // use getAttribute instead to test this case1980 2024 return elem.nodeName.toLowerCase() === "input" && 1981 2025 elem.type === "text" && 1982 ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); 2026 2027 // Support: IE<8 2028 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" 2029 ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); 1983 2030 }, 1984 2031 … … 2029 2076 } 2030 2077 }; 2078 2079 Expr.pseudos["nth"] = Expr.pseudos["eq"]; 2031 2080 2032 2081 // Add button/input type pseudos … … 2038 2087 } 2039 2088 2040 function tokenize( selector, parseOnly ) { 2089 // Easy API for creating new setFilters 2090 function setFilters() {} 2091 setFilters.prototype = Expr.filters = Expr.pseudos; 2092 Expr.setFilters = new setFilters(); 2093 2094 tokenize = Sizzle.tokenize = function( selector, parseOnly ) { 2041 2095 var matched, match, tokens, type, 2042 2096 soFar, groups, preFilters, … … 2059 2113 soFar = soFar.slice( match[0].length ) || soFar; 2060 2114 } 2061 groups.push( tokens = []);2115 groups.push( (tokens = []) ); 2062 2116 } 2063 2117 … … 2067 2121 if ( (match = rcombinators.exec( soFar )) ) { 2068 2122 matched = match.shift(); 2069 tokens.push( 2123 tokens.push({ 2070 2124 value: matched, 2071 2125 // Cast descendant combinators to space 2072 2126 type: match[0].replace( rtrim, " " ) 2073 } 2127 }); 2074 2128 soFar = soFar.slice( matched.length ); 2075 2129 } … … 2080 2134 (match = preFilters[ type ]( match ))) ) { 2081 2135 matched = match.shift(); 2082 tokens.push( 2136 tokens.push({ 2083 2137 value: matched, 2084 2138 type: type, 2085 2139 matches: match 2086 } 2140 }); 2087 2141 soFar = soFar.slice( matched.length ); 2088 2142 } … … 2103 2157 // Cache the tokens 2104 2158 tokenCache( selector, groups ).slice( 0 ); 2105 } 2159 }; 2106 2160 2107 2161 function toSelector( tokens ) { … … 2132 2186 // Check against all ancestor/preceding elements 2133 2187 function( elem, context, xml ) { 2134 var data, cache, outerCache,2135 dirkey = dirruns + " " + doneName;2188 var oldCache, outerCache, 2189 newCache = [ dirruns, doneName ]; 2136 2190 2137 2191 // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching … … 2148 2202 if ( elem.nodeType === 1 || checkNonElements ) { 2149 2203 outerCache = elem[ expando ] || (elem[ expando ] = {}); 2150 if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { 2151 if ( (data = cache[1]) === true || data === cachedruns ) { 2152 return data === true; 2153 } 2204 if ( (oldCache = outerCache[ dir ]) && 2205 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { 2206 2207 // Assign to newCache so results back-propagate to previous elements 2208 return (newCache[ 2 ] = oldCache[ 2 ]); 2154 2209 } else { 2155 cache = outerCache[ dir ] = [ dirkey ]; 2156 cache[1] = matcher( elem, context, xml ) || cachedruns; 2157 if ( cache[1] === true ) { 2210 // Reuse newcache so results back-propagate to previous elements 2211 outerCache[ dir ] = newCache; 2212 2213 // A match means we're done; a fail means we have to keep checking 2214 if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { 2158 2215 return true; 2159 2216 } … … 2177 2234 } : 2178 2235 matchers[0]; 2236 } 2237 2238 function multipleContexts( selector, contexts, results ) { 2239 var i = 0, 2240 len = contexts.length; 2241 for ( ; i < len; i++ ) { 2242 Sizzle( selector, contexts[i], results ); 2243 } 2244 return results; 2179 2245 } 2180 2246 … … 2331 2397 return setMatcher( 2332 2398 i > 1 && elementMatcher( matchers ), 2333 i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), 2399 i > 1 && toSelector( 2400 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 2401 tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) 2402 ).replace( rtrim, "$1" ), 2334 2403 matcher, 2335 2404 i < j && matcherFromTokens( tokens.slice( i, j ) ), … … 2346 2415 2347 2416 function matcherFromGroupMatchers( elementMatchers, setMatchers ) { 2348 // A counter to specify which element is currently being matched 2349 var matcherCachedRuns = 0, 2350 bySet = setMatchers.length > 0, 2417 var bySet = setMatchers.length > 0, 2351 2418 byElement = elementMatchers.length > 0, 2352 superMatcher = function( seed, context, xml, results, expandContext ) {2419 superMatcher = function( seed, context, xml, results, outermost ) { 2353 2420 var elem, j, matcher, 2354 setMatched = [],2355 2421 matchedCount = 0, 2356 2422 i = "0", 2357 2423 unmatched = seed && [], 2358 outermost = expandContext != null,2424 setMatched = [], 2359 2425 contextBackup = outermostContext, 2360 // We must always have either seed elements or context2361 elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),2426 // We must always have either seed elements or outermost context 2427 elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), 2362 2428 // Use integer dirruns iff this is the outermost matcher 2363 dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); 2429 dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), 2430 len = elems.length; 2364 2431 2365 2432 if ( outermost ) { 2366 2433 outermostContext = context !== document && context; 2367 cachedruns = matcherCachedRuns;2368 2434 } 2369 2435 2370 2436 // Add elements passing elementMatchers directly to results 2371 2437 // Keep `i` a string if there are no elements so `matchedCount` will be "00" below 2372 for ( ; (elem = elems[i]) != null; i++ ) { 2438 // Support: IE<9, Safari 2439 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id 2440 for ( ; i !== len && (elem = elems[i]) != null; i++ ) { 2373 2441 if ( byElement && elem ) { 2374 2442 j = 0; … … 2381 2449 if ( outermost ) { 2382 2450 dirruns = dirrunsUnique; 2383 cachedruns = ++matcherCachedRuns;2384 2451 } 2385 2452 } … … 2446 2513 } 2447 2514 2448 compile = Sizzle.compile = function( selector, group/* Internal Use Only */ ) {2515 compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { 2449 2516 var i, 2450 2517 setMatchers = [], … … 2454 2521 if ( !cached ) { 2455 2522 // Generate a function of recursive functions that can be used to check each element 2456 if ( ! group) {2457 group= tokenize( selector );2458 } 2459 i = group.length;2523 if ( !match ) { 2524 match = tokenize( selector ); 2525 } 2526 i = match.length; 2460 2527 while ( i-- ) { 2461 cached = matcherFromTokens( group[i] );2528 cached = matcherFromTokens( match[i] ); 2462 2529 if ( cached[ expando ] ) { 2463 2530 setMatchers.push( cached ); … … 2469 2536 // Cache the compiled function 2470 2537 cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); 2538 2539 // Save selector and tokenization 2540 cached.selector = selector; 2471 2541 } 2472 2542 return cached; 2473 2543 }; 2474 2544 2475 function multipleContexts( selector, contexts, results ) { 2476 var i = 0, 2477 len = contexts.length; 2478 for ( ; i < len; i++ ) { 2479 Sizzle( selector, contexts[i], results ); 2545 /** 2546 * A low-level selection function that works with Sizzle's compiled 2547 * selector functions 2548 * @param {String|Function} selector A selector or a pre-compiled 2549 * selector function built with Sizzle.compile 2550 * @param {Element} context 2551 * @param {Array} [results] 2552 * @param {Array} [seed] A set of elements to match against 2553 */ 2554 select = Sizzle.select = function( selector, context, results, seed ) { 2555 var i, tokens, token, type, find, 2556 compiled = typeof selector === "function" && selector, 2557 match = !seed && tokenize( (selector = compiled.selector || selector) ); 2558 2559 results = results || []; 2560 2561 // Try to minimize operations if there is no seed and only one group 2562 if ( match.length === 1 ) { 2563 2564 // Take a shortcut and set the context if the root selector is an ID 2565 tokens = match[0] = match[0].slice( 0 ); 2566 if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && 2567 support.getById && context.nodeType === 9 && documentIsHTML && 2568 Expr.relative[ tokens[1].type ] ) { 2569 2570 context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; 2571 if ( !context ) { 2572 return results; 2573 2574 // Precompiled matchers will still verify ancestry, so step up a level 2575 } else if ( compiled ) { 2576 context = context.parentNode; 2577 } 2578 2579 selector = selector.slice( tokens.shift().value.length ); 2580 } 2581 2582 // Fetch a seed set for right-to-left matching 2583 i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; 2584 while ( i-- ) { 2585 token = tokens[i]; 2586 2587 // Abort if we hit a combinator 2588 if ( Expr.relative[ (type = token.type) ] ) { 2589 break; 2590 } 2591 if ( (find = Expr.find[ type ]) ) { 2592 // Search, expanding context for leading sibling combinators 2593 if ( (seed = find( 2594 token.matches[0].replace( runescape, funescape ), 2595 rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context 2596 )) ) { 2597 2598 // If seed is empty or no tokens remain, we can return early 2599 tokens.splice( i, 1 ); 2600 selector = seed.length && toSelector( tokens ); 2601 if ( !selector ) { 2602 push.apply( results, seed ); 2603 return results; 2604 } 2605 2606 break; 2607 } 2608 } 2609 } 2480 2610 } 2481 return results; 2482 } 2483 2484 function select( selector, context, results, seed ) { 2485 var i, tokens, token, type, find, 2486 match = tokenize( selector ); 2487 2488 if ( !seed ) { 2489 // Try to minimize operations if there is only one group 2490 if ( match.length === 1 ) { 2491 2492 // Take a shortcut and set the context if the root selector is an ID 2493 tokens = match[0] = match[0].slice( 0 ); 2494 if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && 2495 context.nodeType === 9 && documentIsHTML && 2496 Expr.relative[ tokens[1].type ] ) { 2497 2498 context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; 2499 if ( !context ) { 2500 return results; 2501 } 2502 2503 selector = selector.slice( tokens.shift().value.length ); 2504 } 2505 2506 // Fetch a seed set for right-to-left matching 2507 i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; 2508 while ( i-- ) { 2509 token = tokens[i]; 2510 2511 // Abort if we hit a combinator 2512 if ( Expr.relative[ (type = token.type) ] ) { 2513 break; 2514 } 2515 if ( (find = Expr.find[ type ]) ) { 2516 // Search, expanding context for leading sibling combinators 2517 if ( (seed = find( 2518 token.matches[0].replace( runescape, funescape ), 2519 rsibling.test( tokens[0].type ) && context.parentNode || context 2520 )) ) { 2521 2522 // If seed is empty or no tokens remain, we can return early 2523 tokens.splice( i, 1 ); 2524 selector = seed.length && toSelector( tokens ); 2525 if ( !selector ) { 2526 push.apply( results, seed ); 2527 return results; 2528 } 2529 2530 break; 2531 } 2532 } 2533 } 2534 } 2535 } 2536 2537 // Compile and execute a filtering function 2611 2612 // Compile and execute a filtering function if one is not provided 2538 2613 // Provide `match` to avoid retokenization if we modified the selector above 2539 compile( selector, match)(2614 ( compiled || compile( selector, match ) )( 2540 2615 seed, 2541 2616 context, 2542 2617 !documentIsHTML, 2543 2618 results, 2544 rsibling.test( selector ) 2619 rsibling.test( selector ) && testContext( context.parentNode ) || context 2545 2620 ); 2546 2621 return results; 2622 }; 2623 2624 // One-time assignments 2625 2626 // Sort stability 2627 support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; 2628 2629 // Support: Chrome 14-35+ 2630 // Always assume duplicates if they aren't passed to the comparison function 2631 support.detectDuplicates = !!hasDuplicate; 2632 2633 // Initialize against the default document 2634 setDocument(); 2635 2636 // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) 2637 // Detached nodes confoundingly follow *each other* 2638 support.sortDetached = assert(function( div1 ) { 2639 // Should return 1, but returns 4 (following) 2640 return div1.compareDocumentPosition( document.createElement("div") ) & 1; 2641 }); 2642 2643 // Support: IE<8 2644 // Prevent attribute/property "interpolation" 2645 // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx 2646 if ( !assert(function( div ) { 2647 div.innerHTML = "<a href='#'></a>"; 2648 return div.firstChild.getAttribute("href") === "#" ; 2649 }) ) { 2650 addHandle( "type|href|height|width", function( elem, name, isXML ) { 2651 if ( !isXML ) { 2652 return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); 2653 } 2654 }); 2547 2655 } 2548 2656 2549 // Deprecated 2550 Expr.pseudos["nth"] = Expr.pseudos["eq"]; 2551 2552 // Easy API for creating new setFilters 2553 function setFilters() {} 2554 setFilters.prototype = Expr.filters = Expr.pseudos; 2555 Expr.setFilters = new setFilters(); 2556 2557 // Check sort stability 2558 support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; 2559 2560 // Initialize with the default document 2561 setDocument(); 2562 2563 // Always assume the presence of duplicates if sort doesn't 2564 // pass them to our comparison function (as in Google Chrome). 2565 [0, 0].sort( sortOrder ); 2566 support.detectDuplicates = hasDuplicate; 2567 2568 /* 2569 // EXPOSE 2570 if ( typeof define === "function" && define.amd ) { 2571 define(function() { return Sizzle; }); 2572 } else { 2573 window.Sizzle = Sizzle; 2657 // Support: IE<9 2658 // Use defaultValue in place of getAttribute("value") 2659 if ( !support.attributes || !assert(function( div ) { 2660 div.innerHTML = "<input/>"; 2661 div.firstChild.setAttribute( "value", "" ); 2662 return div.firstChild.getAttribute( "value" ) === ""; 2663 }) ) { 2664 addHandle( "value", function( elem, name, isXML ) { 2665 if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { 2666 return elem.defaultValue; 2667 } 2668 }); 2574 2669 } 2575 */ 2670 2671 // Support: IE<9 2672 // Use getAttributeNode to fetch booleans when getAttribute lies 2673 if ( !assert(function( div ) { 2674 return div.getAttribute("disabled") == null; 2675 }) ) { 2676 addHandle( booleans, function( elem, name, isXML ) { 2677 var val; 2678 if ( !isXML ) { 2679 return elem[ name ] === true ? name.toLowerCase() : 2680 (val = elem.getAttributeNode( name )) && val.specified ? 2681 val.value : 2682 null; 2683 } 2684 }); 2685 } 2576 2686 2577 2687 // EXPOSE 2578 2688 return Sizzle; 2579 });2580 2581 // Included from: js/tinymce/classes/dom/DomQuery.js2582 2583 /**2584 * DomQuery.js2585 *2586 * Copyright, Moxiecode Systems AB2587 * Released under LGPL License.2588 *2589 * License: http://www.tinymce.com/license2590 * Contributing: http://www.tinymce.com/contributing2591 *2592 * Some of this logic is based on jQuery code that is released under2593 * MIT license that grants us to sublicense it under LGPL.2594 *2595 * @ignore-file2596 */2597 2598 /**2599 * @class tinymce.dom.DomQuery2600 */2601 define("tinymce/dom/DomQuery", [2602 "tinymce/dom/EventUtils",2603 "tinymce/dom/Sizzle"2604 ], function(EventUtils, Sizzle) {2605 var doc = document, push = Array.prototype.push, slice = Array.prototype.slice;2606 var rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/;2607 var Event = EventUtils.Event;2608 2609 function isDefined(obj) {2610 return typeof obj !== "undefined";2611 }2612 2613 function isString(obj) {2614 return typeof obj === "string";2615 }2616 2617 function createFragment(html) {2618 var frag, node, container;2619 2620 container = doc.createElement("div");2621 frag = doc.createDocumentFragment();2622 container.innerHTML = html;2623 2624 while ((node = container.firstChild)) {2625 frag.appendChild(node);2626 }2627 2628 return frag;2629 }2630 2631 function domManipulate(targetNodes, sourceItem, callback) {2632 var i;2633 2634 if (typeof sourceItem === "string") {2635 sourceItem = createFragment(sourceItem);2636 } else if (sourceItem.length) {2637 for (i = 0; i < sourceItem.length; i++) {2638 domManipulate(targetNodes, sourceItem[i], callback);2639 }2640 2641 return targetNodes;2642 }2643 2644 i = targetNodes.length;2645 while (i--) {2646 callback.call(targetNodes[i], sourceItem.parentNode ? sourceItem : sourceItem);2647 }2648 2649 return targetNodes;2650 }2651 2652 function hasClass(node, className) {2653 return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1;2654 }2655 2656 /**2657 * Makes a map object out of a string that gets separated by a delimiter.2658 *2659 * @method makeMap2660 * @param {String} items Item string to split.2661 * @param {Object} map Optional object to add items to.2662 * @return {Object} name/value object with items as keys.2663 */2664 function makeMap(items, map) {2665 var i;2666 2667 items = items || [];2668 2669 if (typeof(items) == "string") {2670 items = items.split(' ');2671 }2672 2673 map = map || {};2674 2675 i = items.length;2676 while (i--) {2677 map[items[i]] = {};2678 }2679 2680 return map;2681 }2682 2683 var numericCssMap = makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom');2684 2685 function DomQuery(selector, context) {2686 /*eslint new-cap:0 */2687 return new DomQuery.fn.init(selector, context);2688 }2689 2690 /**2691 * Extends the specified object with another object.2692 *2693 * @method extend2694 * @param {Object} target Object to extend.2695 * @param {Object..} obj Multiple objects to extend with.2696 * @return {Object} Same as target, the extended object.2697 */2698 function extend(target) {2699 var args = arguments, arg, i, key;2700 2701 for (i = 1; i < args.length; i++) {2702 arg = args[i];2703 2704 for (key in arg) {2705 target[key] = arg[key];2706 }2707 }2708 2709 return target;2710 }2711 2712 /**2713 * Converts the specified object into a real JavaScript array.2714 *2715 * @method toArray2716 * @param {Object} obj Object to convert into array.2717 * @return {Array} Array object based in input.2718 */2719 function toArray(obj) {2720 var array = [], i, l;2721 2722 for (i = 0, l = obj.length; i < l; i++) {2723 array[i] = obj[i];2724 }2725 2726 return array;2727 }2728 2729 /**2730 * Returns the index of the specified item inside the array.2731 *2732 * @method inArray2733 * @param {Object} item Item to look for.2734 * @param {Array} array Array to look for item in.2735 * @return {Number} Index of the item or -1.2736 */2737 function inArray(item, array) {2738 var i;2739 2740 if (array.indexOf) {2741 return array.indexOf(item);2742 }2743 2744 i = array.length;2745 while (i--) {2746 if (array[i] === item) {2747 return i;2748 }2749 }2750 2751 return -1;2752 }2753 2754 /**2755 * Returns true/false if the specified object is an array.2756 *2757 * @method isArray2758 * @param {Object} obj Object to check if it's an array.2759 * @return {Boolean} true/false if the input object is array or not.2760 */2761 var isArray = Array.isArray || function(obj) {2762 return Object.prototype.toString.call(obj) === "[object Array]";2763 };2764 2765 var whiteSpaceRegExp = /^\s*|\s*$/g;2766 2767 function trim(str) {2768 return (str === null || str === undefined) ? '' : ("" + str).replace(whiteSpaceRegExp, '');2769 }2770 2771 /**2772 * Executes the callback function for each item in array/object. If you return false in the2773 * callback it will break the loop.2774 *2775 * @method each2776 * @param {Object} obj Object to iterate.2777 * @param {function} callback Callback function to execute for each item.2778 */2779 function each(obj, callback) {2780 var length, key, i, undef, value;2781 2782 if (obj) {2783 length = obj.length;2784 2785 if (length === undef) {2786 // Loop object items2787 for (key in obj) {2788 if (obj.hasOwnProperty(key)) {2789 value = obj[key];2790 if (callback.call(value, value, key) === false) {2791 break;2792 }2793 }2794 }2795 } else {2796 // Loop array items2797 for (i = 0; i < length; i++) {2798 value = obj[i];2799 if (callback.call(value, value, key) === false) {2800 break;2801 }2802 }2803 }2804 }2805 2806 return obj;2807 }2808 2809 DomQuery.fn = DomQuery.prototype = {2810 constructor: DomQuery,2811 selector: "",2812 length: 0,2813 2814 init: function(selector, context) {2815 var self = this, match, node;2816 2817 if (!selector) {2818 return self;2819 }2820 2821 if (selector.nodeType) {2822 self.context = self[0] = selector;2823 self.length = 1;2824 2825 return self;2826 }2827 2828 if (isString(selector)) {2829 if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) {2830 match = [null, selector, null];2831 } else {2832 match = rquickExpr.exec(selector);2833 }2834 2835 if (match) {2836 if (match[1]) {2837 node = createFragment(selector).firstChild;2838 while (node) {2839 this.add(node);2840 node = node.nextSibling;2841 }2842 } else {2843 node = doc.getElementById(match[2]);2844 2845 if (node.id !== match[2]) {2846 return self.find(selector);2847 }2848 2849 self.length = 1;2850 self[0] = node;2851 }2852 } else {2853 return DomQuery(context || document).find(selector);2854 }2855 } else {2856 this.add(selector);2857 }2858 2859 return self;2860 },2861 2862 toArray: function() {2863 return toArray(this);2864 },2865 2866 add: function(items) {2867 var self = this;2868 2869 // Force single item into array2870 if (!isArray(items)) {2871 if (items instanceof DomQuery) {2872 self.add(items.toArray());2873 } else {2874 push.call(self, items);2875 }2876 } else {2877 push.apply(self, items);2878 }2879 2880 return self;2881 },2882 2883 attr: function(name, value) {2884 var self = this;2885 2886 if (typeof name === "object") {2887 each(name, function(value, name) {2888 self.attr(name, value);2889 });2890 } else if (isDefined(value)) {2891 this.each(function() {2892 if (this.nodeType === 1) {2893 this.setAttribute(name, value);2894 }2895 });2896 } else {2897 return self[0] && self[0].nodeType === 1 ? self[0].getAttribute(name) : undefined;2898 }2899 2900 return self;2901 },2902 2903 css: function(name, value) {2904 var self = this;2905 2906 if (typeof name === "object") {2907 each(name, function(value, name) {2908 self.css(name, value);2909 });2910 } else {2911 // Camelcase it, if needed2912 name = name.replace(/-(\D)/g, function(a, b) {2913 return b.toUpperCase();2914 });2915 2916 if (isDefined(value)) {2917 // Default px suffix on these2918 if (typeof(value) === 'number' && !numericCssMap[name]) {2919 value += 'px';2920 }2921 2922 self.each(function() {2923 var style = this.style;2924 2925 // IE specific opacity2926 if (name === "opacity" && this.runtimeStyle && typeof(this.runtimeStyle.opacity) === "undefined") {2927 style.filter = value === '' ? '' : "alpha(opacity=" + (value * 100) + ")";2928 }2929 2930 try {2931 style[name] = value;2932 } catch (ex) {2933 // Ignore2934 }2935 });2936 } else {2937 return self[0] ? self[0].style[name] : undefined;2938 }2939 }2940 2941 return self;2942 },2943 2944 remove: function() {2945 var self = this, node, i = this.length;2946 2947 while (i--) {2948 node = self[i];2949 Event.clean(node);2950 2951 if (node.parentNode) {2952 node.parentNode.removeChild(node);2953 }2954 }2955 2956 return this;2957 },2958 2959 empty: function() {2960 var self = this, node, i = this.length;2961 2962 while (i--) {2963 node = self[i];2964 while (node.firstChild) {2965 node.removeChild(node.firstChild);2966 }2967 }2968 2969 return this;2970 },2971 2972 html: function(value) {2973 var self = this, i;2974 2975 if (isDefined(value)) {2976 i = self.length;2977 while (i--) {2978 self[i].innerHTML = value;2979 }2980 2981 return self;2982 }2983 2984 return self[0] ? self[0].innerHTML : '';2985 },2986 2987 text: function(value) {2988 var self = this, i;2989 2990 if (isDefined(value)) {2991 i = self.length;2992 while (i--) {2993 self[i].innerText = self[0].textContent = value;2994 }2995 2996 return self;2997 }2998 2999 return self[0] ? self[0].innerText || self[0].textContent : '';3000 },3001 3002 append: function() {3003 return domManipulate(this, arguments, function(node) {3004 if (this.nodeType === 1) {3005 this.appendChild(node);3006 }3007 });3008 },3009 3010 prepend: function() {3011 return domManipulate(this, arguments, function(node) {3012 if (this.nodeType === 1) {3013 this.insertBefore(node, this.firstChild);3014 }3015 });3016 },3017 3018 before: function() {3019 var self = this;3020 3021 if (self[0] && self[0].parentNode) {3022 return domManipulate(self, arguments, function(node) {3023 this.parentNode.insertBefore(node, this.nextSibling);3024 });3025 }3026 3027 return self;3028 },3029 3030 after: function() {3031 var self = this;3032 3033 if (self[0] && self[0].parentNode) {3034 return domManipulate(self, arguments, function(node) {3035 this.parentNode.insertBefore(node, this);3036 });3037 }3038 3039 return self;3040 },3041 3042 appendTo: function(val) {3043 DomQuery(val).append(this);3044 3045 return this;3046 },3047 3048 addClass: function(className) {3049 return this.toggleClass(className, true);3050 },3051 3052 removeClass: function(className) {3053 return this.toggleClass(className, false);3054 },3055 3056 toggleClass: function(className, state) {3057 var self = this;3058 3059 if (className.indexOf(' ') !== -1) {3060 each(className.split(' '), function() {3061 self.toggleClass(this, state);3062 });3063 } else {3064 self.each(function(node) {3065 var existingClassName;3066 3067 if (hasClass(node, className) !== state) {3068 existingClassName = node.className;3069 3070 if (state) {3071 node.className += existingClassName ? ' ' + className : className;3072 } else {3073 node.className = trim((" " + existingClassName + " ").replace(' ' + className + ' ', ' '));3074 }3075 }3076 });3077 }3078 3079 return self;3080 },3081 3082 hasClass: function(className) {3083 return hasClass(this[0], className);3084 },3085 3086 each: function(callback) {3087 return each(this, callback);3088 },3089 3090 on: function(name, callback) {3091 return this.each(function() {3092 Event.bind(this, name, callback);3093 });3094 },3095 3096 off: function(name, callback) {3097 return this.each(function() {3098 Event.unbind(this, name, callback);3099 });3100 },3101 3102 show: function() {3103 return this.css('display', '');3104 },3105 3106 hide: function() {3107 return this.css('display', 'none');3108 },3109 3110 slice: function() {3111 return new DomQuery(slice.apply(this, arguments));3112 },3113 3114 eq: function(index) {3115 return index === -1 ? this.slice(index) : this.slice(index, +index + 1);3116 },3117 3118 first: function() {3119 return this.eq(0);3120 },3121 3122 last: function() {3123 return this.eq(-1);3124 },3125 3126 replaceWith: function(content) {3127 var self = this;3128 3129 if (self[0]) {3130 self[0].parentNode.replaceChild(DomQuery(content)[0], self[0]);3131 }3132 3133 return self;3134 },3135 3136 wrap: function(wrapper) {3137 wrapper = DomQuery(wrapper)[0];3138 3139 return this.each(function() {3140 var self = this, newWrapper = wrapper.cloneNode(false);3141 self.parentNode.insertBefore(newWrapper, self);3142 newWrapper.appendChild(self);3143 });3144 },3145 3146 unwrap: function() {3147 return this.each(function() {3148 var self = this, node = self.firstChild, currentNode;3149 3150 while (node) {3151 currentNode = node;3152 node = node.nextSibling;3153 self.parentNode.insertBefore(currentNode, self);3154 }3155 });3156 },3157 3158 clone: function() {3159 var result = [];3160 3161 this.each(function() {3162 result.push(this.cloneNode(true));3163 });3164 3165 return DomQuery(result);3166 },3167 3168 find: function(selector) {3169 var i, l, ret = [];3170 3171 for (i = 0, l = this.length; i < l; i++) {3172 DomQuery.find(selector, this[i], ret);3173 }3174 3175 return DomQuery(ret);3176 },3177 3178 push: push,3179 sort: [].sort,3180 splice: [].splice3181 };3182 3183 // Static members3184 extend(DomQuery, {3185 extend: extend,3186 toArray: toArray,3187 inArray: inArray,3188 isArray: isArray,3189 each: each,3190 trim: trim,3191 makeMap: makeMap,3192 3193 // Sizzle3194 find: Sizzle,3195 expr: Sizzle.selectors,3196 unique: Sizzle.uniqueSort,3197 text: Sizzle.getText,3198 isXMLDoc: Sizzle.isXML,3199 contains: Sizzle.contains,3200 filter: function(expr, elems, not) {3201 if (not) {3202 expr = ":not(" + expr + ")";3203 }3204 3205 if (elems.length === 1) {3206 elems = DomQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [];3207 } else {3208 elems = DomQuery.find.matches(expr, elems);3209 }3210 3211 return elems;3212 }3213 });3214 3215 function dir(el, prop, until) {3216 var matched = [], cur = el[prop];3217 3218 while (cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !DomQuery(cur).is(until))) {3219 if (cur.nodeType === 1) {3220 matched.push(cur);3221 }3222 3223 cur = cur[prop];3224 }3225 3226 return matched;3227 }3228 3229 function sibling(n, el, siblingName, nodeType) {3230 var r = [];3231 3232 for(; n; n = n[siblingName]) {3233 if ((!nodeType || n.nodeType === nodeType) && n !== el) {3234 r.push(n);3235 }3236 }3237 3238 return r;3239 }3240 3241 each({3242 parent: function(node) {3243 var parent = node.parentNode;3244 3245 return parent && parent.nodeType !== 11 ? parent : null;3246 },3247 3248 parents: function(node) {3249 return dir(node, "parentNode");3250 },3251 3252 parentsUntil: function(node, until) {3253 return dir(node, "parentNode", until);3254 },3255 3256 next: function(node) {3257 return sibling(node, 'nextSibling', 1);3258 },3259 3260 prev: function(node) {3261 return sibling(node, 'previousSibling', 1);3262 },3263 3264 nextNodes: function(node) {3265 return sibling(node, 'nextSibling');3266 },3267 3268 prevNodes: function(node) {3269 return sibling(node, 'previousSibling');3270 },3271 3272 children: function(node) {3273 return sibling(node.firstChild, 'nextSibling', 1);3274 },3275 3276 contents: function(node) {3277 return toArray((node.nodeName === "iframe" ? node.contentDocument || node.contentWindow.document : node).childNodes);3278 }3279 }, function(name, fn){3280 DomQuery.fn[name] = function(selector) {3281 var self = this, result;3282 3283 if (self.length > 1) {3284 throw new Error("DomQuery only supports traverse functions on a single node.");3285 }3286 3287 if (self[0]) {3288 result = fn(self[0], selector);3289 }3290 3291 result = DomQuery(result);3292 3293 if (selector && name !== "parentsUntil") {3294 return result.filter(selector);3295 }3296 3297 return result;3298 };3299 });3300 3301 DomQuery.fn.filter = function(selector) {3302 return DomQuery.filter(selector);3303 };3304 3305 DomQuery.fn.is = function(selector) {3306 return !!selector && this.filter(selector).length > 0;3307 };3308 3309 DomQuery.fn.init.prototype = DomQuery.fn;3310 3311 return DomQuery;3312 });3313 3314 // Included from: js/tinymce/classes/html/Styles.js3315 3316 /**3317 * Styles.js3318 *3319 * Copyright, Moxiecode Systems AB3320 * Released under LGPL License.3321 *3322 * License: http://www.tinymce.com/license3323 * Contributing: http://www.tinymce.com/contributing3324 */3325 3326 /**3327 * This class is used to parse CSS styles it also compresses styles to reduce the output size.3328 *3329 * @example3330 * var Styles = new tinymce.html.Styles({3331 * url_converter: function(url) {3332 * return url;3333 * }3334 * });3335 *3336 * styles = Styles.parse('border: 1px solid red');3337 * styles.color = 'red';3338 *3339 * console.log(new tinymce.html.StyleSerializer().serialize(styles));3340 *3341 * @class tinymce.html.Styles3342 * @version 3.43343 */3344 define("tinymce/html/Styles", [], function() {3345 return function(settings, schema) {3346 /*jshint maxlen:255 */3347 /*eslint max-len:0 */3348 var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,3349 urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,3350 styleRegExp = /\s*([^:]+):\s*([^;]+);?/g,3351 trimRightRegExp = /\s+$/,3352 undef, i, encodingLookup = {}, encodingItems, validStyles, invalidStyles, invisibleChar = '\uFEFF';3353 3354 settings = settings || {};3355 3356 if (schema) {3357 validStyles = schema.getValidStyles();3358 invalidStyles = schema.getInvalidStyles();3359 }3360 3361 encodingItems = ('\\" \\\' \\; \\: ; : ' + invisibleChar).split(' ');3362 for (i = 0; i < encodingItems.length; i++) {3363 encodingLookup[encodingItems[i]] = invisibleChar + i;3364 encodingLookup[invisibleChar + i] = encodingItems[i];3365 }3366 3367 function toHex(match, r, g, b) {3368 function hex(val) {3369 val = parseInt(val, 10).toString(16);3370 3371 return val.length > 1 ? val : '0' + val; // 0 -> 003372 }3373 3374 return '#' + hex(r) + hex(g) + hex(b);3375 }3376 3377 return {3378 /**3379 * Parses the specified RGB color value and returns a hex version of that color.3380 *3381 * @method toHex3382 * @param {String} color RGB string value like rgb(1,2,3)3383 * @return {String} Hex version of that RGB value like #FF00FF.3384 */3385 toHex: function(color) {3386 return color.replace(rgbRegExp, toHex);3387 },3388 3389 /**3390 * Parses the specified style value into an object collection. This parser will also3391 * merge and remove any redundant items that browsers might have added. It will also convert non hex3392 * colors to hex values. Urls inside the styles will also be converted to absolute/relative based on settings.3393 *3394 * @method parse3395 * @param {String} css Style value to parse for example: border:1px solid red;.3396 * @return {Object} Object representation of that style like {border: '1px solid red'}3397 */3398 parse: function(css) {3399 var styles = {}, matches, name, value, isEncoded, urlConverter = settings.url_converter;3400 var urlConverterScope = settings.url_converter_scope || this;3401 3402 function compress(prefix, suffix, noJoin) {3403 var top, right, bottom, left;3404 3405 top = styles[prefix + '-top' + suffix];3406 if (!top) {3407 return;3408 }3409 3410 right = styles[prefix + '-right' + suffix];3411 if (!right) {3412 return;3413 }3414 3415 bottom = styles[prefix + '-bottom' + suffix];3416 if (!bottom) {3417 return;3418 }3419 3420 left = styles[prefix + '-left' + suffix];3421 if (!left) {3422 return;3423 }3424 3425 var box = [top, right, bottom, left];3426 i = box.length - 1;3427 while (i--) {3428 if (box[i] !== box[i + 1]) {3429 break;3430 }3431 }3432 3433 if (i > -1 && noJoin) {3434 return;3435 }3436 3437 styles[prefix + suffix] = i == -1 ? box[0] : box.join(' ');3438 delete styles[prefix + '-top' + suffix];3439 delete styles[prefix + '-right' + suffix];3440 delete styles[prefix + '-bottom' + suffix];3441 delete styles[prefix + '-left' + suffix];3442 }3443 3444 /**3445 * Checks if the specific style can be compressed in other words if all border-width are equal.3446 */3447 function canCompress(key) {3448 var value = styles[key], i;3449 3450 if (!value) {3451 return;3452 }3453 3454 value = value.split(' ');3455 i = value.length;3456 while (i--) {3457 if (value[i] !== value[0]) {3458 return false;3459 }3460 }3461 3462 styles[key] = value[0];3463 3464 return true;3465 }3466 3467 /**3468 * Compresses multiple styles into one style.3469 */3470 function compress2(target, a, b, c) {3471 if (!canCompress(a)) {3472 return;3473 }3474 3475 if (!canCompress(b)) {3476 return;3477 }3478 3479 if (!canCompress(c)) {3480 return;3481 }3482 3483 // Compress3484 styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];3485 delete styles[a];3486 delete styles[b];3487 delete styles[c];3488 }3489 3490 // Encodes the specified string by replacing all \" \' ; : with _<num>3491 function encode(str) {3492 isEncoded = true;3493 3494 return encodingLookup[str];3495 }3496 3497 // Decodes the specified string by replacing all _<num> with it's original value \" \' etc3498 // It will also decode the \" \' if keep_slashes is set to fale or omitted3499 function decode(str, keep_slashes) {3500 if (isEncoded) {3501 str = str.replace(/\uFEFF[0-9]/g, function(str) {3502 return encodingLookup[str];3503 });3504 }3505 3506 if (!keep_slashes) {3507 str = str.replace(/\\([\'\";:])/g, "$1");3508 }3509 3510 return str;3511 }3512 3513 function processUrl(match, url, url2, url3, str, str2) {3514 str = str || str2;3515 3516 if (str) {3517 str = decode(str);3518 3519 // Force strings into single quote format3520 return "'" + str.replace(/\'/g, "\\'") + "'";3521 }3522 3523 url = decode(url || url2 || url3);3524 3525 if (!settings.allow_script_urls) {3526 var scriptUrl = url.replace(/[\s\r\n]+/, '');3527 3528 if (/(java|vb)script:/i.test(scriptUrl)) {3529 return "";3530 }3531 3532 if (!settings.allow_svg_data_urls && /^data:image\/svg/i.test(scriptUrl)) {3533 return "";3534 }3535 }3536 3537 // Convert the URL to relative/absolute depending on config3538 if (urlConverter) {3539 url = urlConverter.call(urlConverterScope, url, 'style');3540 }3541 3542 // Output new URL format3543 return "url('" + url.replace(/\'/g, "\\'") + "')";3544 }3545 3546 if (css) {3547 css = css.replace(/[\u0000-\u001F]/g, '');3548 3549 // Encode \" \' % and ; and : inside strings so they don't interfere with the style parsing3550 css = css.replace(/\\[\"\';:\uFEFF]/g, encode).replace(/\"[^\"]+\"|\'[^\']+\'/g, function(str) {3551 return str.replace(/[;:]/g, encode);3552 });3553 3554 // Parse styles3555 while ((matches = styleRegExp.exec(css))) {3556 name = matches[1].replace(trimRightRegExp, '').toLowerCase();3557 value = matches[2].replace(trimRightRegExp, '');3558 3559 // Decode escaped sequences like \65 -> e3560 /*jshint loopfunc:true*/3561 /*eslint no-loop-func:0 */3562 value = value.replace(/\\[0-9a-f]+/g, function(e) {3563 return String.fromCharCode(parseInt(e.substr(1), 16));3564 });3565 3566 if (name && value.length > 0) {3567 // Don't allow behavior name or expression/comments within the values3568 if (!settings.allow_script_urls && (name == "behavior" || /expression\s*\(|\/\*|\*\//.test(value))) {3569 continue;3570 }3571 3572 // Opera will produce 700 instead of bold in their style values3573 if (name === 'font-weight' && value === '700') {3574 value = 'bold';3575 } else if (name === 'color' || name === 'background-color') { // Lowercase colors like RED3576 value = value.toLowerCase();3577 }3578 3579 // Convert RGB colors to HEX3580 value = value.replace(rgbRegExp, toHex);3581 3582 // Convert URLs and force them into url('value') format3583 value = value.replace(urlOrStrRegExp, processUrl);3584 styles[name] = isEncoded ? decode(value, true) : value;3585 }3586 3587 styleRegExp.lastIndex = matches.index + matches[0].length;3588 }3589 // Compress the styles to reduce it's size for example IE will expand styles3590 compress("border", "", true);3591 compress("border", "-width");3592 compress("border", "-color");3593 compress("border", "-style");3594 compress("padding", "");3595 compress("margin", "");3596 compress2('border', 'border-width', 'border-style', 'border-color');3597 3598 // Remove pointless border, IE produces these3599 if (styles.border === 'medium none') {3600 delete styles.border;3601 }3602 3603 // IE 11 will produce a border-image: none when getting the style attribute from <p style="border: 1px solid red"></p>3604 // So lets asume it shouldn't be there3605 if (styles['border-image'] === 'none') {3606 delete styles['border-image'];3607 }3608 }3609 3610 return styles;3611 },3612 3613 /**3614 * Serializes the specified style object into a string.3615 *3616 * @method serialize3617 * @param {Object} styles Object to serialize as string for example: {border: '1px solid red'}3618 * @param {String} elementName Optional element name, if specified only the styles that matches the schema will be serialized.3619 * @return {String} String representation of the style object for example: border: 1px solid red.3620 */3621 serialize: function(styles, elementName) {3622 var css = '', name, value;3623 3624 function serializeStyles(name) {3625 var styleList, i, l, value;3626 3627 styleList = validStyles[name];3628 if (styleList) {3629 for (i = 0, l = styleList.length; i < l; i++) {3630 name = styleList[i];3631 value = styles[name];3632 3633 if (value !== undef && value.length > 0) {3634 css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';3635 }3636 }3637 }3638 }3639 3640 function isValid(name, elementName) {3641 var styleMap;3642 3643 styleMap = invalidStyles['*'];3644 if (styleMap && styleMap[name]) {3645 return false;3646 }3647 3648 styleMap = invalidStyles[elementName];3649 if (styleMap && styleMap[name]) {3650 return false;3651 }3652 3653 return true;3654 }3655 3656 // Serialize styles according to schema3657 if (elementName && validStyles) {3658 // Serialize global styles and element specific styles3659 serializeStyles('*');3660 serializeStyles(elementName);3661 } else {3662 // Output the styles in the order they are inside the object3663 for (name in styles) {3664 value = styles[name];3665 3666 if (value !== undef && value.length > 0) {3667 if (!invalidStyles || isValid(name, elementName)) {3668 css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';3669 }3670 }3671 }3672 }3673 3674 return css;3675 }3676 };3677 };3678 });3679 3680 // Included from: js/tinymce/classes/dom/TreeWalker.js3681 3682 /**3683 * TreeWalker.js3684 *3685 * Copyright, Moxiecode Systems AB3686 * Released under LGPL License.3687 *3688 * License: http://www.tinymce.com/license3689 * Contributing: http://www.tinymce.com/contributing3690 */3691 3692 /**3693 * TreeWalker class enables you to walk the DOM in a linear manner.3694 *3695 * @class tinymce.dom.TreeWalker3696 */3697 define("tinymce/dom/TreeWalker", [], function() {3698 return function(start_node, root_node) {3699 var node = start_node;3700 3701 function findSibling(node, start_name, sibling_name, shallow) {3702 var sibling, parent;3703 3704 if (node) {3705 // Walk into nodes if it has a start3706 if (!shallow && node[start_name]) {3707 return node[start_name];3708 }3709 3710 // Return the sibling if it has one3711 if (node != root_node) {3712 sibling = node[sibling_name];3713 if (sibling) {3714 return sibling;3715 }3716 3717 // Walk up the parents to look for siblings3718 for (parent = node.parentNode; parent && parent != root_node; parent = parent.parentNode) {3719 sibling = parent[sibling_name];3720 if (sibling) {3721 return sibling;3722 }3723 }3724 }3725 }3726 }3727 3728 /**3729 * Returns the current node.3730 *3731 * @method current3732 * @return {Node} Current node where the walker is.3733 */3734 this.current = function() {3735 return node;3736 };3737 3738 /**3739 * Walks to the next node in tree.3740 *3741 * @method next3742 * @return {Node} Current node where the walker is after moving to the next node.3743 */3744 this.next = function(shallow) {3745 node = findSibling(node, 'firstChild', 'nextSibling', shallow);3746 return node;3747 };3748 3749 /**3750 * Walks to the previous node in tree.3751 *3752 * @method prev3753 * @return {Node} Current node where the walker is after moving to the previous node.3754 */3755 this.prev = function(shallow) {3756 node = findSibling(node, 'lastChild', 'previousSibling', shallow);3757 return node;3758 };3759 };3760 2689 }); 3761 2690 … … 3831 2760 */ 3832 2761 function toArray(obj) { 3833 var array = [], i, l; 3834 3835 for (i = 0, l = obj.length; i < l; i++) { 3836 array[i] = obj[i]; 2762 var array = obj, i, l; 2763 2764 if (!isArray(obj)) { 2765 array = []; 2766 for (i = 0, l = obj.length; i < l; i++) { 2767 array[i] = obj[i]; 2768 } 3837 2769 } 3838 2770 … … 4266 3198 }); 4267 3199 3200 // Included from: js/tinymce/classes/Env.js 3201 3202 /** 3203 * Env.js 3204 * 3205 * Copyright, Moxiecode Systems AB 3206 * Released under LGPL License. 3207 * 3208 * License: http://www.tinymce.com/license 3209 * Contributing: http://www.tinymce.com/contributing 3210 */ 3211 3212 /** 3213 * This class contains various environment constants like browser versions etc. 3214 * Normally you don't want to sniff specific browser versions but sometimes you have 3215 * to when it's impossible to feature detect. So use this with care. 3216 * 3217 * @class tinymce.Env 3218 * @static 3219 */ 3220 define("tinymce/Env", [], function() { 3221 var nav = navigator, userAgent = nav.userAgent; 3222 var opera, webkit, ie, ie11, gecko, mac, iDevice; 3223 3224 opera = window.opera && window.opera.buildNumber; 3225 webkit = /WebKit/.test(userAgent); 3226 ie = !webkit && !opera && (/MSIE/gi).test(userAgent) && (/Explorer/gi).test(nav.appName); 3227 ie = ie && /MSIE (\w+)\./.exec(userAgent)[1]; 3228 ie11 = userAgent.indexOf('Trident/') != -1 && (userAgent.indexOf('rv:') != -1 || nav.appName.indexOf('Netscape') != -1) ? 11 : false; 3229 ie = ie || ie11; 3230 gecko = !webkit && !ie11 && /Gecko/.test(userAgent); 3231 mac = userAgent.indexOf('Mac') != -1; 3232 iDevice = /(iPad|iPhone)/.test(userAgent); 3233 3234 // Is a iPad/iPhone and not on iOS5 sniff the WebKit version since older iOS WebKit versions 3235 // says it has contentEditable support but there is no visible caret. 3236 var contentEditable = !iDevice || userAgent.match(/AppleWebKit\/(\d*)/)[1] >= 534; 3237 3238 return { 3239 /** 3240 * Constant that is true if the browser is Opera. 3241 * 3242 * @property opera 3243 * @type Boolean 3244 * @final 3245 */ 3246 opera: opera, 3247 3248 /** 3249 * Constant that is true if the browser is WebKit (Safari/Chrome). 3250 * 3251 * @property webKit 3252 * @type Boolean 3253 * @final 3254 */ 3255 webkit: webkit, 3256 3257 /** 3258 * Constant that is more than zero if the browser is IE. 3259 * 3260 * @property ie 3261 * @type Boolean 3262 * @final 3263 */ 3264 ie: ie, 3265 3266 /** 3267 * Constant that is true if the browser is Gecko. 3268 * 3269 * @property gecko 3270 * @type Boolean 3271 * @final 3272 */ 3273 gecko: gecko, 3274 3275 /** 3276 * Constant that is true if the os is Mac OS. 3277 * 3278 * @property mac 3279 * @type Boolean 3280 * @final 3281 */ 3282 mac: mac, 3283 3284 /** 3285 * Constant that is true if the os is iOS. 3286 * 3287 * @property iOS 3288 * @type Boolean 3289 * @final 3290 */ 3291 iOS: iDevice, 3292 3293 /** 3294 * Constant that is true if the browser supports editing. 3295 * 3296 * @property contentEditable 3297 * @type Boolean 3298 * @final 3299 */ 3300 contentEditable: contentEditable, 3301 3302 /** 3303 * Transparent image data url. 3304 * 3305 * @property transparentSrc 3306 * @type Boolean 3307 * @final 3308 */ 3309 transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", 3310 3311 /** 3312 * Returns true/false if the browser can or can't place the caret after a inline block like an image. 3313 * 3314 * @property noCaretAfter 3315 * @type Boolean 3316 * @final 3317 */ 3318 caretAfter: ie != 8, 3319 3320 /** 3321 * Constant that is true if the browser supports native DOM Ranges. IE 9+. 3322 * 3323 * @property range 3324 * @type Boolean 3325 */ 3326 range: window.getSelection && "Range" in window, 3327 3328 /** 3329 * Returns the IE document mode for non IE browsers this will fake IE 10. 3330 * 3331 * @property documentMode 3332 * @type Number 3333 */ 3334 documentMode: ie ? (document.documentMode || 7) : 10 3335 }; 3336 }); 3337 3338 // Included from: js/tinymce/classes/dom/DomQuery.js 3339 3340 /** 3341 * DomQuery.js 3342 * 3343 * Copyright, Moxiecode Systems AB 3344 * Released under LGPL License. 3345 * 3346 * License: http://www.tinymce.com/license 3347 * Contributing: http://www.tinymce.com/contributing 3348 */ 3349 3350 /** 3351 * This class mimics most of the jQuery API: 3352 * 3353 * This is whats currently implemented: 3354 * - Utility functions 3355 * - DOM traversial 3356 * - DOM manipulation 3357 * - Event binding 3358 * 3359 * This is not currently implemented: 3360 * - Dimension 3361 * - Ajax 3362 * - Animation 3363 * - Advanced chaining 3364 * 3365 * @example 3366 * var $ = tinymce.dom.DomQuery; 3367 * $('p').attr('attr', 'value').addClass('class'); 3368 * 3369 * @class tinymce.dom.DomQuery 3370 */ 3371 define("tinymce/dom/DomQuery", [ 3372 "tinymce/dom/EventUtils", 3373 "tinymce/dom/Sizzle", 3374 "tinymce/util/Tools", 3375 "tinymce/Env" 3376 ], function(EventUtils, Sizzle, Tools, Env) { 3377 var doc = document, push = Array.prototype.push, slice = Array.prototype.slice; 3378 var rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/; 3379 var Event = EventUtils.Event, undef; 3380 3381 function isDefined(obj) { 3382 return typeof obj !== 'undefined'; 3383 } 3384 3385 function isString(obj) { 3386 return typeof obj === 'string'; 3387 } 3388 3389 function createFragment(html, fragDoc) { 3390 var frag, node, container; 3391 3392 fragDoc = fragDoc || doc; 3393 container = fragDoc.createElement('div'); 3394 frag = fragDoc.createDocumentFragment(); 3395 container.innerHTML = html; 3396 3397 while ((node = container.firstChild)) { 3398 frag.appendChild(node); 3399 } 3400 3401 return frag; 3402 } 3403 3404 function domManipulate(targetNodes, sourceItem, callback, reverse) { 3405 var i; 3406 3407 if (isString(sourceItem)) { 3408 sourceItem = createFragment(sourceItem, getElementDocument(targetNodes[0])); 3409 } else if (sourceItem.length && !sourceItem.nodeType) { 3410 sourceItem = DomQuery.makeArray(sourceItem); 3411 3412 if (reverse) { 3413 for (i = sourceItem.length - 1; i >= 0; i--) { 3414 domManipulate(targetNodes, sourceItem[i], callback, reverse); 3415 } 3416 } else { 3417 for (i = 0; i < sourceItem.length; i++) { 3418 domManipulate(targetNodes, sourceItem[i], callback, reverse); 3419 } 3420 } 3421 3422 return targetNodes; 3423 } 3424 3425 if (sourceItem.nodeType) { 3426 i = targetNodes.length; 3427 while (i--) { 3428 callback.call(targetNodes[i], sourceItem); 3429 } 3430 } 3431 3432 return targetNodes; 3433 } 3434 3435 function hasClass(node, className) { 3436 return node && className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1; 3437 } 3438 3439 function wrap(elements, wrapper, all) { 3440 var lastParent, newWrapper; 3441 3442 wrapper = DomQuery(wrapper)[0]; 3443 3444 elements.each(function() { 3445 var self = this; 3446 3447 if (!all || lastParent != self.parentNode) { 3448 lastParent = self.parentNode; 3449 newWrapper = wrapper.cloneNode(false); 3450 self.parentNode.insertBefore(newWrapper, self); 3451 newWrapper.appendChild(self); 3452 } else { 3453 newWrapper.appendChild(self); 3454 } 3455 }); 3456 3457 return elements; 3458 } 3459 3460 var numericCssMap = Tools.makeMap('fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom', ' '); 3461 var booleanMap = Tools.makeMap('checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected', ' '); 3462 var propFix = { 3463 'for': 'htmlFor', 3464 'class': 'className', 3465 'readonly': 'readOnly' 3466 }; 3467 var cssFix = { 3468 float: 'cssFloat' 3469 }; 3470 3471 var attrHooks = {}, cssHooks = {}; 3472 3473 function DomQuery(selector, context) { 3474 /*eslint new-cap:0 */ 3475 return new DomQuery.fn.init(selector, context); 3476 } 3477 3478 function inArray(item, array) { 3479 var i; 3480 3481 if (array.indexOf) { 3482 return array.indexOf(item); 3483 } 3484 3485 i = array.length; 3486 while (i--) { 3487 if (array[i] === item) { 3488 return i; 3489 } 3490 } 3491 3492 return -1; 3493 } 3494 3495 var whiteSpaceRegExp = /^\s*|\s*$/g; 3496 3497 function trim(str) { 3498 return (str === null || str === undef) ? '' : ("" + str).replace(whiteSpaceRegExp, ''); 3499 } 3500 3501 function each(obj, callback) { 3502 var length, key, i, undef, value; 3503 3504 if (obj) { 3505 length = obj.length; 3506 3507 if (length === undef) { 3508 // Loop object items 3509 for (key in obj) { 3510 if (obj.hasOwnProperty(key)) { 3511 value = obj[key]; 3512 if (callback.call(value, key, value) === false) { 3513 break; 3514 } 3515 } 3516 } 3517 } else { 3518 // Loop array items 3519 for (i = 0; i < length; i++) { 3520 value = obj[i]; 3521 if (callback.call(value, i, value) === false) { 3522 break; 3523 } 3524 } 3525 } 3526 } 3527 3528 return obj; 3529 } 3530 3531 function grep(array, callback) { 3532 var out = []; 3533 3534 each(array, function(i, item) { 3535 if (callback(item, i)) { 3536 out.push(item); 3537 } 3538 }); 3539 3540 return out; 3541 } 3542 3543 function getElementDocument(element) { 3544 if (!element) { 3545 return doc; 3546 } 3547 3548 if (element.nodeType == 9) { 3549 return element; 3550 } 3551 3552 return element.ownerDocument; 3553 } 3554 3555 DomQuery.fn = DomQuery.prototype = { 3556 constructor: DomQuery, 3557 3558 /** 3559 * Selector for the current set. 3560 * 3561 * @property selector 3562 * @type String 3563 */ 3564 selector: "", 3565 3566 /** 3567 * Context used to create the set. 3568 * 3569 * @property context 3570 * @type Element 3571 */ 3572 context: null, 3573 3574 /** 3575 * Number of items in the current set. 3576 * 3577 * @property length 3578 * @type Number 3579 */ 3580 length: 0, 3581 3582 /** 3583 * Constructs a new DomQuery instance with the specified selector or context. 3584 * 3585 * @constructor 3586 * @method init 3587 * @param {String/Array/DomQuery} selector Optional CSS selector/Array or array like object or HTML string. 3588 * @param {Document/Element} context Optional context to search in. 3589 */ 3590 init: function(selector, context) { 3591 var self = this, match, node; 3592 3593 if (!selector) { 3594 return self; 3595 } 3596 3597 if (selector.nodeType) { 3598 self.context = self[0] = selector; 3599 self.length = 1; 3600 3601 return self; 3602 } 3603 3604 if (context && context.nodeType) { 3605 self.context = context; 3606 } else { 3607 if (context) { 3608 return DomQuery(selector).attr(context); 3609 } else { 3610 self.context = context = document; 3611 } 3612 } 3613 3614 if (isString(selector)) { 3615 self.selector = selector; 3616 3617 if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) { 3618 match = [null, selector, null]; 3619 } else { 3620 match = rquickExpr.exec(selector); 3621 } 3622 3623 if (match) { 3624 if (match[1]) { 3625 node = createFragment(selector, getElementDocument(context)).firstChild; 3626