--- /dev/null
+/*\r
+Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.html or http://ckeditor.com/license\r
+*/\r
+\r
+CKEDITOR.skins.add( 'kama', (function()\r
+{\r
+ var preload = [];\r
+\r
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )\r
+ {\r
+ // For IE6, we need to preload some images, otherwhise they will be\r
+ // downloaded several times (CSS background bug).\r
+ preload.push( 'icons.png', 'images/sprites_ie6.png', 'images/dialog_sides.gif' );\r
+ }\r
+\r
+ return {\r
+ preload : preload,\r
+ editor : { css : [ 'editor.css' ] },\r
+ dialog : { css : [ 'dialog.css' ] },\r
+ templates : { css : [ 'templates.css' ] },\r
+ margins : [ 0, 0, 0, 0 ],\r
+ init : function( editor )\r
+ {\r
+ if ( editor.config.width && !isNaN( editor.config.width ) )\r
+ editor.config.width -= 12;\r
+\r
+ var menuHead;\r
+ function menuSetUiColor( color )\r
+ {\r
+ if ( !menuHead )\r
+ return null;\r
+\r
+ var uiStyle = menuHead.append('style');\r
+\r
+ var cssSrc = "/* UI Color Support */\\r
+.cke_skin_kama .cke_menuitem .cke_icon_wrapper\\r
+{\\r
+ background-color: $color !important;\\r
+ border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper\\r
+{\\r
+ background-color: $color !important;\\r
+ border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a:hover .cke_label,\\r
+.cke_skin_kama .cke_menuitem a:focus .cke_label,\\r
+.cke_skin_kama .cke_menuitem a:active .cke_label\\r
+{\\r
+ background-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label\\r
+{\\r
+ background-color: transparent !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper\\r
+{\\r
+ background-color: $color !important;\\r
+ border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper\\r
+{\\r
+ background-color: $color !important;\\r
+ border-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuseparator\\r
+{\\r
+ background-color: $color !important;\\r
+}\\r
+\\r
+.cke_skin_kama .cke_menuitem a:hover,\\r
+.cke_skin_kama .cke_menuitem a:focus,\\r
+.cke_skin_kama .cke_menuitem a:active\\r
+{\\r
+ background-color: $color !important;\\r
+}";\r
+\r
+ uiStyle.setAttribute( "type", "text/css" );\r
+ var regex = /\$color/g;\r
+\r
+ // We have to split CSS declarations for webkit.\r
+ if ( CKEDITOR.env.webkit )\r
+ {\r
+ cssSrc = cssSrc.split( '}' ).slice( 0, -1 );\r
+ for ( var i in cssSrc )\r
+ cssSrc[ i ] = cssSrc[ i ].split( '{' );\r
+ }\r
+\r
+ return ( menuSetUiColor =\r
+ function( color )\r
+ {\r
+ if ( CKEDITOR.env.webkit )\r
+ {\r
+ for ( var i in cssSrc )\r
+ uiStyle.$.sheet.addRule(\r
+ cssSrc[ i ][ 0 ], cssSrc[ i ][ 1 ].replace( regex, color )\r
+ );\r
+ }\r
+ else\r
+ {\r
+ var css = cssSrc.replace( regex, color );\r
+\r
+ if ( CKEDITOR.env.ie )\r
+ uiStyle.$.styleSheet.cssText = css;\r
+ else\r
+ uiStyle.setHtml( css );\r
+ }\r
+ })( color );\r
+ }\r
+\r
+ CKEDITOR.tools.extend( editor,\r
+ {\r
+ uiColor: null,\r
+\r
+ getUiColor : function()\r
+ {\r
+ return this.uiColor;\r
+ },\r
+\r
+ setUiColor : function( color )\r
+ {\r
+ var uiStyle = CKEDITOR.document.getHead().append('style'),\r
+ cssId = '#cke_' + editor.name.replace('.', '\\.');\r
+\r
+ var cssSelectors =\r
+ [\r
+ cssId + " .cke_wrapper",\r
+ cssId + "_dialog .cke_dialog_contents",\r
+ cssId + "_dialog a.cke_dialog_tab",\r
+ cssId + "_dialog .cke_dialog_footer"\r
+ ].join( ',' );\r
+ var cssProperties = "background-color: $color !important;";\r
+\r
+ uiStyle.setAttribute("type", "text/css");\r
+\r
+ return ( this.setUiColor =\r
+ function( color )\r
+ {\r
+ var css = cssProperties.replace( '$color', color );\r
+ editor.uiColor = color;\r
+\r
+ if ( CKEDITOR.env.ie )\r
+ uiStyle.$.styleSheet.cssText = cssSelectors + '{' + css + '}';\r
+ else if ( CKEDITOR.env.webkit )\r
+ uiStyle.$.sheet.addRule( cssSelectors, css );\r
+ else\r
+ uiStyle.setHtml( cssSelectors + '{' + css + '}' );\r
+\r
+ menuSetUiColor( color );\r
+ })( color );\r
+ }\r
+ });\r
+\r
+ // If the "menu" plugin is loaded, register the listeners.\r
+ if ( CKEDITOR.menu )\r
+ {\r
+ var old = CKEDITOR.menu.prototype.show;\r
+\r
+ CKEDITOR.menu.prototype.show = function()\r
+ {\r
+ old.apply( this, arguments );\r
+\r
+ if ( !menuHead && editor == this.editor )\r
+ {\r
+ // Save reference.\r
+ menuHead = this._.element.getDocument().getHead();\r
+ menuSetUiColor( editor.getUiColor() );\r
+ }\r
+ };\r
+ }\r
+\r
+ // Apply UI color if specified in config.\r
+ if ( editor.config.uiColor )\r
+ editor.setUiColor( editor.config.uiColor );\r
+\r
+ // Fix editor's width. HPadding and 100% width iframe issue.\r
+// if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )\r
+// {\r
+// editor.on( 'mode', function( event )\r
+// {\r
+// var container = editor.getResizable();\r
+// editor.resize( container.$.offsetWidth-10, container.$.offsetHeight );\r
+// event.removeListener();\r
+// });\r
+// }\r
+\r
+// if ( CKEDITOR.env.ie && ( CKEDITOR.env.quirks || CKEDITOR.env.version < 7 ) )\r
+// {\r
+// editor.on( 'themeLoaded', function( event )\r
+// {\r
+// var toolbars = editor.container.getChild( [0, 0, 0, 0, 0, 0, 0] ).getChildren();\r
+// for ( var i = 0 ; i < toolbars.count() ; i++ )\r
+// {\r
+// var toolbar = toolbars.getItem( i );\r
+\r
+// var last = toolbar.getLast();\r
+// if ( !last || !last.getPrevious().hasClass( 'cke_rcombo' ) )\r
+// continue;\r
+//\r
+// last.addClass( 'cke_toolbar_end_last' );\r
+// }\r
+// });\r
+// }\r
+ }\r
+ };\r
+})() );\r
+\r
+if ( CKEDITOR.dialog )\r
+{\r
+ CKEDITOR.dialog.on( 'resize', function( evt )\r
+ {\r
+ var data = evt.data,\r
+ width = data.width,\r
+ height = data.height,\r
+ dialog = data.dialog,\r
+ contents = dialog.parts.contents,\r
+ standardsMode = !CKEDITOR.env.quirks;\r
+\r
+ if ( data.skin != 'kama' )\r
+ return;\r
+\r
+ contents.setStyles(\r
+ ( CKEDITOR.env.ie || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) ? // IE && FF2\r
+ {\r
+ width : width + 'px',\r
+ height : height + 'px'\r
+ }\r
+ :\r
+ {\r
+ // To avoid having scrollbars in the dialogs, we're\r
+ // (for now) using the "min-xxx" properties, for\r
+ // browsers which well support it (#3878).\r
+ 'min-width' : width + 'px',\r
+ 'min-height' : height + 'px'\r
+ });\r
+\r
+ if ( !CKEDITOR.env.ie )\r
+ return;\r
+\r
+ // Fix the size of the elements which have flexible lengths.\r
+ setTimeout( function()\r
+ {\r
+ var body = contents.getParent(),\r
+ innerDialog = body.getParent();\r
+\r
+ // tc\r
+ var el = innerDialog.getChild( 2 );\r
+ el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );\r
+\r
+ // bc\r
+ el = innerDialog.getChild( 7 );\r
+ el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );\r
+\r
+ // ml\r
+ el = innerDialog.getChild( 4 );\r
+ el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );\r
+\r
+ // mr\r
+ el = innerDialog.getChild( 5 );\r
+ el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );\r
+ },\r
+ 100 );\r
+ });\r
+}\r
+\r
+/**\r
+ * The base user interface color to be used by the editor. Not all skins are\r
+ * compatible with this setting.\r
+ * @name CKEDITOR.config.uiColor\r
+ * @type String\r
+ * @default '' (empty)\r
+ * @example\r
+ * // Using a color code.\r
+ * config.uiColor = '#AADC6E';\r
+ * @example\r
+ * // Using an HTML color name.\r
+ * config.uiColor = 'Gold';\r
+ */\r