From a56c200967fb5cf8ccdbdde78e385e5a5bca1621 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Mon, 26 May 2014 09:37:06 +0800 Subject: [PATCH 01/12] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E7=95=99=E8=A8=80=E8=B6=85=E8=BF=87=E4=B8=80=E9=A1=B5=E6=9D=A1?= =?UTF-8?q?=E6=95=B0=E9=99=90=E5=88=B6=E6=97=B6=E4=B8=8D=E4=BC=9A=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E6=8D=A2=E9=A1=B5=E6=A0=87=E7=AD=BE=E7=9A=84BUG=202.?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=82=B9=E5=87=BB=E4=BD=9C=E4=B8=9A=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E4=B8=BA=E4=B8=8B=E8=BD=BD=E4=BD=9C=E4=B8=9A=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=92=E8=AF=84=E6=8C=89=E9=92=AE=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E4=BD=9C=E4=B8=9A=E4=BA=92=E8=AF=84=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=203.=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=98=AF=E4=B8=8D=E6=98=AF=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=9A=84=E6=88=90=E5=91=98=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/bids_helper.rb | 11 +++++++++++ app/views/bids/_homework_list.html.erb | 2 +- app/views/homework_attach/_showjour.html.erb | 10 +++++++++- app/views/homework_attach/show.html.erb | 7 ------- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/app/helpers/bids_helper.rb b/app/helpers/bids_helper.rb index 721b30361..a5c25ecb5 100644 --- a/app/helpers/bids_helper.rb +++ b/app/helpers/bids_helper.rb @@ -145,6 +145,17 @@ module BidsHelper people.include?(User.current) end + # 当前用户是否加入了此课程(包括教师) + def is_cur_course_user? bid + people = [] + #people << bid.author + course = bid.courses.first + course.members.each do |member| + people << member.user + end + people.include?(User.current) + end + # def select_option_helper option # tmp = Hash.new # option.each do |project| diff --git a/app/views/bids/_homework_list.html.erb b/app/views/bids/_homework_list.html.erb index f7db8a375..3bcd12964 100644 --- a/app/views/bids/_homework_list.html.erb +++ b/app/views/bids/_homework_list.html.erb @@ -44,7 +44,7 @@ <% end %> - <% if display_id %> + <% if is_cur_course_user? @bid %> <%= link_to "互评>>" , homework_attach_path(homework)%> <% end %> diff --git a/app/views/homework_attach/_showjour.html.erb b/app/views/homework_attach/_showjour.html.erb index 939deff3b..de5c3eb42 100644 --- a/app/views/homework_attach/_showjour.html.erb +++ b/app/views/homework_attach/_showjour.html.erb @@ -70,4 +70,12 @@ <% end %> -<% end %> \ No newline at end of file +<% end %> + + + + \ No newline at end of file diff --git a/app/views/homework_attach/show.html.erb b/app/views/homework_attach/show.html.erb index f2c37d9ac..a0917a066 100644 --- a/app/views/homework_attach/show.html.erb +++ b/app/views/homework_attach/show.html.erb @@ -145,12 +145,5 @@ <%= render :partial => 'showjour', :locals => {:jour => @jour} %> - - -
From 0500bb3ea0cca55d2e0fece02b1ccbe165037810 Mon Sep 17 00:00:00 2001 From: xianbo Date: Fri, 30 May 2014 11:21:31 +0800 Subject: [PATCH 02/12] fix --- app/views/homework_attach/show.html.erb.orig | 157 ------------------- 1 file changed, 157 deletions(-) delete mode 100644 app/views/homework_attach/show.html.erb.orig diff --git a/app/views/homework_attach/show.html.erb.orig b/app/views/homework_attach/show.html.erb.orig deleted file mode 100644 index 65b5424e0..000000000 --- a/app/views/homework_attach/show.html.erb.orig +++ /dev/null @@ -1,157 +0,0 @@ - - -<% is_student = is_cur_course_student? @homework.bid.courses.first %> -<% is_teacher = is_course_teacher User.current,@homework.bid.courses.first %> - -

<%= notice %>

- -
- - - - - - - - - - - - - - - - - - - - - -
作业基础信息<%=@count %>
- 发布人员:<%= link_to @homework.user, user_path(@homework.user)%> - 发布时间:<%=format_time @homework.created_at %>
- 作业下载: - <% options = {:author => true } %> - <%= render :partial => 'app_link', :locals => {:attachments => @homework.attachments, :options => options} %> - - 所属任务:<%= link_to(@homework.bid.name, project_for_bid_path(@homework.bid))%> -
平均评分: - <%= rating_for @homework, :static => true, dimension: :quality, class: 'rateable div_inline' %> -
- - -
-
- -
- - - - - - - - - <% @homework.attachments.map do |attachment| %> - <% if attachment.description != nil && attachment.description != "" %> - - - - <% end %> - <% end %> -
作业描述:
-
<%= attachment.description %>
-
- - -
-
- -
-
- 作业得分: -
-
-
-
得分比例
-
- <% 100.step(20,-20) do |star| %> -
-
-
-
-
-
- <%= @stars_status_map["star#{(star/20).to_s}".to_sym] %> -
- <% end %> -
-
-
- <% score = @homework.average(:quality).try(:avg).try(:round, 2).to_s %> -
最终得分
-
- <% if score == "" %> - 0分 - <% else %> - <%= score %>分 - <% end %> -
-
- <%= rating_for @homework, :static => true, dimension: :quality, class: 'rateable div_inline' %> -
-
-
-
打分总人数
-
- - <%= @homework.raters(:quality).count%> - -
-
-
-
-
- - -
- <%= render :partial => 'comprehensive_evaluation', :locals => {:comprehensive_evaluation => @comprehensive_evaluation,:homework => @homework} %> -
- -
-
-
作业评论:
- <% if is_student %> -
评分: - <%= rating_for @homework, dimension: :quality, class: 'rateable div_inline' %> - (您可以重新打分,打分结果以最后一次打分为主!) -
- <% end %> -
- -<% if !is_teacher %> - -
- <%= render :partial => 'addjour', :locals => {:homework_attach => @homework, :sta => 0, :is_comprehensive_evaluation => nil} %> -
-<% end %> - - -
-<<<<<<< HEAD - <%= render :partial => 'showjour', :locals => {:jour => @jour} %> -======= - <%= render :partial => 'showjour', :locals => {:jour => @jour,:homework => @homework} %> ->>>>>>> 8c33cf0afb89556112710759615cbd88bb0326f2 -
- -
-
From e6c8dbef4f8ab3970553a20156028a2477acdbda Mon Sep 17 00:00:00 2001 From: "ShengYue.Xu" <27055684@qq.com> Date: Wed, 20 Aug 2014 21:22:19 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=89=88?= =?UTF-8?q?=E6=9D=83=E7=AC=A6=E5=8F=B7=EF=BC=8C=E7=94=B1=E5=8E=9F=E6=9D=A5?= =?UTF-8?q?=E7=9A=84@=E6=94=B9=E6=88=90=E4=BA=86=C2=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_base_footer.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/_base_footer.html.erb b/app/views/layouts/_base_footer.html.erb index 74610d14b..9aae725fc 100644 --- a/app/views/layouts/_base_footer.html.erb +++ b/app/views/layouts/_base_footer.html.erb @@ -11,7 +11,7 @@ <%=l(:label_organizers)%> <%= link_to l(:label_organizers_information),"http://www.nudt.edu.cn/ArticleShow.asp?ID=47",:target=>"_blank"%> <%= link_to l(:label_organizers_information_institute), "http://www.nudt.edu.cn/ArticleShow.asp?ID=41", :target => "_blank" %> - <%=l(:label_copyright)%>@2007~2014 + <%=l(:label_copyright)%>©2007~2014 <%= link_to l(:label_contact_us),"http://" + Setting.host_name + "/projects/2/member", :target=>"_blank" %> <%= link_to l(:label_record),"http://www.miibeian.gov.cn/", :target => "_blank" %> From 047f6d2c952f5f5fb80fdeb3d4c388767e38b4b9 Mon Sep 17 00:00:00 2001 From: "ShengYue.Xu" <27055684@qq.com> Date: Thu, 21 Aug 2014 19:57:49 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E7=BC=BA?= =?UTF-8?q?=E9=99=B7=E5=BD=93=E4=B8=AD=20#868=E3=80=81#780=E3=80=81#603?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/course.rb | 5 ++- app/models/news.rb | 1 + app/models/project.rb | 2 +- .../contests/show_attendingcontest.html.erb | 16 ++++---- app/views/files/_course_file.html.erb | 37 +++++++++-------- app/views/files/_course_new.html.erb | 40 +++++++++---------- 6 files changed, 53 insertions(+), 48 deletions(-) diff --git a/app/models/course.rb b/app/models/course.rb index 5034ab0d8..7737f2a9b 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -34,10 +34,11 @@ class Course < ActiveRecord::Base acts_as_attachable :view_permission => :view_files, :delete_permission => :manage_files - validates_presence_of :password, :term,:name + validates_presence_of :password, :term,:name,:description validates_format_of :class_period, :with =>/^[1-9]\d*$/ validates_format_of :name,:with =>/^[a-zA-Z0-9_\u4e00-\u9fa5]+$/ - + validates_length_of :description, :maximum => 10000 + before_save :self_validate after_save :create_board_sync before_destroy :delete_all_members diff --git a/app/models/news.rb b/app/models/news.rb index 9a0f8b75c..1b7b25444 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -29,6 +29,7 @@ class News < ActiveRecord::Base validates_presence_of :title, :description validates_length_of :title, :maximum => 60 validates_length_of :summary, :maximum => 255 + validates_length_of :description, :maximum => 10000 acts_as_attachable :delete_permission => :manage_news acts_as_searchable :columns => ['title', 'summary', "#{table_name}.description"], :include => :project diff --git a/app/models/project.rb b/app/models/project.rb index 5efaf10ab..1c45b0680 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -115,7 +115,7 @@ class Project < ActiveRecord::Base validates_uniqueness_of :identifier validates_uniqueness_of :name validates_associated :repository, :wiki - # validates_length_of :description, :maximum => 255 + validates_length_of :description, :maximum => 10000 validates_length_of :name, :maximum => 255 validates_length_of :homepage, :maximum => 255 validates_length_of :identifier, :in => 1..IDENTIFIER_MAX_LENGTH diff --git a/app/views/contests/show_attendingcontest.html.erb b/app/views/contests/show_attendingcontest.html.erb index ecdfd5ac5..24b05cc91 100644 --- a/app/views/contests/show_attendingcontest.html.erb +++ b/app/views/contests/show_attendingcontest.html.erb @@ -91,7 +91,7 @@ <%= l(:label_work_name) %> * : - <%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %> + <%= f.text_field :name, :required => true,:maxlength => 25, :size => 60, :style => "width:400px;" %> (<%= l(:label_workname_lengthlimit) %>)
@@ -101,8 +101,8 @@ <%= l(:label_running_platform) %> * : - <%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %> - + <%= f.text_field :android_min_version_available, :required => true,:maxlength => 125, :size => 60, :style => "width:400px;" %> + (<%= l(:label_workdescription_lengthlimit) %>)

@@ -112,8 +112,8 @@ <%= l(:label_work_type) %> * : - <%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %> - + <%= f.text_field :app_type_name, :required => true,:maxlength => 125, :size => 60, :style => "width:400px;" %> + (<%= l(:label_workdescription_lengthlimit) %>)

@@ -122,7 +122,7 @@ <%= l(:label_work_description) %> * : - <%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %> + <%= f.text_field :description, :required => true,:maxlength => 125, :size => 60, :style => "width:400px;" %> (<%= l(:label_workdescription_lengthlimit) %>)
@@ -132,8 +132,8 @@ <%= l(:label_softapplication_developers) %> * : - <%= f.text_field :application_developers, :required => true, :size => 60, :style => "width:400px;" %> - + <%= f.text_field :application_developers, :required => true,:maxlength => 125, :size => 60, :style => "width:400px;" %> + (<%= l(:label_workdescription_lengthlimit) %>)

diff --git a/app/views/files/_course_file.html.erb b/app/views/files/_course_file.html.erb index d9913539f..9e52cf71a 100644 --- a/app/views/files/_course_file.html.erb +++ b/app/views/files/_course_file.html.erb @@ -9,22 +9,25 @@ <%#= link_to(l(:label_attachment_new), 'javascript:void(0);', :onclick=>"$('#file_buttons').slideToggle();", :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @course) %>
- <%= link_to(l(:label_upload_files), 'javascript:void(0);', :class => 'icon m5p5 button_submit', :onclick => "$('#relation_file_div').slideUp();$('#upload_file_div').slideToggle('slow');") if User.current.allowed_to?(:manage_files, @course) %> - <%= link_to(l(:label_relation_files), 'javascript:void(0);', :onclick => "$('#upload_file_div').slideUp();$('#relation_file_div').slideToggle();", :class => 'icon m5p5 button_submit') if User.current.allowed_to?(:manage_files, @course) %> - - <% if attachmenttypes.any? %> -       - - <%= select_tag "attachment_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_from_collection_for_select(attachmenttypes, "id", "typeName"), - :onchange => "course_attachmenttypes_searchex(this.value)" %> - <% end %> - <% if sufixtypes.any? %> -   - - <%= select_tag "attach_sufix_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_for_select(sufixtypes), - :onchange => "course_attachment_contenttypes_searchex(this.value)" %> - <% end %> - + +
+ + <% if attachmenttypes.any? %> +       + + <%= select_tag "attachment_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_from_collection_for_select(attachmenttypes, "id", "typeName"), + :onchange => "course_attachmenttypes_searchex(this.value)" %> + <% end %> + <% if sufixtypes.any? %> +   + + <%= select_tag "attach_sufix_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_for_select(sufixtypes), + :onchange => "course_attachment_contenttypes_searchex(this.value)" %> + <% end %> + + <%= link_to(l(:label_upload_files), 'javascript:void(0);', :class => 'icon m5p5 button_submit', :onclick => "$('#relation_file_div').slideUp();$('#upload_file_div').slideToggle('slow');") if User.current.allowed_to?(:manage_files, @course) %> + <%= link_to(l(:label_relation_files), 'javascript:void(0);', :onclick => "$('#upload_file_div').slideUp();$('#relation_file_div').slideToggle();", :class => 'icon m5p5 button_submit') if User.current.allowed_to?(:manage_files, @course) %> + @@ -54,7 +57,7 @@
<% end -%> -
+
diff --git a/app/views/files/_course_new.html.erb b/app/views/files/_course_new.html.erb index 960b2d399..7a5aa265f 100644 --- a/app/views/files/_course_new.html.erb +++ b/app/views/files/_course_new.html.erb @@ -1,23 +1,23 @@ -

<%=l(:label_attachment_new)%>

-<% attachmenttypes = course.attachmenttypes %> -<%= error_messages_for 'attachment' %> -<%= form_tag(course_files_path(course), :multipart => true,:remote => true,:method => :post,:name=>"upload_form", :class => "tabular") do %> -
-

- <% if attachmenttypes.any? %> - <%= l(:attachment_type) %> - <%= select_tag "attachment_type", - options_from_collection_for_select(attachmenttypes, "id", - "typeName", 2), {style: 'width:100px'} %> - <% end %> -

- -

<%=l(:label_attachment_plural)%><%= render :partial => 'attachments/form' %>

-
-<%= submit_tag l(:button_add) %> -<% end %> -
- +
+ <%=l(:label_attachment_new)%> + <% attachmenttypes = course.attachmenttypes %> + <%= error_messages_for 'attachment' %> + <%= form_tag(course_files_path(course), :multipart => true,:remote => true,:method => :post,:name=>"upload_form", :class => "tabular") do %> + +

+ <% if attachmenttypes.any? %> + <%= l(:attachment_type) %> + <%= select_tag "attachment_type", + options_from_collection_for_select(attachmenttypes, "id", + "typeName", 2), {style: 'width:100px'} %> + <% end %> +

+ +

<%=l(:label_attachment_plural)%><%= render :partial => 'attachments/form' %>

+ + <%= submit_tag l(:button_add) %> + <% end %> +
- @@ -292,39 +14,7 @@ <%= labelled_form_for @user, :url => register_path do |f| %> <%= error_messages_for 'user' %>
-

- - - - - - -
- <%= l(:label_identity) %> * - - - - -
-

+ <% if @user.auth_source_id.nil? %>

<%= f.text_field :login, :size => 25, :required => true %> <%= l(:label_max_number) %> @@ -332,29 +22,9 @@

<%= f.password_field :password, :size => 25, :required => true %> <%= l(:text_caracters_minimum, :count => Setting.password_min_length) %>

-

<%= f.password_field :password_confirmation, :size => 25, :required => true %>

+

<%= f.password_field :password_confirmation, :size => 25, :required => true %>

<% end %> - - +

<%= f.text_field :mail, :required => true %> @@ -362,75 +32,9 @@

<%= "#{l(:label_mail_attention)} " %>

-

<%= f.select :language, lang_options_for_select, :required => true %>

- - -

- - - - - - -
- <%= l(:label_location) %> * - - - - -
-

+ +
@@ -453,7 +57,7 @@ jQuery(document).ready(function () { var $login = $('#user_login') var $mail = $('#user_mail') - + var $password_confirmation = $('#user_password_confirmation') $login.blur(function (event) { if ($(this).is('#user_login')) { $.get( @@ -485,6 +89,19 @@ }); } ; + }); + $password_confirmation.blur(function () { + var pas1 = document.getElementById("user_password").value; + var pas2 = document.getElementById("user_password_confirmation").value; + if (pas1 == pas2) { + $('#valid_password').html('' + "<%= l(:setting_password_success) %>"+ ""); + } + else { + $('#valid_password').html('' + "<%= l(:setting_password_error) %>" + ""); + } + + + }); }); \ No newline at end of file diff --git a/app/views/layouts/base_users.html.erb b/app/views/layouts/base_users.html.erb index fafa79d32..5aedec245 100644 --- a/app/views/layouts/base_users.html.erb +++ b/app/views/layouts/base_users.html.erb @@ -238,6 +238,13 @@ <%= @user.user_extensions.occupation %> + <% elsif @user.user_extensions.identity == 2 %> + + <%= l(:label_company_name) %>: + + <%= @user.firstname %> + + <% end %> <%= l(:label_location) %>:<%= @user.user_extensions.location %><%= @user.user_extensions.location_city %> diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 3b4221da6..b95959cca 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -62,7 +62,7 @@ -

+

<%= f.text_field :login, :required => true, :size => 25, :name => "login"%> <%= l(:label_max_number) %>
@@ -85,8 +85,8 @@

- <%= l(:label_company_name)%> +

+ <%= l(:label_company_name)%> * <%= text_field_tag :enterprise_name, @user.firstname %>

@@ -112,12 +112,51 @@ <% end %> <% end %> + + +

+ <%= l(:label_identity) %> * + + + + <% end %> + + +

+ + + -

+

- <%= l(:label_identity) %> - - - - <% end %> - - -

- <% else %> -

- - - -

- <% end %> + @@ -631,9 +617,7 @@ $('#name').hide() $('#enterprise').show() $('#gender').hide() - $('input#province').show() - $('input#occupation_name').show() - $('input#occupation').hide() + $('#occupation_detail').hide() var technical_titleOptions = new Array( "<%= l(:label_technicl_title_professor) %>", "<%= l(:label_technicl_title_associate_professor) %>", "<%= l(:label_technicl_title_lecturer) %>", "<%= l(:label_technicl_title_teaching_assistant) %>"); diff --git a/config/locales/zh.yml b/config/locales/zh.yml index c23351c5f..27d49d257 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -291,7 +291,7 @@ zh: field_open_student: 学生列表公开 field_parent: 上级项目 field_is_in_roadmap: 在路线图中显示 - field_login: 昵称 + field_login: 登录名 field_mail_notification: 邮件通知 field_admin: 管理员 field_last_login_on: 最后登录 @@ -393,6 +393,8 @@ zh: setting_repository_log_display_limit: 在文件变更记录页面上显示的最大修订版本数量 setting_openid: 允许使用OpenID登录和注册 setting_password_min_length: 最短密码长度 + setting_password_error: 密码不一致 + setting_password_success: 密码设置成功 setting_new_project_user_role_id: 非管理员用户新建项目时将被赋予的(在该项目中的)角色 setting_default_projects_modules: 新建项目默认启用的模块 setting_issue_done_ratio: 计算问题完成度: @@ -680,7 +682,7 @@ zh: label_my_page_block: 我的工作台模块 label_administration: 管理 label_login: 登录 - label_login_prompt: 邮箱/昵称 + label_login_prompt: 邮箱/登录名 lable_user_name: 登录名 label_logout: 退出 label_help: 帮助 @@ -854,7 +856,7 @@ zh: label_roadmap_overdue: "%{value} 延期" label_roadmap_no_issues: 该版本没有问题 label_user_search_type: 搜索类型 - label_search_by_login: 昵称 + label_search_by_login: 登录名 label_search_by_name: 名字 label_search_by_email: 邮箱 label_search: 搜索 @@ -1596,7 +1598,7 @@ zh: label_tags_user_mail: 用户邮箱: label_tags_user_name: 用户名: label_tags_numbers: Tag统计: - label_max_number: 昵称是在网站中显示的您的公开标识,至多25个字符。 + label_max_number: 登录名是在网站中显示的您的公开标识,至多25个字符。 label_mail_attention: qq邮箱可能收不到此邮件,其他邮箱如果没有收到可能在垃圾邮件中,其中gmail与教育网邮箱的激活邮件有时比较慢,请耐心等待。 label_your_course: 您的课程《 label_have_message : 》有新的留言 diff --git a/test/integration/projects_test.rb b/test/integration/projects_test.rb index 87f28bb61..70d4d9dd3 100644 --- a/test/integration/projects_test.rb +++ b/test/integration/projects_test.rb @@ -1,51 +1,51 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class ProjectsTest < ActionController::IntegrationTest - fixtures :projects, :users, :members, :enabled_modules - - def test_archive_project - subproject = Project.find(1).children.first - log_user("admin", "admin") - get "admin/projects" - assert_response :success - assert_template "admin/projects" - post "projects/1/archive" - assert_redirected_to "/admin/projects" - assert !Project.find(1).active? - - get 'projects/1' - assert_response 403 - get "projects/#{subproject.id}" - assert_response 403 - - post "projects/1/unarchive" - assert_redirected_to "/admin/projects" - assert Project.find(1).active? - get "projects/1" - assert_response :success - end - - def test_modules_should_not_allow_get - assert_no_difference 'EnabledModule.count' do - get '/projects/1/modules', {:enabled_module_names => ['']}, credentials('jsmith') - assert_response 404 - end - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class ProjectsTest < ActionController::IntegrationTest + fixtures :projects, :users, :members, :enabled_modules + + def test_archive_project + subproject = Project.find(1).children.first + log_user("admin", "admin") + get "admin/projects" + assert_response :success + assert_template "admin/projects" + post "projects/1/archive" + assert_redirected_to "/admin/projects" + assert !Project.find(1).active? + + get 'projects/1' + assert_response 403 + get "projects/#{subproject.id}" + assert_response 403 + + post "projects/1/unarchive" + assert_redirected_to "/admin/projects" + assert Project.find(1).active? + get "projects/1" + assert_response :success + end + + def test_modules_should_not_allow_get + assert_no_difference 'EnabledModule.count' do + get '/projects/1/modules', {:enabled_module_names => ['']}, credentials('jsmith') + assert_response 404 + end + end +end diff --git a/test/integration/repositories_git_test.rb b/test/integration/repositories_git_test.rb index d88a86305..e5c556900 100644 --- a/test/integration/repositories_git_test.rb +++ b/test/integration/repositories_git_test.rb @@ -1,50 +1,50 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class RepositoriesGitTest < ActionController::IntegrationTest - fixtures :projects, :users, :roles, :members, :member_roles, - :repositories, :enabled_modules - - REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s - REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin? - PRJ_ID = 3 - - def setup - User.current = nil - @project = Project.find(PRJ_ID) - @repository = Repository::Git.create( - :project => @project, - :url => REPOSITORY_PATH, - :path_encoding => 'ISO-8859-1' - ) - assert @repository - end - - if File.directory?(REPOSITORY_PATH) - def test_index - get '/projects/subproject1/repository/' - assert_response :success - end - - def test_diff_two_revs - get '/projects/subproject1/repository/diff?rev=61b685fbe&rev_to=2f9c0091' - assert_response :success - end - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class RepositoriesGitTest < ActionController::IntegrationTest + fixtures :projects, :users, :roles, :members, :member_roles, + :repositories, :enabled_modules + + REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s + REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin? + PRJ_ID = 3 + + def setup + User.current = nil + @project = Project.find(PRJ_ID) + @repository = Repository::Git.create( + :project => @project, + :url => REPOSITORY_PATH, + :path_encoding => 'ISO-8859-1' + ) + assert @repository + end + + if File.directory?(REPOSITORY_PATH) + def test_index + get '/projects/subproject1/repository/' + assert_response :success + end + + def test_diff_two_revs + get '/projects/subproject1/repository/diff?rev=61b685fbe&rev_to=2f9c0091' + assert_response :success + end + end +end diff --git a/test/integration/routing/courses_test.rb b/test/integration/routing/courses_test.rb index ee9a8bd0d..419d3fffd 100644 --- a/test/integration/routing/courses_test.rb +++ b/test/integration/routing/courses_test.rb @@ -1,96 +1,96 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../../test_helper', __FILE__) - -class RoutingProjectsTest < ActionController::IntegrationTest - def test_courses - assert_routing( - { :method => 'get', :path => "/courses" }, - { :controller => 'courses', :action => 'index' } - ) - end - def test_courses_search - assert_routing( - "/courses/search", - {controller: 'courses', action: 'search'} - ) - end - - def test_courses_item - assert_routing( - 'courses/233', - {controller: 'courses', action: 'show', id: '233'} - ) - # id eq str - assert_routing( - 'courses/timestypo', - {controller: 'courses', action: 'show', id: 'timestypo'} - ) - end - - def test_course_setting - assert_routing( - 'courses/233/settings', - {controller: 'courses', action: 'settings', id: '233'} - ) - end - - def test_course_homework - assert_routing( - 'courses/233/homework', - {controller: 'courses', action: 'homework', id: '233'} - ) - assert_routing( - 'courses/233/new_homework', - {controller: 'courses', action: 'new_homework', id: '233'} - ) - end - - def test_course_file - assert_routing( - 'courses/233/file', - {controller: 'courses', action: 'file', id: '233'} - ) - end - - def test_course_feedback - assert_routing( - 'courses/233/feedback', - {controller: 'courses', action: 'feedback', id: '233'} - ) - end - - def test_course_member - assert_routing( - 'courses/233/member', - {controller: 'courses', action: 'member', id: '233'} - ) - end - - def test_course_finish_restart_course - assert_routing( - {path: 'courses/233/finishcourse', method: :post}, - {controller: 'courses', action: 'finishcourse', id: '233'} - ) - assert_routing( - {path: 'courses/233/restartcourse', method: :post}, - {controller: 'courses', action: 'restartcourse', id: '233'} - ) - end - -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../../test_helper', __FILE__) + +class RoutingProjectsTest < ActionController::IntegrationTest + def test_courses + assert_routing( + { :method => 'get', :path => "/courses" }, + { :controller => 'courses', :action => 'index' } + ) + end + def test_courses_search + assert_routing( + "/courses/search", + {controller: 'courses', action: 'search'} + ) + end + + def test_courses_item + assert_routing( + 'courses/233', + {controller: 'courses', action: 'show', id: '233'} + ) + # id eq str + assert_routing( + 'courses/timestypo', + {controller: 'courses', action: 'show', id: 'timestypo'} + ) + end + + def test_course_setting + assert_routing( + 'courses/233/settings', + {controller: 'courses', action: 'settings', id: '233'} + ) + end + + def test_course_homework + assert_routing( + 'courses/233/homework', + {controller: 'courses', action: 'homework', id: '233'} + ) + assert_routing( + 'courses/233/new_homework', + {controller: 'courses', action: 'new_homework', id: '233'} + ) + end + + def test_course_file + assert_routing( + 'courses/233/file', + {controller: 'courses', action: 'file', id: '233'} + ) + end + + def test_course_feedback + assert_routing( + 'courses/233/feedback', + {controller: 'courses', action: 'feedback', id: '233'} + ) + end + + def test_course_member + assert_routing( + 'courses/233/member', + {controller: 'courses', action: 'member', id: '233'} + ) + end + + def test_course_finish_restart_course + assert_routing( + {path: 'courses/233/finishcourse', method: :post}, + {controller: 'courses', action: 'finishcourse', id: '233'} + ) + assert_routing( + {path: 'courses/233/restartcourse', method: :post}, + {controller: 'courses', action: 'restartcourse', id: '233'} + ) + end + +end diff --git a/test/integration/users_test.rb b/test/integration/users_test.rb index ef6e4d1de..dea40a1f0 100644 --- a/test/integration/users_test.rb +++ b/test/integration/users_test.rb @@ -1,29 +1,29 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class UsersTest < ActionController::IntegrationTest - fixtures :users - - def test_destroy_should_not_accept_get_requests - assert_no_difference 'User.count' do - get '/users/destroy/2', {}, credentials('admin') - assert_response 404 - end - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class UsersTest < ActionController::IntegrationTest + fixtures :users + + def test_destroy_should_not_accept_get_requests + assert_no_difference 'User.count' do + get '/users/destroy/2', {}, credentials('admin') + assert_response 404 + end + end +end diff --git a/test/unit/activity_test.rb b/test/unit/activity_test.rb index f0bdef850..81fecf65e 100644 --- a/test/unit/activity_test.rb +++ b/test/unit/activity_test.rb @@ -1,129 +1,129 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class ActivityTest < ActiveSupport::TestCase - fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details, - :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, :time_entries, - :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions - - def setup - @project = Project.find(1) - end - - def test_activity_without_subprojects - events = find_events(User.anonymous, :project => @project) - assert_not_nil events - - assert events.include?(Issue.find(1)) - assert !events.include?(Issue.find(4)) - # subproject issue - assert !events.include?(Issue.find(5)) - end - - def test_activity_with_subprojects - events = find_events(User.anonymous, :project => @project, :with_subprojects => 1) - assert_not_nil events - - assert events.include?(Issue.find(1)) - # subproject issue - assert events.include?(Issue.find(5)) - end - - def test_global_activity_anonymous - events = find_events(User.anonymous) - assert_not_nil events - - assert events.include?(Issue.find(1)) - assert events.include?(Message.find(5)) - # Issue of a private project - assert !events.include?(Issue.find(4)) - # Private issue and comment - assert !events.include?(Issue.find(14)) - assert !events.include?(Journal.find(5)) - end - - def test_global_activity_logged_user - events = find_events(User.find(2)) # manager - assert_not_nil events - - assert events.include?(Issue.find(1)) - # Issue of a private project the user belongs to - assert events.include?(Issue.find(4)) - end - - def test_user_activity - user = User.find(2) - events = Redmine::Activity::Fetcher.new(User.anonymous, :author => user).events(nil, nil, :limit => 10) - - assert(events.size > 0) - assert(events.size <= 10) - assert_nil(events.detect {|e| e.event_author != user}) - end - - def test_files_activity - f = Redmine::Activity::Fetcher.new(User.anonymous, :project => Project.find(1)) - f.scope = ['files'] - events = f.events - - assert_kind_of Array, events - assert events.include?(Attachment.find_by_container_type_and_container_id('Project', 1)) - assert events.include?(Attachment.find_by_container_type_and_container_id('Version', 1)) - assert_equal [Attachment], events.collect(&:class).uniq - assert_equal %w(Project Version), events.collect(&:container_type).uniq.sort - end - - def test_event_group_for_issue - issue = Issue.find(1) - assert_equal issue, issue.event_group - end - - def test_event_group_for_journal - issue = Issue.find(1) - journal = issue.journals.first - assert_equal issue, journal.event_group - end - - def test_event_group_for_issue_time_entry - time = TimeEntry.where(:issue_id => 1).first - assert_equal time.issue, time.event_group - end - - def test_event_group_for_project_time_entry - time = TimeEntry.where(:issue_id => nil).first - assert_equal time, time.event_group - end - - def test_event_group_for_message - message = Message.find(1) - reply = message.children.first - assert_equal message, message.event_group - assert_equal message, reply.event_group - end - - def test_event_group_for_wiki_content_version - content = WikiContent::Version.find(1) - assert_equal content.page, content.event_group - end - - private - - def find_events(user, options={}) - Redmine::Activity::Fetcher.new(user, options).events(Date.today - 30, Date.today + 1) - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class ActivityTest < ActiveSupport::TestCase + fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details, + :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, :time_entries, + :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions + + def setup + @project = Project.find(1) + end + + def test_activity_without_subprojects + events = find_events(User.anonymous, :project => @project) + assert_not_nil events + + assert events.include?(Issue.find(1)) + assert !events.include?(Issue.find(4)) + # subproject issue + assert !events.include?(Issue.find(5)) + end + + def test_activity_with_subprojects + events = find_events(User.anonymous, :project => @project, :with_subprojects => 1) + assert_not_nil events + + assert events.include?(Issue.find(1)) + # subproject issue + assert events.include?(Issue.find(5)) + end + + def test_global_activity_anonymous + events = find_events(User.anonymous) + assert_not_nil events + + assert events.include?(Issue.find(1)) + assert events.include?(Message.find(5)) + # Issue of a private project + assert !events.include?(Issue.find(4)) + # Private issue and comment + assert !events.include?(Issue.find(14)) + assert !events.include?(Journal.find(5)) + end + + def test_global_activity_logged_user + events = find_events(User.find(2)) # manager + assert_not_nil events + + assert events.include?(Issue.find(1)) + # Issue of a private project the user belongs to + assert events.include?(Issue.find(4)) + end + + def test_user_activity + user = User.find(2) + events = Redmine::Activity::Fetcher.new(User.anonymous, :author => user).events(nil, nil, :limit => 10) + + assert(events.size > 0) + assert(events.size <= 10) + assert_nil(events.detect {|e| e.event_author != user}) + end + + def test_files_activity + f = Redmine::Activity::Fetcher.new(User.anonymous, :project => Project.find(1)) + f.scope = ['files'] + events = f.events + + assert_kind_of Array, events + assert events.include?(Attachment.find_by_container_type_and_container_id('Project', 1)) + assert events.include?(Attachment.find_by_container_type_and_container_id('Version', 1)) + assert_equal [Attachment], events.collect(&:class).uniq + assert_equal %w(Project Version), events.collect(&:container_type).uniq.sort + end + + def test_event_group_for_issue + issue = Issue.find(1) + assert_equal issue, issue.event_group + end + + def test_event_group_for_journal + issue = Issue.find(1) + journal = issue.journals.first + assert_equal issue, journal.event_group + end + + def test_event_group_for_issue_time_entry + time = TimeEntry.where(:issue_id => 1).first + assert_equal time.issue, time.event_group + end + + def test_event_group_for_project_time_entry + time = TimeEntry.where(:issue_id => nil).first + assert_equal time, time.event_group + end + + def test_event_group_for_message + message = Message.find(1) + reply = message.children.first + assert_equal message, message.event_group + assert_equal message, reply.event_group + end + + def test_event_group_for_wiki_content_version + content = WikiContent::Version.find(1) + assert_equal content.page, content.event_group + end + + private + + def find_events(user, options={}) + Redmine::Activity::Fetcher.new(user, options).events(Date.today - 30, Date.today + 1) + end +end diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb index e32754b7d..c98a0cebd 100644 --- a/test/unit/attachment_test.rb +++ b/test/unit/attachment_test.rb @@ -1,283 +1,283 @@ -# encoding: utf-8 -# -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class AttachmentTest < ActiveSupport::TestCase - fixtures :users, :projects, :roles, :members, :member_roles, - :enabled_modules, :issues, :trackers, :attachments - - class MockFile - attr_reader :original_filename, :content_type, :content, :size - - def initialize(attributes) - @original_filename = attributes[:original_filename] - @content_type = attributes[:content_type] - @content = attributes[:content] || "Content" - @size = content.size - end - end - - def setup - set_tmp_attachments_directory - end - - def test_container_for_new_attachment_should_be_nil - assert_nil Attachment.new.container - end - - def test_create - a = Attachment.new(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", "text/plain"), - :author => User.find(1)) - assert a.save - assert_equal 'testfile.txt', a.filename - assert_equal 59, a.filesize - assert_equal 'text/plain', a.content_type - assert_equal 0, a.downloads - assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest - - assert a.disk_directory - assert_match %r{\A\d{4}/\d{2}\z}, a.disk_directory - - assert File.exist?(a.diskfile) - assert_equal 59, File.size(a.diskfile) - end - - def test_copy_should_preserve_attributes - a = Attachment.find(1) - copy = a.copy - - assert_save copy - copy = Attachment.order('id DESC').first - %w(filename filesize content_type author_id created_on description digest disk_filename disk_directory diskfile).each do |attribute| - assert_equal a.send(attribute), copy.send(attribute), "#{attribute} was different" - end - end - - def test_size_should_be_validated_for_new_file - with_settings :attachment_max_size => 0 do - a = Attachment.new(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", "text/plain"), - :author => User.find(1)) - assert !a.save - end - end - - def test_size_should_not_be_validated_when_copying - a = Attachment.create!(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", "text/plain"), - :author => User.find(1)) - with_settings :attachment_max_size => 0 do - copy = a.copy - assert copy.save - end - end - - def test_description_length_should_be_validated - a = Attachment.new(:description => 'a' * 300) - assert !a.save - assert_not_nil a.errors[:description] - end - - def test_destroy - a = Attachment.new(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", "text/plain"), - :author => User.find(1)) - assert a.save - assert_equal 'testfile.txt', a.filename - assert_equal 59, a.filesize - assert_equal 'text/plain', a.content_type - assert_equal 0, a.downloads - assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest - diskfile = a.diskfile - assert File.exist?(diskfile) - assert_equal 59, File.size(a.diskfile) - assert a.destroy - assert !File.exist?(diskfile) - end - - def test_destroy_should_not_delete_file_referenced_by_other_attachment - a = Attachment.create!(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", "text/plain"), - :author => User.find(1)) - diskfile = a.diskfile - - copy = a.copy - copy.save! - - assert File.exists?(diskfile) - a.destroy - assert File.exists?(diskfile) - copy.destroy - assert !File.exists?(diskfile) - end - - def test_create_should_auto_assign_content_type - a = Attachment.new(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", ""), - :author => User.find(1)) - assert a.save - assert_equal 'text/plain', a.content_type - end - - def test_identical_attachments_at_the_same_time_should_not_overwrite - a1 = Attachment.create!(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", ""), - :author => User.find(1)) - a2 = Attachment.create!(:container => Issue.find(1), - :file => uploaded_test_file("testfile.txt", ""), - :author => User.find(1)) - assert a1.disk_filename != a2.disk_filename - end - - def test_filename_should_be_basenamed - a = Attachment.new(:file => MockFile.new(:original_filename => "path/to/the/file")) - assert_equal 'file', a.filename - end - - def test_filename_should_be_sanitized - a = Attachment.new(:file => MockFile.new(:original_filename => "valid:[] invalid:?%*|\"'<>chars")) - assert_equal 'valid_[] invalid_chars', a.filename - end - - def test_diskfilename - assert Attachment.disk_filename("test_file.txt") =~ /^\d{12}_test_file.txt$/ - assert_equal 'test_file.txt', Attachment.disk_filename("test_file.txt")[13..-1] - assert_equal '770c509475505f37c2b8fb6030434d6b.txt', Attachment.disk_filename("test_accentué.txt")[13..-1] - assert_equal 'f8139524ebb8f32e51976982cd20a85d', Attachment.disk_filename("test_accentué")[13..-1] - assert_equal 'cbb5b0f30978ba03731d61f9f6d10011', Attachment.disk_filename("test_accentué.ça")[13..-1] - end - - def test_title - a = Attachment.new(:filename => "test.png") - assert_equal "test.png", a.title - - a = Attachment.new(:filename => "test.png", :description => "Cool image") - assert_equal "test.png (Cool image)", a.title - end - - def test_prune_should_destroy_old_unattached_attachments - Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago) - Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago) - Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1) - - assert_difference 'Attachment.count', -2 do - Attachment.prune - end - end - - def test_move_from_root_to_target_directory_should_move_root_files - a = Attachment.find(20) - assert a.disk_directory.blank? - # Create a real file for this fixture - File.open(a.diskfile, "w") do |f| - f.write "test file at the root of files directory" - end - assert a.readable? - Attachment.move_from_root_to_target_directory - - a.reload - assert_equal '2012/05', a.disk_directory - assert a.readable? - end - - test "Attachmnet.attach_files should attach the file" do - issue = Issue.first - assert_difference 'Attachment.count' do - Attachment.attach_files(issue, - '1' => { - 'file' => uploaded_test_file('testfile.txt', 'text/plain'), - 'description' => 'test' - }) - end - - attachment = Attachment.first(:order => 'id DESC') - assert_equal issue, attachment.container - assert_equal 'testfile.txt', attachment.filename - assert_equal 59, attachment.filesize - assert_equal 'test', attachment.description - assert_equal 'text/plain', attachment.content_type - assert File.exists?(attachment.diskfile) - assert_equal 59, File.size(attachment.diskfile) - end - - test "Attachmnet.attach_files should add unsaved files to the object as unsaved attachments" do - # Max size of 0 to force Attachment creation failures - with_settings(:attachment_max_size => 0) do - @project = Project.find(1) - response = Attachment.attach_files(@project, { - '1' => {'file' => mock_file, 'description' => 'test'}, - '2' => {'file' => mock_file, 'description' => 'test'} - }) - - assert response[:unsaved].present? - assert_equal 2, response[:unsaved].length - assert response[:unsaved].first.new_record? - assert response[:unsaved].second.new_record? - assert_equal response[:unsaved], @project.unsaved_attachments - end - end - - def test_latest_attach - set_fixtures_attachments_directory - a1 = Attachment.find(16) - assert_equal "testfile.png", a1.filename - assert a1.readable? - assert (! a1.visible?(User.anonymous)) - assert a1.visible?(User.find(2)) - a2 = Attachment.find(17) - assert_equal "testfile.PNG", a2.filename - assert a2.readable? - assert (! a2.visible?(User.anonymous)) - assert a2.visible?(User.find(2)) - assert a1.created_on < a2.created_on - - la1 = Attachment.latest_attach([a1, a2], "testfile.png") - assert_equal 17, la1.id - la2 = Attachment.latest_attach([a1, a2], "Testfile.PNG") - assert_equal 17, la2.id - - set_tmp_attachments_directory - end - - def test_thumbnailable_should_be_true_for_images - assert_equal true, Attachment.new(:filename => 'test.jpg').thumbnailable? - end - - def test_thumbnailable_should_be_true_for_non_images - assert_equal false, Attachment.new(:filename => 'test.txt').thumbnailable? - end - - if convert_installed? - def test_thumbnail_should_generate_the_thumbnail - set_fixtures_attachments_directory - attachment = Attachment.find(16) - Attachment.clear_thumbnails - - assert_difference "Dir.glob(File.join(Attachment.thumbnails_storage_path, '*.thumb')).size" do - thumbnail = attachment.thumbnail - assert_equal "16_8e0294de2441577c529f170b6fb8f638_100.thumb", File.basename(thumbnail) - assert File.exists?(thumbnail) - end - end - else - puts '(ImageMagick convert not available)' - end -end +# encoding: utf-8 +# +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class AttachmentTest < ActiveSupport::TestCase + fixtures :users, :projects, :roles, :members, :member_roles, + :enabled_modules, :issues, :trackers, :attachments + + class MockFile + attr_reader :original_filename, :content_type, :content, :size + + def initialize(attributes) + @original_filename = attributes[:original_filename] + @content_type = attributes[:content_type] + @content = attributes[:content] || "Content" + @size = content.size + end + end + + def setup + set_tmp_attachments_directory + end + + def test_container_for_new_attachment_should_be_nil + assert_nil Attachment.new.container + end + + def test_create + a = Attachment.new(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", "text/plain"), + :author => User.find(1)) + assert a.save + assert_equal 'testfile.txt', a.filename + assert_equal 59, a.filesize + assert_equal 'text/plain', a.content_type + assert_equal 0, a.downloads + assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest + + assert a.disk_directory + assert_match %r{\A\d{4}/\d{2}\z}, a.disk_directory + + assert File.exist?(a.diskfile) + assert_equal 59, File.size(a.diskfile) + end + + def test_copy_should_preserve_attributes + a = Attachment.find(1) + copy = a.copy + + assert_save copy + copy = Attachment.order('id DESC').first + %w(filename filesize content_type author_id created_on description digest disk_filename disk_directory diskfile).each do |attribute| + assert_equal a.send(attribute), copy.send(attribute), "#{attribute} was different" + end + end + + def test_size_should_be_validated_for_new_file + with_settings :attachment_max_size => 0 do + a = Attachment.new(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", "text/plain"), + :author => User.find(1)) + assert !a.save + end + end + + def test_size_should_not_be_validated_when_copying + a = Attachment.create!(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", "text/plain"), + :author => User.find(1)) + with_settings :attachment_max_size => 0 do + copy = a.copy + assert copy.save + end + end + + def test_description_length_should_be_validated + a = Attachment.new(:description => 'a' * 300) + assert !a.save + assert_not_nil a.errors[:description] + end + + def test_destroy + a = Attachment.new(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", "text/plain"), + :author => User.find(1)) + assert a.save + assert_equal 'testfile.txt', a.filename + assert_equal 59, a.filesize + assert_equal 'text/plain', a.content_type + assert_equal 0, a.downloads + assert_equal '1478adae0d4eb06d35897518540e25d6', a.digest + diskfile = a.diskfile + assert File.exist?(diskfile) + assert_equal 59, File.size(a.diskfile) + assert a.destroy + assert !File.exist?(diskfile) + end + + def test_destroy_should_not_delete_file_referenced_by_other_attachment + a = Attachment.create!(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", "text/plain"), + :author => User.find(1)) + diskfile = a.diskfile + + copy = a.copy + copy.save! + + assert File.exists?(diskfile) + a.destroy + assert File.exists?(diskfile) + copy.destroy + assert !File.exists?(diskfile) + end + + def test_create_should_auto_assign_content_type + a = Attachment.new(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", ""), + :author => User.find(1)) + assert a.save + assert_equal 'text/plain', a.content_type + end + + def test_identical_attachments_at_the_same_time_should_not_overwrite + a1 = Attachment.create!(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", ""), + :author => User.find(1)) + a2 = Attachment.create!(:container => Issue.find(1), + :file => uploaded_test_file("testfile.txt", ""), + :author => User.find(1)) + assert a1.disk_filename != a2.disk_filename + end + + def test_filename_should_be_basenamed + a = Attachment.new(:file => MockFile.new(:original_filename => "path/to/the/file")) + assert_equal 'file', a.filename + end + + def test_filename_should_be_sanitized + a = Attachment.new(:file => MockFile.new(:original_filename => "valid:[] invalid:?%*|\"'<>chars")) + assert_equal 'valid_[] invalid_chars', a.filename + end + + def test_diskfilename + assert Attachment.disk_filename("test_file.txt") =~ /^\d{12}_test_file.txt$/ + assert_equal 'test_file.txt', Attachment.disk_filename("test_file.txt")[13..-1] + assert_equal '770c509475505f37c2b8fb6030434d6b.txt', Attachment.disk_filename("test_accentué.txt")[13..-1] + assert_equal 'f8139524ebb8f32e51976982cd20a85d', Attachment.disk_filename("test_accentué")[13..-1] + assert_equal 'cbb5b0f30978ba03731d61f9f6d10011', Attachment.disk_filename("test_accentué.ça")[13..-1] + end + + def test_title + a = Attachment.new(:filename => "test.png") + assert_equal "test.png", a.title + + a = Attachment.new(:filename => "test.png", :description => "Cool image") + assert_equal "test.png (Cool image)", a.title + end + + def test_prune_should_destroy_old_unattached_attachments + Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago) + Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1, :created_on => 2.days.ago) + Attachment.create!(:file => uploaded_test_file("testfile.txt", ""), :author_id => 1) + + assert_difference 'Attachment.count', -2 do + Attachment.prune + end + end + + def test_move_from_root_to_target_directory_should_move_root_files + a = Attachment.find(20) + assert a.disk_directory.blank? + # Create a real file for this fixture + File.open(a.diskfile, "w") do |f| + f.write "test file at the root of files directory" + end + assert a.readable? + Attachment.move_from_root_to_target_directory + + a.reload + assert_equal '2012/05', a.disk_directory + assert a.readable? + end + + test "Attachmnet.attach_files should attach the file" do + issue = Issue.first + assert_difference 'Attachment.count' do + Attachment.attach_files(issue, + '1' => { + 'file' => uploaded_test_file('testfile.txt', 'text/plain'), + 'description' => 'test' + }) + end + + attachment = Attachment.first(:order => 'id DESC') + assert_equal issue, attachment.container + assert_equal 'testfile.txt', attachment.filename + assert_equal 59, attachment.filesize + assert_equal 'test', attachment.description + assert_equal 'text/plain', attachment.content_type + assert File.exists?(attachment.diskfile) + assert_equal 59, File.size(attachment.diskfile) + end + + test "Attachmnet.attach_files should add unsaved files to the object as unsaved attachments" do + # Max size of 0 to force Attachment creation failures + with_settings(:attachment_max_size => 0) do + @project = Project.find(1) + response = Attachment.attach_files(@project, { + '1' => {'file' => mock_file, 'description' => 'test'}, + '2' => {'file' => mock_file, 'description' => 'test'} + }) + + assert response[:unsaved].present? + assert_equal 2, response[:unsaved].length + assert response[:unsaved].first.new_record? + assert response[:unsaved].second.new_record? + assert_equal response[:unsaved], @project.unsaved_attachments + end + end + + def test_latest_attach + set_fixtures_attachments_directory + a1 = Attachment.find(16) + assert_equal "testfile.png", a1.filename + assert a1.readable? + assert (! a1.visible?(User.anonymous)) + assert a1.visible?(User.find(2)) + a2 = Attachment.find(17) + assert_equal "testfile.PNG", a2.filename + assert a2.readable? + assert (! a2.visible?(User.anonymous)) + assert a2.visible?(User.find(2)) + assert a1.created_on < a2.created_on + + la1 = Attachment.latest_attach([a1, a2], "testfile.png") + assert_equal 17, la1.id + la2 = Attachment.latest_attach([a1, a2], "Testfile.PNG") + assert_equal 17, la2.id + + set_tmp_attachments_directory + end + + def test_thumbnailable_should_be_true_for_images + assert_equal true, Attachment.new(:filename => 'test.jpg').thumbnailable? + end + + def test_thumbnailable_should_be_true_for_non_images + assert_equal false, Attachment.new(:filename => 'test.txt').thumbnailable? + end + + if convert_installed? + def test_thumbnail_should_generate_the_thumbnail + set_fixtures_attachments_directory + attachment = Attachment.find(16) + Attachment.clear_thumbnails + + assert_difference "Dir.glob(File.join(Attachment.thumbnails_storage_path, '*.thumb')).size" do + thumbnail = attachment.thumbnail + assert_equal "16_8e0294de2441577c529f170b6fb8f638_100.thumb", File.basename(thumbnail) + assert File.exists?(thumbnail) + end + end + else + puts '(ImageMagick convert not available)' + end +end diff --git a/test/unit/auth_source_ldap_test.rb b/test/unit/auth_source_ldap_test.rb index 29c528f35..6febe303b 100644 --- a/test/unit/auth_source_ldap_test.rb +++ b/test/unit/auth_source_ldap_test.rb @@ -1,141 +1,141 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class AuthSourceLdapTest < ActiveSupport::TestCase - include Redmine::I18n - fixtures :auth_sources - - def setup - end - - def test_create - a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName') - assert a.save - end - - def test_should_strip_ldap_attributes - a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName', - :attr_firstname => 'givenName ') - assert a.save - assert_equal 'givenName', a.reload.attr_firstname - end - - def test_replace_port_zero_to_389 - a = AuthSourceLdap.new( - :name => 'My LDAP', :host => 'ldap.example.net', :port => 0, - :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName', - :attr_firstname => 'givenName ') - assert a.save - assert_equal 389, a.port - end - - def test_filter_should_be_validated - set_language_if_valid 'en' - - a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :attr_login => 'sn') - a.filter = "(mail=*@redmine.org" - assert !a.valid? - assert_include "LDAP filter is invalid", a.errors.full_messages - - a.filter = "(mail=*@redmine.org)" - assert a.valid? - end - - if ldap_configured? - test '#authenticate with a valid LDAP user should return the user attributes' do - auth = AuthSourceLdap.find(1) - auth.update_attribute :onthefly_register, true - - attributes = auth.authenticate('example1','123456') - assert attributes.is_a?(Hash), "An hash was not returned" - assert_equal 'Example', attributes[:firstname] - assert_equal 'One', attributes[:lastname] - assert_equal 'example1@redmine.org', attributes[:mail] - assert_equal auth.id, attributes[:auth_source_id] - attributes.keys.each do |attribute| - assert User.new.respond_to?("#{attribute}="), "Unexpected :#{attribute} attribute returned" - end - end - - test '#authenticate with an invalid LDAP user should return nil' do - auth = AuthSourceLdap.find(1) - assert_equal nil, auth.authenticate('nouser','123456') - end - - test '#authenticate without a login should return nil' do - auth = AuthSourceLdap.find(1) - assert_equal nil, auth.authenticate('','123456') - end - - test '#authenticate without a password should return nil' do - auth = AuthSourceLdap.find(1) - assert_equal nil, auth.authenticate('edavis','') - end - - test '#authenticate without filter should return any user' do - auth = AuthSourceLdap.find(1) - assert auth.authenticate('example1','123456') - assert auth.authenticate('edavis', '123456') - end - - test '#authenticate with filter should return user who matches the filter only' do - auth = AuthSourceLdap.find(1) - auth.filter = "(mail=*@redmine.org)" - - assert auth.authenticate('example1','123456') - assert_nil auth.authenticate('edavis', '123456') - end - - def test_authenticate_should_timeout - auth_source = AuthSourceLdap.find(1) - auth_source.timeout = 1 - def auth_source.initialize_ldap_con(*args); sleep(5); end - - assert_raise AuthSourceTimeoutException do - auth_source.authenticate 'example1', '123456' - end - end - - def test_search_should_return_matching_entries - results = AuthSource.search("exa") - assert_equal 1, results.size - result = results.first - assert_kind_of Hash, result - assert_equal "example1", result[:login] - assert_equal "Example", result[:firstname] - assert_equal "One", result[:lastname] - assert_equal "example1@redmine.org", result[:mail] - assert_equal 1, result[:auth_source_id] - end - - def test_search_with_no_match_should_return_an_empty_array - results = AuthSource.search("wro") - assert_equal [], results - end - - def test_search_with_exception_should_return_an_empty_array - Net::LDAP.stubs(:new).raises(Net::LDAP::LdapError, 'Cannot connect') - - results = AuthSource.search("exa") - assert_equal [], results - end - else - puts '(Test LDAP server not configured)' - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class AuthSourceLdapTest < ActiveSupport::TestCase + include Redmine::I18n + fixtures :auth_sources + + def setup + end + + def test_create + a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName') + assert a.save + end + + def test_should_strip_ldap_attributes + a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName', + :attr_firstname => 'givenName ') + assert a.save + assert_equal 'givenName', a.reload.attr_firstname + end + + def test_replace_port_zero_to_389 + a = AuthSourceLdap.new( + :name => 'My LDAP', :host => 'ldap.example.net', :port => 0, + :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName', + :attr_firstname => 'givenName ') + assert a.save + assert_equal 389, a.port + end + + def test_filter_should_be_validated + set_language_if_valid 'en' + + a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :attr_login => 'sn') + a.filter = "(mail=*@redmine.org" + assert !a.valid? + assert_include "LDAP filter is invalid", a.errors.full_messages + + a.filter = "(mail=*@redmine.org)" + assert a.valid? + end + + if ldap_configured? + test '#authenticate with a valid LDAP user should return the user attributes' do + auth = AuthSourceLdap.find(1) + auth.update_attribute :onthefly_register, true + + attributes = auth.authenticate('example1','123456') + assert attributes.is_a?(Hash), "An hash was not returned" + assert_equal 'Example', attributes[:firstname] + assert_equal 'One', attributes[:lastname] + assert_equal 'example1@redmine.org', attributes[:mail] + assert_equal auth.id, attributes[:auth_source_id] + attributes.keys.each do |attribute| + assert User.new.respond_to?("#{attribute}="), "Unexpected :#{attribute} attribute returned" + end + end + + test '#authenticate with an invalid LDAP user should return nil' do + auth = AuthSourceLdap.find(1) + assert_equal nil, auth.authenticate('nouser','123456') + end + + test '#authenticate without a login should return nil' do + auth = AuthSourceLdap.find(1) + assert_equal nil, auth.authenticate('','123456') + end + + test '#authenticate without a password should return nil' do + auth = AuthSourceLdap.find(1) + assert_equal nil, auth.authenticate('edavis','') + end + + test '#authenticate without filter should return any user' do + auth = AuthSourceLdap.find(1) + assert auth.authenticate('example1','123456') + assert auth.authenticate('edavis', '123456') + end + + test '#authenticate with filter should return user who matches the filter only' do + auth = AuthSourceLdap.find(1) + auth.filter = "(mail=*@redmine.org)" + + assert auth.authenticate('example1','123456') + assert_nil auth.authenticate('edavis', '123456') + end + + def test_authenticate_should_timeout + auth_source = AuthSourceLdap.find(1) + auth_source.timeout = 1 + def auth_source.initialize_ldap_con(*args); sleep(5); end + + assert_raise AuthSourceTimeoutException do + auth_source.authenticate 'example1', '123456' + end + end + + def test_search_should_return_matching_entries + results = AuthSource.search("exa") + assert_equal 1, results.size + result = results.first + assert_kind_of Hash, result + assert_equal "example1", result[:login] + assert_equal "Example", result[:firstname] + assert_equal "One", result[:lastname] + assert_equal "example1@redmine.org", result[:mail] + assert_equal 1, result[:auth_source_id] + end + + def test_search_with_no_match_should_return_an_empty_array + results = AuthSource.search("wro") + assert_equal [], results + end + + def test_search_with_exception_should_return_an_empty_array + Net::LDAP.stubs(:new).raises(Net::LDAP::LdapError, 'Cannot connect') + + results = AuthSource.search("exa") + assert_equal [], results + end + else + puts '(Test LDAP server not configured)' + end +end diff --git a/test/unit/board_test.rb b/test/unit/board_test.rb index ff4779081..50f0c160b 100644 --- a/test/unit/board_test.rb +++ b/test/unit/board_test.rb @@ -1,116 +1,116 @@ -# encoding: utf-8 -# -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class BoardTest < ActiveSupport::TestCase - fixtures :projects, :boards, :messages, :attachments, :watchers - - include Redmine::I18n - - def setup - @project = Project.find(1) - end - - def test_create - board = Board.new(:project => @project, :name => 'Test board', :description => 'Test board description') - assert board.save - board.reload - assert_equal 'Test board', board.name - assert_equal 'Test board description', board.description - assert_equal @project, board.project - assert_equal 0, board.topics_count - assert_equal 0, board.messages_count - assert_nil board.last_message - # last position - assert_equal @project.boards.size, board.position - end - - def test_parent_should_be_in_same_project - set_language_if_valid 'en' - board = Board.new(:project_id => 3, :name => 'Test', :description => 'Test', :parent_id => 1) - assert !board.save - assert_include "Parent forum is invalid", board.errors.full_messages - end - - def test_valid_parents_should_not_include_self_nor_a_descendant - board1 = Board.generate!(:project_id => 3) - board2 = Board.generate!(:project_id => 3, :parent => board1) - board3 = Board.generate!(:project_id => 3, :parent => board2) - board4 = Board.generate!(:project_id => 3) - - assert_equal [board4], board1.reload.valid_parents.sort_by(&:id) - assert_equal [board1, board4], board2.reload.valid_parents.sort_by(&:id) - assert_equal [board1, board2, board4], board3.reload.valid_parents.sort_by(&:id) - assert_equal [board1, board2, board3], board4.reload.valid_parents.sort_by(&:id) - end - - def test_position_should_be_assigned_with_parent_scope - parent1 = Board.generate!(:project_id => 3) - parent2 = Board.generate!(:project_id => 3) - child1 = Board.generate!(:project_id => 3, :parent => parent1) - child2 = Board.generate!(:project_id => 3, :parent => parent1) - - assert_equal 1, parent1.reload.position - assert_equal 1, child1.reload.position - assert_equal 2, child2.reload.position - assert_equal 2, parent2.reload.position - end - - def test_board_tree_should_yield_boards_with_level - parent1 = Board.generate!(:project_id => 3) - parent2 = Board.generate!(:project_id => 3) - child1 = Board.generate!(:project_id => 3, :parent => parent1) - child2 = Board.generate!(:project_id => 3, :parent => parent1) - child3 = Board.generate!(:project_id => 3, :parent => child1) - - tree = Board.board_tree(Project.find(3).boards) - - assert_equal [ - [parent1, 0], - [child1, 1], - [child3, 2], - [child2, 1], - [parent2, 0] - ], tree - end - - def test_destroy - board = Board.find(1) - assert_difference 'Message.count', -6 do - assert_difference 'Attachment.count', -1 do - assert_difference 'Watcher.count', -1 do - assert board.destroy - end - end - end - assert_equal 0, Message.count(:conditions => {:board_id => 1}) - end - - def test_destroy_should_nullify_children - parent = Board.generate!(:project => @project) - child = Board.generate!(:project => @project, :parent => parent) - assert_equal parent, child.parent - - assert parent.destroy - child.reload - assert_nil child.parent - assert_nil child.parent_id - end -end +# encoding: utf-8 +# +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class BoardTest < ActiveSupport::TestCase + fixtures :projects, :boards, :messages, :attachments, :watchers + + include Redmine::I18n + + def setup + @project = Project.find(1) + end + + def test_create + board = Board.new(:project => @project, :name => 'Test board', :description => 'Test board description') + assert board.save + board.reload + assert_equal 'Test board', board.name + assert_equal 'Test board description', board.description + assert_equal @project, board.project + assert_equal 0, board.topics_count + assert_equal 0, board.messages_count + assert_nil board.last_message + # last position + assert_equal @project.boards.size, board.position + end + + def test_parent_should_be_in_same_project + set_language_if_valid 'en' + board = Board.new(:project_id => 3, :name => 'Test', :description => 'Test', :parent_id => 1) + assert !board.save + assert_include "Parent forum is invalid", board.errors.full_messages + end + + def test_valid_parents_should_not_include_self_nor_a_descendant + board1 = Board.generate!(:project_id => 3) + board2 = Board.generate!(:project_id => 3, :parent => board1) + board3 = Board.generate!(:project_id => 3, :parent => board2) + board4 = Board.generate!(:project_id => 3) + + assert_equal [board4], board1.reload.valid_parents.sort_by(&:id) + assert_equal [board1, board4], board2.reload.valid_parents.sort_by(&:id) + assert_equal [board1, board2, board4], board3.reload.valid_parents.sort_by(&:id) + assert_equal [board1, board2, board3], board4.reload.valid_parents.sort_by(&:id) + end + + def test_position_should_be_assigned_with_parent_scope + parent1 = Board.generate!(:project_id => 3) + parent2 = Board.generate!(:project_id => 3) + child1 = Board.generate!(:project_id => 3, :parent => parent1) + child2 = Board.generate!(:project_id => 3, :parent => parent1) + + assert_equal 1, parent1.reload.position + assert_equal 1, child1.reload.position + assert_equal 2, child2.reload.position + assert_equal 2, parent2.reload.position + end + + def test_board_tree_should_yield_boards_with_level + parent1 = Board.generate!(:project_id => 3) + parent2 = Board.generate!(:project_id => 3) + child1 = Board.generate!(:project_id => 3, :parent => parent1) + child2 = Board.generate!(:project_id => 3, :parent => parent1) + child3 = Board.generate!(:project_id => 3, :parent => child1) + + tree = Board.board_tree(Project.find(3).boards) + + assert_equal [ + [parent1, 0], + [child1, 1], + [child3, 2], + [child2, 1], + [parent2, 0] + ], tree + end + + def test_destroy + board = Board.find(1) + assert_difference 'Message.count', -6 do + assert_difference 'Attachment.count', -1 do + assert_difference 'Watcher.count', -1 do + assert board.destroy + end + end + end + assert_equal 0, Message.count(:conditions => {:board_id => 1}) + end + + def test_destroy_should_nullify_children + parent = Board.generate!(:project => @project) + child = Board.generate!(:project => @project, :parent => parent) + assert_equal parent, child.parent + + assert parent.destroy + child.reload + assert_nil child.parent + assert_nil child.parent_id + end +end diff --git a/test/unit/changeset_test.rb b/test/unit/changeset_test.rb index a652c9810..41679175f 100644 --- a/test/unit/changeset_test.rb +++ b/test/unit/changeset_test.rb @@ -1,476 +1,476 @@ -# encoding: utf-8 -# -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class ChangesetTest < ActiveSupport::TestCase - fixtures :projects, :repositories, - :issues, :issue_statuses, :issue_categories, - :changesets, :changes, - :enumerations, - :custom_fields, :custom_values, - :users, :members, :member_roles, :trackers, - :enabled_modules, :roles - - def test_ref_keywords_any - ActionMailer::Base.deliveries.clear - Setting.commit_fix_status_id = IssueStatus.find( - :first, :conditions => ["is_closed = ?", true]).id - Setting.commit_fix_done_ratio = '90' - Setting.commit_ref_keywords = '*' - Setting.commit_fix_keywords = 'fixes , closes' - - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => 'New commit (#2). Fixes #1', - :revision => '12345') - assert c.save - assert_equal [1, 2], c.issue_ids.sort - fixed = Issue.find(1) - assert fixed.closed? - assert_equal 90, fixed.done_ratio - assert_equal 1, ActionMailer::Base.deliveries.size - end - - def test_ref_keywords - Setting.commit_ref_keywords = 'refs' - Setting.commit_fix_keywords = '' - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => 'Ignores #2. Refs #1', - :revision => '12345') - assert c.save - assert_equal [1], c.issue_ids.sort - end - - def test_ref_keywords_any_only - Setting.commit_ref_keywords = '*' - Setting.commit_fix_keywords = '' - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => 'Ignores #2. Refs #1', - :revision => '12345') - assert c.save - assert_equal [1, 2], c.issue_ids.sort - end - - def test_ref_keywords_any_with_timelog - Setting.commit_ref_keywords = '*' - Setting.commit_logtime_enabled = '1' - - { - '2' => 2.0, - '2h' => 2.0, - '2hours' => 2.0, - '15m' => 0.25, - '15min' => 0.25, - '3h15' => 3.25, - '3h15m' => 3.25, - '3h15min' => 3.25, - '3:15' => 3.25, - '3.25' => 3.25, - '3.25h' => 3.25, - '3,25' => 3.25, - '3,25h' => 3.25, - }.each do |syntax, expected_hours| - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => 24.hours.ago, - :comments => "Worked on this issue #1 @#{syntax}", - :revision => '520', - :user => User.find(2)) - assert_difference 'TimeEntry.count' do - c.scan_comment_for_issue_ids - end - assert_equal [1], c.issue_ids.sort - - time = TimeEntry.first(:order => 'id desc') - assert_equal 1, time.issue_id - assert_equal 1, time.project_id - assert_equal 2, time.user_id - assert_equal expected_hours, time.hours, - "@#{syntax} should be logged as #{expected_hours} hours but was #{time.hours}" - assert_equal Date.yesterday, time.spent_on - assert time.activity.is_default? - assert time.comments.include?('r520'), - "r520 was expected in time_entry comments: #{time.comments}" - end - end - - def test_ref_keywords_closing_with_timelog - Setting.commit_fix_status_id = IssueStatus.find( - :first, :conditions => ["is_closed = ?", true]).id - Setting.commit_ref_keywords = '*' - Setting.commit_fix_keywords = 'fixes , closes' - Setting.commit_logtime_enabled = '1' - - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => 'This is a comment. Fixes #1 @4.5, #2 @1', - :user => User.find(2)) - assert_difference 'TimeEntry.count', 2 do - c.scan_comment_for_issue_ids - end - - assert_equal [1, 2], c.issue_ids.sort - assert Issue.find(1).closed? - assert Issue.find(2).closed? - - times = TimeEntry.all(:order => 'id desc', :limit => 2) - assert_equal [1, 2], times.collect(&:issue_id).sort - end - - def test_ref_keywords_any_line_start - Setting.commit_ref_keywords = '*' - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => '#1 is the reason of this commit', - :revision => '12345') - assert c.save - assert_equal [1], c.issue_ids.sort - end - - def test_ref_keywords_allow_brackets_around_a_issue_number - Setting.commit_ref_keywords = '*' - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => '[#1] Worked on this issue', - :revision => '12345') - assert c.save - assert_equal [1], c.issue_ids.sort - end - - def test_ref_keywords_allow_brackets_around_multiple_issue_numbers - Setting.commit_ref_keywords = '*' - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => '[#1 #2, #3] Worked on these', - :revision => '12345') - assert c.save - assert_equal [1,2,3], c.issue_ids.sort - end - - def test_commit_referencing_a_subproject_issue - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => 'refs #5, a subproject issue', - :revision => '12345') - assert c.save - assert_equal [5], c.issue_ids.sort - assert c.issues.first.project != c.project - end - - def test_commit_closing_a_subproject_issue - with_settings :commit_fix_status_id => 5, :commit_fix_keywords => 'closes', - :default_language => 'en' do - issue = Issue.find(5) - assert !issue.closed? - assert_difference 'Journal.count' do - c = Changeset.new(:repository => Project.find(1).repository, - :committed_on => Time.now, - :comments => 'closes #5, a subproject issue', - :revision => '12345') - assert c.save - end - assert issue.reload.closed? - journal = Journal.first(:order => 'id DESC') - assert_equal issue, journal.issue - assert_include "Applied in changeset ecookbook:r12345.", journal.notes - end - end - - def test_commit_referencing_a_parent_project_issue - # repository of child project - r = Repository::Subversion.create!( - :project => Project.find(3), - :url => 'svn://localhost/test') - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :comments => 'refs #2, an issue of a parent project', - :revision => '12345') - assert c.save - assert_equal [2], c.issue_ids.sort - assert c.issues.first.project != c.project - end - - def test_commit_referencing_a_project_with_commit_cross_project_ref_disabled - r = Repository::Subversion.create!( - :project => Project.find(3), - :url => 'svn://localhost/test') - - with_settings :commit_cross_project_ref => '0' do - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :comments => 'refs #4, an issue of a different project', - :revision => '12345') - assert c.save - assert_equal [], c.issue_ids - end - end - - def test_commit_referencing_a_project_with_commit_cross_project_ref_enabled - r = Repository::Subversion.create!( - :project => Project.find(3), - :url => 'svn://localhost/test') - - with_settings :commit_cross_project_ref => '1' do - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :comments => 'refs #4, an issue of a different project', - :revision => '12345') - assert c.save - assert_equal [4], c.issue_ids - end - end - - def test_text_tag_revision - c = Changeset.new(:revision => '520') - assert_equal 'r520', c.text_tag - end - - def test_text_tag_revision_with_same_project - c = Changeset.new(:revision => '520', :repository => Project.find(1).repository) - assert_equal 'r520', c.text_tag(Project.find(1)) - end - - def test_text_tag_revision_with_different_project - c = Changeset.new(:revision => '520', :repository => Project.find(1).repository) - assert_equal 'ecookbook:r520', c.text_tag(Project.find(2)) - end - - def test_text_tag_revision_with_repository_identifier - r = Repository::Subversion.create!( - :project_id => 1, - :url => 'svn://localhost/test', - :identifier => 'documents') - - c = Changeset.new(:revision => '520', :repository => r) - assert_equal 'documents|r520', c.text_tag - assert_equal 'ecookbook:documents|r520', c.text_tag(Project.find(2)) - end - - def test_text_tag_hash - c = Changeset.new( - :scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518', - :revision => '7234cb2750b63f47bff735edc50a1c0a433c2518') - assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag - end - - def test_text_tag_hash_with_same_project - c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository) - assert_equal 'commit:7234cb27', c.text_tag(Project.find(1)) - end - - def test_text_tag_hash_with_different_project - c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository) - assert_equal 'ecookbook:commit:7234cb27', c.text_tag(Project.find(2)) - end - - def test_text_tag_hash_all_number - c = Changeset.new(:scmid => '0123456789', :revision => '0123456789') - assert_equal 'commit:0123456789', c.text_tag - end - - def test_previous - changeset = Changeset.find_by_revision('3') - assert_equal Changeset.find_by_revision('2'), changeset.previous - end - - def test_previous_nil - changeset = Changeset.find_by_revision('1') - assert_nil changeset.previous - end - - def test_next - changeset = Changeset.find_by_revision('2') - assert_equal Changeset.find_by_revision('3'), changeset.next - end - - def test_next_nil - changeset = Changeset.find_by_revision('10') - assert_nil changeset.next - end - - def test_comments_should_be_converted_to_utf8 - proj = Project.find(3) - # str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt") - str = "Texte encod\xe9 en ISO-8859-1." - str.force_encoding("ASCII-8BIT") if str.respond_to?(:force_encoding) - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'ISO-8859-1' ) - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => str) - assert( c.save ) - str_utf8 = "Texte encod\xc3\xa9 en ISO-8859-1." - str_utf8.force_encoding("UTF-8") if str_utf8.respond_to?(:force_encoding) - assert_equal str_utf8, c.comments - end - - def test_invalid_utf8_sequences_in_comments_should_be_replaced_latin1 - proj = Project.find(3) - # str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt") - str1 = "Texte encod\xe9 en ISO-8859-1." - str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test" - str1.force_encoding("UTF-8") if str1.respond_to?(:force_encoding) - str2.force_encoding("ASCII-8BIT") if str2.respond_to?(:force_encoding) - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'UTF-8' ) - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => str1, - :committer => str2) - assert( c.save ) - assert_equal "Texte encod? en ISO-8859-1.", c.comments - assert_equal "?a?b?c?d?e test", c.committer - end - - def test_invalid_utf8_sequences_in_comments_should_be_replaced_ja_jis - proj = Project.find(3) - str = "test\xb5\xfetest\xb5\xfe" - if str.respond_to?(:force_encoding) - str.force_encoding('ASCII-8BIT') - end - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'ISO-2022-JP' ) - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => str) - assert( c.save ) - assert_equal "test??test??", c.comments - end - - def test_comments_should_be_converted_all_latin1_to_utf8 - s1 = "\xC2\x80" - s2 = "\xc3\x82\xc2\x80" - s4 = s2.dup - if s1.respond_to?(:force_encoding) - s3 = s1.dup - s1.force_encoding('ASCII-8BIT') - s2.force_encoding('ASCII-8BIT') - s3.force_encoding('ISO-8859-1') - s4.force_encoding('UTF-8') - assert_equal s3.encode('UTF-8'), s4 - end - proj = Project.find(3) - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'ISO-8859-1' ) - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => s1) - assert( c.save ) - assert_equal s4, c.comments - end - - def test_invalid_utf8_sequences_in_paths_should_be_replaced - proj = Project.find(3) - str1 = "Texte encod\xe9 en ISO-8859-1" - str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test" - str1.force_encoding("UTF-8") if str1.respond_to?(:force_encoding) - str2.force_encoding("ASCII-8BIT") if str2.respond_to?(:force_encoding) - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'UTF-8' ) - assert r - cs = Changeset.new( - :repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => "test") - assert(cs.save) - ch = Change.new( - :changeset => cs, - :action => "A", - :path => str1, - :from_path => str2, - :from_revision => "345") - assert(ch.save) - assert_equal "Texte encod? en ISO-8859-1", ch.path - assert_equal "?a?b?c?d?e test", ch.from_path - end - - def test_comments_nil - proj = Project.find(3) - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'ISO-8859-1' ) - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => nil, - :committer => nil) - assert( c.save ) - assert_equal "", c.comments - assert_equal nil, c.committer - if c.comments.respond_to?(:force_encoding) - assert_equal "UTF-8", c.comments.encoding.to_s - end - end - - def test_comments_empty - proj = Project.find(3) - r = Repository::Bazaar.create!( - :project => proj, - :url => '/tmp/test/bazaar', - :log_encoding => 'ISO-8859-1' ) - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '12345', - :comments => "", - :committer => "") - assert( c.save ) - assert_equal "", c.comments - assert_equal "", c.committer - if c.comments.respond_to?(:force_encoding) - assert_equal "UTF-8", c.comments.encoding.to_s - assert_equal "UTF-8", c.committer.encoding.to_s - end - end - - def test_identifier - c = Changeset.find_by_revision('1') - assert_equal c.revision, c.identifier - end -end +# encoding: utf-8 +# +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class ChangesetTest < ActiveSupport::TestCase + fixtures :projects, :repositories, + :issues, :issue_statuses, :issue_categories, + :changesets, :changes, + :enumerations, + :custom_fields, :custom_values, + :users, :members, :member_roles, :trackers, + :enabled_modules, :roles + + def test_ref_keywords_any + ActionMailer::Base.deliveries.clear + Setting.commit_fix_status_id = IssueStatus.find( + :first, :conditions => ["is_closed = ?", true]).id + Setting.commit_fix_done_ratio = '90' + Setting.commit_ref_keywords = '*' + Setting.commit_fix_keywords = 'fixes , closes' + + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => 'New commit (#2). Fixes #1', + :revision => '12345') + assert c.save + assert_equal [1, 2], c.issue_ids.sort + fixed = Issue.find(1) + assert fixed.closed? + assert_equal 90, fixed.done_ratio + assert_equal 1, ActionMailer::Base.deliveries.size + end + + def test_ref_keywords + Setting.commit_ref_keywords = 'refs' + Setting.commit_fix_keywords = '' + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => 'Ignores #2. Refs #1', + :revision => '12345') + assert c.save + assert_equal [1], c.issue_ids.sort + end + + def test_ref_keywords_any_only + Setting.commit_ref_keywords = '*' + Setting.commit_fix_keywords = '' + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => 'Ignores #2. Refs #1', + :revision => '12345') + assert c.save + assert_equal [1, 2], c.issue_ids.sort + end + + def test_ref_keywords_any_with_timelog + Setting.commit_ref_keywords = '*' + Setting.commit_logtime_enabled = '1' + + { + '2' => 2.0, + '2h' => 2.0, + '2hours' => 2.0, + '15m' => 0.25, + '15min' => 0.25, + '3h15' => 3.25, + '3h15m' => 3.25, + '3h15min' => 3.25, + '3:15' => 3.25, + '3.25' => 3.25, + '3.25h' => 3.25, + '3,25' => 3.25, + '3,25h' => 3.25, + }.each do |syntax, expected_hours| + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => 24.hours.ago, + :comments => "Worked on this issue #1 @#{syntax}", + :revision => '520', + :user => User.find(2)) + assert_difference 'TimeEntry.count' do + c.scan_comment_for_issue_ids + end + assert_equal [1], c.issue_ids.sort + + time = TimeEntry.first(:order => 'id desc') + assert_equal 1, time.issue_id + assert_equal 1, time.project_id + assert_equal 2, time.user_id + assert_equal expected_hours, time.hours, + "@#{syntax} should be logged as #{expected_hours} hours but was #{time.hours}" + assert_equal Date.yesterday, time.spent_on + assert time.activity.is_default? + assert time.comments.include?('r520'), + "r520 was expected in time_entry comments: #{time.comments}" + end + end + + def test_ref_keywords_closing_with_timelog + Setting.commit_fix_status_id = IssueStatus.find( + :first, :conditions => ["is_closed = ?", true]).id + Setting.commit_ref_keywords = '*' + Setting.commit_fix_keywords = 'fixes , closes' + Setting.commit_logtime_enabled = '1' + + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => 'This is a comment. Fixes #1 @4.5, #2 @1', + :user => User.find(2)) + assert_difference 'TimeEntry.count', 2 do + c.scan_comment_for_issue_ids + end + + assert_equal [1, 2], c.issue_ids.sort + assert Issue.find(1).closed? + assert Issue.find(2).closed? + + times = TimeEntry.all(:order => 'id desc', :limit => 2) + assert_equal [1, 2], times.collect(&:issue_id).sort + end + + def test_ref_keywords_any_line_start + Setting.commit_ref_keywords = '*' + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => '#1 is the reason of this commit', + :revision => '12345') + assert c.save + assert_equal [1], c.issue_ids.sort + end + + def test_ref_keywords_allow_brackets_around_a_issue_number + Setting.commit_ref_keywords = '*' + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => '[#1] Worked on this issue', + :revision => '12345') + assert c.save + assert_equal [1], c.issue_ids.sort + end + + def test_ref_keywords_allow_brackets_around_multiple_issue_numbers + Setting.commit_ref_keywords = '*' + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => '[#1 #2, #3] Worked on these', + :revision => '12345') + assert c.save + assert_equal [1,2,3], c.issue_ids.sort + end + + def test_commit_referencing_a_subproject_issue + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => 'refs #5, a subproject issue', + :revision => '12345') + assert c.save + assert_equal [5], c.issue_ids.sort + assert c.issues.first.project != c.project + end + + def test_commit_closing_a_subproject_issue + with_settings :commit_fix_status_id => 5, :commit_fix_keywords => 'closes', + :default_language => 'en' do + issue = Issue.find(5) + assert !issue.closed? + assert_difference 'Journal.count' do + c = Changeset.new(:repository => Project.find(1).repository, + :committed_on => Time.now, + :comments => 'closes #5, a subproject issue', + :revision => '12345') + assert c.save + end + assert issue.reload.closed? + journal = Journal.first(:order => 'id DESC') + assert_equal issue, journal.issue + assert_include "Applied in changeset ecookbook:r12345.", journal.notes + end + end + + def test_commit_referencing_a_parent_project_issue + # repository of child project + r = Repository::Subversion.create!( + :project => Project.find(3), + :url => 'svn://localhost/test') + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :comments => 'refs #2, an issue of a parent project', + :revision => '12345') + assert c.save + assert_equal [2], c.issue_ids.sort + assert c.issues.first.project != c.project + end + + def test_commit_referencing_a_project_with_commit_cross_project_ref_disabled + r = Repository::Subversion.create!( + :project => Project.find(3), + :url => 'svn://localhost/test') + + with_settings :commit_cross_project_ref => '0' do + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :comments => 'refs #4, an issue of a different project', + :revision => '12345') + assert c.save + assert_equal [], c.issue_ids + end + end + + def test_commit_referencing_a_project_with_commit_cross_project_ref_enabled + r = Repository::Subversion.create!( + :project => Project.find(3), + :url => 'svn://localhost/test') + + with_settings :commit_cross_project_ref => '1' do + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :comments => 'refs #4, an issue of a different project', + :revision => '12345') + assert c.save + assert_equal [4], c.issue_ids + end + end + + def test_text_tag_revision + c = Changeset.new(:revision => '520') + assert_equal 'r520', c.text_tag + end + + def test_text_tag_revision_with_same_project + c = Changeset.new(:revision => '520', :repository => Project.find(1).repository) + assert_equal 'r520', c.text_tag(Project.find(1)) + end + + def test_text_tag_revision_with_different_project + c = Changeset.new(:revision => '520', :repository => Project.find(1).repository) + assert_equal 'ecookbook:r520', c.text_tag(Project.find(2)) + end + + def test_text_tag_revision_with_repository_identifier + r = Repository::Subversion.create!( + :project_id => 1, + :url => 'svn://localhost/test', + :identifier => 'documents') + + c = Changeset.new(:revision => '520', :repository => r) + assert_equal 'documents|r520', c.text_tag + assert_equal 'ecookbook:documents|r520', c.text_tag(Project.find(2)) + end + + def test_text_tag_hash + c = Changeset.new( + :scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518', + :revision => '7234cb2750b63f47bff735edc50a1c0a433c2518') + assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag + end + + def test_text_tag_hash_with_same_project + c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository) + assert_equal 'commit:7234cb27', c.text_tag(Project.find(1)) + end + + def test_text_tag_hash_with_different_project + c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository) + assert_equal 'ecookbook:commit:7234cb27', c.text_tag(Project.find(2)) + end + + def test_text_tag_hash_all_number + c = Changeset.new(:scmid => '0123456789', :revision => '0123456789') + assert_equal 'commit:0123456789', c.text_tag + end + + def test_previous + changeset = Changeset.find_by_revision('3') + assert_equal Changeset.find_by_revision('2'), changeset.previous + end + + def test_previous_nil + changeset = Changeset.find_by_revision('1') + assert_nil changeset.previous + end + + def test_next + changeset = Changeset.find_by_revision('2') + assert_equal Changeset.find_by_revision('3'), changeset.next + end + + def test_next_nil + changeset = Changeset.find_by_revision('10') + assert_nil changeset.next + end + + def test_comments_should_be_converted_to_utf8 + proj = Project.find(3) + # str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt") + str = "Texte encod\xe9 en ISO-8859-1." + str.force_encoding("ASCII-8BIT") if str.respond_to?(:force_encoding) + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'ISO-8859-1' ) + assert r + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => str) + assert( c.save ) + str_utf8 = "Texte encod\xc3\xa9 en ISO-8859-1." + str_utf8.force_encoding("UTF-8") if str_utf8.respond_to?(:force_encoding) + assert_equal str_utf8, c.comments + end + + def test_invalid_utf8_sequences_in_comments_should_be_replaced_latin1 + proj = Project.find(3) + # str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt") + str1 = "Texte encod\xe9 en ISO-8859-1." + str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test" + str1.force_encoding("UTF-8") if str1.respond_to?(:force_encoding) + str2.force_encoding("ASCII-8BIT") if str2.respond_to?(:force_encoding) + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'UTF-8' ) + assert r + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => str1, + :committer => str2) + assert( c.save ) + assert_equal "Texte encod? en ISO-8859-1.", c.comments + assert_equal "?a?b?c?d?e test", c.committer + end + + def test_invalid_utf8_sequences_in_comments_should_be_replaced_ja_jis + proj = Project.find(3) + str = "test\xb5\xfetest\xb5\xfe" + if str.respond_to?(:force_encoding) + str.force_encoding('ASCII-8BIT') + end + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'ISO-2022-JP' ) + assert r + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => str) + assert( c.save ) + assert_equal "test??test??", c.comments + end + + def test_comments_should_be_converted_all_latin1_to_utf8 + s1 = "\xC2\x80" + s2 = "\xc3\x82\xc2\x80" + s4 = s2.dup + if s1.respond_to?(:force_encoding) + s3 = s1.dup + s1.force_encoding('ASCII-8BIT') + s2.force_encoding('ASCII-8BIT') + s3.force_encoding('ISO-8859-1') + s4.force_encoding('UTF-8') + assert_equal s3.encode('UTF-8'), s4 + end + proj = Project.find(3) + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'ISO-8859-1' ) + assert r + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => s1) + assert( c.save ) + assert_equal s4, c.comments + end + + def test_invalid_utf8_sequences_in_paths_should_be_replaced + proj = Project.find(3) + str1 = "Texte encod\xe9 en ISO-8859-1" + str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test" + str1.force_encoding("UTF-8") if str1.respond_to?(:force_encoding) + str2.force_encoding("ASCII-8BIT") if str2.respond_to?(:force_encoding) + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'UTF-8' ) + assert r + cs = Changeset.new( + :repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => "test") + assert(cs.save) + ch = Change.new( + :changeset => cs, + :action => "A", + :path => str1, + :from_path => str2, + :from_revision => "345") + assert(ch.save) + assert_equal "Texte encod? en ISO-8859-1", ch.path + assert_equal "?a?b?c?d?e test", ch.from_path + end + + def test_comments_nil + proj = Project.find(3) + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'ISO-8859-1' ) + assert r + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => nil, + :committer => nil) + assert( c.save ) + assert_equal "", c.comments + assert_equal nil, c.committer + if c.comments.respond_to?(:force_encoding) + assert_equal "UTF-8", c.comments.encoding.to_s + end + end + + def test_comments_empty + proj = Project.find(3) + r = Repository::Bazaar.create!( + :project => proj, + :url => '/tmp/test/bazaar', + :log_encoding => 'ISO-8859-1' ) + assert r + c = Changeset.new(:repository => r, + :committed_on => Time.now, + :revision => '123', + :scmid => '12345', + :comments => "", + :committer => "") + assert( c.save ) + assert_equal "", c.comments + assert_equal "", c.committer + if c.comments.respond_to?(:force_encoding) + assert_equal "UTF-8", c.comments.encoding.to_s + assert_equal "UTF-8", c.committer.encoding.to_s + end + end + + def test_identifier + c = Changeset.find_by_revision('1') + assert_equal c.revision, c.identifier + end +end diff --git a/test/unit/comment_test.rb b/test/unit/comment_test.rb index 325dac4ee..11ab50af3 100644 --- a/test/unit/comment_test.rb +++ b/test/unit/comment_test.rb @@ -1,57 +1,57 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class CommentTest < ActiveSupport::TestCase - fixtures :users, :news, :comments, :projects, :enabled_modules - - def setup - @jsmith = User.find(2) - @news = News.find(1) - end - - def test_create - comment = Comment.new(:commented => @news, :author => @jsmith, :comments => "my comment") - assert comment.save - @news.reload - assert_equal 2, @news.comments_count - end - - def test_create_should_send_notification - Watcher.create!(:watchable => @news, :user => @jsmith) - - with_settings :notified_events => %w(news_comment_added) do - assert_difference 'ActionMailer::Base.deliveries.size' do - Comment.create!(:commented => @news, :author => @jsmith, :comments => "my comment") - end - end - end - - def test_validate - comment = Comment.new(:commented => @news) - assert !comment.save - assert_equal 2, comment.errors.count - end - - def test_destroy - comment = Comment.find(1) - assert comment.destroy - @news.reload - assert_equal 0, @news.comments_count - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class CommentTest < ActiveSupport::TestCase + fixtures :users, :news, :comments, :projects, :enabled_modules + + def setup + @jsmith = User.find(2) + @news = News.find(1) + end + + def test_create + comment = Comment.new(:commented => @news, :author => @jsmith, :comments => "my comment") + assert comment.save + @news.reload + assert_equal 2, @news.comments_count + end + + def test_create_should_send_notification + Watcher.create!(:watchable => @news, :user => @jsmith) + + with_settings :notified_events => %w(news_comment_added) do + assert_difference 'ActionMailer::Base.deliveries.size' do + Comment.create!(:commented => @news, :author => @jsmith, :comments => "my comment") + end + end + end + + def test_validate + comment = Comment.new(:commented => @news) + assert !comment.save + assert_equal 2, comment.errors.count + end + + def test_destroy + comment = Comment.find(1) + assert comment.destroy + @news.reload + assert_equal 0, @news.comments_count + end +end diff --git a/test/unit/contest_notification_test.rb b/test/unit/contest_notification_test.rb index df3b26916..04a714436 100644 --- a/test/unit/contest_notification_test.rb +++ b/test/unit/contest_notification_test.rb @@ -1,7 +1,7 @@ -require 'test_helper' - -class ContestNotificationTest < ActiveSupport::TestCase - # test "the truth" do - # assert true - # end -end +require 'test_helper' + +class ContestNotificationTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb index 17a0041c0..c8db3da96 100644 --- a/test/unit/custom_field_test.rb +++ b/test/unit/custom_field_test.rb @@ -1,244 +1,244 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class CustomFieldTest < ActiveSupport::TestCase - fixtures :custom_fields - - def test_create - field = UserCustomField.new(:name => 'Money money money', :field_format => 'float') - assert field.save - end - - def test_before_validation - field = CustomField.new(:name => 'test_before_validation', :field_format => 'int') - field.searchable = true - assert field.save - assert_equal false, field.searchable - field.searchable = true - assert field.save - assert_equal false, field.searchable - end - - def test_regexp_validation - field = IssueCustomField.new(:name => 'regexp', :field_format => 'text', :regexp => '[a-z0-9') - assert !field.save - assert_include I18n.t('activerecord.errors.messages.invalid'), - field.errors[:regexp] - field.regexp = '[a-z0-9]' - assert field.save - end - - def test_default_value_should_be_validated - field = CustomField.new(:name => 'Test', :field_format => 'int') - field.default_value = 'abc' - assert !field.valid? - field.default_value = '6' - assert field.valid? - end - - def test_default_value_should_not_be_validated_when_blank - field = CustomField.new(:name => 'Test', :field_format => 'list', :possible_values => ['a', 'b'], :is_required => true, :default_value => '') - assert field.valid? - end - - def test_should_not_change_field_format_of_existing_custom_field - field = CustomField.find(1) - field.field_format = 'int' - assert_equal 'list', field.field_format - end - - def test_possible_values_should_accept_an_array - field = CustomField.new - field.possible_values = ["One value", ""] - assert_equal ["One value"], field.possible_values - end - - def test_possible_values_should_accept_a_string - field = CustomField.new - field.possible_values = "One value" - assert_equal ["One value"], field.possible_values - end - - def test_possible_values_should_accept_a_multiline_string - field = CustomField.new - field.possible_values = "One value\nAnd another one \r\n \n" - assert_equal ["One value", "And another one"], field.possible_values - end - - if "string".respond_to?(:encoding) - def test_possible_values_stored_as_binary_should_be_utf8_encoded - field = CustomField.find(11) - assert_kind_of Array, field.possible_values - assert field.possible_values.size > 0 - field.possible_values.each do |value| - assert_equal "UTF-8", value.encoding.name - end - end - end - - def test_destroy - field = CustomField.find(1) - assert field.destroy - end - - def test_new_subclass_instance_should_return_an_instance - f = CustomField.new_subclass_instance('IssueCustomField') - assert_kind_of IssueCustomField, f - end - - def test_new_subclass_instance_should_set_attributes - f = CustomField.new_subclass_instance('IssueCustomField', :name => 'Test') - assert_kind_of IssueCustomField, f - assert_equal 'Test', f.name - end - - def test_new_subclass_instance_with_invalid_class_name_should_return_nil - assert_nil CustomField.new_subclass_instance('WrongClassName') - end - - def test_new_subclass_instance_with_non_subclass_name_should_return_nil - assert_nil CustomField.new_subclass_instance('Project') - end - - def test_string_field_validation_with_blank_value - f = CustomField.new(:field_format => 'string') - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - - f.is_required = true - assert !f.valid_field_value?(nil) - assert !f.valid_field_value?('') - end - - def test_string_field_validation_with_min_and_max_lengths - f = CustomField.new(:field_format => 'string', :min_length => 2, :max_length => 5) - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?('a' * 2) - assert !f.valid_field_value?('a') - assert !f.valid_field_value?('a' * 6) - end - - def test_string_field_validation_with_regexp - f = CustomField.new(:field_format => 'string', :regexp => '^[A-Z0-9]*$') - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?('ABC') - assert !f.valid_field_value?('abc') - end - - def test_date_field_validation - f = CustomField.new(:field_format => 'date') - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?('1975-07-14') - assert !f.valid_field_value?('1975-07-33') - assert !f.valid_field_value?('abc') - end - - def test_list_field_validation - f = CustomField.new(:field_format => 'list', :possible_values => ['value1', 'value2']) - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?('value2') - assert !f.valid_field_value?('abc') - end - - def test_int_field_validation - f = CustomField.new(:field_format => 'int') - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?('123') - assert f.valid_field_value?('+123') - assert f.valid_field_value?('-123') - assert !f.valid_field_value?('6abc') - end - - def test_float_field_validation - f = CustomField.new(:field_format => 'float') - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?('11.2') - assert f.valid_field_value?('-6.250') - assert f.valid_field_value?('5') - assert !f.valid_field_value?('6abc') - end - - def test_multi_field_validation - f = CustomField.new(:field_format => 'list', :multiple => 'true', :possible_values => ['value1', 'value2']) - - assert f.valid_field_value?(nil) - assert f.valid_field_value?('') - assert f.valid_field_value?([]) - assert f.valid_field_value?([nil]) - assert f.valid_field_value?(['']) - - assert f.valid_field_value?('value2') - assert !f.valid_field_value?('abc') - - assert f.valid_field_value?(['value2']) - assert !f.valid_field_value?(['abc']) - - assert f.valid_field_value?(['', 'value2']) - assert !f.valid_field_value?(['', 'abc']) - - assert f.valid_field_value?(['value1', 'value2']) - assert !f.valid_field_value?(['value1', 'abc']) - end - - def test_changing_multiple_to_false_should_delete_multiple_values - field = ProjectCustomField.create!(:name => 'field', :field_format => 'list', :multiple => 'true', :possible_values => ['field1', 'field2']) - other = ProjectCustomField.create!(:name => 'other', :field_format => 'list', :multiple => 'true', :possible_values => ['other1', 'other2']) - - item_with_multiple_values = Project.generate!(:custom_field_values => {field.id => ['field1', 'field2'], other.id => ['other1', 'other2']}) - item_with_single_values = Project.generate!(:custom_field_values => {field.id => ['field1'], other.id => ['other2']}) - - assert_difference 'CustomValue.count', -1 do - field.multiple = false - field.save! - end - - item_with_multiple_values = Project.find(item_with_multiple_values.id) - assert_kind_of String, item_with_multiple_values.custom_field_value(field) - assert_kind_of Array, item_with_multiple_values.custom_field_value(other) - assert_equal 2, item_with_multiple_values.custom_field_value(other).size - end - - def test_value_class_should_return_the_class_used_for_fields_values - assert_equal User, CustomField.new(:field_format => 'user').value_class - assert_equal Version, CustomField.new(:field_format => 'version').value_class - end - - def test_value_class_should_return_nil_for_other_fields - assert_nil CustomField.new(:field_format => 'text').value_class - assert_nil CustomField.new.value_class - end - - def test_value_from_keyword_for_list_custom_field - field = CustomField.find(1) - assert_equal 'PostgreSQL', field.value_from_keyword('postgresql', Issue.find(1)) - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class CustomFieldTest < ActiveSupport::TestCase + fixtures :custom_fields + + def test_create + field = UserCustomField.new(:name => 'Money money money', :field_format => 'float') + assert field.save + end + + def test_before_validation + field = CustomField.new(:name => 'test_before_validation', :field_format => 'int') + field.searchable = true + assert field.save + assert_equal false, field.searchable + field.searchable = true + assert field.save + assert_equal false, field.searchable + end + + def test_regexp_validation + field = IssueCustomField.new(:name => 'regexp', :field_format => 'text', :regexp => '[a-z0-9') + assert !field.save + assert_include I18n.t('activerecord.errors.messages.invalid'), + field.errors[:regexp] + field.regexp = '[a-z0-9]' + assert field.save + end + + def test_default_value_should_be_validated + field = CustomField.new(:name => 'Test', :field_format => 'int') + field.default_value = 'abc' + assert !field.valid? + field.default_value = '6' + assert field.valid? + end + + def test_default_value_should_not_be_validated_when_blank + field = CustomField.new(:name => 'Test', :field_format => 'list', :possible_values => ['a', 'b'], :is_required => true, :default_value => '') + assert field.valid? + end + + def test_should_not_change_field_format_of_existing_custom_field + field = CustomField.find(1) + field.field_format = 'int' + assert_equal 'list', field.field_format + end + + def test_possible_values_should_accept_an_array + field = CustomField.new + field.possible_values = ["One value", ""] + assert_equal ["One value"], field.possible_values + end + + def test_possible_values_should_accept_a_string + field = CustomField.new + field.possible_values = "One value" + assert_equal ["One value"], field.possible_values + end + + def test_possible_values_should_accept_a_multiline_string + field = CustomField.new + field.possible_values = "One value\nAnd another one \r\n \n" + assert_equal ["One value", "And another one"], field.possible_values + end + + if "string".respond_to?(:encoding) + def test_possible_values_stored_as_binary_should_be_utf8_encoded + field = CustomField.find(11) + assert_kind_of Array, field.possible_values + assert field.possible_values.size > 0 + field.possible_values.each do |value| + assert_equal "UTF-8", value.encoding.name + end + end + end + + def test_destroy + field = CustomField.find(1) + assert field.destroy + end + + def test_new_subclass_instance_should_return_an_instance + f = CustomField.new_subclass_instance('IssueCustomField') + assert_kind_of IssueCustomField, f + end + + def test_new_subclass_instance_should_set_attributes + f = CustomField.new_subclass_instance('IssueCustomField', :name => 'Test') + assert_kind_of IssueCustomField, f + assert_equal 'Test', f.name + end + + def test_new_subclass_instance_with_invalid_class_name_should_return_nil + assert_nil CustomField.new_subclass_instance('WrongClassName') + end + + def test_new_subclass_instance_with_non_subclass_name_should_return_nil + assert_nil CustomField.new_subclass_instance('Project') + end + + def test_string_field_validation_with_blank_value + f = CustomField.new(:field_format => 'string') + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + + f.is_required = true + assert !f.valid_field_value?(nil) + assert !f.valid_field_value?('') + end + + def test_string_field_validation_with_min_and_max_lengths + f = CustomField.new(:field_format => 'string', :min_length => 2, :max_length => 5) + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?('a' * 2) + assert !f.valid_field_value?('a') + assert !f.valid_field_value?('a' * 6) + end + + def test_string_field_validation_with_regexp + f = CustomField.new(:field_format => 'string', :regexp => '^[A-Z0-9]*$') + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?('ABC') + assert !f.valid_field_value?('abc') + end + + def test_date_field_validation + f = CustomField.new(:field_format => 'date') + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?('1975-07-14') + assert !f.valid_field_value?('1975-07-33') + assert !f.valid_field_value?('abc') + end + + def test_list_field_validation + f = CustomField.new(:field_format => 'list', :possible_values => ['value1', 'value2']) + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?('value2') + assert !f.valid_field_value?('abc') + end + + def test_int_field_validation + f = CustomField.new(:field_format => 'int') + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?('123') + assert f.valid_field_value?('+123') + assert f.valid_field_value?('-123') + assert !f.valid_field_value?('6abc') + end + + def test_float_field_validation + f = CustomField.new(:field_format => 'float') + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?('11.2') + assert f.valid_field_value?('-6.250') + assert f.valid_field_value?('5') + assert !f.valid_field_value?('6abc') + end + + def test_multi_field_validation + f = CustomField.new(:field_format => 'list', :multiple => 'true', :possible_values => ['value1', 'value2']) + + assert f.valid_field_value?(nil) + assert f.valid_field_value?('') + assert f.valid_field_value?([]) + assert f.valid_field_value?([nil]) + assert f.valid_field_value?(['']) + + assert f.valid_field_value?('value2') + assert !f.valid_field_value?('abc') + + assert f.valid_field_value?(['value2']) + assert !f.valid_field_value?(['abc']) + + assert f.valid_field_value?(['', 'value2']) + assert !f.valid_field_value?(['', 'abc']) + + assert f.valid_field_value?(['value1', 'value2']) + assert !f.valid_field_value?(['value1', 'abc']) + end + + def test_changing_multiple_to_false_should_delete_multiple_values + field = ProjectCustomField.create!(:name => 'field', :field_format => 'list', :multiple => 'true', :possible_values => ['field1', 'field2']) + other = ProjectCustomField.create!(:name => 'other', :field_format => 'list', :multiple => 'true', :possible_values => ['other1', 'other2']) + + item_with_multiple_values = Project.generate!(:custom_field_values => {field.id => ['field1', 'field2'], other.id => ['other1', 'other2']}) + item_with_single_values = Project.generate!(:custom_field_values => {field.id => ['field1'], other.id => ['other2']}) + + assert_difference 'CustomValue.count', -1 do + field.multiple = false + field.save! + end + + item_with_multiple_values = Project.find(item_with_multiple_values.id) + assert_kind_of String, item_with_multiple_values.custom_field_value(field) + assert_kind_of Array, item_with_multiple_values.custom_field_value(other) + assert_equal 2, item_with_multiple_values.custom_field_value(other).size + end + + def test_value_class_should_return_the_class_used_for_fields_values + assert_equal User, CustomField.new(:field_format => 'user').value_class + assert_equal Version, CustomField.new(:field_format => 'version').value_class + end + + def test_value_class_should_return_nil_for_other_fields + assert_nil CustomField.new(:field_format => 'text').value_class + assert_nil CustomField.new.value_class + end + + def test_value_from_keyword_for_list_custom_field + field = CustomField.find(1) + assert_equal 'PostgreSQL', field.value_from_keyword('postgresql', Issue.find(1)) + end +end diff --git a/test/unit/custom_field_user_format_test.rb b/test/unit/custom_field_user_format_test.rb index 489769011..042b5e120 100644 --- a/test/unit/custom_field_user_format_test.rb +++ b/test/unit/custom_field_user_format_test.rb @@ -1,77 +1,77 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class CustomFieldUserFormatTest < ActiveSupport::TestCase - fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues - - def setup - @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user') - end - - def test_possible_values_with_no_arguments - assert_equal [], @field.possible_values - assert_equal [], @field.possible_values(nil) - end - - def test_possible_values_with_project_resource - project = Project.find(1) - possible_values = @field.possible_values(project.issues.first) - assert possible_values.any? - assert_equal project.users.sort.collect(&:id).map(&:to_s), possible_values - end - - def test_possible_values_with_nil_project_resource - project = Project.find(1) - assert_equal [], @field.possible_values(Issue.new) - end - - def test_possible_values_options_with_no_arguments - assert_equal [], @field.possible_values_options - assert_equal [], @field.possible_values_options(nil) - end - - def test_possible_values_options_with_project_resource - project = Project.find(1) - possible_values_options = @field.possible_values_options(project.issues.first) - assert possible_values_options.any? - assert_equal project.users.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options - end - - def test_possible_values_options_with_array - projects = Project.find([1, 2]) - possible_values_options = @field.possible_values_options(projects) - assert possible_values_options.any? - assert_equal (projects.first.users & projects.last.users).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options - end - - def test_cast_blank_value - assert_equal nil, @field.cast_value(nil) - assert_equal nil, @field.cast_value("") - end - - def test_cast_valid_value - user = @field.cast_value("2") - assert_kind_of User, user - assert_equal User.find(2), user - end - - def test_cast_invalid_value - assert_equal nil, @field.cast_value("187") - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class CustomFieldUserFormatTest < ActiveSupport::TestCase + fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues + + def setup + @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user') + end + + def test_possible_values_with_no_arguments + assert_equal [], @field.possible_values + assert_equal [], @field.possible_values(nil) + end + + def test_possible_values_with_project_resource + project = Project.find(1) + possible_values = @field.possible_values(project.issues.first) + assert possible_values.any? + assert_equal project.users.sort.collect(&:id).map(&:to_s), possible_values + end + + def test_possible_values_with_nil_project_resource + project = Project.find(1) + assert_equal [], @field.possible_values(Issue.new) + end + + def test_possible_values_options_with_no_arguments + assert_equal [], @field.possible_values_options + assert_equal [], @field.possible_values_options(nil) + end + + def test_possible_values_options_with_project_resource + project = Project.find(1) + possible_values_options = @field.possible_values_options(project.issues.first) + assert possible_values_options.any? + assert_equal project.users.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options + end + + def test_possible_values_options_with_array + projects = Project.find([1, 2]) + possible_values_options = @field.possible_values_options(projects) + assert possible_values_options.any? + assert_equal (projects.first.users & projects.last.users).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options + end + + def test_cast_blank_value + assert_equal nil, @field.cast_value(nil) + assert_equal nil, @field.cast_value("") + end + + def test_cast_valid_value + user = @field.cast_value("2") + assert_kind_of User, user + assert_equal User.find(2), user + end + + def test_cast_invalid_value + assert_equal nil, @field.cast_value("187") + end +end diff --git a/test/unit/custom_field_version_format_test.rb b/test/unit/custom_field_version_format_test.rb index a4a790c12..9b1cf6781 100644 --- a/test/unit/custom_field_version_format_test.rb +++ b/test/unit/custom_field_version_format_test.rb @@ -1,76 +1,76 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class CustomFieldVersionFormatTest < ActiveSupport::TestCase - fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues, :versions - - def setup - @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'version') - end - - def test_possible_values_with_no_arguments - assert_equal [], @field.possible_values - assert_equal [], @field.possible_values(nil) - end - - def test_possible_values_with_project_resource - project = Project.find(1) - possible_values = @field.possible_values(project.issues.first) - assert possible_values.any? - assert_equal project.shared_versions.sort.collect(&:id).map(&:to_s), possible_values - end - - def test_possible_values_with_nil_project_resource - assert_equal [], @field.possible_values(Issue.new) - end - - def test_possible_values_options_with_no_arguments - assert_equal [], @field.possible_values_options - assert_equal [], @field.possible_values_options(nil) - end - - def test_possible_values_options_with_project_resource - project = Project.find(1) - possible_values_options = @field.possible_values_options(project.issues.first) - assert possible_values_options.any? - assert_equal project.shared_versions.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options - end - - def test_possible_values_options_with_array - projects = Project.find([1, 2]) - possible_values_options = @field.possible_values_options(projects) - assert possible_values_options.any? - assert_equal (projects.first.shared_versions & projects.last.shared_versions).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options - end - - def test_cast_blank_value - assert_equal nil, @field.cast_value(nil) - assert_equal nil, @field.cast_value("") - end - - def test_cast_valid_value - version = @field.cast_value("2") - assert_kind_of Version, version - assert_equal Version.find(2), version - end - - def test_cast_invalid_value - assert_equal nil, @field.cast_value("187") - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class CustomFieldVersionFormatTest < ActiveSupport::TestCase + fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues, :versions + + def setup + @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'version') + end + + def test_possible_values_with_no_arguments + assert_equal [], @field.possible_values + assert_equal [], @field.possible_values(nil) + end + + def test_possible_values_with_project_resource + project = Project.find(1) + possible_values = @field.possible_values(project.issues.first) + assert possible_values.any? + assert_equal project.shared_versions.sort.collect(&:id).map(&:to_s), possible_values + end + + def test_possible_values_with_nil_project_resource + assert_equal [], @field.possible_values(Issue.new) + end + + def test_possible_values_options_with_no_arguments + assert_equal [], @field.possible_values_options + assert_equal [], @field.possible_values_options(nil) + end + + def test_possible_values_options_with_project_resource + project = Project.find(1) + possible_values_options = @field.possible_values_options(project.issues.first) + assert possible_values_options.any? + assert_equal project.shared_versions.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options + end + + def test_possible_values_options_with_array + projects = Project.find([1, 2]) + possible_values_options = @field.possible_values_options(projects) + assert possible_values_options.any? + assert_equal (projects.first.shared_versions & projects.last.shared_versions).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options + end + + def test_cast_blank_value + assert_equal nil, @field.cast_value(nil) + assert_equal nil, @field.cast_value("") + end + + def test_cast_valid_value + version = @field.cast_value("2") + assert_kind_of Version, version + assert_equal Version.find(2), version + end + + def test_cast_invalid_value + assert_equal nil, @field.cast_value("187") + end +end diff --git a/test/unit/custom_value_test.rb b/test/unit/custom_value_test.rb index bc2f426a0..9f057e69c 100644 --- a/test/unit/custom_value_test.rb +++ b/test/unit/custom_value_test.rb @@ -1,39 +1,39 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class CustomValueTest < ActiveSupport::TestCase - fixtures :custom_fields, :custom_values, :users - - def test_default_value - field = CustomField.find_by_default_value('Default string') - assert_not_nil field - - v = CustomValue.new(:custom_field => field) - assert_equal 'Default string', v.value - - v = CustomValue.new(:custom_field => field, :value => 'Not empty') - assert_equal 'Not empty', v.value - end - - def test_sti_polymorphic_association - # Rails uses top level sti class for polymorphic association. See #3978. - assert !User.find(4).custom_values.empty? - assert !CustomValue.find(2).customized.nil? - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class CustomValueTest < ActiveSupport::TestCase + fixtures :custom_fields, :custom_values, :users + + def test_default_value + field = CustomField.find_by_default_value('Default string') + assert_not_nil field + + v = CustomValue.new(:custom_field => field) + assert_equal 'Default string', v.value + + v = CustomValue.new(:custom_field => field, :value => 'Not empty') + assert_equal 'Not empty', v.value + end + + def test_sti_polymorphic_association + # Rails uses top level sti class for polymorphic association. See #3978. + assert !User.find(4).custom_values.empty? + assert !CustomValue.find(2).customized.nil? + end +end diff --git a/test/unit/default_data_test.rb b/test/unit/default_data_test.rb index f97804dcb..07421bcfe 100644 --- a/test/unit/default_data_test.rb +++ b/test/unit/default_data_test.rb @@ -1,49 +1,49 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class DefaultDataTest < ActiveSupport::TestCase - include Redmine::I18n - fixtures :roles - - def test_no_data - assert !Redmine::DefaultData::Loader::no_data? - Role.delete_all("builtin = 0") - Tracker.delete_all - IssueStatus.delete_all - Enumeration.delete_all - assert Redmine::DefaultData::Loader::no_data? - end - - def test_load - valid_languages.each do |lang| - begin - Role.delete_all("builtin = 0") - Tracker.delete_all - IssueStatus.delete_all - Enumeration.delete_all - assert Redmine::DefaultData::Loader::load(lang) - assert_not_nil DocumentCategory.first - assert_not_nil IssuePriority.first - assert_not_nil TimeEntryActivity.first - rescue ActiveRecord::RecordInvalid => e - assert false, ":#{lang} default data is invalid (#{e.message})." - end - end - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class DefaultDataTest < ActiveSupport::TestCase + include Redmine::I18n + fixtures :roles + + def test_no_data + assert !Redmine::DefaultData::Loader::no_data? + Role.delete_all("builtin = 0") + Tracker.delete_all + IssueStatus.delete_all + Enumeration.delete_all + assert Redmine::DefaultData::Loader::no_data? + end + + def test_load + valid_languages.each do |lang| + begin + Role.delete_all("builtin = 0") + Tracker.delete_all + IssueStatus.delete_all + Enumeration.delete_all + assert Redmine::DefaultData::Loader::load(lang) + assert_not_nil DocumentCategory.first + assert_not_nil IssuePriority.first + assert_not_nil TimeEntryActivity.first + rescue ActiveRecord::RecordInvalid => e + assert false, ":#{lang} default data is invalid (#{e.message})." + end + end + end +end diff --git a/test/unit/document_category_test.rb b/test/unit/document_category_test.rb index e2c95f997..c7b5bfbec 100644 --- a/test/unit/document_category_test.rb +++ b/test/unit/document_category_test.rb @@ -1,47 +1,47 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class DocumentCategoryTest < ActiveSupport::TestCase - fixtures :enumerations, :documents, :issues - - def test_should_be_an_enumeration - assert DocumentCategory.ancestors.include?(Enumeration) - end - - def test_objects_count - assert_equal 2, DocumentCategory.find_by_name("Uncategorized").objects_count - assert_equal 0, DocumentCategory.find_by_name("User documentation").objects_count - end - - def test_option_name - assert_equal :enumeration_doc_categories, DocumentCategory.new.option_name - end - - def test_default - assert_nil DocumentCategory.where(:is_default => true).first - e = Enumeration.find_by_name('Technical documentation') - e.update_attributes(:is_default => true) - assert_equal 3, DocumentCategory.default.id - end - - def test_force_default - assert_nil DocumentCategory.where(:is_default => true).first - assert_equal 1, DocumentCategory.default.id - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class DocumentCategoryTest < ActiveSupport::TestCase + fixtures :enumerations, :documents, :issues + + def test_should_be_an_enumeration + assert DocumentCategory.ancestors.include?(Enumeration) + end + + def test_objects_count + assert_equal 2, DocumentCategory.find_by_name("Uncategorized").objects_count + assert_equal 0, DocumentCategory.find_by_name("User documentation").objects_count + end + + def test_option_name + assert_equal :enumeration_doc_categories, DocumentCategory.new.option_name + end + + def test_default + assert_nil DocumentCategory.where(:is_default => true).first + e = Enumeration.find_by_name('Technical documentation') + e.update_attributes(:is_default => true) + assert_equal 3, DocumentCategory.default.id + end + + def test_force_default + assert_nil DocumentCategory.where(:is_default => true).first + assert_equal 1, DocumentCategory.default.id + end +end diff --git a/test/unit/document_test.rb b/test/unit/document_test.rb index d37f88e27..218f78d13 100644 --- a/test/unit/document_test.rb +++ b/test/unit/document_test.rb @@ -1,62 +1,62 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class DocumentTest < ActiveSupport::TestCase - fixtures :projects, :enumerations, :documents, :attachments, - :enabled_modules, - :users, :members, :member_roles, :roles, - :groups_users - - def test_create - doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation')) - assert doc.save - end - - def test_create_should_send_email_notification - ActionMailer::Base.deliveries.clear - - with_settings :notified_events => %w(document_added) do - doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation')) - assert doc.save - end - assert_equal 1, ActionMailer::Base.deliveries.size - end - - def test_create_with_default_category - # Sets a default category - e = Enumeration.find_by_name('Technical documentation') - e.update_attributes(:is_default => true) - - doc = Document.new(:project => Project.find(1), :title => 'New document') - assert_equal e, doc.category - assert doc.save - end - - def test_updated_on_with_attachments - d = Document.find(1) - assert d.attachments.any? - assert_equal d.attachments.map(&:created_on).max, d.updated_on - end - - def test_updated_on_without_attachments - d = Document.find(2) - assert d.attachments.empty? - assert_equal d.created_on, d.updated_on - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class DocumentTest < ActiveSupport::TestCase + fixtures :projects, :enumerations, :documents, :attachments, + :enabled_modules, + :users, :members, :member_roles, :roles, + :groups_users + + def test_create + doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation')) + assert doc.save + end + + def test_create_should_send_email_notification + ActionMailer::Base.deliveries.clear + + with_settings :notified_events => %w(document_added) do + doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation')) + assert doc.save + end + assert_equal 1, ActionMailer::Base.deliveries.size + end + + def test_create_with_default_category + # Sets a default category + e = Enumeration.find_by_name('Technical documentation') + e.update_attributes(:is_default => true) + + doc = Document.new(:project => Project.find(1), :title => 'New document') + assert_equal e, doc.category + assert doc.save + end + + def test_updated_on_with_attachments + d = Document.find(1) + assert d.attachments.any? + assert_equal d.attachments.map(&:created_on).max, d.updated_on + end + + def test_updated_on_without_attachments + d = Document.find(2) + assert d.attachments.empty? + assert_equal d.created_on, d.updated_on + end +end diff --git a/test/unit/enabled_module_test.rb b/test/unit/enabled_module_test.rb index df48cee21..0abc9375d 100644 --- a/test/unit/enabled_module_test.rb +++ b/test/unit/enabled_module_test.rb @@ -1,43 +1,43 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class EnabledModuleTest < ActiveSupport::TestCase - fixtures :projects, :wikis - - def test_enabling_wiki_should_create_a_wiki - CustomField.delete_all - project = Project.create!(:name => 'Project with wiki', :identifier => 'wikiproject') - assert_nil project.wiki - project.enabled_module_names = ['wiki'] - project.reload - assert_not_nil project.wiki - assert_equal 'Wiki', project.wiki.start_page - end - - def test_reenabling_wiki_should_not_create_another_wiki - project = Project.find(1) - assert_not_nil project.wiki - project.enabled_module_names = [] - project.reload - assert_no_difference 'Wiki.count' do - project.enabled_module_names = ['wiki'] - end - assert_not_nil project.wiki - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class EnabledModuleTest < ActiveSupport::TestCase + fixtures :projects, :wikis + + def test_enabling_wiki_should_create_a_wiki + CustomField.delete_all + project = Project.create!(:name => 'Project with wiki', :identifier => 'wikiproject') + assert_nil project.wiki + project.enabled_module_names = ['wiki'] + project.reload + assert_not_nil project.wiki + assert_equal 'Wiki', project.wiki.start_page + end + + def test_reenabling_wiki_should_not_create_another_wiki + project = Project.find(1) + assert_not_nil project.wiki + project.enabled_module_names = [] + project.reload + assert_no_difference 'Wiki.count' do + project.enabled_module_names = ['wiki'] + end + assert_not_nil project.wiki + end +end diff --git a/test/unit/enumeration_test.rb b/test/unit/enumeration_test.rb index a8eb7860a..1b0b46d0b 100644 --- a/test/unit/enumeration_test.rb +++ b/test/unit/enumeration_test.rb @@ -1,130 +1,130 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class EnumerationTest < ActiveSupport::TestCase - fixtures :enumerations, :issues, :custom_fields, :custom_values - - def test_objects_count - # low priority - assert_equal 6, Enumeration.find(4).objects_count - # urgent - assert_equal 0, Enumeration.find(7).objects_count - end - - def test_in_use - # low priority - assert Enumeration.find(4).in_use? - # urgent - assert !Enumeration.find(7).in_use? - end - - def test_default - e = Enumeration.default - assert e.is_a?(Enumeration) - assert e.is_default? - assert e.active? - assert_equal 'Default Enumeration', e.name - end - - def test_default_non_active - e = Enumeration.find(12) - assert e.is_a?(Enumeration) - assert e.is_default? - assert e.active? - e.update_attributes(:active => false) - assert e.is_default? - assert !e.active? - end - - def test_create - e = Enumeration.new(:name => 'Not default', :is_default => false) - e.type = 'Enumeration' - assert e.save - assert_equal 'Default Enumeration', Enumeration.default.name - end - - def test_create_as_default - e = Enumeration.new(:name => 'Very urgent', :is_default => true) - e.type = 'Enumeration' - assert e.save - assert_equal e, Enumeration.default - end - - def test_update_default - e = Enumeration.default - e.update_attributes(:name => 'Changed', :is_default => true) - assert_equal e, Enumeration.default - end - - def test_update_default_to_non_default - e = Enumeration.default - e.update_attributes(:name => 'Changed', :is_default => false) - assert_nil Enumeration.default - end - - def test_change_default - e = Enumeration.find_by_name('Default Enumeration') - e.update_attributes(:name => 'Changed Enumeration', :is_default => true) - assert_equal e, Enumeration.default - end - - def test_destroy_with_reassign - Enumeration.find(4).destroy(Enumeration.find(6)) - assert_nil Issue.where(:priority_id => 4).first - assert_equal 6, Enumeration.find(6).objects_count - end - - def test_should_be_customizable - assert Enumeration.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods) - end - - def test_should_belong_to_a_project - association = Enumeration.reflect_on_association(:project) - assert association, "No Project association found" - assert_equal :belongs_to, association.macro - end - - def test_should_act_as_tree - enumeration = Enumeration.find(4) - - assert enumeration.respond_to?(:parent) - assert enumeration.respond_to?(:children) - end - - def test_is_override - # Defaults to off - enumeration = Enumeration.find(4) - assert !enumeration.is_override? - - # Setup as an override - enumeration.parent = Enumeration.find(5) - assert enumeration.is_override? - end - - def test_get_subclasses - classes = Enumeration.get_subclasses - assert_include IssuePriority, classes - assert_include DocumentCategory, classes - assert_include TimeEntryActivity, classes - - classes.each do |klass| - assert_equal Enumeration, klass.superclass - end - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class EnumerationTest < ActiveSupport::TestCase + fixtures :enumerations, :issues, :custom_fields, :custom_values + + def test_objects_count + # low priority + assert_equal 6, Enumeration.find(4).objects_count + # urgent + assert_equal 0, Enumeration.find(7).objects_count + end + + def test_in_use + # low priority + assert Enumeration.find(4).in_use? + # urgent + assert !Enumeration.find(7).in_use? + end + + def test_default + e = Enumeration.default + assert e.is_a?(Enumeration) + assert e.is_default? + assert e.active? + assert_equal 'Default Enumeration', e.name + end + + def test_default_non_active + e = Enumeration.find(12) + assert e.is_a?(Enumeration) + assert e.is_default? + assert e.active? + e.update_attributes(:active => false) + assert e.is_default? + assert !e.active? + end + + def test_create + e = Enumeration.new(:name => 'Not default', :is_default => false) + e.type = 'Enumeration' + assert e.save + assert_equal 'Default Enumeration', Enumeration.default.name + end + + def test_create_as_default + e = Enumeration.new(:name => 'Very urgent', :is_default => true) + e.type = 'Enumeration' + assert e.save + assert_equal e, Enumeration.default + end + + def test_update_default + e = Enumeration.default + e.update_attributes(:name => 'Changed', :is_default => true) + assert_equal e, Enumeration.default + end + + def test_update_default_to_non_default + e = Enumeration.default + e.update_attributes(:name => 'Changed', :is_default => false) + assert_nil Enumeration.default + end + + def test_change_default + e = Enumeration.find_by_name('Default Enumeration') + e.update_attributes(:name => 'Changed Enumeration', :is_default => true) + assert_equal e, Enumeration.default + end + + def test_destroy_with_reassign + Enumeration.find(4).destroy(Enumeration.find(6)) + assert_nil Issue.where(:priority_id => 4).first + assert_equal 6, Enumeration.find(6).objects_count + end + + def test_should_be_customizable + assert Enumeration.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods) + end + + def test_should_belong_to_a_project + association = Enumeration.reflect_on_association(:project) + assert association, "No Project association found" + assert_equal :belongs_to, association.macro + end + + def test_should_act_as_tree + enumeration = Enumeration.find(4) + + assert enumeration.respond_to?(:parent) + assert enumeration.respond_to?(:children) + end + + def test_is_override + # Defaults to off + enumeration = Enumeration.find(4) + assert !enumeration.is_override? + + # Setup as an override + enumeration.parent = Enumeration.find(5) + assert enumeration.is_override? + end + + def test_get_subclasses + classes = Enumeration.get_subclasses + assert_include IssuePriority, classes + assert_include DocumentCategory, classes + assert_include TimeEntryActivity, classes + + classes.each do |klass| + assert_equal Enumeration, klass.superclass + end + end +end diff --git a/test/unit/group_test.rb b/test/unit/group_test.rb index 53f1603e2..6d9a91707 100644 --- a/test/unit/group_test.rb +++ b/test/unit/group_test.rb @@ -1,136 +1,136 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../test_helper', __FILE__) - -class GroupTest < ActiveSupport::TestCase - fixtures :projects, :trackers, :issue_statuses, :issues, - :enumerations, :users, - :projects_trackers, - :roles, - :member_roles, - :members, - :groups_users - - include Redmine::I18n - - def test_create - g = Group.new(:name => 'New group') - assert g.save - g.reload - assert_equal 'New group', g.name - end - - def test_name_should_accept_255_characters - name = 'a' * 255 - g = Group.new(:name => name) - assert g.save - g.reload - assert_equal name, g.name - end - - def test_blank_name_error_message - set_language_if_valid 'en' - g = Group.new - assert !g.save - assert_include "Name can't be blank", g.errors.full_messages - end - - def test_blank_name_error_message_fr - set_language_if_valid 'fr' - str = "Nom doit \xc3\xaatre renseign\xc3\xa9(e)" - str.force_encoding('UTF-8') if str.respond_to?(:force_encoding) - g = Group.new - assert !g.save - assert_include str, g.errors.full_messages - end - - def test_group_roles_should_be_given_to_added_user - group = Group.find(11) - user = User.find(9) - project = Project.first - - Member.create!(:principal => group, :project => project, :role_ids => [1, 2]) - group.users << user - assert user.member_of?(project) - end - - def test_new_roles_should_be_given_to_existing_user - group = Group.find(11) - user = User.find(9) - project = Project.first - - group.users << user - m = Member.create!(:principal => group, :project => project, :role_ids => [1, 2]) - assert user.member_of?(project) - end - - def test_user_roles_should_updated_when_updating_user_ids - group = Group.find(11) - user = User.find(9) - project = Project.first - - Member.create!(:principal => group, :project => project, :role_ids => [1, 2]) - group.user_ids = [user.id] - group.save! - assert User.find(9).member_of?(project) - - group.user_ids = [1] - group.save! - assert !User.find(9).member_of?(project) - end - - def test_user_roles_should_updated_when_updating_group_roles - group = Group.find(11) - user = User.find(9) - project = Project.first - group.users << user - m = Member.create!(:principal => group, :project => project, :role_ids => [1]) - assert_equal [1], user.reload.roles_for_project(project).collect(&:id).sort - - m.role_ids = [1, 2] - assert_equal [1, 2], user.reload.roles_for_project(project).collect(&:id).sort - - m.role_ids = [2] - assert_equal [2], user.reload.roles_for_project(project).collect(&:id).sort - - m.role_ids = [1] - assert_equal [1], user.reload.roles_for_project(project).collect(&:id).sort - end - - def test_user_memberships_should_be_removed_when_removing_group_membership - assert User.find(8).member_of?(Project.find(5)) - Member.find_by_project_id_and_user_id(5, 10).destroy - assert !User.find(8).member_of?(Project.find(5)) - end - - def test_user_roles_should_be_removed_when_removing_user_from_group - assert User.find(8).member_of?(Project.find(5)) - User.find(8).groups = [] - assert !User.find(8).member_of?(Project.find(5)) - end - - def test_destroy_should_unassign_issues - group = Group.first - Issue.update_all(["assigned_to_id = ?", group.id], 'id = 1') - - assert group.destroy - assert group.destroyed? - - assert_equal nil, Issue.find(1).assigned_to_id - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class GroupTest < ActiveSupport::TestCase + fixtures :projects, :trackers, :issue_statuses, :issues, + :enumerations, :users, + :projects_trackers, + :roles, + :member_roles, + :members, + :groups_users + + include Redmine::I18n + + def test_create + g = Group.new(:name => 'New group') + assert g.save + g.reload + assert_equal 'New group', g.name + end + + def test_name_should_accept_255_characters + name = 'a' * 255 + g = Group.new(:name => name) + assert g.save + g.reload + assert_equal name, g.name + end + + def test_blank_name_error_message + set_language_if_valid 'en' + g = Group.new + assert !g.save + assert_include "Name can't be blank", g.errors.full_messages + end + + def test_blank_name_error_message_fr + set_language_if_valid 'fr' + str = "Nom doit \xc3\xaatre renseign\xc3\xa9(e)" + str.force_encoding('UTF-8') if str.respond_to?(:force_encoding) + g = Group.new + assert !g.save + assert_include str, g.errors.full_messages + end + + def test_group_roles_should_be_given_to_added_user + group = Group.find(11) + user = User.find(9) + project = Project.first + + Member.create!(:principal => group, :project => project, :role_ids => [1, 2]) + group.users << user + assert user.member_of?(project) + end + + def test_new_roles_should_be_given_to_existing_user + group = Group.find(11) + user = User.find(9) + project = Project.first + + group.users << user + m = Member.create!(:principal => group, :project => project, :role_ids => [1, 2]) + assert user.member_of?(project) + end + + def test_user_roles_should_updated_when_updating_user_ids + group = Group.find(11) + user = User.find(9) + project = Project.first + + Member.create!(:principal => group, :project => project, :role_ids => [1, 2]) + group.user_ids = [user.id] + group.save! + assert User.find(9).member_of?(project) + + group.user_ids = [1] + group.save! + assert !User.find(9).member_of?(project) + end + + def test_user_roles_should_updated_when_updating_group_roles + group = Group.find(11) + user = User.find(9) + project = Project.first + group.users << user + m = Member.create!(:principal => group, :project => project, :role_ids => [1]) + assert_equal [1], user.reload.roles_for_project(project).collect(&:id).sort + + m.role_ids = [1, 2] + assert_equal [1, 2], user.reload.roles_for_project(project).collect(&:id).sort + + m.role_ids = [2] + assert_equal [2], user.reload.roles_for_project(project).collect(&:id).sort + + m.role_ids = [1] + assert_equal [1], user.reload.roles_for_project(project).collect(&:id).sort + end + + def test_user_memberships_should_be_removed_when_removing_group_membership + assert User.find(8).member_of?(Project.find(5)) + Member.find_by_project_id_and_user_id(5, 10).destroy + assert !User.find(8).member_of?(Project.find(5)) + end + + def test_user_roles_should_be_removed_when_removing_user_from_group + assert User.find(8).member_of?(Project.find(5)) + User.find(8).groups = [] + assert !User.find(8).member_of?(Project.find(5)) + end + + def test_destroy_should_unassign_issues + group = Group.first + Issue.update_all(["assigned_to_id = ?", group.id], 'id = 1') + + assert group.destroy + assert group.destroyed? + + assert_equal nil, Issue.find(1).assigned_to_id + end +end diff --git a/test/unit/helpers/activities_helper_test.rb b/test/unit/helpers/activities_helper_test.rb index e7785dde4..e90f25ad7 100644 --- a/test/unit/helpers/activities_helper_test.rb +++ b/test/unit/helpers/activities_helper_test.rb @@ -1,101 +1,101 @@ -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../../test_helper', __FILE__) - -class ActivitiesHelperTest < ActionView::TestCase - include ActivitiesHelper - - class MockEvent - attr_reader :event_datetime, :event_group, :name - - def initialize(group=nil) - @@count ||= 0 - @name = "e#{@@count}" - @event_datetime = Time.now + @@count.hours - @event_group = group || self - @@count += 1 - end - - def self.clear - @@count = 0 - end - end - - def setup - MockEvent.clear - end - - def test_sort_activity_events_should_sort_by_datetime - events = [] - events << MockEvent.new - events << MockEvent.new - events << MockEvent.new - - assert_equal [ - ['e2', false], - ['e1', false], - ['e0', false] - ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} - end - - def test_sort_activity_events_should_group_events - events = [] - events << MockEvent.new - events << MockEvent.new(events[0]) - events << MockEvent.new(events[0]) - - assert_equal [ - ['e2', false], - ['e1', true], - ['e0', true] - ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} - end - - def test_sort_activity_events_with_group_not_in_set_should_group_events - e = MockEvent.new - events = [] - events << MockEvent.new(e) - events << MockEvent.new(e) - - assert_equal [ - ['e2', false], - ['e1', true] - ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} - end - - def test_sort_activity_events_should_sort_by_datetime_and_group - events = [] - events << MockEvent.new - events << MockEvent.new - events << MockEvent.new - events << MockEvent.new(events[1]) - events << MockEvent.new(events[2]) - events << MockEvent.new - events << MockEvent.new(events[2]) - - assert_equal [ - ['e6', false], - ['e4', true], - ['e2', true], - ['e5', false], - ['e3', false], - ['e1', true], - ['e0', false] - ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} - end -end +# Redmine - project management software +# Copyright (C) 2006-2013 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../../test_helper', __FILE__) + +class ActivitiesHelperTest < ActionView::TestCase + include ActivitiesHelper + + class MockEvent + attr_reader :event_datetime, :event_group, :name + + def initialize(group=nil) + @@count ||= 0 + @name = "e#{@@count}" + @event_datetime = Time.now + @@count.hours + @event_group = group || self + @@count += 1 + end + + def self.clear + @@count = 0 + end + end + + def setup + MockEvent.clear + end + + def test_sort_activity_events_should_sort_by_datetime + events = [] + events << MockEvent.new + events << MockEvent.new + events << MockEvent.new + + assert_equal [ + ['e2', false], + ['e1', false], + ['e0', false] + ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} + end + + def test_sort_activity_events_should_group_events + events = [] + events << MockEvent.new + events << MockEvent.new(events[0]) + events << MockEvent.new(events[0]) + + assert_equal [ + ['e2', false], + ['e1', true], + ['e0', true] + ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} + end + + def test_sort_activity_events_with_group_not_in_set_should_group_events + e = MockEvent.new + events = [] + events << MockEvent.new(e) + events << MockEvent.new(e) + + assert_equal [ + ['e2', false], + ['e1', true] + ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} + end + + def test_sort_activity_events_should_sort_by_datetime_and_group + events = [] + events << MockEvent.new + events << MockEvent.new + events << MockEvent.new + events << MockEvent.new(events[1]) + events << MockEvent.new(events[2]) + events << MockEvent.new + events << MockEvent.new(events[2]) + + assert_equal [ + ['e6', false], + ['e4', true], + ['e2', true], + ['e5', false], + ['e3', false], + ['e1', true], + ['e0', false] + ], sort_activity_events(events).map {|event, grouped| [event.name, grouped]} + end +end diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index e14e60148..7a70ddb57 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -1,1223 +1,1223 @@ -# encoding: utf-8 -# -# Redmine - project management software -# Copyright (C) 2006-2013 Jean-Philippe Lang -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path('../../../test_helper', __FILE__) - -class ApplicationHelperTest < ActionView::TestCase - include ERB::Util - include Rails.application.routes.url_helpers - - fixtures :projects, :roles, :enabled_modules, :users, - :repositories, :changesets, - :trackers, :issue_statuses, :issues, :versions, :documents, - :wikis, :wiki_pages, :wiki_contents, - :boards, :messages, :news, - :attachments, :enumerations - - def setup - super - set_tmp_attachments_directory - end - - context "#link_to_if_authorized" do - context "authorized user" do - should "be tested" - end - - context "unauthorized user" do - should "be tested" - end - - should "allow using the :controller and :action for the target link" do - User.current = User.find_by_login('admin') - - @project = Issue.first.project # Used by helper - response = link_to_if_authorized("By controller/action", - {:controller => 'issues', :action => 'edit', :id => Issue.first.id}) - assert_match /href/, response - end - - end - - def test_auto_links - to_test = { - 'http://foo.bar' => 'http://foo.bar', - 'http://foo.bar/~user' => 'http://foo.bar/~user', - 'http://foo.bar.' => 'http://foo.bar.', - 'https://foo.bar.' => 'https://foo.bar.', - 'This is a link: http://foo.bar.' => 'This is a link: http://foo.bar.', - 'A link (eg. http://foo.bar).' => 'A link (eg. http://foo.bar).', - 'http://foo.bar/foo.bar#foo.bar.' => 'http://foo.bar/foo.bar#foo.bar.', - 'http://www.foo.bar/Test_(foobar)' => 'http://www.foo.bar/Test_(foobar)', - '(see inline link : http://www.foo.bar/Test_(foobar))' => '(see inline link : http://www.foo.bar/Test_(foobar))', - '(see inline link : http://www.foo.bar/Test)' => '(see inline link : http://www.foo.bar/Test)', - '(see inline link : http://www.foo.bar/Test).' => '(see inline link : http://www.foo.bar/Test).', - '(see "inline link":http://www.foo.bar/Test_(foobar))' => '(see inline link)', - '(see "inline link":http://www.foo.bar/Test)' => '(see inline link)', - '(see "inline link":http://www.foo.bar/Test).' => '(see inline link).', - 'www.foo.bar' => 'www.foo.bar', - 'http://foo.bar/page?p=1&t=z&s=' => 'http://foo.bar/page?p=1&t=z&s=', - 'http://foo.bar/page#125' => 'http://foo.bar/page#125', - 'http://foo@www.bar.com' => 'http://foo@www.bar.com', - 'http://foo:bar@www.bar.com' => 'http://foo:bar@www.bar.com', - 'ftp://foo.bar' => 'ftp://foo.bar', - 'ftps://foo.bar' => 'ftps://foo.bar', - 'sftp://foo.bar' => 'sftp://foo.bar', - # two exclamation marks - 'http://example.net/path!602815048C7B5C20!302.html' => 'http://example.net/path!602815048C7B5C20!302.html', - # escaping - 'http://foo"bar' => 'http://foo"bar', - # wrap in angle brackets - '' => '<http://foo.bar>', - # invalid urls - 'http://' => 'http://', - 'www.' => 'www.', - 'test-www.bar.com' => 'test-www.bar.com', - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - if 'ruby'.respond_to?(:encoding) - def test_auto_links_with_non_ascii_characters - to_test = { - 'http://foo.bar/тест' => 'http://foo.bar/тест' - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - else - puts 'Skipping test_auto_links_with_non_ascii_characters, unsupported ruby version' - end - - def test_auto_mailto - to_test = { - 'test@foo.bar' => '', - 'test@www.foo.bar' => '', - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - def test_inline_images - to_test = { - '!http://foo.bar/image.jpg!' => '', - 'floating !>http://foo.bar/image.jpg!' => 'floating
', - 'with class !(some-class)http://foo.bar/image.jpg!' => 'with class ', - 'with style !{width:100px;height:100px}http://foo.bar/image.jpg!' => 'with style ', - 'with title !http://foo.bar/image.jpg(This is a title)!' => 'with title This is a title', - 'with title !http://foo.bar/image.jpg(This is a double-quoted "title")!' => 'with title This is a double-quoted "title"', - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - def test_inline_images_inside_tags - raw = <<-RAW -h1. !foo.png! Heading - -Centered image: - -p=. !bar.gif! -RAW - - assert textilizable(raw).include?('') - assert textilizable(raw).include?('') - end - - def test_attached_images - to_test = { - 'Inline image: !logo.gif!' => 'Inline image: This is a logo', - 'Inline image: !logo.GIF!' => 'Inline image: This is a logo', - 'No match: !ogo.gif!' => 'No match: ', - 'No match: !ogo.GIF!' => 'No match: ', - # link image - '!logo.gif!:http://foo.bar/' => 'This is a logo', - } - attachments = Attachment.all - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :attachments => attachments) } - end - - def test_attached_images_filename_extension - set_tmp_attachments_directory - a1 = Attachment.new( - :container => Issue.find(1), - :file => mock_file_with_options({:original_filename => "testtest.JPG"}), - :author => User.find(1)) - assert a1.save - assert_equal "testtest.JPG", a1.filename - assert_equal "image/jpeg", a1.content_type - assert a1.image? - - a2 = Attachment.new( - :container => Issue.find(1), - :file => mock_file_with_options({:original_filename => "testtest.jpeg"}), - :author => User.find(1)) - assert a2.save - assert_equal "testtest.jpeg", a2.filename - assert_equal "image/jpeg", a2.content_type - assert a2.image? - - a3 = Attachment.new( - :container => Issue.find(1), - :file => mock_file_with_options({:original_filename => "testtest.JPE"}), - :author => User.find(1)) - assert a3.save - assert_equal "testtest.JPE", a3.filename - assert_equal "image/jpeg", a3.content_type - assert a3.image? - - a4 = Attachment.new( - :container => Issue.find(1), - :file => mock_file_with_options({:original_filename => "Testtest.BMP"}), - :author => User.find(1)) - assert a4.save - assert_equal "Testtest.BMP", a4.filename - assert_equal "image/x-ms-bmp", a4.content_type - assert a4.image? - - to_test = { - 'Inline image: !testtest.jpg!' => - 'Inline image: ', - 'Inline image: !testtest.jpeg!' => - 'Inline image: ', - 'Inline image: !testtest.jpe!' => - 'Inline image: ', - 'Inline image: !testtest.bmp!' => - 'Inline image: ', - } - - attachments = [a1, a2, a3, a4] - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :attachments => attachments) } - end - - def test_attached_images_should_read_later - set_fixtures_attachments_directory - a1 = Attachment.find(16) - assert_equal "testfile.png", a1.filename - assert a1.readable? - assert (! a1.visible?(User.anonymous)) - assert a1.visible?(User.find(2)) - a2 = Attachment.find(17) - assert_equal "testfile.PNG", a2.filename - assert a2.readable? - assert (! a2.visible?(User.anonymous)) - assert a2.visible?(User.find(2)) - assert a1.created_on < a2.created_on - - to_test = { - 'Inline image: !testfile.png!' => - 'Inline image: ', - 'Inline image: !Testfile.PNG!' => - 'Inline image: ', - } - attachments = [a1, a2] - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :attachments => attachments) } - set_tmp_attachments_directory - end - - def test_textile_external_links - to_test = { - 'This is a "link":http://foo.bar' => 'This is a link', - 'This is an intern "link":/foo/bar' => 'This is an intern link', - '"link (Link title)":http://foo.bar' => 'link', - '"link (Link title with "double-quotes")":http://foo.bar' => 'link', - "This is not a \"Link\":\n\nAnother paragraph" => "This is not a \"Link\":

\n\n\n\t

Another paragraph", - # no multiline link text - "This is a double quote \"on the first line\nand another on a second line\":test" => "This is a double quote \"on the first line
and another on a second line\":test", - # mailto link - "\"system administrator\":mailto:sysadmin@example.com?subject=redmine%20permissions" => "system administrator", - # two exclamation marks - '"a link":http://example.net/path!602815048C7B5C20!302.html' => 'a link', - # escaping - '"test":http://foo"bar' => 'test', - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - if 'ruby'.respond_to?(:encoding) - def test_textile_external_links_with_non_ascii_characters - to_test = { - 'This is a "link":http://foo.bar/тест' => 'This is a link' - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - else - puts 'Skipping test_textile_external_links_with_non_ascii_characters, unsupported ruby version' - end - - def test_redmine_links - issue_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3}, - :class => Issue.find(3).css_classes, :title => 'Error 281 when updating a recipe (New)') - note_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3, :anchor => 'note-14'}, - :class => Issue.find(3).css_classes, :title => 'Error 281 when updating a recipe (New)') - - revision_link = link_to('r1', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 1}, - :class => 'changeset', :title => 'My very first commit do not escaping #<>&') - revision_link2 = link_to('r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2}, - :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3') - - changeset_link2 = link_to('691322a8eb01e11fd7', - {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 1}, - :class => 'changeset', :title => 'My very first commit do not escaping #<>&') - - document_link = link_to('Test document', {:controller => 'documents', :action => 'show', :id => 1}, - :class => 'document') - - version_link = link_to('1.0', {:controller => 'versions', :action => 'show', :id => 2}, - :class => 'version') - - board_url = {:controller => 'boards', :action => 'show', :id => 2, :project_id => 'ecookbook'} - - message_url = {:controller => 'messages', :action => 'show', :board_id => 1, :id => 4} - - news_url = {:controller => 'news', :action => 'show', :id => 1} - - project_url = {:controller => 'projects', :action => 'show', :id => 'subproject1'} - - source_url = '/projects/ecookbook/repository/entry/some/file' - source_url_with_rev = '/projects/ecookbook/repository/revisions/52/entry/some/file' - source_url_with_ext = '/projects/ecookbook/repository/entry/some/file.ext' - source_url_with_rev_and_ext = '/projects/ecookbook/repository/revisions/52/entry/some/file.ext' - source_url_with_branch = '/projects/ecookbook/repository/revisions/branch/entry/some/file' - - export_url = '/projects/ecookbook/repository/raw/some/file' - export_url_with_rev = '/projects/ecookbook/repository/revisions/52/raw/some/file' - export_url_with_ext = '/projects/ecookbook/repository/raw/some/file.ext' - export_url_with_rev_and_ext = '/projects/ecookbook/repository/revisions/52/raw/some/file.ext' - export_url_with_branch = '/projects/ecookbook/repository/revisions/branch/raw/some/file' - - to_test = { - # tickets - '#3, [#3], (#3) and #3.' => "#{issue_link}, [#{issue_link}], (#{issue_link}) and #{issue_link}.", - # ticket notes - '#3-14' => note_link, - '#3#note-14' => note_link, - # should not ignore leading zero - '#03' => '#03', - # changesets - 'r1' => revision_link, - 'r1.' => "#{revision_link}.", - 'r1, r2' => "#{revision_link}, #{revision_link2}", - 'r1,r2' => "#{revision_link},#{revision_link2}", - 'commit:691322a8eb01e11fd7' => changeset_link2, - # documents - 'document#1' => document_link, - 'document:"Test document"' => document_link, - # versions - 'version#2' => version_link, - 'version:1.0' => version_link, - 'version:"1.0"' => version_link, - # source - 'source:some/file' => link_to('source:some/file', source_url, :class => 'source'), - 'source:/some/file' => link_to('source:/some/file', source_url, :class => 'source'), - 'source:/some/file.' => link_to('source:/some/file', source_url, :class => 'source') + ".", - 'source:/some/file.ext.' => link_to('source:/some/file.ext', source_url_with_ext, :class => 'source') + ".", - 'source:/some/file. ' => link_to('source:/some/file', source_url, :class => 'source') + ".", - 'source:/some/file.ext. ' => link_to('source:/some/file.ext', source_url_with_ext, :class => 'source') + ".", - 'source:/some/file, ' => link_to('source:/some/file', source_url, :class => 'source') + ",", - 'source:/some/file@52' => link_to('source:/some/file@52', source_url_with_rev, :class => 'source'), - 'source:/some/file@branch' => link_to('source:/some/file@branch', source_url_with_branch, :class => 'source'), - 'source:/some/file.ext@52' => link_to('source:/some/file.ext@52', source_url_with_rev_and_ext, :class => 'source'), - 'source:/some/file#L110' => link_to('source:/some/file#L110', source_url + "#L110", :class => 'source'), - 'source:/some/file.ext#L110' => link_to('source:/some/file.ext#L110', source_url_with_ext + "#L110", :class => 'source'), - 'source:/some/file@52#L110' => link_to('source:/some/file@52#L110', source_url_with_rev + "#L110", :class => 'source'), - # export - 'export:/some/file' => link_to('export:/some/file', export_url, :class => 'source download'), - 'export:/some/file.ext' => link_to('export:/some/file.ext', export_url_with_ext, :class => 'source download'), - 'export:/some/file@52' => link_to('export:/some/file@52', export_url_with_rev, :class => 'source download'), - 'export:/some/file.ext@52' => link_to('export:/some/file.ext@52', export_url_with_rev_and_ext, :class => 'source download'), - 'export:/some/file@branch' => link_to('export:/some/file@branch', export_url_with_branch, :class => 'source download'), - # forum - 'forum#2' => link_to('Discussion', board_url, :class => 'board'), - 'forum:Discussion' => link_to('Discussion', board_url, :class => 'board'), - # message - 'message#4' => link_to('Post 2', message_url, :class => 'message'), - 'message#5' => link_to('RE: post 2', message_url.merge(:anchor => 'message-5', :r => 5), :class => 'message'), - # news - 'news#1' => link_to('eCookbook first release !', news_url, :class => 'news'), - 'news:"eCookbook first release !"' => link_to('eCookbook first release !', news_url, :class => 'news'), - # project - 'project#3' => link_to('eCookbook Subproject 1', project_url, :class => 'project'), - 'project:subproject1' => link_to('eCookbook Subproject 1', project_url, :class => 'project'), - 'project:"eCookbook subProject 1"' => link_to('eCookbook Subproject 1', project_url, :class => 'project'), - # not found - '#0123456789' => '#0123456789', - # invalid expressions - 'source:' => 'source:', - # url hash - "http://foo.bar/FAQ#3" => 'http://foo.bar/FAQ#3', - } - @project = Project.find(1) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text), "#{text} failed" } - end - - def test_redmine_links_with_a_different_project_before_current_project - vp1 = Version.generate!(:project_id => 1, :name => '1.4.4') - vp3 = Version.generate!(:project_id => 3, :name => '1.4.4') - - @project = Project.find(3) - assert_equal %(

1.4.4 1.4.4

), - textilizable("ecookbook:version:1.4.4 version:1.4.4") - end - - def test_escaped_redmine_links_should_not_be_parsed - to_test = [ - '#3.', - '#3-14.', - '#3#-note14.', - 'r1', - 'document#1', - 'document:"Test document"', - 'version#2', - 'version:1.0', - 'version:"1.0"', - 'source:/some/file' - ] - @project = Project.find(1) - to_test.each { |text| assert_equal "

#{text}

", textilizable("!" + text), "#{text} failed" } - end - - def test_cross_project_redmine_links - source_link = link_to('ecookbook:source:/some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']}, - :class => 'source') - - changeset_link = link_to('ecookbook:r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2}, - :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3') - - to_test = { - # documents - 'document:"Test document"' => 'document:"Test document"', - 'ecookbook:document:"Test document"' => 'Test document', - 'invalid:document:"Test document"' => 'invalid:document:"Test document"', - # versions - 'version:"1.0"' => 'version:"1.0"', - 'ecookbook:version:"1.0"' => '1.0', - 'invalid:version:"1.0"' => 'invalid:version:"1.0"', - # changeset - 'r2' => 'r2', - 'ecookbook:r2' => changeset_link, - 'invalid:r2' => 'invalid:r2', - # source - 'source:/some/file' => 'source:/some/file', - 'ecookbook:source:/some/file' => source_link, - 'invalid:source:/some/file' => 'invalid:source:/some/file', - } - @project = Project.find(3) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text), "#{text} failed" } - end - - def test_multiple_repositories_redmine_links - svn = Repository::Subversion.create!(:project_id => 1, :identifier => 'svn_repo-1', :url => 'file:///foo/hg') - Changeset.create!(:repository => svn, :committed_on => Time.now, :revision => '123') - hg = Repository::Mercurial.create!(:project_id => 1, :identifier => 'hg1', :url => '/foo/hg') - Changeset.create!(:repository => hg, :committed_on => Time.now, :revision => '123', :scmid => 'abcd') - - changeset_link = link_to('r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2}, - :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3') - svn_changeset_link = link_to('svn_repo-1|r123', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'svn_repo-1', :rev => 123}, - :class => 'changeset', :title => '') - hg_changeset_link = link_to('hg1|abcd', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'hg1', :rev => 'abcd'}, - :class => 'changeset', :title => '') - - source_link = link_to('source:some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']}, :class => 'source') - hg_source_link = link_to('source:hg1|some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :repository_id => 'hg1', :path => ['some', 'file']}, :class => 'source') - - to_test = { - 'r2' => changeset_link, - 'svn_repo-1|r123' => svn_changeset_link, - 'invalid|r123' => 'invalid|r123', - 'commit:hg1|abcd' => hg_changeset_link, - 'commit:invalid|abcd' => 'commit:invalid|abcd', - # source - 'source:some/file' => source_link, - 'source:hg1|some/file' => hg_source_link, - 'source:invalid|some/file' => 'source:invalid|some/file', - } - - @project = Project.find(1) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text), "#{text} failed" } - end - - def test_cross_project_multiple_repositories_redmine_links - svn = Repository::Subversion.create!(:project_id => 1, :identifier => 'svn1', :url => 'file:///foo/hg') - Changeset.create!(:repository => svn, :committed_on => Time.now, :revision => '123') - hg = Repository::Mercurial.create!(:project_id => 1, :identifier => 'hg1', :url => '/foo/hg') - Changeset.create!(:repository => hg, :committed_on => Time.now, :revision => '123', :scmid => 'abcd') - - changeset_link = link_to('ecookbook:r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2}, - :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3') - svn_changeset_link = link_to('ecookbook:svn1|r123', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'svn1', :rev => 123}, - :class => 'changeset', :title => '') - hg_changeset_link = link_to('ecookbook:hg1|abcd', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'hg1', :rev => 'abcd'}, - :class => 'changeset', :title => '') - - source_link = link_to('ecookbook:source:some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']}, :class => 'source') - hg_source_link = link_to('ecookbook:source:hg1|some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :repository_id => 'hg1', :path => ['some', 'file']}, :class => 'source') - - to_test = { - 'ecookbook:r2' => changeset_link, - 'ecookbook:svn1|r123' => svn_changeset_link, - 'ecookbook:invalid|r123' => 'ecookbook:invalid|r123', - 'ecookbook:commit:hg1|abcd' => hg_changeset_link, - 'ecookbook:commit:invalid|abcd' => 'ecookbook:commit:invalid|abcd', - 'invalid:commit:invalid|abcd' => 'invalid:commit:invalid|abcd', - # source - 'ecookbook:source:some/file' => source_link, - 'ecookbook:source:hg1|some/file' => hg_source_link, - 'ecookbook:source:invalid|some/file' => 'ecookbook:source:invalid|some/file', - 'invalid:source:invalid|some/file' => 'invalid:source:invalid|some/file', - } - - @project = Project.find(3) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text), "#{text} failed" } - end - - def test_redmine_links_git_commit - changeset_link = link_to('abcd', - { - :controller => 'repositories', - :action => 'revision', - :id => 'subproject1', - :rev => 'abcd', - }, - :class => 'changeset', :title => 'test commit') - to_test = { - 'commit:abcd' => changeset_link, - } - @project = Project.find(3) - r = Repository::Git.create!(:project => @project, :url => '/tmp/test/git') - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => 'abcd', - :scmid => 'abcd', - :comments => 'test commit') - assert( c.save ) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - # TODO: Bazaar commit id contains mail address, so it contains '@' and '_'. - def test_redmine_links_darcs_commit - changeset_link = link_to('20080308225258-98289-abcd456efg.gz', - { - :controller => 'repositories', - :action => 'revision', - :id => 'subproject1', - :rev => '123', - }, - :class => 'changeset', :title => 'test commit') - to_test = { - 'commit:20080308225258-98289-abcd456efg.gz' => changeset_link, - } - @project = Project.find(3) - r = Repository::Darcs.create!( - :project => @project, :url => '/tmp/test/darcs', - :log_encoding => 'UTF-8') - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => '20080308225258-98289-abcd456efg.gz', - :comments => 'test commit') - assert( c.save ) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - def test_redmine_links_mercurial_commit - changeset_link_rev = link_to('r123', - { - :controller => 'repositories', - :action => 'revision', - :id => 'subproject1', - :rev => '123' , - }, - :class => 'changeset', :title => 'test commit') - changeset_link_commit = link_to('abcd', - { - :controller => 'repositories', - :action => 'revision', - :id => 'subproject1', - :rev => 'abcd' , - }, - :class => 'changeset', :title => 'test commit') - to_test = { - 'r123' => changeset_link_rev, - 'commit:abcd' => changeset_link_commit, - } - @project = Project.find(3) - r = Repository::Mercurial.create!(:project => @project, :url => '/tmp/test') - assert r - c = Changeset.new(:repository => r, - :committed_on => Time.now, - :revision => '123', - :scmid => 'abcd', - :comments => 'test commit') - assert( c.save ) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - def test_attachment_links - to_test = { - 'attachment:error281.txt' => 'error281.txt' - } - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" } - end - - def test_attachment_link_should_link_to_latest_attachment - set_tmp_attachments_directory - a1 = Attachment.generate!(:filename => "test.txt", :created_on => 1.hour.ago) - a2 = Attachment.generate!(:filename => "test.txt") - - assert_equal %(

test.txt

), - textilizable('attachment:test.txt', :attachments => [a1, a2]) - end - - def test_wiki_links - to_test = { - '[[CookBook documentation]]' => 'CookBook documentation', - '[[Another page|Page]]' => 'Page', - # title content should be formatted - '[[Another page|With _styled_ *title*]]' => 'With styled title', - '[[Another page|With title containing HTML entities & markups]]' => 'With title containing <strong>HTML entities & markups</strong>', - # link with anchor - '[[CookBook documentation#One-section]]' => 'CookBook documentation', - '[[Another page#anchor|Page]]' => 'Page', - # UTF8 anchor - '[[Another_page#Тест|Тест]]' => %|Тест|, - # page that doesn't exist - '[[Unknown page]]' => 'Unknown page', - '[[Unknown page|404]]' => '404', - # link to another project wiki - '[[onlinestore:]]' => 'onlinestore', - '[[onlinestore:|Wiki]]' => 'Wiki', - '[[onlinestore:Start page]]' => 'Start page', - '[[onlinestore:Start page|Text]]' => 'Text', - '[[onlinestore:Unknown page]]' => 'Unknown page', - # striked through link - '-[[Another page|Page]]-' => 'Page', - '-[[Another page|Page]] link-' => 'Page link', - # escaping - '![[Another page|Page]]' => '[[Another page|Page]]', - # project does not exist - '[[unknowproject:Start]]' => '[[unknowproject:Start]]', - '[[unknowproject:Start|Page title]]' => '[[unknowproject:Start|Page title]]', - } - - @project = Project.find(1) - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text) } - end - - def test_wiki_links_within_local_file_generation_context - - to_test = { - # link to a page - '[[CookBook documentation]]' => 'CookBook documentation', - '[[CookBook documentation|documentation]]' => 'documentation', - '[[CookBook documentation#One-section]]' => 'CookBook documentation', - '[[CookBook documentation#One-section|documentation]]' => 'documentation', - # page that doesn't exist - '[[Unknown page]]' => 'Unknown page', - '[[Unknown page|404]]' => '404', - '[[Unknown page#anchor]]' => 'Unknown page', - '[[Unknown page#anchor|404]]' => '404', - } - - @project = Project.find(1) - - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :wiki_links => :local) } - end - - def test_wiki_links_within_wiki_page_context - - page = WikiPage.find_by_title('Another_page' ) - - to_test = { - # link to another page - '[[CookBook documentation]]' => 'CookBook documentation', - '[[CookBook documentation|documentation]]' => 'documentation', - '[[CookBook documentation#One-section]]' => 'CookBook documentation', - '[[CookBook documentation#One-section|documentation]]' => 'documentation', - # link to the current page - '[[Another page]]' => 'Another page', - '[[Another page|Page]]' => 'Page', - '[[Another page#anchor]]' => 'Another page', - '[[Another page#anchor|Page]]' => 'Page', - # page that doesn't exist - '[[Unknown page]]' => 'Unknown page', - '[[Unknown page|404]]' => '404', - '[[Unknown page#anchor]]' => 'Unknown page', - '[[Unknown page#anchor|404]]' => '404', - } - - @project = Project.find(1) - - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(WikiContent.new( :text => text, :page => page ), :text) } - end - - def test_wiki_links_anchor_option_should_prepend_page_title_to_href - - to_test = { - # link to a page - '[[CookBook documentation]]' => 'CookBook documentation', - '[[CookBook documentation|documentation]]' => 'documentation', - '[[CookBook documentation#One-section]]' => 'CookBook documentation', - '[[CookBook documentation#One-section|documentation]]' => 'documentation', - # page that doesn't exist - '[[Unknown page]]' => 'Unknown page', - '[[Unknown page|404]]' => '404', - '[[Unknown page#anchor]]' => 'Unknown page', - '[[Unknown page#anchor|404]]' => '404', - } - - @project = Project.find(1) - - to_test.each { |text, result| assert_equal "

#{result}

", textilizable(text, :wiki_links => :anchor) } - end - - def test_html_tags - to_test = { - "
content
" => "

<div>content</div>

", - "
content
" => "

<div class=\"bold\">content</div>

", - "" => "

<script>some script;</script>

", - # do not escape pre/code tags - "
\nline 1\nline2
" => "
\nline 1\nline2
", - "
\nline 1\nline2
" => "
\nline 1\nline2
", - "
content
" => "
<div>content</div>
", - "HTML comment: " => "

HTML comment: <!-- no comments -->

", - "" => "

HTML comment: <!-- no comments -->

", + " + <% unless User.current.user_extensions.student_id.nil? %> + <%= text_field_tag :no, User.current.user_extensions.student_id, :placeholder => "请输入学号" %> + <% else %> + <%= text_field_tag :no, nil, :placeholder => "请输入学号" %> + <% end %> + + +

")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/templates/templates/default.js b/plugins/redmine_ckeditor/assets/ckeditor/plugins/templates/templates/default.js index d8c172e3f..36934e491 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/templates/templates/default.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/templates/templates/default.js @@ -1,6 +1,6 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'

Type the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'

Type the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/LICENSE.md b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/LICENSE.md index c7d374ad1..6096de233 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/LICENSE.md +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/LICENSE.md @@ -1,28 +1,28 @@ -Software License Agreement -========================== - -**CKEditor WSC Plugin** -Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: - -* GNU General Public License Version 2 or later (the "GPL"): - http://www.gnu.org/licenses/gpl.html - -* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): - http://www.gnu.org/licenses/lgpl.html - -* Mozilla Public License Version 1.1 or later (the "MPL"): - http://www.mozilla.org/MPL/MPL-1.1.html - -You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. - -Sources of Intellectual Property Included in this plugin --------------------------------------------------------- - -Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. - -Trademarks ----------- - -CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/README.md b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/README.md index 46eeafb09..346e2ab19 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/README.md +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/README.md @@ -1,25 +1,25 @@ -CKEditor WebSpellChecker Plugin -=============================== - -This plugin brings Web Spell Checker (WSC) into CKEditor. - -WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. - -Installation ------------- - -1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. -2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): - - config.extraPlugins = 'wsc'; - -That's all. WSC will appear on the editor toolbar and will be ready to use. - -License -------- - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. - -Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). +CKEditor WebSpellChecker Plugin +=============================== + +This plugin brings Web Spell Checker (WSC) into CKEditor. + +WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. + +Installation +------------ + +1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. +2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): + + config.extraPlugins = 'wsc'; + +That's all. WSC will appear on the editor toolbar and will be ready to use. + +License +------- + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. + +Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/ciframe.html b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/ciframe.html index 25db3c739..1d6ba5a29 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/ciframe.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -1,66 +1,66 @@ - - - - - - - - -

- + + + + + + + + +

+ diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmp.html b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmp.html index 67642956f..c00d8c2e7 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmp.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmp.html @@ -1,118 +1,118 @@ - - - - - iframe - - - - -
- - - - - - - + + + + + iframe + + + + +
+ + + + + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html index 0d675f4d6..88e1afe8a 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -1,52 +1,52 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.css b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.css index 9e834f1d0..e16394846 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.css @@ -1,82 +1,82 @@ -/* -Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ - -html, body -{ - background-color: transparent; - margin: 0px; - padding: 0px; -} - -body -{ - padding: 10px; -} - -body, td, input, select, textarea -{ - font-size: 11px; - font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; -} - -.midtext -{ - padding:0px; - margin:10px; -} - -.midtext p -{ - padding:0px; - margin:10px; -} - -.Button -{ - border: #737357 1px solid; - color: #3b3b1f; - background-color: #c7c78f; -} - -.PopupTabArea -{ - color: #737357; - background-color: #e3e3c7; -} - -.PopupTitleBorder -{ - border-bottom: #d5d59d 1px solid; -} -.PopupTabEmptyArea -{ - padding-left: 10px; - border-bottom: #d5d59d 1px solid; -} - -.PopupTab, .PopupTabSelected -{ - border-right: #d5d59d 1px solid; - border-top: #d5d59d 1px solid; - border-left: #d5d59d 1px solid; - padding: 3px 5px 3px 5px; - color: #737357; -} - -.PopupTab -{ - margin-top: 1px; - border-bottom: #d5d59d 1px solid; - cursor: pointer; -} - -.PopupTabSelected -{ - font-weight: bold; - cursor: default; - padding-top: 4px; - border-bottom: #f1f1e3 1px solid; - background-color: #f1f1e3; -} +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.js b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.js index 22410bdb1..fd46a9053 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc.js @@ -1,67 +1,67 @@ -/* - Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license -*/ -(function(){function w(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; -if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){document.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=a.fn||null,f=a.id||"",g=a.target||window,h=a.message||{id:f};"[object Object]"==Object.prototype.toString.call(a.message)&& -(a.message.id||(a.message.id=f),h=a.message);a=window.JSON.stringify(h,b);g.postMessage(a,"*")}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}}}(),a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode= -null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null,text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null, -text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var x=function(b){for(var c in b)b[c].instance.getElement().setText(a.LocalizationComing[c])},y=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}}, -j,p;a.framesetHtml=function(b){return''};a.setIframe=function(b,c){var d=a.framesetHtml(c);return b.getElement().setHtml(d)};a.setCurrentIframe=function(b){a.setIframe(a.dialog._.contents[b].Content,b)};a.setHeightBannerFrame=function(){var b=a.dialog.getContentElement("SpellTab","banner").getElement(), -c=a.dialog.getContentElement("GrammTab","banner").getElement(),d=a.dialog.getContentElement("Thesaurus","banner").getElement();b.setStyle("height","90px");c.setStyle("height","90px");d.setStyle("height","90px")};a.setHeightFrame=function(){document.getElementById(a.iframeNumber+"_"+a.dialog._.currentTabId).style.height="240px"};a.sendData=function(b){var c=b._.currentTabId,d=b._.contents[c].Content,f,g;a.setIframe(d,c);b.parts.tabs.removeAllListeners();b.parts.tabs.on("click",function(h){h=h||window.event; -h.data.getTarget().is("a")&&c!=b._.currentTabId&&(c=b._.currentTabId,d=b._.contents[c].Content,f=a.iframeNumber+"_"+c,a.div_overlay.setEnable(),d.getElement().getChildCount()?t(a.targetFromFrame[f],a.cmd[c]):(a.setIframe(d,c),g=document.getElementById(f),a.targetFromFrame[f]=g.contentWindow))})};a.buildSelectLang=function(a){var c=new CKEDITOR.dom.element("div"),d=new CKEDITOR.dom.element("select"),a="wscLang"+a;c.addClass("cke_dialog_ui_input_select");c.setAttribute("role","presentation");c.setStyles({height:"auto", -position:"absolute",right:"0",top:"-1px",width:"160px","white-space":"normal"});d.setAttribute("id",a);d.addClass("cke_dialog_ui_input_select");d.setStyles({width:"160px"});c.append(d);return c};a.buildOptionLang=function(b,c){var d=document.getElementById("wscLang"+c),f=document.createDocumentFragment(),g,h,e=[];if(0===d.options.length){for(g in b)e.push([g,b[g]]);e.sort();for(var k=0;k"},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(b){var b=a.iframeNumber+"_"+b._.currentTabId, -c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"hbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;",widths:["50%","50%"],children:[{type:"hbox",id:"leftCol",align:"left",width:"50%",children:[{type:"vbox",id:"rightCol1",widths:["50%","50%"],children:[{type:"text",id:"text",label:a.LocalizationLabel.ChangeTo.text+":",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",width:"140px","default":"",onShow:function(){a.textNode.SpellTab=this;a.LocalizationLabel.ChangeTo.instance= -this},onHide:function(){this.reset()}},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"text",id:"labelSuggestions",label:a.LocalizationLabel.Suggestions.text+":",onShow:function(){a.LocalizationLabel.Suggestions.instance=this;this.getInputElement().hide()}},{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src= -a.logotype;this.getElement().getParent().setStyles({"text-align":"left"})}}]},{type:"select",id:"list_of_suggestions",labelStyle:"font: 12px/25px arial, sans-serif;",size:"6",inputStyle:"width: 140px; height: auto;",items:[["loading..."]],onShow:function(){p=this},onHide:function(){this.clear()},onChange:function(){a.textNode.SpellTab.setValue(this.getValue())}}]}]}]},{type:"hbox",id:"rightCol",align:"right",width:"50%",children:[{type:"vbox",id:"rightCol_col__left",widths:["50%","50%","50%","50%"], -children:[{type:"button",id:"ChangeTo",label:a.LocalizationButton.ChangeTo.text,title:"Change to",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeTo.instance=this},onClick:c},{type:"button",id:"ChangeAll",label:a.LocalizationButton.ChangeAll.text,title:"Change All",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeAll.instance=this},onClick:c},{type:"button",id:"AddWord", -label:a.LocalizationButton.AddWord.text,title:"Add word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.AddWord.instance=this},onClick:c},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text,title:"Finish Checking",style:"width: 100%;margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.FinishChecking.instance=this},onClick:c}]},{type:"vbox",id:"rightCol_col__right", -widths:["50%","50%","50%"],children:[{type:"button",id:"IgnoreWord",label:a.LocalizationButton.IgnoreWord.text,title:"Ignore word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreWord.instance=this},onClick:c},{type:"button",id:"IgnoreAllWords",label:a.LocalizationButton.IgnoreAllWords.text,title:"Ignore all words",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreAllWords.instance= -this},onClick:c},{type:"button",id:"option",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){a.LocalizationButton.Options.instance=this;"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()}, -onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",setup:function(){this.getChild()[0].getElement().$.src=a.logotype;this.getChild()[0].getElement().getParent().setStyles({"text-align":"center"})},children:[{type:"html",id:"logo",html:'WebSpellChecker.net'}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox", -id:"rightCol_col__left",children:[{type:"button",id:"Option_button",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text, -title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"GrammTab",label:"Grammar",accessKey:"G",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
"},{type:"html",id:"Content",label:"GrammarContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId,c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;", -children:[{type:"hbox",id:"leftCol",widths:["66%","34%"],children:[{type:"vbox",children:[{type:"text",id:"text",label:"Change to:",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",inputStyle:"float: right; width: 200px;","default":"",onShow:function(){a.textNode.GrammTab=this},onHide:function(){this.reset()}},{type:"html",id:"html_text",html:"
", -onShow:function(){a.textNodeInfo.GrammTab=this}},{type:"html",id:"radio",html:"",onShow:function(){a.grammerSuggest=this}}]},{type:"vbox",children:[{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"IgnoreWord",label:"Ignore word",title:"Ignore word",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)}, -onClick:c},{type:"button",id:"IgnoreAllWords",label:"Ignore Problem",title:"Ignore Problem",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 133px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;", -widths:["70%","30%"],onShow:function(){this.getElement().hide()},onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right", -width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"Thesaurus",label:"Thesaurus",accessKey:"T",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
"},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId, -c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: -10px auto; overflow: hidden;",children:[{type:"hbox",widths:["75%","25%"],children:[{type:"vbox",children:[{type:"hbox",widths:["65%","35%"],children:[{type:"text",id:"ChangeTo",label:"Change to:",labelLayout:"horizontal",inputStyle:"width: 160px;",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onShow:function(){a.textNode.Thesaurus=this},onHide:function(){this.reset()}}, -{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 121px; margin-top: 1px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]},{type:"hbox",children:[{type:"select",id:"categories",label:"Categories:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.categories=this},onHide:function(){this.clear()},onChange:function(){a.buildOptionSynonyms(this.getValue())}}, -{type:"select",id:"synonyms",label:"Synonyms:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.synonyms=this;a.textNode.Thesaurus.setValue(this.getValue())},onHide:function(){this.clear()},onChange:function(){a.textNode.Thesaurus.setValue(this.getValue())}}]}]},{type:"vbox",width:"120px",style:"margin-top:46px;",children:[{type:"html",id:"logotype",label:"WebSpellChecker.net",html:'WebSpellChecker.net', -setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 121px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()},children:[{type:"hbox", -id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking", -label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]}]}});CKEDITOR.dialog.add("options",function(){var b=null,c={},d={},f=null,g=null;e.cookie.get("udn");e.cookie.get("osp");var h=function(){g=this.getElement().getAttribute("title-cmd");var a=[];a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp", -a);e.cookie.set("udnCmd",g?g:"ignore");"delete"!=g&&(a="",""!==j.getValue()&&(a=j.getValue()),e.cookie.set("udn",a));e.postMessage.send({id:"options_dic_send"})},i=function(){f.getElement().setHtml(a.LocalizationComing.error);f.getElement().show()};return{title:a.LocalizationComing.Options,minWidth:430,minHeight:130,resizable:CKEDITOR.DIALOG_RESIZE_NONE,contents:[{id:"OptionsTab",label:"Options",accessKey:"O",elements:[{type:"hbox",id:"options_error",children:[{type:"html",style:"display: block;text-align: center;white-space: normal!important; font-size: 12px;color:red", -html:"
",onShow:function(){f=this}}]},{type:"vbox",id:"Options_content",children:[{type:"hbox",id:"Options_manager",widths:["52%","48%"],children:[{type:"fieldset",label:"Spell Checking Options",style:"border: none;margin-top: 13px;padding: 10px 0 10px 10px",onShow:function(){this.getInputElement().$.children[0].innerHTML=a.LocalizationComing.SpellCheckingOptions},children:[{type:"vbox",id:"Options_checkbox",children:[{type:"checkbox",id:"IgnoreAllCapsWords",label:"Ignore All-Caps Words", -labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreWordsNumbers",label:"Ignore Words with Numbers",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox", -id:"IgnoreMixedCaseWords",label:"Ignore Mixed-Case Words",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreDomainNames",label:"Ignore Domain Names",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]= -!this.getValue()?0:1}}]}]},{type:"vbox",id:"Options_DictionaryName",children:[{type:"text",id:"DictionaryName",style:"margin-bottom: 10px",label:"Dictionary Name:",labelLayout:"vertical",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onLoad:function(){j=this;this.setValue(a.userDictionaryName?a.userDictionaryName:(e.cookie.get("udn"),this.getValue()))},onShow:function(){j=this;this.setValue(!e.cookie.get("udn")?this.getValue():e.cookie.get("udn"));this.setLabel(a.LocalizationComing.DictionaryName)}, -onHide:function(){this.reset()}},{type:"hbox",id:"Options_buttons",children:[{type:"vbox",id:"Options_leftCol_col",widths:["50%","50%"],children:[{type:"button",id:"create",label:"Create",title:"Create",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Create)},onClick:h},{type:"button",id:"restore",label:"Restore",title:"Restore",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", -this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Restore)},onClick:h}]},{type:"vbox",id:"Options_rightCol_col",widths:["50%","50%"],children:[{type:"button",id:"rename",label:"Rename",title:"Rename",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Rename)},onClick:h},{type:"button",id:"delete",label:"Remove",title:"Remove",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", -this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Remove)},onClick:h}]}]}]}]},{type:"hbox",id:"Options_text",children:[{type:"html",style:"text-align: justify;margin-top: 15px;white-space: normal!important; font-size: 12px;color:#777;",html:"
"+a.LocalizationComing.OptionsTextIntro+"
",onShow:function(){this.getElement().setText(a.LocalizationComing.OptionsTextIntro)}}]}]}]}],buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton],onOk:function(){var a=[]; -a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp",a);e.cookie.set("udn",j.getValue());e.postMessage.send({id:"options_checkbox_send"});f.getElement().hide();f.getElement().setHtml(" ")},onLoad:function(){b=this;e.postMessage.init(i);c.IgnoreAllCapsWords=b.getContentElement("OptionsTab","IgnoreAllCapsWords");c.IgnoreWordsNumbers=b.getContentElement("OptionsTab","IgnoreWordsNumbers");c.IgnoreMixedCaseWords= -b.getContentElement("OptionsTab","IgnoreMixedCaseWords");c.IgnoreDomainNames=b.getContentElement("OptionsTab","IgnoreDomainNames")},onShow:function(){var b=e.cookie.get("osp").split("");d.IgnoreAllCapsWords=b[0];d.IgnoreWordsNumbers=b[1];d.IgnoreMixedCaseWords=b[2];d.IgnoreDomainNames=b[3];!parseInt(d.IgnoreAllCapsWords,10)?c.IgnoreAllCapsWords.setValue("",!1):c.IgnoreAllCapsWords.setValue("checked",!1);!parseInt(d.IgnoreWordsNumbers,10)?c.IgnoreWordsNumbers.setValue("",!1):c.IgnoreWordsNumbers.setValue("checked", -!1);!parseInt(d.IgnoreMixedCaseWords,10)?c.IgnoreMixedCaseWords.setValue("",!1):c.IgnoreMixedCaseWords.setValue("checked",!1);!parseInt(d.IgnoreDomainNames,10)?c.IgnoreDomainNames.setValue("",!1):c.IgnoreDomainNames.setValue("checked",!1);d.IgnoreAllCapsWords=!c.IgnoreAllCapsWords.getValue()?0:1;d.IgnoreWordsNumbers=!c.IgnoreWordsNumbers.getValue()?0:1;d.IgnoreMixedCaseWords=!c.IgnoreMixedCaseWords.getValue()?0:1;d.IgnoreDomainNames=!c.IgnoreDomainNames.getValue()?0:1;c.IgnoreAllCapsWords.getElement().$.lastChild.innerHTML= -a.LocalizationComing.IgnoreAllCapsWords;c.IgnoreWordsNumbers.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreWordsWithNumbers;c.IgnoreMixedCaseWords.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreMixedCaseWords;c.IgnoreDomainNames.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreDomainNames}}});CKEDITOR.dialog.on("resize",function(b){var b=b.data,c=b.dialog,d=CKEDITOR.document.getById(a.iframeNumber+"_"+c._.currentTabId);"checkspell"==c._.name&&(a.bnr?d&& +/* + Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function w(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){document.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=a.fn||null,f=a.id||"",g=a.target||window,h=a.message||{id:f};"[object Object]"==Object.prototype.toString.call(a.message)&& +(a.message.id||(a.message.id=f),h=a.message);a=window.JSON.stringify(h,b);g.postMessage(a,"*")}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}}}(),a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode= +null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null,text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null, +text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var x=function(b){for(var c in b)b[c].instance.getElement().setText(a.LocalizationComing[c])},y=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}}, +j,p;a.framesetHtml=function(b){return''};a.setIframe=function(b,c){var d=a.framesetHtml(c);return b.getElement().setHtml(d)};a.setCurrentIframe=function(b){a.setIframe(a.dialog._.contents[b].Content,b)};a.setHeightBannerFrame=function(){var b=a.dialog.getContentElement("SpellTab","banner").getElement(), +c=a.dialog.getContentElement("GrammTab","banner").getElement(),d=a.dialog.getContentElement("Thesaurus","banner").getElement();b.setStyle("height","90px");c.setStyle("height","90px");d.setStyle("height","90px")};a.setHeightFrame=function(){document.getElementById(a.iframeNumber+"_"+a.dialog._.currentTabId).style.height="240px"};a.sendData=function(b){var c=b._.currentTabId,d=b._.contents[c].Content,f,g;a.setIframe(d,c);b.parts.tabs.removeAllListeners();b.parts.tabs.on("click",function(h){h=h||window.event; +h.data.getTarget().is("a")&&c!=b._.currentTabId&&(c=b._.currentTabId,d=b._.contents[c].Content,f=a.iframeNumber+"_"+c,a.div_overlay.setEnable(),d.getElement().getChildCount()?t(a.targetFromFrame[f],a.cmd[c]):(a.setIframe(d,c),g=document.getElementById(f),a.targetFromFrame[f]=g.contentWindow))})};a.buildSelectLang=function(a){var c=new CKEDITOR.dom.element("div"),d=new CKEDITOR.dom.element("select"),a="wscLang"+a;c.addClass("cke_dialog_ui_input_select");c.setAttribute("role","presentation");c.setStyles({height:"auto", +position:"absolute",right:"0",top:"-1px",width:"160px","white-space":"normal"});d.setAttribute("id",a);d.addClass("cke_dialog_ui_input_select");d.setStyles({width:"160px"});c.append(d);return c};a.buildOptionLang=function(b,c){var d=document.getElementById("wscLang"+c),f=document.createDocumentFragment(),g,h,e=[];if(0===d.options.length){for(g in b)e.push([g,b[g]]);e.sort();for(var k=0;k"},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(b){var b=a.iframeNumber+"_"+b._.currentTabId, +c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"hbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;",widths:["50%","50%"],children:[{type:"hbox",id:"leftCol",align:"left",width:"50%",children:[{type:"vbox",id:"rightCol1",widths:["50%","50%"],children:[{type:"text",id:"text",label:a.LocalizationLabel.ChangeTo.text+":",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",width:"140px","default":"",onShow:function(){a.textNode.SpellTab=this;a.LocalizationLabel.ChangeTo.instance= +this},onHide:function(){this.reset()}},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"text",id:"labelSuggestions",label:a.LocalizationLabel.Suggestions.text+":",onShow:function(){a.LocalizationLabel.Suggestions.instance=this;this.getInputElement().hide()}},{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src= +a.logotype;this.getElement().getParent().setStyles({"text-align":"left"})}}]},{type:"select",id:"list_of_suggestions",labelStyle:"font: 12px/25px arial, sans-serif;",size:"6",inputStyle:"width: 140px; height: auto;",items:[["loading..."]],onShow:function(){p=this},onHide:function(){this.clear()},onChange:function(){a.textNode.SpellTab.setValue(this.getValue())}}]}]}]},{type:"hbox",id:"rightCol",align:"right",width:"50%",children:[{type:"vbox",id:"rightCol_col__left",widths:["50%","50%","50%","50%"], +children:[{type:"button",id:"ChangeTo",label:a.LocalizationButton.ChangeTo.text,title:"Change to",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeTo.instance=this},onClick:c},{type:"button",id:"ChangeAll",label:a.LocalizationButton.ChangeAll.text,title:"Change All",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeAll.instance=this},onClick:c},{type:"button",id:"AddWord", +label:a.LocalizationButton.AddWord.text,title:"Add word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.AddWord.instance=this},onClick:c},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text,title:"Finish Checking",style:"width: 100%;margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.FinishChecking.instance=this},onClick:c}]},{type:"vbox",id:"rightCol_col__right", +widths:["50%","50%","50%"],children:[{type:"button",id:"IgnoreWord",label:a.LocalizationButton.IgnoreWord.text,title:"Ignore word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreWord.instance=this},onClick:c},{type:"button",id:"IgnoreAllWords",label:a.LocalizationButton.IgnoreAllWords.text,title:"Ignore all words",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreAllWords.instance= +this},onClick:c},{type:"button",id:"option",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){a.LocalizationButton.Options.instance=this;"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()}, +onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",setup:function(){this.getChild()[0].getElement().$.src=a.logotype;this.getChild()[0].getElement().getParent().setStyles({"text-align":"center"})},children:[{type:"html",id:"logo",html:'WebSpellChecker.net'}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox", +id:"rightCol_col__left",children:[{type:"button",id:"Option_button",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text, +title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"GrammTab",label:"Grammar",accessKey:"G",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
"},{type:"html",id:"Content",label:"GrammarContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId,c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;", +children:[{type:"hbox",id:"leftCol",widths:["66%","34%"],children:[{type:"vbox",children:[{type:"text",id:"text",label:"Change to:",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",inputStyle:"float: right; width: 200px;","default":"",onShow:function(){a.textNode.GrammTab=this},onHide:function(){this.reset()}},{type:"html",id:"html_text",html:"
", +onShow:function(){a.textNodeInfo.GrammTab=this}},{type:"html",id:"radio",html:"",onShow:function(){a.grammerSuggest=this}}]},{type:"vbox",children:[{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"IgnoreWord",label:"Ignore word",title:"Ignore word",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)}, +onClick:c},{type:"button",id:"IgnoreAllWords",label:"Ignore Problem",title:"Ignore Problem",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 133px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;", +widths:["70%","30%"],onShow:function(){this.getElement().hide()},onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right", +width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"Thesaurus",label:"Thesaurus",accessKey:"T",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
"},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId, +c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: -10px auto; overflow: hidden;",children:[{type:"hbox",widths:["75%","25%"],children:[{type:"vbox",children:[{type:"hbox",widths:["65%","35%"],children:[{type:"text",id:"ChangeTo",label:"Change to:",labelLayout:"horizontal",inputStyle:"width: 160px;",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onShow:function(){a.textNode.Thesaurus=this},onHide:function(){this.reset()}}, +{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 121px; margin-top: 1px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]},{type:"hbox",children:[{type:"select",id:"categories",label:"Categories:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.categories=this},onHide:function(){this.clear()},onChange:function(){a.buildOptionSynonyms(this.getValue())}}, +{type:"select",id:"synonyms",label:"Synonyms:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.synonyms=this;a.textNode.Thesaurus.setValue(this.getValue())},onHide:function(){this.clear()},onChange:function(){a.textNode.Thesaurus.setValue(this.getValue())}}]}]},{type:"vbox",width:"120px",style:"margin-top:46px;",children:[{type:"html",id:"logotype",label:"WebSpellChecker.net",html:'WebSpellChecker.net', +setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 121px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()},children:[{type:"hbox", +id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking", +label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]}]}});CKEDITOR.dialog.add("options",function(){var b=null,c={},d={},f=null,g=null;e.cookie.get("udn");e.cookie.get("osp");var h=function(){g=this.getElement().getAttribute("title-cmd");var a=[];a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp", +a);e.cookie.set("udnCmd",g?g:"ignore");"delete"!=g&&(a="",""!==j.getValue()&&(a=j.getValue()),e.cookie.set("udn",a));e.postMessage.send({id:"options_dic_send"})},i=function(){f.getElement().setHtml(a.LocalizationComing.error);f.getElement().show()};return{title:a.LocalizationComing.Options,minWidth:430,minHeight:130,resizable:CKEDITOR.DIALOG_RESIZE_NONE,contents:[{id:"OptionsTab",label:"Options",accessKey:"O",elements:[{type:"hbox",id:"options_error",children:[{type:"html",style:"display: block;text-align: center;white-space: normal!important; font-size: 12px;color:red", +html:"
",onShow:function(){f=this}}]},{type:"vbox",id:"Options_content",children:[{type:"hbox",id:"Options_manager",widths:["52%","48%"],children:[{type:"fieldset",label:"Spell Checking Options",style:"border: none;margin-top: 13px;padding: 10px 0 10px 10px",onShow:function(){this.getInputElement().$.children[0].innerHTML=a.LocalizationComing.SpellCheckingOptions},children:[{type:"vbox",id:"Options_checkbox",children:[{type:"checkbox",id:"IgnoreAllCapsWords",label:"Ignore All-Caps Words", +labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreWordsNumbers",label:"Ignore Words with Numbers",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox", +id:"IgnoreMixedCaseWords",label:"Ignore Mixed-Case Words",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreDomainNames",label:"Ignore Domain Names",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]= +!this.getValue()?0:1}}]}]},{type:"vbox",id:"Options_DictionaryName",children:[{type:"text",id:"DictionaryName",style:"margin-bottom: 10px",label:"Dictionary Name:",labelLayout:"vertical",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onLoad:function(){j=this;this.setValue(a.userDictionaryName?a.userDictionaryName:(e.cookie.get("udn"),this.getValue()))},onShow:function(){j=this;this.setValue(!e.cookie.get("udn")?this.getValue():e.cookie.get("udn"));this.setLabel(a.LocalizationComing.DictionaryName)}, +onHide:function(){this.reset()}},{type:"hbox",id:"Options_buttons",children:[{type:"vbox",id:"Options_leftCol_col",widths:["50%","50%"],children:[{type:"button",id:"create",label:"Create",title:"Create",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Create)},onClick:h},{type:"button",id:"restore",label:"Restore",title:"Restore",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", +this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Restore)},onClick:h}]},{type:"vbox",id:"Options_rightCol_col",widths:["50%","50%"],children:[{type:"button",id:"rename",label:"Rename",title:"Rename",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Rename)},onClick:h},{type:"button",id:"delete",label:"Remove",title:"Remove",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", +this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Remove)},onClick:h}]}]}]}]},{type:"hbox",id:"Options_text",children:[{type:"html",style:"text-align: justify;margin-top: 15px;white-space: normal!important; font-size: 12px;color:#777;",html:"
"+a.LocalizationComing.OptionsTextIntro+"
",onShow:function(){this.getElement().setText(a.LocalizationComing.OptionsTextIntro)}}]}]}]}],buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton],onOk:function(){var a=[]; +a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp",a);e.cookie.set("udn",j.getValue());e.postMessage.send({id:"options_checkbox_send"});f.getElement().hide();f.getElement().setHtml(" ")},onLoad:function(){b=this;e.postMessage.init(i);c.IgnoreAllCapsWords=b.getContentElement("OptionsTab","IgnoreAllCapsWords");c.IgnoreWordsNumbers=b.getContentElement("OptionsTab","IgnoreWordsNumbers");c.IgnoreMixedCaseWords= +b.getContentElement("OptionsTab","IgnoreMixedCaseWords");c.IgnoreDomainNames=b.getContentElement("OptionsTab","IgnoreDomainNames")},onShow:function(){var b=e.cookie.get("osp").split("");d.IgnoreAllCapsWords=b[0];d.IgnoreWordsNumbers=b[1];d.IgnoreMixedCaseWords=b[2];d.IgnoreDomainNames=b[3];!parseInt(d.IgnoreAllCapsWords,10)?c.IgnoreAllCapsWords.setValue("",!1):c.IgnoreAllCapsWords.setValue("checked",!1);!parseInt(d.IgnoreWordsNumbers,10)?c.IgnoreWordsNumbers.setValue("",!1):c.IgnoreWordsNumbers.setValue("checked", +!1);!parseInt(d.IgnoreMixedCaseWords,10)?c.IgnoreMixedCaseWords.setValue("",!1):c.IgnoreMixedCaseWords.setValue("checked",!1);!parseInt(d.IgnoreDomainNames,10)?c.IgnoreDomainNames.setValue("",!1):c.IgnoreDomainNames.setValue("checked",!1);d.IgnoreAllCapsWords=!c.IgnoreAllCapsWords.getValue()?0:1;d.IgnoreWordsNumbers=!c.IgnoreWordsNumbers.getValue()?0:1;d.IgnoreMixedCaseWords=!c.IgnoreMixedCaseWords.getValue()?0:1;d.IgnoreDomainNames=!c.IgnoreDomainNames.getValue()?0:1;c.IgnoreAllCapsWords.getElement().$.lastChild.innerHTML= +a.LocalizationComing.IgnoreAllCapsWords;c.IgnoreWordsNumbers.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreWordsWithNumbers;c.IgnoreMixedCaseWords.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreMixedCaseWords;c.IgnoreDomainNames.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreDomainNames}}});CKEDITOR.dialog.on("resize",function(b){var b=b.data,c=b.dialog,d=CKEDITOR.document.getById(a.iframeNumber+"_"+c._.currentTabId);"checkspell"==c._.name&&(a.bnr?d&& d.setSize("height",b.height-310):d&&d.setSize("height",b.height-220))});CKEDITOR.on("dialogDefinition",function(b){var c=b.data.definition;a.onLoadOverlay=new q({opacity:"1",background:"#fff",target:c.dialog.parts.tabs.getParent().$});a.onLoadOverlay.setEnable();c.dialog.on("show",function(){});c.dialog.on("cancel",function(){c.dialog.getParentEditor().config.wsc_onClose.call(this.document.getWindow().getFrame());a.div_overlay.setDisable();return!1},this,null,-1)})})(); \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc_ie.js b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc_ie.js index 6b39b0060..7de72a909 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc_ie.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/plugins/wsc/dialogs/wsc_ie.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),j(a)):180==d++&&window._cancelOnError(c)}}function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang|| -f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display", -"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",i=a.lang.wsc.notAvailable,k='', -l=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid="+a.config.wsc_customerId+"&cmd=script&doc=wsc&schema=22";a.config.wsc_customLoaderScript&&(i+='

'+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"

");window._cancelOnError=function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display", -"none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(k);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script", -{attributes:{type:"text/javascript",src:l}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,i),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}}); +/* + Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),j(a)):180==d++&&window._cancelOnError(c)}}function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang|| +f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display", +"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",i=a.lang.wsc.notAvailable,k='', +l=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid="+a.config.wsc_customerId+"&cmd=script&doc=wsc&schema=22";a.config.wsc_customLoaderScript&&(i+='

'+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"

");window._cancelOnError=function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display", +"none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(k);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script", +{attributes:{type:"text/javascript",src:l}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,i),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}}); CKEDITOR.dialog.on("resize",function(a){var a=a.data,c=a.dialog;"checkspell"==c._.name&&((c=(c=c.getContentElement("general","content").getElement())&&c.getChild(2))&&c.setSize("height",a.height),c&&c.setSize("width",a.width))}); \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/ajax.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/ajax.html index c3631c941..59333eb16 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/ajax.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/ajax.html @@ -1,82 +1,82 @@ - - - - - - Ajax — CKEditor Sample - - - - - -

- CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications -

-
-

- This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing - area will be displayed in a <div> element. -

-

- For details of how to create this setup check the source code of this sample page - for JavaScript code responsible for the creation and destruction of a CKEditor instance. -

-
-

Click the buttons to create and remove a CKEditor instance.

-

- - -

- -
-
- - - - + + + + + + Ajax — CKEditor Sample + + + + + +

+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

+
+

+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

+

+ For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

+
+

Click the buttons to create and remove a CKEditor instance.

+

+ + +

+ +
+
+ + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/api.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/api.html index 5becd3239..a957eed02 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/api.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/api.html @@ -1,207 +1,207 @@ - - - - - - API Usage — CKEditor Sample - - - - - - -

- CKEditor Samples » Using CKEditor JavaScript API -

-
-

- This sample shows how to use the - CKEditor JavaScript API - to interact with the editor at runtime. -

-

- For details on how to create this setup check the source code of this sample page. -

-
- - -
- -
-
- - - - -

-

- - -
- - - + + + + + + API Usage — CKEditor Sample + + + + + + +

+ CKEditor Samples » Using CKEditor JavaScript API +

+
+

+ This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+ + +
+ +
+
+ + + + +

+

+ + +
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/appendto.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/appendto.html index 39b212b93..e308eda94 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/appendto.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/appendto.html @@ -1,57 +1,57 @@ - - - - - - CKEDITOR.appendTo — CKEditor Sample - - - - -

- CKEditor Samples » Append To Page Element Using JavaScript Code -

-
-
-

- CKEDITOR.appendTo is basically to place editors - inside existing DOM elements. Unlike CKEDITOR.replace, - a target container to be replaced is no longer necessary. A new editor - instance is inserted directly wherever it is desired. -

-
CKEDITOR.appendTo( 'container_id',
-	{ /* Configuration options to be used. */ }
-	'Editor content to be used.'
-);
-
- -
-
- - - + + + + + + CKEDITOR.appendTo — CKEditor Sample + + + + +

+ CKEditor Samples » Append To Page Element Using JavaScript Code +

+
+
+

+ CKEDITOR.appendTo is basically to place editors + inside existing DOM elements. Unlike CKEDITOR.replace, + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

+
CKEDITOR.appendTo( 'container_id',
+	{ /* Configuration options to be used. */ }
+	'Editor content to be used.'
+);
+
+ +
+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/outputxhtml/outputxhtml.css index da4f71a12..fa0ff379b 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/outputxhtml/outputxhtml.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -1,204 +1,204 @@ -/* - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - * - * Styles used by the XHTML 1.1 sample page (xhtml.html). - */ - -/** - * Basic definitions for the editing area. - */ -body -{ - font-family: Arial, Verdana, sans-serif; - font-size: 80%; - color: #000000; - background-color: #ffffff; - padding: 5px; - margin: 0px; -} - -/** - * Core styles. - */ - -.Bold -{ - font-weight: bold; -} - -.Italic -{ - font-style: italic; -} - -.Underline -{ - text-decoration: underline; -} - -.StrikeThrough -{ - text-decoration: line-through; -} - -.Subscript -{ - vertical-align: sub; - font-size: smaller; -} - -.Superscript -{ - vertical-align: super; - font-size: smaller; -} - -/** - * Font faces. - */ - -.FontComic -{ - font-family: 'Comic Sans MS'; -} - -.FontCourier -{ - font-family: 'Courier New'; -} - -.FontTimes -{ - font-family: 'Times New Roman'; -} - -/** - * Font sizes. - */ - -.FontSmaller -{ - font-size: smaller; -} - -.FontLarger -{ - font-size: larger; -} - -.FontSmall -{ - font-size: 8pt; -} - -.FontBig -{ - font-size: 14pt; -} - -.FontDouble -{ - font-size: 200%; -} - -/** - * Font colors. - */ -.FontColor1 -{ - color: #ff9900; -} - -.FontColor2 -{ - color: #0066cc; -} - -.FontColor3 -{ - color: #ff0000; -} - -.FontColor1BG -{ - background-color: #ff9900; -} - -.FontColor2BG -{ - background-color: #0066cc; -} - -.FontColor3BG -{ - background-color: #ff0000; -} - -/** - * Indentation. - */ - -.Indent1 -{ - margin-left: 40px; -} - -.Indent2 -{ - margin-left: 80px; -} - -.Indent3 -{ - margin-left: 120px; -} - -/** - * Alignment. - */ - -.JustifyLeft -{ - text-align: left; -} - -.JustifyRight -{ - text-align: right; -} - -.JustifyCenter -{ - text-align: center; -} - -.JustifyFull -{ - text-align: justify; -} - -/** - * Other. - */ - -code -{ - font-family: courier, monospace; - background-color: #eeeeee; - padding-left: 1px; - padding-right: 1px; - border: #c0c0c0 1px solid; -} - -kbd -{ - padding: 0px 1px 0px 1px; - border-width: 1px 2px 2px 1px; - border-style: solid; -} - -blockquote -{ - color: #808080; -} +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/posteddata.php b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/posteddata.php index fd96f8f15..6b26aae3b 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/posteddata.php +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/posteddata.php @@ -1,59 +1,59 @@ - - - - - - Sample — CKEditor - - - -

- CKEditor — Posted Data -

- - - - - - - - - $value ) - { - if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) - continue; - - if ( get_magic_quotes_gpc() ) - $value = htmlspecialchars( stripslashes((string)$value) ); - else - $value = htmlspecialchars( (string)$value ); -?> - - - - - -
Field NameValue
- - - + + + + + + Sample — CKEditor + + + +

+ CKEditor — Posted Data +

+ + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
Field NameValue
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/sample.css b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/sample.css index a47e4ddfd..64167c258 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/sample.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/sample.css @@ -1,3 +1,3 @@ -/** - * Required by tests (dom/document.html). - */ +/** + * Required by tests (dom/document.html). + */ diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/uilanguages/languages.js b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/uilanguages/languages.js index 7d2d18bd4..224fd0717 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/uilanguages/languages.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/assets/uilanguages/languages.js @@ -1,7 +1,7 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", -is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional", "zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name - - - - - Data Filtering — CKEditor Sample - - - - - -

- CKEditor Samples » Data Filtering and Features Activation -

-
-

- This sample page demonstrates the idea of Advanced Content Filter - (ACF), a sophisticated - tool that takes control over what kind of data is accepted by the editor and what - kind of output is produced. -

-

When and what is being filtered?

-

- ACF controls - every single source of data that comes to the editor. - It process both HTML that is inserted manually (i.e. pasted by the user) - and programmatically like: -

-
-editor.setData( '<p>Hello world!</p>' );
-
-

- ACF discards invalid, - useless HTML tags and attributes so the editor remains "clean" during - runtime. ACF behaviour - can be configured and adjusted for a particular case to prevent the - output HTML (i.e. in CMS systems) from being polluted. - - This kind of filtering is a first, client-side line of defense - against "tag soups", - the tool that precisely restricts which tags, attributes and styles - are allowed (desired). When properly configured, ACF - is an easy and fast way to produce a high-quality, intentionally filtered HTML. -

- -

How to configure or disable ACF?

-

- Advanced Content Filter is enabled by default, working in "automatic mode", yet - it provides a set of easy rules that allow adjusting filtering rules - and disabling the entire feature when necessary. The config property - responsible for this feature is config.allowedContent. -

-

- By "automatic mode" is meant that loaded plugins decide which kind - of content is enabled and which is not. For example, if the link - plugin is loaded it implies that <a> tag is - automatically allowed. Each plugin is given a set - of predefined ACF rules - that control the editor until - config.allowedContent - is defined manually. -

-

- Let's assume our intention is to restrict the editor to accept (produce) paragraphs - only: no attributes, no styles, no other tags. - With ACF - this is very simple. Basically set - config.allowedContent to 'p': -

-
-var editor = CKEDITOR.replace( textarea_id, {
-	allowedContent: 'p'
-} );
-
-

- Now try to play with allowed content: -

-
-// Trying to insert disallowed tag and attribute.
-editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
-alert( editor.getData() );
-
-// Filtered data is returned.
-"<p>Hello world!</p>"
-
-

- What happened? Since config.allowedContent: 'p' is set the editor assumes - that only plain <p> are accepted. Nothing more. This is why - style attribute and <em> tag are gone. The same - filtering would happen if we pasted disallowed HTML into this editor. -

-

- This is just a small sample of what ACF - can do. To know more, please refer to the sample section below and - the official Advanced Content Filter guide. -

-

- You may, of course, want CKEditor to avoid filtering of any kind. - To get rid of ACF, - basically set - config.allowedContent to true like this: -

-
-CKEDITOR.replace( textarea_id, {
-	allowedContent: true
-} );
-
- -

Beyond data flow: Features activation

-

- ACF is far more than - I/O control: the entire - UI of the editor is adjusted to what - filters restrict. For example: if <a> tag is - disallowed - by ACF, - then accordingly link command, toolbar button and link dialog - are also disabled. Editor is smart: it knows which features must be - removed from the interface to match filtering rules. -

-

- CKEditor can be far more specific. If <a> tag is - allowed by filtering rules to be used but it is restricted - to have only one attribute (href) - config.allowedContent = 'a[!href]', then - "Target" tab of the link dialog is automatically disabled as target - attribute isn't included in ACF rules - for <a>. This behaviour applies to dialog fields, context - menus and toolbar buttons. -

- -

Sample configurations

-

- There are several editor instances below that present different - ACF setups. All of them, - except the last inline instance, share the same HTML content to visualize - how different filtering rules affect the same input data. -

-
- -
- -
-

- This editor is using default configuration ("automatic mode"). It means that - - config.allowedContent is defined by loaded plugins. - Each plugin extends filtering rules to make it's own associated content - available for the user. -

-
- - - -
- -
- -
- -
-

- This editor is using a custom configuration for - ACF: -

-
-CKEDITOR.replace( 'editor2', {
-	allowedContent:
-		'h1 h2 h3 p blockquote strong em;' +
-		'a[!href];' +
-		'img(left,right)[!src,alt,width,height];' +
-		'table tr th td caption;' +
-		'span{!font-family};' +'
-		'span{!color};' +
-		'span(!marker);' +
-		'del ins'
-} );
-
-

- The following rules may require additional explanation: -

-
    -
  • - h1 h2 h3 p blockquote strong em - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
  • - a[!href] - href attribute is obligatory - for <a> tag. Tags without this attribute - are disarded. No other attribute will be accepted. -
  • -
  • - img(left,right)[!src,alt,width,height] - src - attribute is obligatory for <img> tag. - alt, width, height - and class attributes are accepted but - class must be either class="left" - or class="right" -
  • -
  • - table tr th td caption - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
  • - span{!font-family}, span{!color}, - span(!marker) - <span> tags - will be accepted if either font-family or - color style is set or class="marker" - is present. -
  • -
  • - del ins - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
-

- Please note that UI of the - editor is different. It's a response to what happened to the filters. - Since text-align isn't allowed, the align toolbar is gone. - The same thing happened to subscript/superscript, strike, underline - (<u>, <sub>, <sup> - are disallowed by - config.allowedContent) and many other buttons. -

-
- - -
- -
- -
- -
-

- This editor is using a custom configuration for - ACF. - Note that filters can be configured as an object literal - as an alternative to a string-based definition. -

-
-CKEDITOR.replace( 'editor3', {
-	allowedContent: {
-		'b i ul ol big small': true,
-		'h1 h2 h3 p blockquote li': {
-			styles: 'text-align'
-		},
-		a: { attributes: '!href,target' },
-		img: {
-			attributes: '!src,alt',
-			styles: 'width,height',
-			classes: 'left,right'
-		}
-	}
-} );
-
-
- - -
- -
- -
- -
-

- This editor is using a custom set of plugins and buttons. -

-
-CKEDITOR.replace( 'editor4', {
-	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
-	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
-	format_tags: 'p;h1;h2;h3;pre;address'
-} );
-
-

- As you can see, removing plugins and buttons implies filtering. - Several tags are not allowed in the editor because there's no - plugin/button that is responsible for creating and editing this - kind of content (for example: the image is missing because - of removeButtons: 'Image'). The conclusion is that - ACF works "backwards" - as well: modifying UI - elements is changing allowed content rules. -

-
- - -
- -
- -
- -
-

- This editor is built on editable <h1> element. - ACF takes care of - what can be included in <h1>. Note that there - are no block styles in Styles combo. Also why lists, indentation, - blockquote, div, form and other buttons are missing. -

-

- ACF makes sure that - no disallowed tags will come to <h1> so the final - markup is valid. If the user tried to paste some invalid HTML - into this editor (let's say a list), it would be automatically - converted into plain text. -

-
-

- Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. -

-
- - - - + + + + + + Data Filtering — CKEditor Sample + + + + + +

+ CKEditor Samples » Data Filtering and Features Activation +

+
+

+ This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

+

When and what is being filtered?

+

+ ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

+
+editor.setData( '<p>Hello world!</p>' );
+
+

+ ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

+ +

How to configure or disable ACF?

+

+ Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

+

+ By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

+

+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

+
+var editor = CKEDITOR.replace( textarea_id, {
+	allowedContent: 'p'
+} );
+
+

+ Now try to play with allowed content: +

+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+

+ What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

+

+ This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

+

+ You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

+
+CKEDITOR.replace( textarea_id, {
+	allowedContent: true
+} );
+
+ +

Beyond data flow: Features activation

+

+ ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

+

+ CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

+ +

Sample configurations

+

+ There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

+
+ +
+ +
+

+ This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

+
+ + + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF: +

+
+CKEDITOR.replace( 'editor2', {
+	allowedContent:
+		'h1 h2 h3 p blockquote strong em;' +
+		'a[!href];' +
+		'img(left,right)[!src,alt,width,height];' +
+		'table tr th td caption;' +
+		'span{!font-family};' +'
+		'span{!color};' +
+		'span(!marker);' +
+		'del ins'
+} );
+
+

+ The following rules may require additional explanation: +

+
    +
  • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
  • +
  • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
  • +
  • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
  • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
  • +
  • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
  • +
+

+ Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

+
+CKEDITOR.replace( 'editor3', {
+	allowedContent: {
+		'b i ul ol big small': true,
+		'h1 h2 h3 p blockquote li': {
+			styles: 'text-align'
+		},
+		a: { attributes: '!href,target' },
+		img: {
+			attributes: '!src,alt',
+			styles: 'width,height',
+			classes: 'left,right'
+		}
+	}
+} );
+
+
+ + +
+ +
+ +
+ +
+

+ This editor is using a custom set of plugins and buttons. +

+
+CKEDITOR.replace( 'editor4', {
+	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+	format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+

+ As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

+
+ + +
+ +
+ +
+ +
+

+ This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

+

+ ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

+
+

+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

+
+ + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/divreplace.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/divreplace.html index 3ee0e0e2d..873c8c2e5 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/divreplace.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/divreplace.html @@ -1,141 +1,141 @@ - - - - - - Replace DIV — CKEditor Sample - - - - - - -

- CKEditor Samples » Replace DIV with CKEditor on the Fly -

-
-

- This sample shows how to automatically replace <div> elements - with a CKEditor instance on the fly, following user's doubleclick. The content - that was previously placed inside the <div> element will now - be moved into CKEditor editing area. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

- Double-click any of the following <div> elements to transform them into - editor instances. -

-
-

- Part 1 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-
-
-

- Part 2 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-

- Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus - sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum - vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. -

-
-
-

- Part 3 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-
- - - + + + + + + Replace DIV — CKEditor Sample + + + + + + +

+ CKEditor Samples » Replace DIV with CKEditor on the Fly +

+
+

+ This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ Double-click any of the following <div> elements to transform them into + editor instances. +

+
+

+ Part 1 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+
+

+ Part 2 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+

+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

+
+
+

+ Part 3 +

+

+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/index.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/index.html index 964c5a3ad..d5501621a 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/index.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/index.html @@ -1,128 +1,128 @@ - - - - - - CKEditor Samples - - - -

- CKEditor Samples -

-
-
-

- Basic Samples -

-
-
Replace textarea elements by class name
-
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
- -
Replace textarea elements by code
-
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
- -
Create editors with jQuery
-
Creating standard and inline CKEditor instances with jQuery adapter.
-
- -

- Basic Customization -

-
-
User Interface color
-
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
- -
User Interface languages
-
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
-
- - -

Plugins

-
-
Magicline plugin
-
Using the Magicline plugin to access difficult focus spaces.
- -
Full page support
-
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
-
-
-
-

- Inline Editing -

-
-
Massive inline editor creation
-
Turn all elements with contentEditable = true attribute into inline editors.
- -
Convert element into an inline editor by code
-
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
- -
Replace textarea with inline editor New!
-
A form with a textarea that is replaced by an inline editor at runtime.
- - -
- -

- Advanced Samples -

-
-
Data filtering and features activation New!
-
Data filtering and automatic features activation basing on configuration.
- -
Replace DIV elements on the fly
-
Transforming a div element into an instance of CKEditor with a mouse click.
- -
Append editor instances
-
Appending editor instances to existing DOM elements.
- -
Create and destroy editor instances for Ajax applications
-
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
- -
Basic usage of the API
-
Using the CKEditor JavaScript API to interact with the editor at runtime.
- -
XHTML-compliant style
-
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
- -
Read-only mode
-
Using the readOnly API to block introducing changes to the editor contents.
- -
"Tab" key-based navigation
-
Navigating among editor instances with tab key.
- - - -
Using the JavaScript API to customize dialog windows
-
Using the dialog windows API to customize dialog windows without changing the original editor code.
- -
Using the "Enter" key in CKEditor
-
Configuring the behavior of Enter and Shift+Enter keys.
- -
Output for Flash
-
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
- -
Output HTML
-
Configuring CKEditor to produce legacy HTML 4 code.
- -
Toolbar Configurations
-
Configuring CKEditor to display full or custom toolbar layout.
- -
-
-
- - - + + + + + + CKEditor Samples + + + +

+ CKEditor Samples +

+
+
+

+ Basic Samples +

+
+
Replace textarea elements by class name
+
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+ +
Replace textarea elements by code
+
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+ +
Create editors with jQuery
+
Creating standard and inline CKEditor instances with jQuery adapter.
+
+ +

+ Basic Customization +

+
+
User Interface color
+
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+ +
User Interface languages
+
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+ + +

Plugins

+
+
Magicline plugin
+
Using the Magicline plugin to access difficult focus spaces.
+ +
Full page support
+
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
+
+
+
+

+ Inline Editing +

+
+
Massive inline editor creation
+
Turn all elements with contentEditable = true attribute into inline editors.
+ +
Convert element into an inline editor by code
+
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
+ +
Replace textarea with inline editor New!
+
A form with a textarea that is replaced by an inline editor at runtime.
+ + +
+ +

+ Advanced Samples +

+
+
Data filtering and features activation New!
+
Data filtering and automatic features activation basing on configuration.
+ +
Replace DIV elements on the fly
+
Transforming a div element into an instance of CKEditor with a mouse click.
+ +
Append editor instances
+
Appending editor instances to existing DOM elements.
+ +
Create and destroy editor instances for Ajax applications
+
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
+ +
Basic usage of the API
+
Using the CKEditor JavaScript API to interact with the editor at runtime.
+ +
XHTML-compliant style
+
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
+ +
Read-only mode
+
Using the readOnly API to block introducing changes to the editor contents.
+ +
"Tab" key-based navigation
+
Navigating among editor instances with tab key.
+ + + +
Using the JavaScript API to customize dialog windows
+
Using the dialog windows API to customize dialog windows without changing the original editor code.
+ +
Using the "Enter" key in CKEditor
+
Configuring the behavior of Enter and Shift+Enter keys.
+ +
Output for Flash
+
Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
+ +
Output HTML
+
Configuring CKEditor to produce legacy HTML 4 code.
+ +
Toolbar Configurations
+
Configuring CKEditor to display full or custom toolbar layout.
+ +
+
+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/inlineall.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/inlineall.html index 250f0c54d..f82af1dbd 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/inlineall.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/inlineall.html @@ -1,311 +1,311 @@ - - - - - - Massive inline editing — CKEditor Sample - - - - - - -
-

CKEditor Samples » Massive inline editing

-
-

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

-
<div contenteditable="true" > ... </div>
-

Click inside of any element below to start editing.

-
-
-
- -
-
-
-

- Fusce vitae porttitor -

-

- - Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. - -

-

- Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. -

-
-

- Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. - Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum -

-
-
-

- Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. -

-
-

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

-

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

-
-
-
-
-

- Integer condimentum sit amet -

-

- Aenean nonummy a, mattis varius. Cras aliquet. - Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

-

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

-

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

-
-
-

- Praesent wisi accumsan sit amet nibh -

-

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

-

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

-

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

-
-
-
-
-

- CKEditor logo -

-

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

-

- Nullam laoreet vel consectetuer tellus suscipit -

-
    -
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • -
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • -
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • -
-

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

-

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

-

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

-
-
-
-
- Tags of this article: -

- inline, editing, floating, CKEditor -

-
-
- - - + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
+

CKEditor Samples » Massive inline editing

+
+

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

+
<div contenteditable="true" > ... </div>
+

Click inside of any element below to start editing.

+
+
+
+ +
+
+
+

+ Fusce vitae porttitor +

+

+ + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

+

+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

+
+

+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

+
+
+

+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

+
+

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

+

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

+
+
+
+
+

+ Integer condimentum sit amet +

+

+ Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

+

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

+

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

+
+
+

+ Praesent wisi accumsan sit amet nibh +

+

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

+

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

+

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

+
+
+
+
+

+ CKEditor logo +

+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

+

+ Nullam laoreet vel consectetuer tellus suscipit +

+
    +
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • +
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • +
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • +
+

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

+

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

+

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

+
+
+
+
+ Tags of this article: +

+ inline, editing, floating, CKEditor +

+
+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinebycode.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinebycode.html index fe627d087..4e4753672 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinebycode.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinebycode.html @@ -1,121 +1,121 @@ - - - - - - Inline Editing by Code — CKEditor Sample - - - - - -

- CKEditor Samples » Inline Editing by Code -

-
-

- This sample shows how to create an inline editor instance of CKEditor. It is created - with a JavaScript call using the following code: -

-
-// This property tells CKEditor to not activate every element with contenteditable=true element.
-CKEDITOR.disableAutoInline = true;
-
-var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
-
-

- Note that editable in the code above is the id - attribute of the <div> element to be converted into an inline instance. -

-
-
-

Saturn V carrying Apollo 11 Apollo 11

- -

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

- -

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

- -

Broadcasting and quotes

- -

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

- -
-

One small step for [a] man, one giant leap for mankind.

-
- -

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

- -
-

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

-
- -

Technical details

- - - - - - - - - - - - - - - - - - - - - - - -
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
- -

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

- -
    -
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. -
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. -
  5. Lunar Module for landing on the Moon.
  6. -
- -

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

- -
-

Source: Wikipedia.org

-
- - - - - + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

+ CKEditor Samples » Inline Editing by Code +

+
+

+ This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+

+ Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

+
+
+

Saturn V carrying Apollo 11 Apollo 11

+ +

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+ +

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

+ +

Broadcasting and quotes

+ +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+ +
+

One small step for [a] man, one giant leap for mankind.

+
+ +

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

+ +
+

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +

Technical details

+ + + + + + + + + + + + + + + + + + + + + + + +
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
+ +

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

+ +
    +
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. +
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. +
  5. Lunar Module for landing on the Moon.
  6. +
+ +

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

+ +
+

Source: Wikipedia.org

+
+ + + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinetextarea.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinetextarea.html index 9da5ed3b9..97ced1edc 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinetextarea.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/inlinetextarea.html @@ -1,110 +1,110 @@ - - - - - - Replace Textarea with Inline Editor — CKEditor Sample - - - - - -

- CKEditor Samples » Replace Textarea with Inline Editor -

-
-

- You can also create an inline editor from a textarea - element. In this case the textarea will be replaced - by a div element with inline editing enabled. -

-
-// "article-body" is the name of a textarea element.
-var editor = CKEDITOR.inline( 'article-body' );
-
-
-
-

This is a sample form with some fields

-

- Title:
-

-

- Article Body (Textarea converted to CKEditor):
- -

-

- -

-
- - - - - + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

+ CKEditor Samples » Replace Textarea with Inline Editor +

+
+

+ You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+

This is a sample form with some fields

+

+ Title:
+

+

+ Article Body (Textarea converted to CKEditor):
+ +

+

+ +

+
+ + + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/jquery.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/jquery.html index b26607963..67102f36c 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/jquery.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/jquery.html @@ -1,97 +1,97 @@ - - - - - - jQuery Adapter — CKEditor Sample - - - - - - - - -

- CKEditor Samples » Create Editors with jQuery -

-
-
-

- This sample shows how to use the jQuery adapter. - Note that you have to include both CKEditor and jQuery scripts before including the adapter. -

-
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-<script src="/ckeditor/ckeditor.js"></script>
-<script src="/ckeditor/adapters/jquery.js"></script>
-
-

Then you can replace html elements with a CKEditor instance using the ckeditor() method.

-
-$( document ).ready( function() {
-	$( 'textarea#editor1' ).ckeditor();
-} );
-
-
- -

Inline Example

- -
-

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

-

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. -

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

-

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

-
- -
- -

Framed Example

- - - -

- - - - - -

-
- - - + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » Create Editors with jQuery +

+
+
+

+ This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

+
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckeditor/ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+

Then you can replace html elements with a CKEditor instance using the ckeditor() method.

+
+$( document ).ready( function() {
+	$( 'textarea#editor1' ).ckeditor();
+} );
+
+
+ +

Inline Example

+ +
+

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

+

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

+

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

+
+ +
+ +

Framed Example

+ + + +

+ + + + + +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js index 3d8f3694d..3edd07286 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -1,48 +1,48 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -CKEDITOR.dialog.add( 'myDialog', function( editor ) { - return { - title: 'My Dialog', - minWidth: 400, - minHeight: 200, - contents: [ - { - id: 'tab1', - label: 'First Tab', - title: 'First Tab', - elements: [ - { - id: 'input1', - type: 'text', - label: 'Text Field' - }, - { - id: 'select1', - type: 'select', - label: 'Select Field', - items: [ - [ 'option1', 'value1' ], - [ 'option2', 'value2' ] - ] - } - ] - }, - { - id: 'tab2', - label: 'Second Tab', - title: 'Second Tab', - elements: [ - { - id: 'button1', - type: 'button', - label: 'Button Field' - } - ] - } - ] - }; -} ); - +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/dialog.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/dialog.html index b4940b214..df09d25b3 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/dialog.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/dialog/dialog.html @@ -1,187 +1,187 @@ - - - - - - Using API to Customize Dialog Windows — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » Using CKEditor Dialog API -

-
-

- This sample shows how to use the - CKEditor Dialog API - to customize CKEditor dialog windows without changing the original editor code. - The following customizations are being done in the example below: -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

-
    -
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. -
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. -
- - -

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

-
    -
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. -
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. -
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. -
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. -
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. -
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. -
- - - - - + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Using CKEditor Dialog API +

+
+

+ This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

+
    +
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. +
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. +
+ + +

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

+
    +
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. +
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. +
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. +
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. +
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. +
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. +
+ + + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/enterkey/enterkey.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/enterkey/enterkey.html index f49d9d76f..2d5150122 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/enterkey/enterkey.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/enterkey/enterkey.html @@ -1,103 +1,103 @@ - - - - - - ENTER Key Configuration — CKEditor Sample - - - - - - - - -

- CKEditor Samples » ENTER Key Configuration -

-
-

- This sample shows how to configure the Enter and Shift+Enter keys - to perform actions specified in the - enterMode - and shiftEnterMode - parameters, respectively. - You can choose from the following options: -

-
    -
  • ENTER_P – new <p> paragraphs are created;
  • -
  • ENTER_BR – lines are broken with <br> elements;
  • -
  • ENTER_DIV – new <div> blocks are created.
  • -
-

- The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. -

-
-CKEDITOR.replace( 'textarea_id', {
-	enterMode: CKEDITOR.ENTER_DIV
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-
-
- When Enter is pressed:
- -
-
- When Shift+Enter is pressed:
- -
-
-
-

-
- -

-

- -

-
- - - + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

+ CKEditor Samples » ENTER Key Configuration +

+
+

+ This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

+
    +
  • ENTER_P – new <p> paragraphs are created;
  • +
  • ENTER_BR – lines are broken with <br> elements;
  • +
  • ENTER_DIV – new <div> blocks are created.
  • +
+

+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

+
+CKEDITOR.replace( 'textarea_id', {
+	enterMode: CKEDITOR.ENTER_DIV
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+ When Enter is pressed:
+ +
+
+ When Shift+Enter is pressed:
+ +
+
+
+

+
+ +

+

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js index 95fdf0a7a..d25ba25f4 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -1,18 +1,18 @@ -var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= -O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", -c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& -e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ -h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& -(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} -function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), -e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", -O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== -r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), -e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, -0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== -b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c - - - - - Output for Flash — CKEditor Sample - - - - - - - - - - - -

- CKEditor Samples » Producing Flash Compliant HTML Output -

-
-

- This sample shows how to configure CKEditor to output - HTML code that can be used with - - Adobe Flash. - The code will contain a subset of standard HTML elements like <b>, - <i>, and <p> as well as HTML attributes. -

-

- To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard - JavaScript call, and define CKEditor features to use HTML elements and attributes. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

- To see how it works, create some content in the editing area of CKEditor on the left - and send it to the Flash object on the right side of the page by using the - Send to Flash button. -

- - - - - -
- - -

- -

-
-
-
- - - + + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

+ CKEditor Samples » Producing Flash Compliant HTML Output +

+
+

+ This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

+

+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+

+ To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

+ + + + + +
+ + +

+ +

+
+
+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html index d857b4e75..f25697df4 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -1,221 +1,221 @@ - - - - - - HTML Compliant Output — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » Producing HTML Compliant Output -

-
-

- This sample shows how to configure CKEditor to output valid - HTML 4.01 code. - Traditional HTML elements like <b>, - <i>, and <font> are used in place of - <strong>, <em>, and CSS styles. -

-

- To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard - JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. -

-

- A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

-
-CKEDITOR.replace( 'textarea_id', {
-	coreStyles_bold: { element: 'b' },
-	coreStyles_italic: { element: 'i' },
-
-	fontSize_style: {
-		element: 'font',
-		attributes: { 'size': '#(size)' }
-	}
-
-	...
-});
-
-
-

- - - -

-

- -

-
- - - + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Producing HTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

+

+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	coreStyles_bold: { element: 'b' },
+	coreStyles_italic: { element: 'i' },
+
+	fontSize_style: {
+		element: 'font',
+		attributes: { 'size': '#(size)' }
+	}
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/magicline/magicline.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/magicline/magicline.html index 1638f4c44..800fbb3b1 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/magicline/magicline.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/magicline/magicline.html @@ -1,206 +1,206 @@ - - - - - - Using Magicline plugin — CKEditor Sample - - - - - - - -

- CKEditor Samples » Using Magicline plugin -

-
-

- This sample shows the advantages of Magicline plugin - which is to enhance the editing process. Thanks to this plugin, - a number of difficult focus spaces which are inaccessible due to - browser issues can now be focused. -

-

- Magicline plugin shows a red line with a handler - which, when clicked, inserts a paragraph and allows typing. To see this, - focus an editor and move your mouse above the focus space you want - to access. The plugin is enabled by default so no additional - configuration is necessary. -

-
-
- -
-

- This editor uses a default Magicline setup. -

-
- - -
-
-
- -
-

- This editor is using a blue line. -

-
-CKEDITOR.replace( 'editor2', {
-	magicline_color: 'blue'
-});
-
- - -
- - - + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Using Magicline plugin +

+
+

+ This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

+

+ Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

+
+
+ +
+

+ This editor uses a default Magicline setup. +

+
+ + +
+
+
+ +
+

+ This editor is using a blue line. +

+
+CKEDITOR.replace( 'editor2', {
+	magicline_color: 'blue'
+});
+
+ + +
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/toolbar/toolbar.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/toolbar/toolbar.html index 7d7a99eb1..6cf2ddf13 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/toolbar/toolbar.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/toolbar/toolbar.html @@ -1,232 +1,232 @@ - - - - - - Toolbar Configuration — CKEditor Sample - - - - - - - -

- CKEditor Samples » Toolbar Configuration -

-
-

- This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if - current editor's configuration modifies default settings, also editor with modified toolbar. -

- -

Since CKEditor 4 there are two ways to configure toolbar buttons.

- -

By config.toolbar

- -

- You can explicitly define which buttons are displayed in which groups and in which order. - This is the more precise setting, but less flexible. If newly added plugin adds its - own button you'll have to add it manually to your config.toolbar setting as well. -

- -

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

- -
-CKEDITOR.replace( 'textarea_id', {
-	toolbar: [
-		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
-		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
-		'/',																					// Line break - next group will be placed in new line.
-		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
-	]
-});
- -

By config.toolbarGroups

- -

- You can define which groups of buttons (like e.g. basicstyles, clipboard - and forms) are displayed and in which order. Registered buttons are associated - with toolbar groups by toolbar property in their definition. - This setting's advantage is that you don't have to modify toolbar configuration - when adding/removing plugins which register their own buttons. -

- -

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

- -
-CKEDITOR.replace( 'textarea_id', {
-	toolbarGroups: [
-		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
- 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
- 		'/',																// Line break - next group will be placed in new line.
- 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
- 		{ name: 'links' }
-	]
-
-	// NOTE: Remember to leave 'toolbar' property with the default value (null).
-});
-
- - - -
-

Full toolbar configuration

-

Below you can see editor with full toolbar, generated automatically by the editor.

-

- Note: To create editor instance with full toolbar you don't have to set anything. - Just leave toolbar and toolbarGroups with the default, null values. -

- -

-	
- - - - - - + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

+ CKEditor Samples » Toolbar Configuration +

+
+

+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

+ +

Since CKEditor 4 there are two ways to configure toolbar buttons.

+ +

By config.toolbar

+ +

+ You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

+ +

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbar: [
+		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
+		'/',																					// Line break - next group will be placed in new line.
+		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+	]
+});
+ +

By config.toolbarGroups

+ +

+ You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

+ +

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

+ +
+CKEDITOR.replace( 'textarea_id', {
+	toolbarGroups: [
+		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
+ 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
+ 		'/',																// Line break - next group will be placed in new line.
+ 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ 		{ name: 'links' }
+	]
+
+	// NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+ + + +
+

Full toolbar configuration

+

Below you can see editor with full toolbar, generated automatically by the editor.

+

+ Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

+ +

+	
+ + + + + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html index 696da0fb3..911057690 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -1,77 +1,77 @@ - - - - - - Full Page Editing — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » Full Page Editing -

-
-

- This sample shows how to configure CKEditor to edit entire HTML pages, from the - <html> tag to the </html> tag. -

-

- The CKEditor instance below is inserted with a JavaScript call using the following code: -

-
-CKEDITOR.replace( 'textarea_id', {
-	fullPage: true,
-	allowedContent: true
-});
-
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-

- The allowedContent in the code above is set to true to disable content filtering. - Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. -

-
-
- - - -

- -

-
- - - + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

+ CKEditor Samples » Full Page Editing +

+
+

+ This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

+

+ The CKEditor instance below is inserted with a JavaScript call using the following code: +

+
+CKEDITOR.replace( 'textarea_id', {
+	fullPage: true,
+	allowedContent: true
+});
+
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

+
+
+ + + +

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/readonly.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/readonly.html index cf609df77..58f97069c 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/readonly.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/readonly.html @@ -1,73 +1,73 @@ - - - - - - Using the CKEditor Read-Only API — CKEditor Sample - - - - - -

- CKEditor Samples » Using the CKEditor Read-Only API -

-
-

- This sample shows how to use the - setReadOnly - API to put editor into the read-only state that makes it impossible for users to change the editor contents. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-
-

- -

-

- - -

-
- - - + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

+ CKEditor Samples » Using the CKEditor Read-Only API +

+
+

+ This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

+

+ For details on how to create this setup check the source code of this sample page. +

+
+
+

+ +

+

+ + +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebyclass.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebyclass.html index 6baea4cf5..6fc3e6fed 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebyclass.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebyclass.html @@ -1,57 +1,57 @@ - - - - - - Replace Textareas by Class Name — CKEditor Sample - - - - -

- CKEditor Samples » Replace Textarea Elements by Class Name -

-
-

- This sample shows how to automatically replace all <textarea> elements - of a given class with a CKEditor instance. -

-

- To replace a <textarea> element, simply assign it the ckeditor - class, as in the code below: -

-
-<textarea class="ckeditor" name="editor1"></textarea>
-
-

- Note that other <textarea> attributes (like id or name) need to be adjusted to your document. -

-
-
-

- - -

-

- -

-
- - - + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements by Class Name +

+
+

+ This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

+

+ To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

+
+<textarea class="ckeditor" name="editor1"></textarea>
+
+

+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

+
+
+

+ + +

+

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebycode.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebycode.html index 8e7d7f703..e5a4c5baf 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebycode.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/replacebycode.html @@ -1,56 +1,56 @@ - - - - - - Replace Textarea by Code — CKEditor Sample - - - - -

- CKEditor Samples » Replace Textarea Elements Using JavaScript Code -

-
-
-

- This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. -

-
-CKEDITOR.replace( 'textarea_id' )
-
-
- - -

- -

-
- - - + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

+
+
+

+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

+
+CKEDITOR.replace( 'textarea_id' )
+
+
+ + +

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.css b/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.css index f0686ea16..8cc2eb9bb 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.css @@ -1,356 +1,356 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ - -html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre -{ - line-height: 1.5; -} - -body -{ - padding: 10px 30px; -} - -input, textarea, select, option, optgroup, button, td, th -{ - font-size: 100%; -} - -pre, code, kbd, samp, tt -{ - font-family: monospace,monospace; - font-size: 1em; -} - -body { - width: 960px; - margin: 0 auto; -} - -code -{ - background: #f3f3f3; - border: 1px solid #ddd; - padding: 1px 4px; - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -abbr -{ - border-bottom: 1px dotted #555; - cursor: pointer; -} - -.new, .beta -{ - text-transform: uppercase; - font-size: 10px; - font-weight: bold; - padding: 1px 4px; - margin: 0 0 0 5px; - color: #fff; - float: right; - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.new -{ - background: #FF7E00; - border: 1px solid #DA8028; - text-shadow: 0 1px 0 #C97626; - - -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; - -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; - box-shadow: 0 2px 3px 0 #FFA54E inset; -} - -.beta -{ - background: #18C0DF; - border: 1px solid #19AAD8; - text-shadow: 0 1px 0 #048CAD; - font-style: italic; - - -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; - -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; - box-shadow: 0 2px 3px 0 #50D4FD inset; -} - -h1.samples -{ - color: #0782C1; - font-size: 200%; - font-weight: normal; - margin: 0; - padding: 0; -} - -h1.samples a -{ - color: #0782C1; - text-decoration: none; - border-bottom: 1px dotted #0782C1; -} - -.samples a:hover -{ - border-bottom: 1px dotted #0782C1; -} - -h2.samples -{ - color: #000000; - font-size: 130%; - margin: 15px 0 0 0; - padding: 0; -} - -p, blockquote, address, form, pre, dl, h1.samples, h2.samples -{ - margin-bottom: 15px; -} - -ul.samples -{ - margin-bottom: 15px; -} - -.clear -{ - clear: both; -} - -fieldset -{ - margin: 0; - padding: 10px; -} - -body, input, textarea -{ - color: #333333; - font-family: Arial, Helvetica, sans-serif; -} - -body -{ - font-size: 75%; -} - -a.samples -{ - color: #189DE1; - text-decoration: none; -} - -form -{ - margin: 0; - padding: 0; -} - -pre.samples -{ - background-color: #F7F7F7; - border: 1px solid #D7D7D7; - overflow: auto; - padding: 0.25em; - white-space: pre-wrap; /* CSS 2.1 */ - word-wrap: break-word; /* IE7 */ - -moz-tab-size: 4; - -o-tab-size: 4; - -webkit-tab-size: 4; - tab-size: 4; -} - -#footer -{ - clear: both; - padding-top: 10px; -} - -#footer hr -{ - margin: 10px 0 15px 0; - height: 1px; - border: solid 1px gray; - border-bottom: none; -} - -#footer p -{ - margin: 0 10px 10px 10px; - float: left; -} - -#footer #copy -{ - float: right; -} - -#outputSample -{ - width: 100%; - table-layout: fixed; -} - -#outputSample thead th -{ - color: #dddddd; - background-color: #999999; - padding: 4px; - white-space: nowrap; -} - -#outputSample tbody th -{ - vertical-align: top; - text-align: left; -} - -#outputSample pre -{ - margin: 0; - padding: 0; -} - -.description -{ - border: 1px dotted #B7B7B7; - margin-bottom: 10px; - padding: 10px 10px 0; - overflow: hidden; -} - -label -{ - display: block; - margin-bottom: 6px; -} - -/** - * CKEditor editables are automatically set with the "cke_editable" class - * plus cke_editable_(inline|themed) depending on the editor type. - */ - -/* Style a bit the inline editables. */ -.cke_editable.cke_editable_inline -{ - cursor: pointer; -} - -/* Once an editable element gets focused, the "cke_focus" class is - added to it, so we can style it differently. */ -.cke_editable.cke_editable_inline.cke_focus -{ - box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; - outline: none; - background: #eee; - cursor: text; -} - -/* Avoid pre-formatted overflows inline editable. */ -.cke_editable_inline pre -{ - white-space: pre-wrap; - word-wrap: break-word; -} - -/** - * Samples index styles. - */ - -.twoColumns, -.twoColumnsLeft, -.twoColumnsRight -{ - overflow: hidden; -} - -.twoColumnsLeft, -.twoColumnsRight -{ - width: 45%; -} - -.twoColumnsLeft -{ - float: left; -} - -.twoColumnsRight -{ - float: right; -} - -dl.samples -{ - padding: 0 0 0 40px; -} -dl.samples > dt -{ - display: list-item; - list-style-type: disc; - list-style-position: outside; - margin: 0 0 3px; -} -dl.samples > dd -{ - margin: 0 0 3px; -} -.warning -{ - color: #ff0000; - background-color: #FFCCBA; - border: 2px dotted #ff0000; - padding: 15px 10px; - margin: 10px 0; -} - -/* Used on inline samples */ - -blockquote -{ - font-style: italic; - font-family: Georgia, Times, "Times New Roman", serif; - padding: 2px 0; - border-style: solid; - border-color: #ccc; - border-width: 0; -} - -.cke_contents_ltr blockquote -{ - padding-left: 20px; - padding-right: 8px; - border-left-width: 5px; -} - -.cke_contents_rtl blockquote -{ - padding-left: 8px; - padding-right: 20px; - border-right-width: 5px; -} - -img.right { - border: 1px solid #ccc; - float: right; - margin-left: 15px; - padding: 5px; -} - -img.left { - border: 1px solid #ccc; - float: left; - margin-right: 15px; - padding: 5px; -} +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.js b/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.js index b96b3bf0a..b25482d3a 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/sample.js @@ -1,50 +1,50 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -// Tool scripts for the sample pages. -// This file can be ignored and is not required to make use of CKEditor. - -( function() { - CKEDITOR.on( 'instanceReady', function( ev ) { - // Check for sample compliance. - var editor = ev.editor, - meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), - requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], - missing = [], - i; - - if ( requires.length ) { - for ( i = 0; i < requires.length; i++ ) { - if ( !editor.plugins[ requires[ i ] ] ) - missing.push( '' + requires[ i ] + '' ); - } - - if ( missing.length ) { - var warn = CKEDITOR.dom.element.createFromHtml( - '
' + - 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + - '
' - ); - warn.insertBefore( editor.container ); - } - } - - // Set icons. - var doc = new CKEDITOR.dom.document( document ), - icons = doc.find( '.button_icon' ); - - for ( i = 0; i < icons.count(); i++ ) { - var icon = icons.getItem( i ), - name = icon.getAttribute( 'data-icon' ), - style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); - - icon.addClass( 'cke_button_icon' ); - icon.addClass( 'cke_button__' + name + '_icon' ); - icon.setAttribute( 'style', style ); - icon.setStyle( 'float', 'none' ); - - } - } ); -} )(); +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/sample_posteddata.php b/plugins/redmine_ckeditor/assets/ckeditor/samples/sample_posteddata.php index 7637104a8..e4869b7cd 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/sample_posteddata.php +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/sample_posteddata.php @@ -1,16 +1,16 @@ -
-
--------------------------------------------------------------------------------------------
-  CKEditor - Posted Data
-
-  We are sorry, but your Web server does not support the PHP language used in this script.
-
-  Please note that CKEditor can be used with any other server-side language than just PHP.
-  To save the content created with CKEditor you need to read the POST data on the server
-  side and write it to a file or the database.
-
-  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
-  For licensing, see LICENSE.md or http://ckeditor.com/license
--------------------------------------------------------------------------------------------
-
-
*/ include "assets/posteddata.php"; ?> +
+
+-------------------------------------------------------------------------------------------
+  CKEditor - Posted Data
+
+  We are sorry, but your Web server does not support the PHP language used in this script.
+
+  Please note that CKEditor can be used with any other server-side language than just PHP.
+  To save the content created with CKEditor you need to read the POST data on the server
+  side and write it to a file or the database.
+
+  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
+  For licensing, see LICENSE.md or http://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+
*/ include "assets/posteddata.php"; ?> diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/tabindex.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/tabindex.html index 8c2eb413f..89521668b 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/tabindex.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/tabindex.html @@ -1,75 +1,75 @@ - - - - - - TAB Key-Based Navigation — CKEditor Sample - - - - - - -

- CKEditor Samples » TAB Key-Based Navigation -

-
-

- This sample shows how tab key navigation among editor instances is - affected by the tabIndex attribute from - the original page element. Use TAB key to move between the editors. -

-
-

- -

-
-

- -

-

- -

- - - + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

+ CKEditor Samples » TAB Key-Based Navigation +

+
+

+ This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

+
+

+ +

+
+

+ +

+

+ +

+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/uicolor.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/uicolor.html index 9a42c7887..ce4b2a261 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/uicolor.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/uicolor.html @@ -1,69 +1,69 @@ - - - - - - UI Color Picker — CKEditor Sample - - - - -

- CKEditor Samples » UI Color -

-
-

- This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the color of its user interface.
- Note:The UI skin color feature depends on the CKEditor skin - compatibility. The Moono and Kama skins are examples of skins that work with it. -

-
-
-

- This editor instance has a UI color value defined in configuration to change the skin color, - To specify the color of the user interface, set the uiColor property: -

-
-CKEDITOR.replace( 'textarea_id', {
-	uiColor: '#14B8C4'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-

- - -

-

- -

-
- - - + + + + + + UI Color Picker — CKEditor Sample + + + + +

+ CKEditor Samples » UI Color +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
+ Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

+
+
+

+ This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	uiColor: '#14B8C4'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+

+ + +

+

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/uilanguages.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/uilanguages.html index f428fdbbd..66acca438 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/uilanguages.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/uilanguages.html @@ -1,119 +1,119 @@ - - - - - - User Interface Globalization — CKEditor Sample - - - - - -

- CKEditor Samples » User Interface Languages -

-
-

- This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the language of its user interface. -

-

- It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates - a drop-down list that lets the user change the UI language. -

-

- By default, CKEditor automatically localizes the editor to the language of the user. - The UI language can be controlled with two configuration options: - language and - - defaultLanguage. The defaultLanguage setting specifies the - default CKEditor language to be used when a localization suitable for user's settings is not available. -

-

- To specify the user interface language that will be used no matter what language is - specified in user's browser or operating system, set the language property: -

-
-CKEDITOR.replace( 'textarea_id', {
-	// Load the German interface.
-	language: 'de'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-
-
-

- Available languages ( languages!):
- -
- - (You may see strange characters if your system does not support the selected language) - -

-

- - -

-
- - - + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

+ CKEditor Samples » User Interface Languages +

+
+

+ This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

+

+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

+

+ By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

+

+ To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

+
+CKEDITOR.replace( 'textarea_id', {
+	// Load the German interface.
+	language: 'de'
+});
+

+ Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

+
+
+

+ Available languages ( languages!):
+ +
+ + (You may see strange characters if your system does not support the selected language) + +

+

+ + +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/samples/xhtmlstyle.html b/plugins/redmine_ckeditor/assets/ckeditor/samples/xhtmlstyle.html index 600cddca8..f219d11d0 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/samples/xhtmlstyle.html +++ b/plugins/redmine_ckeditor/assets/ckeditor/samples/xhtmlstyle.html @@ -1,231 +1,231 @@ - - - - - - XHTML Compliant Output — CKEditor Sample - - - - - - -

- CKEditor Samples » Producing XHTML Compliant Output -

-
-

- This sample shows how to configure CKEditor to output valid - XHTML 1.1 code. - Deprecated elements (<font>, <u>) or attributes - (size, face) will be replaced with XHTML compliant code. -

-

- To add a CKEditor instance outputting valid XHTML code, load the editor using a standard - JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. -

-

- A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

-
-CKEDITOR.replace( 'textarea_id', {
-	contentsCss: 'assets/outputxhtml.css',
-
-	coreStyles_bold: {
-		element: 'span',
-		attributes: { 'class': 'Bold' }
-	},
-	coreStyles_italic: {
-		element: 'span',
-		attributes: { 'class': 'Italic' }
-	},
-
-	...
-});
-
-
-

- - - -

-

- -

-
- - - + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

+ CKEditor Samples » Producing XHTML Compliant Output +

+
+

+ This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

+

+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

+

+ A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

+
+CKEDITOR.replace( 'textarea_id', {
+	contentsCss: 'assets/outputxhtml.css',
+
+	coreStyles_bold: {
+		element: 'span',
+		attributes: { 'class': 'Bold' }
+	},
+	coreStyles_italic: {
+		element: 'span',
+		attributes: { 'class': 'Italic' }
+	},
+
+	...
+});
+
+
+

+ + + +

+

+ +

+
+ + + diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog.css index 699f0fac6..5ca69168a 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog.css @@ -1,691 +1,691 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie.css index 99cbc5506..c2536a983 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie.css @@ -1,715 +1,715 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie7.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie7.css index 2eccab194..dc88f4b12 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie7.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie7.css @@ -1,747 +1,747 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 -} - -.cke_dialog_title { - zoom: 1 -} - -.cke_dialog_footer { - border-top: 1px solid #bfbfbf -} - -.cke_dialog_footer_buttons { - position: static -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button { - vertical-align: top -} - -.cke_dialog .cke_resizer_ltr { - padding-left: 4px -} - -.cke_dialog .cke_resizer_rtl { - padding-right: 4px -} - -.cke_dialog_ui_input_text, .cke_dialog_ui_input_password, .cke_dialog_ui_input_textarea, .cke_dialog_ui_input_select { - padding: 0 !important -} - -.cke_dialog_ui_checkbox_input, .cke_dialog_ui_ratio_input, .cke_btn_reset, .cke_btn_locked, .cke_btn_unlocked { - border: 1px solid transparent !important +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 +} + +.cke_dialog_title { + zoom: 1 +} + +.cke_dialog_footer { + border-top: 1px solid #bfbfbf +} + +.cke_dialog_footer_buttons { + position: static +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button { + vertical-align: top +} + +.cke_dialog .cke_resizer_ltr { + padding-left: 4px +} + +.cke_dialog .cke_resizer_rtl { + padding-right: 4px +} + +.cke_dialog_ui_input_text, .cke_dialog_ui_input_password, .cke_dialog_ui_input_textarea, .cke_dialog_ui_input_select { + padding: 0 !important +} + +.cke_dialog_ui_checkbox_input, .cke_dialog_ui_ratio_input, .cke_btn_reset, .cke_btn_locked, .cke_btn_unlocked { + border: 1px solid transparent !important } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie8.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie8.css index 33876b8cd..43e43591b 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie8.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_ie8.css @@ -1,719 +1,719 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - display: block +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + display: block } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_iequirks.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_iequirks.css index eb4c83725..92fe837f9 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_iequirks.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_iequirks.css @@ -1,719 +1,719 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 -} - -.cke_dialog_footer { - filter: "" +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 +} + +.cke_dialog_footer { + filter: "" } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_opera.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_opera.css index 903418fa0..4f4b0db2c 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_opera.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/dialog_opera.css @@ -1,704 +1,704 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_dialog_footer { - display: block; - height: 38px -} - -.cke_ltr .cke_dialog_footer>* { - float: right -} - -.cke_rtl .cke_dialog_footer>* { - float: left +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_dialog_footer { + display: block; + height: 38px +} + +.cke_ltr .cke_dialog_footer>* { + float: right +} + +.cke_rtl .cke_dialog_footer>* { + float: left } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor.css index 29c3e2bb2..25b457dd4 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor.css @@ -1,1785 +1,1785 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_gecko.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_gecko.css index d0b161191..ecfd236c9 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_gecko.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_gecko.css @@ -1,1794 +1,1794 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -.cke_bottom { - padding-bottom: 3px -} - -.cke_combo_text { - margin-bottom: -1px; - margin-top: 1px -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +.cke_bottom { + padding-bottom: 3px +} + +.cke_combo_text { + margin-bottom: -1px; + margin-top: 1px +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie.css index 48224a8b0..93ea9969c 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie.css @@ -1,1813 +1,1813 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie7.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie7.css index c9d889eaa..a3eb7e8dc 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie7.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie7.css @@ -1,1955 +1,1955 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { - float: none -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { - display: inline-block; - vertical-align: top -} - -.cke_toolbox { - display: inline-block; - padding-bottom: 5px; - height: 100% -} - -.cke_rtl .cke_toolbox { - padding-bottom: 0 -} - -.cke_toolbar { - margin-bottom: 5px -} - -.cke_rtl .cke_toolbar { - margin-bottom: 0 -} - -.cke_toolgroup { - height: 26px -} - -.cke_toolgroup, .cke_combo { - position: relative -} - -a.cke_button { - float: none; - vertical-align: top -} - -.cke_toolbar_separator { - display: inline-block; - float: none; - vertical-align: top; - background-color: #c0c0c0 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 0 -} - -.cke_toolbox_collapser .cke_arrow { - border-width: 4px -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - border-width: 3px -} - -.cke_rtl .cke_button_arrow { - padding-top: 8px; - margin-right: 2px -} - -.cke_rtl .cke_combo_inlinelabel { - display: table-cell; - vertical-align: middle -} - -.cke_menubutton { - display: block; - height: 24px -} - -.cke_menubutton_inner { - display: block; - position: relative -} - -.cke_menubutton_icon { - height: 16px; - width: 16px -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: inline-block -} - -.cke_menubutton_label { - width: auto; - vertical-align: top; - line-height: 24px; - height: 24px; - margin: 0 10px 0 0 -} - -.cke_menuarrow { - width: 5px; - height: 6px; - padding: 0; - position: absolute; - right: 8px; - top: 10px; - background-position: 0 0 -} - -.cke_rtl .cke_menubutton_icon { - position: absolute; - right: 0; - top: 0 -} - -.cke_rtl .cke_menubutton_label { - float: right; - clear: both; - margin: 0 24px 0 10px -} - -.cke_hc .cke_rtl .cke_menubutton_label { - margin-right: 0 -} - -.cke_rtl .cke_menuarrow { - left: 8px; - right: auto; - background-position: 0 -24px -} - -.cke_hc .cke_menuarrow { - top: 5px; - padding: 0 5px -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - position: relative -} - -.cke_wysiwyg_div { - padding-top: 0 !important; - padding-bottom: 0 !important -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { + float: none +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { + display: inline-block; + vertical-align: top +} + +.cke_toolbox { + display: inline-block; + padding-bottom: 5px; + height: 100% +} + +.cke_rtl .cke_toolbox { + padding-bottom: 0 +} + +.cke_toolbar { + margin-bottom: 5px +} + +.cke_rtl .cke_toolbar { + margin-bottom: 0 +} + +.cke_toolgroup { + height: 26px +} + +.cke_toolgroup, .cke_combo { + position: relative +} + +a.cke_button { + float: none; + vertical-align: top +} + +.cke_toolbar_separator { + display: inline-block; + float: none; + vertical-align: top; + background-color: #c0c0c0 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 0 +} + +.cke_toolbox_collapser .cke_arrow { + border-width: 4px +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + border-width: 3px +} + +.cke_rtl .cke_button_arrow { + padding-top: 8px; + margin-right: 2px +} + +.cke_rtl .cke_combo_inlinelabel { + display: table-cell; + vertical-align: middle +} + +.cke_menubutton { + display: block; + height: 24px +} + +.cke_menubutton_inner { + display: block; + position: relative +} + +.cke_menubutton_icon { + height: 16px; + width: 16px +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: inline-block +} + +.cke_menubutton_label { + width: auto; + vertical-align: top; + line-height: 24px; + height: 24px; + margin: 0 10px 0 0 +} + +.cke_menuarrow { + width: 5px; + height: 6px; + padding: 0; + position: absolute; + right: 8px; + top: 10px; + background-position: 0 0 +} + +.cke_rtl .cke_menubutton_icon { + position: absolute; + right: 0; + top: 0 +} + +.cke_rtl .cke_menubutton_label { + float: right; + clear: both; + margin: 0 24px 0 10px +} + +.cke_hc .cke_rtl .cke_menubutton_label { + margin-right: 0 +} + +.cke_rtl .cke_menuarrow { + left: 8px; + right: auto; + background-position: 0 -24px +} + +.cke_hc .cke_menuarrow { + top: 5px; + padding: 0 5px +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + position: relative +} + +.cke_wysiwyg_div { + padding-top: 0 !important; + padding-bottom: 0 !important +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie8.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie8.css index b0cad9a43..6e0a01a24 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie8.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_ie8.css @@ -1,1825 +1,1825 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_toolbox_collapser .cke_arrow { - border-width: 4px -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - border-width: 3px -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 0 -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_toolbox_collapser .cke_arrow { + border-width: 4px +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + border-width: 3px +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 0 +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_iequirks.css b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_iequirks.css index fff67a9f8..ec0ec8c68 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_iequirks.css +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/editor_iequirks.css @@ -1,1850 +1,1850 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_top, .cke_contents, .cke_bottom { - width: 100% -} - -.cke_button_arrow { - font-size: 0 -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { - float: none -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { - display: inline-block; - vertical-align: top -} - -.cke_rtl .cke_button_icon { - float: none -} - -.cke_resizer { - width: 10px -} - -.cke_source { - white-space: normal -} - -.cke_bottom { - position: static -} - -.cke_colorbox { - font-size: 0 -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_top, .cke_contents, .cke_bottom { + width: 100% +} + +.cke_button_arrow { + font-size: 0 +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { + float: none +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { + display: inline-block; + vertical-align: top +} + +.cke_rtl .cke_button_icon { + float: none +} + +.cke_resizer { + width: 10px +} + +.cke_source { + white-space: normal +} + +.cke_bottom { + position: static +} + +.cke_colorbox { + font-size: 0 +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/readme.md b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/readme.md index 1b48dd25c..d086fe9b7 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/readme.md +++ b/plugins/redmine_ckeditor/assets/ckeditor/skins/moono/readme.md @@ -1,51 +1,51 @@ -"Moono" Skin -==================== - -This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor -[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by -the CKEditor team. "Moono" is maintained by the core developers. - -For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) -documentation. - -Features -------------------- -"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. -It comes with the following features: - -- Chameleon feature with brightness, -- high-contrast compatibility, -- graphics source provided in SVG. - -Directory Structure -------------------- - -CSS parts: -- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, -- **mainui.css**: the file contains styles of entire editor outline structures, -- **toolbar.css**: the file contains styles of the editor toolbar space (top), -- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, -- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded -until the first panel open up, -- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), -- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, -it's not loaded until the first menu open up, -- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, -- **reset.css**: the file defines the basis of style resets among all editor UI spaces, -- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, -- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. - -Other parts: -- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, -- **icons/**: contains all skin defined icons, -- **images/**: contains a fill general used images, -- **dev/**: contains SVG source of the skin icons. - -License -------- - -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/plugins/redmine_ckeditor/assets/ckeditor/styles.js b/plugins/redmine_ckeditor/assets/ckeditor/styles.js index 48661b193..18e4316b0 100644 --- a/plugins/redmine_ckeditor/assets/ckeditor/styles.js +++ b/plugins/redmine_ckeditor/assets/ckeditor/styles.js @@ -1,111 +1,111 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -// This file contains style definitions that can be used by CKEditor plugins. -// -// The most common use for it is the "stylescombo" plugin, which shows a combo -// in the editor toolbar, containing all styles. Other plugins instead, like -// the div plugin, use a subset of the styles on their feature. -// -// If you don't have plugins that depend on this file, you can simply ignore it. -// Otherwise it is strongly recommended to customize this file to match your -// website requirements and design properly. - -CKEDITOR.stylesSet.add( 'default', [ - /* Block Styles */ - - // These styles are already available in the "Format" combo ("format" plugin), - // so they are not needed here by default. You may enable them to avoid - // placing the "Format" combo in the toolbar, maintaining the same features. - /* - { name: 'Paragraph', element: 'p' }, - { name: 'Heading 1', element: 'h1' }, - { name: 'Heading 2', element: 'h2' }, - { name: 'Heading 3', element: 'h3' }, - { name: 'Heading 4', element: 'h4' }, - { name: 'Heading 5', element: 'h5' }, - { name: 'Heading 6', element: 'h6' }, - { name: 'Preformatted Text',element: 'pre' }, - { name: 'Address', element: 'address' }, - */ - - { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, - { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, - { - name: 'Special Container', - element: 'div', - styles: { - padding: '5px 10px', - background: '#eee', - border: '1px solid #ccc' - } - }, - - /* Inline Styles */ - - // These are core styles available as toolbar buttons. You may opt enabling - // some of them in the Styles combo, removing them from the toolbar. - // (This requires the "stylescombo" plugin) - /* - { name: 'Strong', element: 'strong', overrides: 'b' }, - { name: 'Emphasis', element: 'em' , overrides: 'i' }, - { name: 'Underline', element: 'u' }, - { name: 'Strikethrough', element: 'strike' }, - { name: 'Subscript', element: 'sub' }, - { name: 'Superscript', element: 'sup' }, - */ - - { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, - - { name: 'Big', element: 'big' }, - { name: 'Small', element: 'small' }, - { name: 'Typewriter', element: 'tt' }, - - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' }, - - { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, - { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, - - /* Object Styles */ - - { - name: 'Styled image (left)', - element: 'img', - attributes: { 'class': 'left' } - }, - - { - name: 'Styled image (right)', - element: 'img', - attributes: { 'class': 'right' } - }, - - { - name: 'Compact table', - element: 'table', - attributes: { - cellpadding: '5', - cellspacing: '0', - border: '1', - bordercolor: '#ccc' - }, - styles: { - 'border-collapse': 'collapse' - } - }, - - { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, - { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } -] ); - +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/plugins/redmine_ckeditor/assets/javascripts/application.js b/plugins/redmine_ckeditor/assets/javascripts/application.js index b5679d111..8e6dc5834 100644 --- a/plugins/redmine_ckeditor/assets/javascripts/application.js +++ b/plugins/redmine_ckeditor/assets/javascripts/application.js @@ -1,1045 +1,1045 @@ - -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license - */ - -(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a={timestamp:"E0LB",version:"4.3.2",revision:"ba625e6",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var d=document.getElementsByTagName("script"),a=0;a=0;o--)if(n[o].priority<=m){n.splice(o+1,0,j);return{removeListener:i}}n.unshift(j)}return{removeListener:i}}, - once:function(){var b=arguments[1];arguments[1]=function(d){d.removeListener();return b.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var b=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return b},fire:function(){var b=0,d=function(){b=1},a=0,h=function(){a=1};return function(m,j,i){var n=e(this)[m],m=b,r=a;b=a=0;if(n){var o=n.listeners;if(o.length)for(var o=o.slice(0),u,f=0;f=0&&a.listeners.splice(h,1)}},removeAllListeners:function(){var b=e(this),d;for(d in b)delete b[d]},hasListeners:function(b){return(b=e(this)[b])&&b.listeners.length>0}}}()); - CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fire.call(this,a,e,this)},CKEDITOR.editor.prototype.fireOnce=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fireOnce.call(this,a,e,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)); - CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),e=window.opera,b={ie:a.indexOf("trident/")>-1,opera:!!e&&e.version,webkit:a.indexOf(" applewebkit/")>-1,air:a.indexOf(" adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat"&&(!document.documentMode||document.documentMode<10),mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return false;var d=document.domain,b=window.location.hostname;return d!= - b&&d!="["+b+"]"},secure:location.protocol=="https:"};b.gecko=navigator.product=="Gecko"&&!b.webkit&&!b.opera&&!b.ie;if(b.webkit)a.indexOf("chrome")>-1?b.chrome=true:b.safari=true;var c=0;if(b.ie){c=b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode;b.ie9Compat=c==9;b.ie8Compat=c==8;b.ie7Compat=c==7;b.ie6Compat=c<7||b.quirks}if(b.gecko){var d=a.match(/rv:([\d\.]+)/);if(d){d=d[1].split(".");c=d[0]*1E4+(d[1]||0)*100+(d[2]||0)*1}}b.opera&&(c=parseFloat(e.version())); - b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));b.webkit&&(c=parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));b.version=c;b.isCompatible=b.iOS&&c>=534||!b.mobile&&(b.ie&&c>6||b.gecko&&c>=10801||b.opera&&c>=9.5||b.air&&c>=1||b.webkit&&c>=522||false);b.hidpi=window.devicePixelRatio>=2;b.needsBrFiller=b.gecko||b.webkit||b.ie&&c>10;b.needsNbspFiller=b.ie&&c<11;b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.opera?"opera":b.webkit?"webkit":"unknown");if(b.quirks)b.cssClass=b.cssClass+" cke_browser_quirks"; - if(b.ie){b.cssClass=b.cssClass+(" cke_browser_ie"+(b.quirks||b.version<7?"6":b.version));if(b.quirks)b.cssClass=b.cssClass+" cke_browser_iequirks"}if(b.gecko)if(c<10900)b.cssClass=b.cssClass+" cke_browser_gecko18";else if(c<=11E3)b.cssClass=b.cssClass+" cke_browser_gecko19";if(b.air)b.cssClass=b.cssClass+" cke_browser_air";if(b.iOS)b.cssClass=b.cssClass+" cke_browser_ios";if(b.hidpi)b.cssClass=b.cssClass+" cke_hidpi";return b}()); - "unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a= - CKEDITOR.loadFullCore,e=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():e&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},e*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={}; - (function(){var a=[],e=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.opera?"-o-":CKEDITOR.env.ie?"-ms-":"";CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(b,a){if(!b&&!a)return true;if(!b||!a||b.length!=a.length)return false;for(var d=0;d"+a+""):d.push('');return d.join("")},htmlEncode:function(b){return(""+b).replace(/&/g,"&").replace(/>/g,">").replace(//g,">")},htmlDecodeAttr:function(b){return b.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">")},getNextNumber:function(){var b=0;return function(){return++b}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(b,a){var d=a(b);d.prototype=b.prototype;return d},setTimeout:function(b,a,d,g,e){e||(e=window);d||(d=e);return e.setTimeout(function(){g?b.apply(d,[].concat(g)): - b.apply(d)},a||0)},trim:function(){var b=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(a){return a.replace(b,"")}}(),ltrim:function(){var b=/^[ \t\n\r]+/g;return function(a){return a.replace(b,"")}}(),rtrim:function(){var b=/[ \t\n\r]+$/g;return function(a){return a.replace(b,"")}}(),indexOf:function(b,a){if(typeof a=="function")for(var d=0,g=b.length;d=0?b[d]:null},bind:function(b,a){return function(){return b.apply(a,arguments)}},createClass:function(b){var a=b.$,d=b.base,g=b.privates||b._,e=b.proto,b=b.statics;!a&&(a=function(){d&&this.base.apply(this,arguments)});if(g)var m=a,a=function(){var d=this._||(this._={}),a;for(a in g){var b=g[a];d[a]=typeof b=="function"?CKEDITOR.tools.bind(b,this):b}m.apply(this,arguments)};if(d){a.prototype=this.prototypedCopy(d.prototype);a.prototype.constructor=a;a.base= - d;a.baseProto=d.prototype;a.prototype.base=function(){this.base=d.prototype.base;d.apply(this,arguments);this.base=arguments.callee}}e&&this.extend(a.prototype,e,true);b&&this.extend(a,b,true);return a},addFunction:function(b,c){return a.push(function(){return b.apply(c||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var c=a[b];return c&&c.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,c;return function(d){c= - CKEDITOR.tools.trim(d+"")+"px";return a.test(c)?c:d||""}}(),convertToPx:function(){var a;return function(c){if(!a){a=CKEDITOR.dom.element.createFromHtml('
',CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(c)){a.setStyle("width",c);return a.$.clientWidth}return c}}(),repeat:function(a,c){return Array(c+1).join(a)},tryThese:function(){for(var a,c=0,d=arguments.length;c8)&&e)a=e+":"+a;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a= - a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),true)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*]*?>)|^/i,'$&\n -

- <% end %> -

- - <%= f.text_field :parent_id, :size => 10 %> - <% if @parent_candidate %> - <%= raw l(:label_parent_suggestion, {:issue_id => link_to_issue(@parent_candidate)}) %> - - <% end %> -

- <% @issue.custom_field_values.each do |value| %> - <% next unless value.required? -%> -

<%= custom_field_tag_with_label :issue, value %>

- <% end %> -

- <%= f.text_area :comment, - :cols => 30, - :rows => 12, - :accesskey => accesskey(:edit), - :class => 'wiki-edit' %> - -

-

- - <%= select :issue, :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %> -

- <% unless @project.issue_categories.empty? %> -

- - <%= select :issue, :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %> -

- <% end %> - <% unless @issue.assignable_versions.empty? %> -

- - <%= select :issue, :fixed_version_id, (@issue.assignable_versions.collect {|v| [v.name, v.id]}), :include_blank => true, :selected => @default_version_id %> -

- <% end %> - - <% - @allowed_statuses = @issue.new_statuses_allowed_to(User.current) - -%> - <% if @issue.new_record? || @allowed_statuses.any? %> -

<%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), :required => true %>

- <% else %> -

<%= h(@issue.status.name) %>

- <% end %> -

- <% - submit_url = url_for(:controller => 'code_review', :action => 'new', :id=>@project) - %> - <%= button_to_function l(:label_button_ok), "$('#review-form').load('#{submit_url}', $('#review_form').serialize2json())" %> - - - <%= preview_link({ :controller => 'code_review', :action => 'preview', :id => @project}, 'review_form') %> -

-
- <%= wikitoolbar_for 'review_comment' %> - <% end %> - -
- - +<% +# Code Review plugin for Redmine +# Copyright (C) 2009-2013 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +-%> + + +
+

+ <%= l(:label_line_number, :line => @review.line) %> +

+ <%= form_for @review,:as => :review, + :url => {:controller => 'code_review', :action => 'new', :id=>@project}, :html => {:id => 'review_form'} do |f| %> + <%= error_messages_for 'review' %> + <%= error_messages_for 'issue' %> + <%= error_messages_for 'relation' %> + <%= f.hidden_field(:change_id) %> + <%= f.hidden_field(:line) %> + <%= hidden_field_tag(:action_type, @review.action_type) %> + <%= hidden_field_tag(:rev, @review.revision) %> + <%= hidden_field_tag(:rev_to, @review.rev_to) %> + <%= hidden_field_tag(:path, @review.path) %> + <%= hidden_field_tag(:file_count, @review.file_count) %> + <%= hidden_field_tag(:attachment_id, @review.attachment_id) %> + <%= hidden_field_tag(:repository_id, @repository_id) %> + <%= hidden_field_tag(:diff_all, @review.diff_all) %> +

+ + <%= f.text_field :subject, :size => 70, :required => true %> +

+ + <% if @setting.tracker_in_review_dialog %> +

+ + <%= select :issue, :tracker_id, @project.trackers.collect {|t| [t.name, t.id]}, :required => true %> + +

+ <% end %> +

+ + <%= f.text_field :parent_id, :size => 10 %> + <% if @parent_candidate %> + <%= raw l(:label_parent_suggestion, {:issue_id => link_to_issue(@parent_candidate)}) %> + + <% end %> +

+ <% @issue.custom_field_values.each do |value| %> + <% next unless value.required? -%> +

<%= custom_field_tag_with_label :issue, value %>

+ <% end %> +

+ <%= f.text_area :comment, + :cols => 30, + :rows => 12, + :accesskey => accesskey(:edit), + :class => 'wiki-edit' %> + +

+

+ + <%= select :issue, :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %> +

+ <% unless @project.issue_categories.empty? %> +

+ + <%= select :issue, :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %> +

+ <% end %> + <% unless @issue.assignable_versions.empty? %> +

+ + <%= select :issue, :fixed_version_id, (@issue.assignable_versions.collect {|v| [v.name, v.id]}), :include_blank => true, :selected => @default_version_id %> +

+ <% end %> + + <% + @allowed_statuses = @issue.new_statuses_allowed_to(User.current) + -%> + <% if @issue.new_record? || @allowed_statuses.any? %> +

<%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), :required => true %>

+ <% else %> +

<%= h(@issue.status.name) %>

+ <% end %> +

+ <% + submit_url = url_for(:controller => 'code_review', :action => 'new', :id=>@project) + %> + <%= button_to_function l(:label_button_ok), "$('#review-form').load('#{submit_url}', $('#review_form').serialize2json())" %> + + + <%= preview_link({ :controller => 'code_review', :action => 'preview', :id => @project}, 'review_form') %> +

+
+ <%= wikitoolbar_for 'review_comment' %> + <% end %> + +
+ + diff --git a/plugins/redmine_code_review/app/views/code_review/_reply.html.erb b/plugins/redmine_code_review/app/views/code_review/_reply.html.erb index 3fd5676c5..52b23afe9 100644 --- a/plugins/redmine_code_review/app/views/code_review/_reply.html.erb +++ b/plugins/redmine_code_review/app/views/code_review/_reply.html.erb @@ -1,37 +1,37 @@ -<% -# Code Review plugin for Redmine -# Copyright (C) 2009 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --%> -

- - <%= authoring reply.created_on, reply.user %>. -

- <%= image_tag(url_to_avatar(reply.user), :class => 'avatar2', :width=>32, :height=>32) %> - <%#= avatar(reply.user, :size => "32") %> -
    - <% for detail in reply.details %> -
  • <%= show_detail(detail) %>
  • - <% end %> -
- - -
- <%= textilizable reply, :notes %> -
- - +<% +# Code Review plugin for Redmine +# Copyright (C) 2009 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +-%> +

+ + <%= authoring reply.created_on, reply.user %>. +

+ <%= image_tag(url_to_avatar(reply.user), :class => 'avatar2', :width=>32, :height=>32) %> + <%#= avatar(reply.user, :size => "32") %> +
    + <% for detail in reply.details %> +
  • <%= show_detail(detail) %>
  • + <% end %> +
+ + +
+ <%= textilizable reply, :notes %> +
+ +
\ No newline at end of file diff --git a/plugins/redmine_code_review/app/views/code_review/_show.html.erb b/plugins/redmine_code_review/app/views/code_review/_show.html.erb index f83306ffa..17f0e62ce 100644 --- a/plugins/redmine_code_review/app/views/code_review/_show.html.erb +++ b/plugins/redmine_code_review/app/views/code_review/_show.html.erb @@ -1,193 +1,193 @@ -<% -# Code Review plugin for Redmine -# Copyright (C) 2009-2012 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --%> -
- -
- - - <%= error_messages_for 'review' -%> - <%= error_messages_for 'reply' -%> - <% if @notice -%> -
- <%= @notice -%> -
- <% end -%> - <% if @error -%> -
- <%= @error -%> -
- <% end -%> - - -
- - -
- <% if authorize_for('code_review', 'update') -%> - <%= link_to_function l(:button_update), "$('#update-form-#{@review.id}').show();return false;", :class => 'icon icon-edit' %> - <% end %> - <% if authorize_for('code_review', 'destroy') -%> - <%= link_to(l(:button_delete), - {:controller => 'code_review', - :action => 'destroy', - :id => @project, - :review_id => @review}, - :update => "show_review_#{@review.id}", - :remote => true, - :confirm => l(:text_are_you_sure), - :success => "deleteReview(#{@review.id})", - :class => 'icon icon-del') %> - <% end -%> -
- - -

- <%= link_to h(@issue.tracker.name) + ' #' +@issue.id.to_s + ' (' + h(@review.issue.status) + ')', - :controller => 'issues', :action => 'show', :id => @review.issue.id %>: -
- <%=h @review.subject %> -

- - -

- <%= image_tag(url_to_avatar(@review.user), :class => 'avatar2', :width=>64, :height=>64) %> - <%#= avatar(@review.user, :size => "64") %> -
- <%= authoring @review.created_at, @review.user %>. - <%= l(:label_updated_time, distance_of_time_in_words(Time.now, @review.updated_at)) + '.' if @review.created_at != @review.updated_at %> -

-
- - -
- <%= textilizable @review, :comment %> -
- - - -
- - - <% journals = @review.issue.journals.sort {|a, b| a.id <=> b.id } %> - <% if respond_to?('render_journal') %> - <% # ChiliProject -%> - <% if journals.length > 0 %> -
-

- <%= l(:label_history) %> -

- <%= render :partial => 'history', :locals => { :issue => @review.issue, :journals => journals } %> -
- <% end %> - <% else %> - <% # Redmine -%> - <% if journals.length > 0 %> -

- <%= l(:label_history) %> -

- <% end %> - <%= render :partial => 'reply', :collection => journals %> - <% end %> - - - <% if authorize_for('code_review', 'reply') -%> -

- <%= toggle_link l(:button_reply), "reply_#{@review.id}", :focus => 'reply_comment_' + @review.id.to_s %> -

- <% message_form_id = "message-form-#{@review.id}" -%> - - <% end %> -
-
+<% +# Code Review plugin for Redmine +# Copyright (C) 2009-2012 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +-%> +
+ +
+ + + <%= error_messages_for 'review' -%> + <%= error_messages_for 'reply' -%> + <% if @notice -%> +
+ <%= @notice -%> +
+ <% end -%> + <% if @error -%> +
+ <%= @error -%> +
+ <% end -%> + + +
+ + +
+ <% if authorize_for('code_review', 'update') -%> + <%= link_to_function l(:button_update), "$('#update-form-#{@review.id}').show();return false;", :class => 'icon icon-edit' %> + <% end %> + <% if authorize_for('code_review', 'destroy') -%> + <%= link_to(l(:button_delete), + {:controller => 'code_review', + :action => 'destroy', + :id => @project, + :review_id => @review}, + :update => "show_review_#{@review.id}", + :remote => true, + :confirm => l(:text_are_you_sure), + :success => "deleteReview(#{@review.id})", + :class => 'icon icon-del') %> + <% end -%> +
+ + +

+ <%= link_to h(@issue.tracker.name) + ' #' +@issue.id.to_s + ' (' + h(@review.issue.status) + ')', + :controller => 'issues', :action => 'show', :id => @review.issue.id %>: +
+ <%=h @review.subject %> +

+ + +

+ <%= image_tag(url_to_avatar(@review.user), :class => 'avatar2', :width=>64, :height=>64) %> + <%#= avatar(@review.user, :size => "64") %> +
+ <%= authoring @review.created_at, @review.user %>. + <%= l(:label_updated_time, distance_of_time_in_words(Time.now, @review.updated_at)) + '.' if @review.created_at != @review.updated_at %> +

+
+ + +
+ <%= textilizable @review, :comment %> +
+ + + +
+ + + <% journals = @review.issue.journals.sort {|a, b| a.id <=> b.id } %> + <% if respond_to?('render_journal') %> + <% # ChiliProject -%> + <% if journals.length > 0 %> +
+

+ <%= l(:label_history) %> +

+ <%= render :partial => 'history', :locals => { :issue => @review.issue, :journals => journals } %> +
+ <% end %> + <% else %> + <% # Redmine -%> + <% if journals.length > 0 %> +

+ <%= l(:label_history) %> +

+ <% end %> + <%= render :partial => 'reply', :collection => journals %> + <% end %> + + + <% if authorize_for('code_review', 'reply') -%> +

+ <%= toggle_link l(:button_reply), "reply_#{@review.id}", :focus => 'reply_comment_' + @review.id.to_s %> +

+ <% message_form_id = "message-form-#{@review.id}" -%> + + <% end %> +
+
diff --git a/plugins/redmine_code_review/test/functional/attachments_controller_test.rb b/plugins/redmine_code_review/test/functional/attachments_controller_test.rb index 3837586a3..f9f5c0adb 100644 --- a/plugins/redmine_code_review/test/functional/attachments_controller_test.rb +++ b/plugins/redmine_code_review/test/functional/attachments_controller_test.rb @@ -1,71 +1,71 @@ -# Code Review plugin for Redmine -# Copyright (C) 2009-2010 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') -require 'attachments_controller' - -# Re-raise errors caught by the controller. -class AttachmentsController; def rescue_action(e) raise e end; end - - -class AttachmentsControllerTest < ActionController::TestCase - fixtures :users, :projects, :roles, :members, :member_roles, :enabled_modules, :issues, :trackers, :attachments, - :versions, :wiki_pages, :wikis, :documents - - def setup - @controller = AttachmentsController.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - Attachment.storage_path = "#{Rails.root}/test/fixtures/files" - - [1, 2].each { |num| - project = Project.find(num) - project.enable_module!('code_review') - project.save! - } - - - roles = Role.find(:all) - roles.each {|role| - role.permissions << :view_code_review - role.save - } - User.current = nil - @request.session[:ctime] = Time.now.to_i - @request.session[:atime] = Time.now.to_i - end - - - def test_show_diff - @request.session[:user_id] = 1 - attachment = FactoryGirl.create(:attachment, filename: "test.diff") - get :show, :id => attachment.id, :type => 'inline' - assert_response :success - assert_template 'diff' - assert_equal 'text/html', @response.content_type - end - - def test_show_text_file - @request.session[:user_id] = 1 - attachment = FactoryGirl.create(:attachment, filename: "test.rb") - get :show, :id => attachment.id, :type => 'inline' - assert_response :success - assert_template 'file' - assert_equal 'text/html', @response.content_type - end - -end +# Code Review plugin for Redmine +# Copyright (C) 2009-2010 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') +require 'attachments_controller' + +# Re-raise errors caught by the controller. +class AttachmentsController; def rescue_action(e) raise e end; end + + +class AttachmentsControllerTest < ActionController::TestCase + fixtures :users, :projects, :roles, :members, :member_roles, :enabled_modules, :issues, :trackers, :attachments, + :versions, :wiki_pages, :wikis, :documents + + def setup + @controller = AttachmentsController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + Attachment.storage_path = "#{Rails.root}/test/fixtures/files" + + [1, 2].each { |num| + project = Project.find(num) + project.enable_module!('code_review') + project.save! + } + + + roles = Role.find(:all) + roles.each {|role| + role.permissions << :view_code_review + role.save + } + User.current = nil + @request.session[:ctime] = Time.now.to_i + @request.session[:atime] = Time.now.to_i + end + + + def test_show_diff + @request.session[:user_id] = 1 + attachment = FactoryGirl.create(:attachment, filename: "test.diff") + get :show, :id => attachment.id, :type => 'inline' + assert_response :success + assert_template 'diff' + assert_equal 'text/html', @response.content_type + end + + def test_show_text_file + @request.session[:user_id] = 1 + attachment = FactoryGirl.create(:attachment, filename: "test.rb") + get :show, :id => attachment.id, :type => 'inline' + assert_response :success + assert_template 'file' + assert_equal 'text/html', @response.content_type + end + +end diff --git a/plugins/redmine_code_review/test/functional/code_review_controller_test.rb b/plugins/redmine_code_review/test/functional/code_review_controller_test.rb index 26982c9b4..22e40d1c9 100644 --- a/plugins/redmine_code_review/test/functional/code_review_controller_test.rb +++ b/plugins/redmine_code_review/test/functional/code_review_controller_test.rb @@ -1,329 +1,329 @@ -# Code Review plugin for Redmine -# Copyright (C) 2009-2012 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') - -class CodeReviewControllerTest < ActionController::TestCase - fixtures :code_reviews, :projects, :users, :repositories, - :changesets, :changes, :members, :roles, :issues, :issue_statuses, - :enumerations, :issue_categories, :trackers, :trackers, :projects, :projects_trackers, - :code_review_project_settings, :attachments - def setup - @controller = CodeReviewController.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - @request.env["HTTP_REFERER"] = '/' - enabled_module = EnabledModule.new - enabled_module.project_id = 1 - enabled_module.name = 'code_review' - enabled_module.save - enabled_module = EnabledModule.new - enabled_module.project_id = 2 - enabled_module.name = 'code_review' - enabled_module.save - - User.current = nil - roles = Role.find(:all) - roles.each {|role| - role.permissions << :view_code_review - role.save - } - @request.session[:ctime] = Time.now.to_i - @request.session[:atime] = Time.now.to_i - end - - context "index" do - should "show review list" do - @request.session[:user_id] = 1 - get :index, :id => 1 - assert_response :success - end - - should "not show review list if module was not enabled." do - @request.session[:user_id] = 1 - get :index, :id => 3 - assert_response 403 - end - - should "show all review list if show_closed is true" do - @request.session[:user_id] = 1 - get :index, :id => 1, :show_closed => true - assert_response :success - end - - end - - context "new" do - should "create form when get mthod" do - @request.session[:user_id] = 1 - get :new, :id => 1, :action_type => 'diff', :rev => 5 - assert_response :success - assert_template '_new_form' - end - - should "create new review" do - @request.session[:user_id] = 1 - count = CodeReview.find(:all).length - post :new, :id => 1, :review => {:line => 1, :change_id => 1, - :comment => 'aaa', :subject => 'bbb'}, :action_type => 'diff' - assert_response :success - assert_template '_add_success' - assert_equal(count + 1, CodeReview.find(:all).length) - - get :new, :id => 1, :action_type => 'diff', :rev => 5 - assert_response :success - assert_template '_new_form' - end - - should "create new review when changeset has related issue" do - @request.session[:user_id] = 1 - project = Project.find(1) - change = Change.find(3) - changeset = change.changeset - issue = Issue.generate!(:project => project) - changeset.issues << issue - changeset.save - count = CodeReview.find(:all).length - post :new, :id => 1, :review => {:line => 1, :change_id => 3, - :comment => 'aaa', :subject => 'bbb'}, :action_type => 'diff' - assert_response :success - assert_template '_add_success' - assert_equal(count + 1, CodeReview.find(:all).length) - - settings = CodeReviewProjectSetting.find(:all) - settings.each{|setting| - setting.destroy - } - post :new, :id => 1, :review => {:line => 1, :change_id => 1, - :comment => 'aaa', :subject => 'bbb'}, :action_type => 'diff' - assert_response 200 - end - - should "save safe_attributes" do - @request.session[:user_id] = 1 - project = Project.find(1) - change = Change.find(3) - changeset = change.changeset - issue = Issue.generate!(:project => project) - changeset.issues << issue - changeset.save - count = CodeReview.find(:all).length - post :new, :id => 1, :review => {:line => 10, :change_id => 3, - :comment => 'aaa', :subject => 'bbb', :parent_id => 1, :status_id => 1}, :action_type => 'diff' - assert_response :success - assert_template '_add_success' - - review = assigns :review - assert_equal(1, review.project_id) - assert_equal(3, review.change_id) - assert_equal("bbb", review.subject) - assert_equal(1, review.parent_id) - assert_equal("aaa", review.comment) - assert_equal(1, review.status_id) - end - - should "create review for attachment" do - @request.session[:user_id] = 1 - project = Project.find(1) - issue = Issue.generate!(:project => project) - attachment = FactoryGirl.create(:attachment, container: issue) - count = CodeReview.find(:all).length - post :new, :id => 1, :review => {:line => 1, :comment => 'aaa', - :subject => 'bbb', :attachment_id => attachment.id}, :action_type => 'diff' - assert_response :success - assert_template '_add_success' - assert_equal(count + 1, CodeReview.find(:all).length) - end - end - - def test_show - @request.session[:user_id] = 1 - get :show, :id => 1, :review_id => 9 - assert_response 302 - #assert_template '_show' - end - - context "show" do - should "be success with review_id" do - @request.session[:user_id] = 1 - get :show, :id => 1, :review_id => 9 - assert_response 302 - #assert_template '_show' - end - should "be success with assignment_id" do - @request.session[:user_id] = 1 - get :show, :id => 1, :assignment_id => 1 - assert_response 302 - #assert_template '_show' - end - end - - def test_destroy - project = Project.find(1) - issue = Issue.generate!(:project => project) - review = FactoryGirl.create(:code_review, project: project) - count = CodeReview.find(:all).length - @request.session[:user_id] = 1 - get :destroy, :id => 1, :review_id => review.id - assert_response :success - assert_equal(count - 1, CodeReview.find(:all).length) - - end - - context "reply" do - should "create reply for review" do - @request.session[:user_id] = 1 - - review = CodeReview.find(9) - get :reply, :id => 1, :review_id => 9, - :reply => {:comment => 'aaa'}, :issue=> {:lock_version => review.issue.lock_version} - assert_response :success - assert_template '_show' - assert_equal(nil, assigns(:error)) - end - - should "not create reply if anyone replied sametime" do - @request.session[:user_id] = 1 - - review = CodeReview.find(9) - get :reply, :id => 1, :review_id => 9, - :reply => {:comment => 'aaa'}, :issue=> {:lock_version => review.issue.lock_version + 1} - assert_response :success - assert_template '_show' - assert_not_nil assigns(:error) - end - end - - def test_reply_lock_error - @request.session[:user_id] = 1 - get :reply, :id => 1, :review_id => 9, - :reply => {:comment => 'aaa'}, :issue=> {:lock_version => 1} - assert_response :success - assert_template '_show' - assert assigns(:error) - end - -# def test_close -# @request.session[:user_id] = 1 -# review_id = 9 -# review = CodeReview.find(review_id) -# review.reopen -# review.save -# assert !review.is_closed? -# get :close, :id => 1, :review_id => review_id -# assert_response :success -# assert_template '_show' -# review = CodeReview.find(review_id) -# assert review.is_closed? -# end -# -# def test_reopen -# @request.session[:user_id] = 1 -# review = CodeReview.find(1) -# review.close -# review.save -# assert review.is_closed? -# get :reopen, :id => 1, :review_id => 1 -# assert_response :success -# assert_template '_show' -# review = CodeReview.find(1) -# assert !review.is_closed? -# end - - def test_update - @request.session[:user_id] = 1 - review_id = 9 - review = CodeReview.find(review_id) - assert_equal('Unable to print recipes', review.comment) - post :update, :id => 1, :review_id => review_id, - :review => {:comment => 'bbb', :lock_version => review.lock_version}, - :issue => {:lock_version => review.issue.lock_version} - assert_response :success - review = CodeReview.find(review_id) - assert_equal('bbb', review.comment) - end - - def test_update_lock_error - @request.session[:user_id] = 1 - review_id = 9 - review = CodeReview.find(review_id) - assert_equal('Unable to print recipes', review.comment) - post :update, :id => 1, :review_id => review_id, - :review => {:comment => 'bbb', :lock_version => review.lock_version}, - :issue => {:lock_version => 1} - assert_response :success - review = CodeReview.find(review_id) - assert_equal('Unable to print recipes', review.comment) - assert assigns(:error) - end - - def test_update_diff_view - @request.session[:user_id] = 1 - review_id = 9 - review = CodeReview.find(review_id) - assert_equal('Unable to print recipes', review.comment) - post :update_diff_view, :id => 1, :review_id => review_id, :rev => 1, :path => '/test/some/path/in/the/repo' - assert_response :success - review = CodeReview.find(review_id) - end - - def test_forward_to_revision - @request.session[:user_id] = 1 - post :forward_to_revision, :id => 1, :path => '/test/some/path/in/the/repo' - end - - def test_update_attachment_view - @request.session[:user_id] = 1 - review_id = 9 - review = CodeReview.find(review_id) - assert_equal('Unable to print recipes', review.comment) - post :update_attachment_view, :id => 1, :attachment_id => 1 - assert_response :success - review = CodeReview.find(review_id) - end - - def test_preview - @request.session[:user_id] = 1 - review = {} - review[:comment] = 'aaa' - post :preview, :id => 1, :review => review - assert_response :success - end - - def test_assign - @request.session[:user_id] = 1 - post :assign, :id => 1 - assert_response :redirect - end - - context "update_revisions_view" do - setup do - @request.session[:user_id] = 1 - end - - should "succeed if changeset_ids is nil" do - get :update_revisions_view, :id => 1 - assert_response :success - assert_equal(0, assigns(:changesets).length) - end - - should "succeed if changeset_ids is not nil" do - get :update_revisions_view, :id => 1, :changeset_ids => '1,2,3' - assert_response :success - assert_equal(3, assigns(:changesets).length) - end - end -end +# Code Review plugin for Redmine +# Copyright (C) 2009-2012 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') + +class CodeReviewControllerTest < ActionController::TestCase + fixtures :code_reviews, :projects, :users, :repositories, + :changesets, :changes, :members, :roles, :issues, :issue_statuses, + :enumerations, :issue_categories, :trackers, :trackers, :projects, :projects_trackers, + :code_review_project_settings, :attachments + def setup + @controller = CodeReviewController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + @request.env["HTTP_REFERER"] = '/' + enabled_module = EnabledModule.new + enabled_module.project_id = 1 + enabled_module.name = 'code_review' + enabled_module.save + enabled_module = EnabledModule.new + enabled_module.project_id = 2 + enabled_module.name = 'code_review' + enabled_module.save + + User.current = nil + roles = Role.find(:all) + roles.each {|role| + role.permissions << :view_code_review + role.save + } + @request.session[:ctime] = Time.now.to_i + @request.session[:atime] = Time.now.to_i + end + + context "index" do + should "show review list" do + @request.session[:user_id] = 1 + get :index, :id => 1 + assert_response :success + end + + should "not show review list if module was not enabled." do + @request.session[:user_id] = 1 + get :index, :id => 3 + assert_response 403 + end + + should "show all review list if show_closed is true" do + @request.session[:user_id] = 1 + get :index, :id => 1, :show_closed => true + assert_response :success + end + + end + + context "new" do + should "create form when get mthod" do + @request.session[:user_id] = 1 + get :new, :id => 1, :action_type => 'diff', :rev => 5 + assert_response :success + assert_template '_new_form' + end + + should "create new review" do + @request.session[:user_id] = 1 + count = CodeReview.find(:all).length + post :new, :id => 1, :review => {:line => 1, :change_id => 1, + :comment => 'aaa', :subject => 'bbb'}, :action_type => 'diff' + assert_response :success + assert_template '_add_success' + assert_equal(count + 1, CodeReview.find(:all).length) + + get :new, :id => 1, :action_type => 'diff', :rev => 5 + assert_response :success + assert_template '_new_form' + end + + should "create new review when changeset has related issue" do + @request.session[:user_id] = 1 + project = Project.find(1) + change = Change.find(3) + changeset = change.changeset + issue = Issue.generate!(:project => project) + changeset.issues << issue + changeset.save + count = CodeReview.find(:all).length + post :new, :id => 1, :review => {:line => 1, :change_id => 3, + :comment => 'aaa', :subject => 'bbb'}, :action_type => 'diff' + assert_response :success + assert_template '_add_success' + assert_equal(count + 1, CodeReview.find(:all).length) + + settings = CodeReviewProjectSetting.find(:all) + settings.each{|setting| + setting.destroy + } + post :new, :id => 1, :review => {:line => 1, :change_id => 1, + :comment => 'aaa', :subject => 'bbb'}, :action_type => 'diff' + assert_response 200 + end + + should "save safe_attributes" do + @request.session[:user_id] = 1 + project = Project.find(1) + change = Change.find(3) + changeset = change.changeset + issue = Issue.generate!(:project => project) + changeset.issues << issue + changeset.save + count = CodeReview.find(:all).length + post :new, :id => 1, :review => {:line => 10, :change_id => 3, + :comment => 'aaa', :subject => 'bbb', :parent_id => 1, :status_id => 1}, :action_type => 'diff' + assert_response :success + assert_template '_add_success' + + review = assigns :review + assert_equal(1, review.project_id) + assert_equal(3, review.change_id) + assert_equal("bbb", review.subject) + assert_equal(1, review.parent_id) + assert_equal("aaa", review.comment) + assert_equal(1, review.status_id) + end + + should "create review for attachment" do + @request.session[:user_id] = 1 + project = Project.find(1) + issue = Issue.generate!(:project => project) + attachment = FactoryGirl.create(:attachment, container: issue) + count = CodeReview.find(:all).length + post :new, :id => 1, :review => {:line => 1, :comment => 'aaa', + :subject => 'bbb', :attachment_id => attachment.id}, :action_type => 'diff' + assert_response :success + assert_template '_add_success' + assert_equal(count + 1, CodeReview.find(:all).length) + end + end + + def test_show + @request.session[:user_id] = 1 + get :show, :id => 1, :review_id => 9 + assert_response 302 + #assert_template '_show' + end + + context "show" do + should "be success with review_id" do + @request.session[:user_id] = 1 + get :show, :id => 1, :review_id => 9 + assert_response 302 + #assert_template '_show' + end + should "be success with assignment_id" do + @request.session[:user_id] = 1 + get :show, :id => 1, :assignment_id => 1 + assert_response 302 + #assert_template '_show' + end + end + + def test_destroy + project = Project.find(1) + issue = Issue.generate!(:project => project) + review = FactoryGirl.create(:code_review, project: project) + count = CodeReview.find(:all).length + @request.session[:user_id] = 1 + get :destroy, :id => 1, :review_id => review.id + assert_response :success + assert_equal(count - 1, CodeReview.find(:all).length) + + end + + context "reply" do + should "create reply for review" do + @request.session[:user_id] = 1 + + review = CodeReview.find(9) + get :reply, :id => 1, :review_id => 9, + :reply => {:comment => 'aaa'}, :issue=> {:lock_version => review.issue.lock_version} + assert_response :success + assert_template '_show' + assert_equal(nil, assigns(:error)) + end + + should "not create reply if anyone replied sametime" do + @request.session[:user_id] = 1 + + review = CodeReview.find(9) + get :reply, :id => 1, :review_id => 9, + :reply => {:comment => 'aaa'}, :issue=> {:lock_version => review.issue.lock_version + 1} + assert_response :success + assert_template '_show' + assert_not_nil assigns(:error) + end + end + + def test_reply_lock_error + @request.session[:user_id] = 1 + get :reply, :id => 1, :review_id => 9, + :reply => {:comment => 'aaa'}, :issue=> {:lock_version => 1} + assert_response :success + assert_template '_show' + assert assigns(:error) + end + +# def test_close +# @request.session[:user_id] = 1 +# review_id = 9 +# review = CodeReview.find(review_id) +# review.reopen +# review.save +# assert !review.is_closed? +# get :close, :id => 1, :review_id => review_id +# assert_response :success +# assert_template '_show' +# review = CodeReview.find(review_id) +# assert review.is_closed? +# end +# +# def test_reopen +# @request.session[:user_id] = 1 +# review = CodeReview.find(1) +# review.close +# review.save +# assert review.is_closed? +# get :reopen, :id => 1, :review_id => 1 +# assert_response :success +# assert_template '_show' +# review = CodeReview.find(1) +# assert !review.is_closed? +# end + + def test_update + @request.session[:user_id] = 1 + review_id = 9 + review = CodeReview.find(review_id) + assert_equal('Unable to print recipes', review.comment) + post :update, :id => 1, :review_id => review_id, + :review => {:comment => 'bbb', :lock_version => review.lock_version}, + :issue => {:lock_version => review.issue.lock_version} + assert_response :success + review = CodeReview.find(review_id) + assert_equal('bbb', review.comment) + end + + def test_update_lock_error + @request.session[:user_id] = 1 + review_id = 9 + review = CodeReview.find(review_id) + assert_equal('Unable to print recipes', review.comment) + post :update, :id => 1, :review_id => review_id, + :review => {:comment => 'bbb', :lock_version => review.lock_version}, + :issue => {:lock_version => 1} + assert_response :success + review = CodeReview.find(review_id) + assert_equal('Unable to print recipes', review.comment) + assert assigns(:error) + end + + def test_update_diff_view + @request.session[:user_id] = 1 + review_id = 9 + review = CodeReview.find(review_id) + assert_equal('Unable to print recipes', review.comment) + post :update_diff_view, :id => 1, :review_id => review_id, :rev => 1, :path => '/test/some/path/in/the/repo' + assert_response :success + review = CodeReview.find(review_id) + end + + def test_forward_to_revision + @request.session[:user_id] = 1 + post :forward_to_revision, :id => 1, :path => '/test/some/path/in/the/repo' + end + + def test_update_attachment_view + @request.session[:user_id] = 1 + review_id = 9 + review = CodeReview.find(review_id) + assert_equal('Unable to print recipes', review.comment) + post :update_attachment_view, :id => 1, :attachment_id => 1 + assert_response :success + review = CodeReview.find(review_id) + end + + def test_preview + @request.session[:user_id] = 1 + review = {} + review[:comment] = 'aaa' + post :preview, :id => 1, :review => review + assert_response :success + end + + def test_assign + @request.session[:user_id] = 1 + post :assign, :id => 1 + assert_response :redirect + end + + context "update_revisions_view" do + setup do + @request.session[:user_id] = 1 + end + + should "succeed if changeset_ids is nil" do + get :update_revisions_view, :id => 1 + assert_response :success + assert_equal(0, assigns(:changesets).length) + end + + should "succeed if changeset_ids is not nil" do + get :update_revisions_view, :id => 1, :changeset_ids => '1,2,3' + assert_response :success + assert_equal(3, assigns(:changesets).length) + end + end +end diff --git a/plugins/redmine_code_review/test/functional/code_review_settings_controller_test.rb b/plugins/redmine_code_review/test/functional/code_review_settings_controller_test.rb index 660f909d9..27a5d5297 100644 --- a/plugins/redmine_code_review/test/functional/code_review_settings_controller_test.rb +++ b/plugins/redmine_code_review/test/functional/code_review_settings_controller_test.rb @@ -1,200 +1,200 @@ -# Code Review plugin for Redmine -# Copyright (C) 2009-2012 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') - -class CodeReviewSettingsControllerTest < ActionController::TestCase - fixtures :code_reviews, :projects, :users, :trackers, :projects, :projects_trackers, - :code_review_project_settings, :issues, :issue_statuses, :enumerations - - include CodeReviewAutoAssignSettings - def setup - @controller = CodeReviewSettingsController.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - @request.env["HTTP_REFERER"] = '/' - enabled_module = EnabledModule.new - enabled_module.project_id = 1 - enabled_module.name = 'code_review' - enabled_module.save - - enabled_module = EnabledModule.new - enabled_module.project_id = 2 - enabled_module.name = 'code_review' - enabled_module.save - - User.current = nil - roles = Role.find(:all) - roles.each {|role| - role.permissions << :view_code_review - role.save - } - @request.session[:ctime] = Time.now.to_i - @request.session[:atime] = Time.now.to_i - end - - - context "update" do - setup do - @request.session[:user_id] = 1 - end - - should "return 302 if user is anonymous" do - @request.session[:user_id] = User.anonymous.id - get :update, :id => 1 - assert_response 302 - end - - should "save settings" do - - @request.session[:user_id] = 1 - setting = CodeReviewProjectSetting.find(1) - - post :update, :id => 1, :setting => {:tracker_id => 2, :assignment_tracker_id => 3, - :hide_code_review_tab => true, :auto_relation => CodeReviewProjectSetting::AUTORELATION_TYPE_BLOCKS}, - :auto_assign => {:filters => {:a => 1}} - assert_response :redirect - project = Project.find(1) - assert_redirected_to :controller => 'projects', :action => 'settings', :id => project, :tab => 'code_review' - - setting = assigns(:setting) - assert_equal(1, setting.updated_by) - assert_equal(project.id, setting.project_id) - assert_equal(2, setting.tracker_id) - assert_equal(3, setting.assignment_tracker_id) - assert_equal(true, setting.hide_code_review_tab) - assert_equal(CodeReviewProjectSetting::AUTORELATION_TYPE_BLOCKS, setting.auto_relation) - - get :update, :id => 1, :setting => {:tracker_id => 1, :id => setting.id}, :convert => 'true', - :auto_assign => {} - assert_response :redirect - project = Project.find(1) - assert_redirected_to :controller => 'projects', :action => 'settings', :id => project, :tab => 'code_review' - - post :update, :id => 2, :setting => {:tracker_id => 1, :assignment_tracker_id => 1}, :auto_assign => {} - assert_response :redirect - project = Project.find(2) - assert_redirected_to :controller => 'projects', :action => 'settings', :id => project, :tab => 'code_review' - end - end - - context "add_filter" do - setup do - @project = Project.find(1) - @request.session[:user_id] = 1 - @setting = CodeReviewProjectSetting.find_or_create(@project) - @setting.auto_assign = AutoAssignSettings.new - end - - should "add filter" do - count = @setting.auto_assign.filters.length - filter = AssignmentFilter.new - filter.expression = 'aaa' - filter.order = 10 - filter.accept = true - post :add_filter, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge({:add_filter => filter.attributes}) - @auto_assign = assigns(:auto_assign) - assert_not_nil @auto_assign - assert_equal(count + 1, @auto_assign.filters.length) - assert_response :success - end - end - - context "edit_filter" do - setup do - @project = Project.find(1) - @request.session[:user_id] = 1 - @setting = CodeReviewProjectSetting.find_or_create(@project) - @setting.auto_assign = AutoAssignSettings.new - end - - should "update filter" do - - filter = AssignmentFilter.new - filter.expression = 'aaa' - filter.order = 10 - filter.accept = true - - filter2 = AssignmentFilter.new - filter2.expression = 'bbb' - filter2.order = 10 - filter2.accept = false - - post :edit_filter, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => {'0' => filter.attributes}), :num => 0, - :auto_assign_edit_filter => {'0' => filter2.attributes} - @auto_assign = assigns(:auto_assign) - assert_not_nil @auto_assign - assert_equal(1, @auto_assign.filters.length) - assert_response :success - end - end - - context "sort" do - setup do - @project = Project.find(1) - @request.session[:user_id] = 1 - @setting = CodeReviewProjectSetting.find_or_create(@project) - @setting.auto_assign = AutoAssignSettings.new - - @filters = {} - filter = AssignmentFilter.new - filter.expression = 'aaa' - filter.order = 10 - filter.accept = true - - filter2 = AssignmentFilter.new - filter2.expression = 'bbb' - filter2.order = 20 - filter2.accept = false - - filter3 = AssignmentFilter.new - filter3.expression = 'ccc' - filter3.order = 30 - filter3.accept = false - - @filters['1'] = filter.attributes - @filters['2'] = filter2.attributes - @filters['3'] = filter2.attributes - - end - - should "sort filters" do - post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, - :auto_assign_filter => {:num => 2, :move_to => 'highest'} - @auto_assign = assigns(:auto_assign) - assert_not_nil @auto_assign - assert_response :success - - post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, - :auto_assign_filter => {:num => 2, :move_to => 'higher'} - @auto_assign = assigns(:auto_assign) - assert_not_nil @auto_assign - assert_response :success - - post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, - :auto_assign_filter => {:num => 2, :move_to => 'lowest'} - @auto_assign = assigns(:auto_assign) - assert_not_nil @auto_assign - assert_response :success - - post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, - :auto_assign_filter => {:num => 2, :move_to => 'lower'} - @auto_assign = assigns(:auto_assign) - assert_not_nil @auto_assign - assert_response :success - end - end -end +# Code Review plugin for Redmine +# Copyright (C) 2009-2012 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') + +class CodeReviewSettingsControllerTest < ActionController::TestCase + fixtures :code_reviews, :projects, :users, :trackers, :projects, :projects_trackers, + :code_review_project_settings, :issues, :issue_statuses, :enumerations + + include CodeReviewAutoAssignSettings + def setup + @controller = CodeReviewSettingsController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + @request.env["HTTP_REFERER"] = '/' + enabled_module = EnabledModule.new + enabled_module.project_id = 1 + enabled_module.name = 'code_review' + enabled_module.save + + enabled_module = EnabledModule.new + enabled_module.project_id = 2 + enabled_module.name = 'code_review' + enabled_module.save + + User.current = nil + roles = Role.find(:all) + roles.each {|role| + role.permissions << :view_code_review + role.save + } + @request.session[:ctime] = Time.now.to_i + @request.session[:atime] = Time.now.to_i + end + + + context "update" do + setup do + @request.session[:user_id] = 1 + end + + should "return 302 if user is anonymous" do + @request.session[:user_id] = User.anonymous.id + get :update, :id => 1 + assert_response 302 + end + + should "save settings" do + + @request.session[:user_id] = 1 + setting = CodeReviewProjectSetting.find(1) + + post :update, :id => 1, :setting => {:tracker_id => 2, :assignment_tracker_id => 3, + :hide_code_review_tab => true, :auto_relation => CodeReviewProjectSetting::AUTORELATION_TYPE_BLOCKS}, + :auto_assign => {:filters => {:a => 1}} + assert_response :redirect + project = Project.find(1) + assert_redirected_to :controller => 'projects', :action => 'settings', :id => project, :tab => 'code_review' + + setting = assigns(:setting) + assert_equal(1, setting.updated_by) + assert_equal(project.id, setting.project_id) + assert_equal(2, setting.tracker_id) + assert_equal(3, setting.assignment_tracker_id) + assert_equal(true, setting.hide_code_review_tab) + assert_equal(CodeReviewProjectSetting::AUTORELATION_TYPE_BLOCKS, setting.auto_relation) + + get :update, :id => 1, :setting => {:tracker_id => 1, :id => setting.id}, :convert => 'true', + :auto_assign => {} + assert_response :redirect + project = Project.find(1) + assert_redirected_to :controller => 'projects', :action => 'settings', :id => project, :tab => 'code_review' + + post :update, :id => 2, :setting => {:tracker_id => 1, :assignment_tracker_id => 1}, :auto_assign => {} + assert_response :redirect + project = Project.find(2) + assert_redirected_to :controller => 'projects', :action => 'settings', :id => project, :tab => 'code_review' + end + end + + context "add_filter" do + setup do + @project = Project.find(1) + @request.session[:user_id] = 1 + @setting = CodeReviewProjectSetting.find_or_create(@project) + @setting.auto_assign = AutoAssignSettings.new + end + + should "add filter" do + count = @setting.auto_assign.filters.length + filter = AssignmentFilter.new + filter.expression = 'aaa' + filter.order = 10 + filter.accept = true + post :add_filter, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge({:add_filter => filter.attributes}) + @auto_assign = assigns(:auto_assign) + assert_not_nil @auto_assign + assert_equal(count + 1, @auto_assign.filters.length) + assert_response :success + end + end + + context "edit_filter" do + setup do + @project = Project.find(1) + @request.session[:user_id] = 1 + @setting = CodeReviewProjectSetting.find_or_create(@project) + @setting.auto_assign = AutoAssignSettings.new + end + + should "update filter" do + + filter = AssignmentFilter.new + filter.expression = 'aaa' + filter.order = 10 + filter.accept = true + + filter2 = AssignmentFilter.new + filter2.expression = 'bbb' + filter2.order = 10 + filter2.accept = false + + post :edit_filter, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => {'0' => filter.attributes}), :num => 0, + :auto_assign_edit_filter => {'0' => filter2.attributes} + @auto_assign = assigns(:auto_assign) + assert_not_nil @auto_assign + assert_equal(1, @auto_assign.filters.length) + assert_response :success + end + end + + context "sort" do + setup do + @project = Project.find(1) + @request.session[:user_id] = 1 + @setting = CodeReviewProjectSetting.find_or_create(@project) + @setting.auto_assign = AutoAssignSettings.new + + @filters = {} + filter = AssignmentFilter.new + filter.expression = 'aaa' + filter.order = 10 + filter.accept = true + + filter2 = AssignmentFilter.new + filter2.expression = 'bbb' + filter2.order = 20 + filter2.accept = false + + filter3 = AssignmentFilter.new + filter3.expression = 'ccc' + filter3.order = 30 + filter3.accept = false + + @filters['1'] = filter.attributes + @filters['2'] = filter2.attributes + @filters['3'] = filter2.attributes + + end + + should "sort filters" do + post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, + :auto_assign_filter => {:num => 2, :move_to => 'highest'} + @auto_assign = assigns(:auto_assign) + assert_not_nil @auto_assign + assert_response :success + + post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, + :auto_assign_filter => {:num => 2, :move_to => 'higher'} + @auto_assign = assigns(:auto_assign) + assert_not_nil @auto_assign + assert_response :success + + post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, + :auto_assign_filter => {:num => 2, :move_to => 'lowest'} + @auto_assign = assigns(:auto_assign) + assert_not_nil @auto_assign + assert_response :success + + post :sort, :id => @project.id, :auto_assign => @setting.auto_assign.attributes.merge(:filters => @filters), :num => 0, + :auto_assign_filter => {:num => 2, :move_to => 'lower'} + @auto_assign = assigns(:auto_assign) + assert_not_nil @auto_assign + assert_response :success + end + end +end diff --git a/plugins/redmine_code_review/test/functional/issues_controller_test.rb b/plugins/redmine_code_review/test/functional/issues_controller_test.rb index 0e45d25a9..43a5b0cae 100644 --- a/plugins/redmine_code_review/test/functional/issues_controller_test.rb +++ b/plugins/redmine_code_review/test/functional/issues_controller_test.rb @@ -1,110 +1,110 @@ -# Code Review plugin for Redmine -# Copyright (C) 2009-2012 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') -require 'issues_controller' - -# Re-raise errors caught by the controller. -class IssuesController; def rescue_action(e) raise e end; end - -class IssuesControllerTest < ActionController::TestCase - fixtures :projects, - :users, - :roles, - :members, - :issues, - :issue_statuses, - :versions, - :trackers, - :projects_trackers, - :issue_categories, - :enabled_modules, - :enumerations, - :attachments, - :workflows, - :custom_fields, - :custom_values, - :custom_fields_trackers, - :time_entries, - :journals, - :journal_details, - :code_reviews - - def setup - @controller = IssuesController.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - User.current = nil - enabled_module = EnabledModule.new - enabled_module.project_id = 1 - enabled_module.name = 'code_review' - enabled_module.save - enabled_module = EnabledModule.new - enabled_module.project_id = 2 - enabled_module.name = 'code_review' - enabled_module.save - roles = Role.find(:all) - roles.each {|role| - role.permissions << :view_code_review - role.save - } - @request.session[:ctime] = Time.now.to_i - @request.session[:atime] = Time.now.to_i - end - - def test_show - @request.session[:user_id] = 1 - project = Project.find(1) - issue = Issue.generate!(:project => project) - get :show, :id => issue.id - - issue = Issue.generate!(:project => project) - assignment = FactoryGirl.create(:code_review_assignment, issue: issue, rev: 'aaa', file_path: nil) - get :show, :id => assignment.issue.id - - issue = Issue.generate!(:project => Project.find(1)) - assignment = FactoryGirl.create(:code_review_assignment, issue: issue, rev: 'aaa', file_path: '/aaa/bbb') - get :show, :id => assignment.issue.id - - review = FactoryGirl.create(:code_review, project: project) - get :show, :id => review.issue.id - - end - - def test_new - @request.session[:user_id] = 1 - get :new, :project_id => 1 - assert_response :success - get :new, :project_id => 1, :code =>{:rev => 1, :rev_to => 2, :path => '/aaa/bbb', :action_type => 'diff'} - assert_response :success - post :new, :project_id => 1, - :issue => {:tracker_id => 1, :status_id => 1, :subject => 'hoge'}, - :code =>{:rev => 1, :rev_to => 2, :path => '/aaa/bbb', :action_type => 'diff'} - - # TODO: 0.9.xのサポート終了時に以下を有効にする。 - #assert_response :SUCESS - end - - context "create" do - should "create code_review_assignment." do - @request.session[:user_id] = 1 - project = Project.find(1) - post :create, :project_id => 1, :issue => {:subject => 'test'}, :code => {:change_id => 1, :changeset_id => 1} - assert_response :redirect - end - end -end +# Code Review plugin for Redmine +# Copyright (C) 2009-2012 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') +require 'issues_controller' + +# Re-raise errors caught by the controller. +class IssuesController; def rescue_action(e) raise e end; end + +class IssuesControllerTest < ActionController::TestCase + fixtures :projects, + :users, + :roles, + :members, + :issues, + :issue_statuses, + :versions, + :trackers, + :projects_trackers, + :issue_categories, + :enabled_modules, + :enumerations, + :attachments, + :workflows, + :custom_fields, + :custom_values, + :custom_fields_trackers, + :time_entries, + :journals, + :journal_details, + :code_reviews + + def setup + @controller = IssuesController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + User.current = nil + enabled_module = EnabledModule.new + enabled_module.project_id = 1 + enabled_module.name = 'code_review' + enabled_module.save + enabled_module = EnabledModule.new + enabled_module.project_id = 2 + enabled_module.name = 'code_review' + enabled_module.save + roles = Role.find(:all) + roles.each {|role| + role.permissions << :view_code_review + role.save + } + @request.session[:ctime] = Time.now.to_i + @request.session[:atime] = Time.now.to_i + end + + def test_show + @request.session[:user_id] = 1 + project = Project.find(1) + issue = Issue.generate!(:project => project) + get :show, :id => issue.id + + issue = Issue.generate!(:project => project) + assignment = FactoryGirl.create(:code_review_assignment, issue: issue, rev: 'aaa', file_path: nil) + get :show, :id => assignment.issue.id + + issue = Issue.generate!(:project => Project.find(1)) + assignment = FactoryGirl.create(:code_review_assignment, issue: issue, rev: 'aaa', file_path: '/aaa/bbb') + get :show, :id => assignment.issue.id + + review = FactoryGirl.create(:code_review, project: project) + get :show, :id => review.issue.id + + end + + def test_new + @request.session[:user_id] = 1 + get :new, :project_id => 1 + assert_response :success + get :new, :project_id => 1, :code =>{:rev => 1, :rev_to => 2, :path => '/aaa/bbb', :action_type => 'diff'} + assert_response :success + post :new, :project_id => 1, + :issue => {:tracker_id => 1, :status_id => 1, :subject => 'hoge'}, + :code =>{:rev => 1, :rev_to => 2, :path => '/aaa/bbb', :action_type => 'diff'} + + # TODO: 0.9.xのサポート終了時に以下を有効にする。 + #assert_response :SUCESS + end + + context "create" do + should "create code_review_assignment." do + @request.session[:user_id] = 1 + project = Project.find(1) + post :create, :project_id => 1, :issue => {:subject => 'test'}, :code => {:change_id => 1, :changeset_id => 1} + assert_response :redirect + end + end +end diff --git a/plugins/redmine_code_review/test/functional/projects_controller_test.rb b/plugins/redmine_code_review/test/functional/projects_controller_test.rb index b1a512a0c..c446398c0 100644 --- a/plugins/redmine_code_review/test/functional/projects_controller_test.rb +++ b/plugins/redmine_code_review/test/functional/projects_controller_test.rb @@ -1,328 +1,328 @@ -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') -require 'projects_controller' - -# Re-raise errors caught by the controller. -class ProjectsController; def rescue_action(e) raise e end; end - -class ProjectsControllerTest < ActionController::TestCase - fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details, - :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, - :attachments, :custom_fields, :custom_values, :time_entries - - def setup - @controller = ProjectsController.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - @request.session[:ctime] = Time.now.to_i - @request.session[:atime] = Time.now.to_i - end - - context "#settings" do - context "by anonymous" do - setup do - @request.session[:user_id] = User.anonymous.id - end - - should "302 get" do - get :settings, :id => 1 - assert_response 302 - end - - should "302 post" do - get :settings, :id => 1 - assert_response 302 - end - - context "with permission" do - setup do - Role.anonymous.add_permission! :edit_project - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - context "and module" do - setup do - FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - end - end - end - - context "by non member" do - setup do - @request.session[:user_id] = 9 - end - - should "403 get" do - get :settings, :id => 1 - assert_response 403 - end - - should "403 post" do - get :settings, :id => 1 - assert_response 403 - end - - context "with permission" do - setup do - Role.non_member.add_permission! :edit_project - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - context "and module" do - setup do - FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - end - end - end - - context "by member" do - setup do - @request.session[:user_id] = 2 - Role.find(1).remove_permission! :edit_project - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - context "with permission" do - setup do - Role.find(1).add_permission! :edit_project - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - context "and module" do - setup do - FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - end - end - end - - context "by admin user" do - setup do - @request.session[:user_id] = 1 - Role.find(1).remove_permission! :edit_project - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - context "with permission" do - setup do - Role.find(1).add_permission! :edit_project - end - - should "not exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "not exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_no_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - context "and module" do - setup do - FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') - end - - should "exist tag id get" do - get :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - - should "exist tag id post" do - post :settings, :id => 1 - assert_response :success - assert_template 'settings' - assert_tag :div, :attributes => {:class => 'tabs'}, - :descendant => {:tag => 'ul', - :descendant => {:tag => 'li', - :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} - end - end - end - end - end -end +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') +require 'projects_controller' + +# Re-raise errors caught by the controller. +class ProjectsController; def rescue_action(e) raise e end; end + +class ProjectsControllerTest < ActionController::TestCase + fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details, + :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, + :attachments, :custom_fields, :custom_values, :time_entries + + def setup + @controller = ProjectsController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + @request.session[:ctime] = Time.now.to_i + @request.session[:atime] = Time.now.to_i + end + + context "#settings" do + context "by anonymous" do + setup do + @request.session[:user_id] = User.anonymous.id + end + + should "302 get" do + get :settings, :id => 1 + assert_response 302 + end + + should "302 post" do + get :settings, :id => 1 + assert_response 302 + end + + context "with permission" do + setup do + Role.anonymous.add_permission! :edit_project + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + context "and module" do + setup do + FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + end + end + end + + context "by non member" do + setup do + @request.session[:user_id] = 9 + end + + should "403 get" do + get :settings, :id => 1 + assert_response 403 + end + + should "403 post" do + get :settings, :id => 1 + assert_response 403 + end + + context "with permission" do + setup do + Role.non_member.add_permission! :edit_project + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + context "and module" do + setup do + FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + end + end + end + + context "by member" do + setup do + @request.session[:user_id] = 2 + Role.find(1).remove_permission! :edit_project + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + context "with permission" do + setup do + Role.find(1).add_permission! :edit_project + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + context "and module" do + setup do + FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + end + end + end + + context "by admin user" do + setup do + @request.session[:user_id] = 1 + Role.find(1).remove_permission! :edit_project + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + context "with permission" do + setup do + Role.find(1).add_permission! :edit_project + end + + should "not exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "not exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_no_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + context "and module" do + setup do + FactoryGirl.create(:enabled_module, project_id: 1, name: 'code_review') + end + + should "exist tag id get" do + get :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + + should "exist tag id post" do + post :settings, :id => 1 + assert_response :success + assert_template 'settings' + assert_tag :div, :attributes => {:class => 'tabs'}, + :descendant => {:tag => 'ul', + :descendant => {:tag => 'li', + :descendant => {:tag => 'a', :attributes => {:id => 'tab-code_review'}}}} + end + end + end + end + end +end diff --git a/plugins/redmine_code_review/test/functional/repositories_controller_test.rb b/plugins/redmine_code_review/test/functional/repositories_controller_test.rb index 6efca1aec..ff5087c38 100644 --- a/plugins/redmine_code_review/test/functional/repositories_controller_test.rb +++ b/plugins/redmine_code_review/test/functional/repositories_controller_test.rb @@ -1,95 +1,95 @@ -# Code Review plugin for Redmine -# Copyright (C) 2009 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') -require 'repositories_controller' - - -class RepositoriesControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles, :members, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers - - def setup - @controller = RepositoriesController.new - @request = ActionController::TestRequest.new - @response = ActionController::TestResponse.new - User.current = nil - enabled_module = EnabledModule.new - enabled_module.project_id = 1 - enabled_module.name = 'code_review' - enabled_module.save - enabled_module = EnabledModule.new - enabled_module.project_id = 2 - enabled_module.name = 'code_review' - enabled_module.save - enabled_module = EnabledModule.new - enabled_module.project_id = 1 - enabled_module.name = 'repository' - enabled_module.save - project = Project.find(1) - repo = Repository.find(10) - project.repository = repo - project.save - - User.current = nil - roles = Role.find(:all) - roles.each {|role| - role.permissions << :view_code_review - role.permissions << :add_code_review - role.permissions << :browse_repository - role.save - } - @request.session[:ctime] = Time.now.to_i - @request.session[:atime] = Time.now.to_i - end - - def test_revision - @request.session[:user_id] = 1 - change = FactoryGirl.create(:change) - changeset = change.changeset - project = Project.find(1) - project.repository.destroy - project.repository = changeset.repository - issue = Issue.generate!({:project => project, :description => 'test'}) - review = FactoryGirl.create(:code_review, change: change, project: project, issue: issue) - get :revision, :id => project.id, :rev => changeset.revision, :path => change.path.split('/') - #assert_response :success - end - - def test_revisions - @request.session[:user_id] = 1 - get :revisions, :id => 1 - assert_response :success - end - - def test_show - @request.session[:user_id] = 1 - get :show, :id => 1 - assert_response :success - end - - def test_diff - @request.session[:user_id] = 1 - get :diff, :id => 1, :path => '/test/some/path/in/the/repo'.split('/'), :rev => 2 - #assert_response :success - end - - def test_entry - @request.session[:user_id] = 1 - get :entry, :id => 1, :path => 'test/some/path/in/the/repo'.split('/'), :rev => 2 - assert_response :success - end -end +# Code Review plugin for Redmine +# Copyright (C) 2009 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') +require 'repositories_controller' + + +class RepositoriesControllerTest < ActionController::TestCase + fixtures :projects, :users, :roles, :members, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers + + def setup + @controller = RepositoriesController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + User.current = nil + enabled_module = EnabledModule.new + enabled_module.project_id = 1 + enabled_module.name = 'code_review' + enabled_module.save + enabled_module = EnabledModule.new + enabled_module.project_id = 2 + enabled_module.name = 'code_review' + enabled_module.save + enabled_module = EnabledModule.new + enabled_module.project_id = 1 + enabled_module.name = 'repository' + enabled_module.save + project = Project.find(1) + repo = Repository.find(10) + project.repository = repo + project.save + + User.current = nil + roles = Role.find(:all) + roles.each {|role| + role.permissions << :view_code_review + role.permissions << :add_code_review + role.permissions << :browse_repository + role.save + } + @request.session[:ctime] = Time.now.to_i + @request.session[:atime] = Time.now.to_i + end + + def test_revision + @request.session[:user_id] = 1 + change = FactoryGirl.create(:change) + changeset = change.changeset + project = Project.find(1) + project.repository.destroy + project.repository = changeset.repository + issue = Issue.generate!({:project => project, :description => 'test'}) + review = FactoryGirl.create(:code_review, change: change, project: project, issue: issue) + get :revision, :id => project.id, :rev => changeset.revision, :path => change.path.split('/') + #assert_response :success + end + + def test_revisions + @request.session[:user_id] = 1 + get :revisions, :id => 1 + assert_response :success + end + + def test_show + @request.session[:user_id] = 1 + get :show, :id => 1 + assert_response :success + end + + def test_diff + @request.session[:user_id] = 1 + get :diff, :id => 1, :path => '/test/some/path/in/the/repo'.split('/'), :rev => 2 + #assert_response :success + end + + def test_entry + @request.session[:user_id] = 1 + get :entry, :id => 1, :path => 'test/some/path/in/the/repo'.split('/'), :rev => 2 + assert_response :success + end +end diff --git a/plugins/redmine_code_review/test/test_helper.rb b/plugins/redmine_code_review/test/test_helper.rb index 07b1e7219..625f105b4 100644 --- a/plugins/redmine_code_review/test/test_helper.rb +++ b/plugins/redmine_code_review/test/test_helper.rb @@ -1,125 +1,125 @@ -# Code Review plugin for Redmine -# Copyright (C) 2010-2012 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper') - -# Ensure that we are using the temporary fixture path -#ngines::Testing.set_fixture_path - -# Mock out a file -def mock_file - file = 'a_file.png' - file.stubs(:size).returns(32) - file.stubs(:original_filename).returns('a_file.png') - file.stubs(:content_type).returns('image/png') - file.stubs(:read).returns(false) - file -end - -FactoryGirl.define do - - factory :attachment do - - container{ - Project.find(1) - } - file { - ActiveSupport::TestCase.mock_file - } - author { - User.find(1) - } - end - - factory :repository do - project_id 1 - url "file:///#{Rails.root}/tmp/test/subversion_repository" - root_url "file:///#{Rails.root}/tmp/test/subversion_repository" - password "" - login "" - type { - scm = 'Subversion' - unless Setting.enabled_scm.include?(scm) - Setting.enabled_scm << scm - end - scm - } - is_default true - end - - factory :changeset do - sequence(:revision, 1000) - committed_on{ - Date.today - } - #association :repository - repository { - scm = 'Subversion' - unless Setting.enabled_scm.include?(scm) - Setting.enabled_scm << scm - end - Repository.find(10) - } - end - - factory :change do - action { - "A" - } - sequence(:path){ |n| - "test/dir/aaa#{n}" - } - changeset { - FactoryGirl.create(:changeset) - } - end - - factory :code_review_assignment do - issue_id 1 - end - - factory :issue do - subject 'hoge' - author{ - User.find(1) - } - end - - factory :code_review do - issue_id 1 - updated_by_id 1 - line 10 - action_type 'diff' - end - - factory :code_review_project_setting do - project_id 1 - tracker_id 1 - assignment_tracker_id 1 - end - - factory :enabled_module do - - end - -end -ActiveRecord::Fixtures.create_fixtures(File.dirname(__FILE__)+ '/fixtures/', - [ :code_review_assignments, - :code_reviews, - :code_review_project_settings, - :code_review_user_settings]) - +# Code Review plugin for Redmine +# Copyright (C) 2010-2012 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper') + +# Ensure that we are using the temporary fixture path +#ngines::Testing.set_fixture_path + +# Mock out a file +def mock_file + file = 'a_file.png' + file.stubs(:size).returns(32) + file.stubs(:original_filename).returns('a_file.png') + file.stubs(:content_type).returns('image/png') + file.stubs(:read).returns(false) + file +end + +FactoryGirl.define do + + factory :attachment do + + container{ + Project.find(1) + } + file { + ActiveSupport::TestCase.mock_file + } + author { + User.find(1) + } + end + + factory :repository do + project_id 1 + url "file:///#{Rails.root}/tmp/test/subversion_repository" + root_url "file:///#{Rails.root}/tmp/test/subversion_repository" + password "" + login "" + type { + scm = 'Subversion' + unless Setting.enabled_scm.include?(scm) + Setting.enabled_scm << scm + end + scm + } + is_default true + end + + factory :changeset do + sequence(:revision, 1000) + committed_on{ + Date.today + } + #association :repository + repository { + scm = 'Subversion' + unless Setting.enabled_scm.include?(scm) + Setting.enabled_scm << scm + end + Repository.find(10) + } + end + + factory :change do + action { + "A" + } + sequence(:path){ |n| + "test/dir/aaa#{n}" + } + changeset { + FactoryGirl.create(:changeset) + } + end + + factory :code_review_assignment do + issue_id 1 + end + + factory :issue do + subject 'hoge' + author{ + User.find(1) + } + end + + factory :code_review do + issue_id 1 + updated_by_id 1 + line 10 + action_type 'diff' + end + + factory :code_review_project_setting do + project_id 1 + tracker_id 1 + assignment_tracker_id 1 + end + + factory :enabled_module do + + end + +end +ActiveRecord::Fixtures.create_fixtures(File.dirname(__FILE__)+ '/fixtures/', + [ :code_review_assignments, + :code_reviews, + :code_review_project_settings, + :code_review_user_settings]) + diff --git a/plugins/redmine_code_review/test/unit/code_review_assignment_test.rb b/plugins/redmine_code_review/test/unit/code_review_assignment_test.rb index b978c6023..9c7749b22 100644 --- a/plugins/redmine_code_review/test/unit/code_review_assignment_test.rb +++ b/plugins/redmine_code_review/test/unit/code_review_assignment_test.rb @@ -1,109 +1,109 @@ -# Code Review plugin for Redmine -# Copyright (C) 2010 Haruyuki Iida -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -require File.expand_path(File.dirname(__FILE__) + '/../test_helper') - -class CodeReviewAssignmentTest < ActiveSupport::TestCase - fixtures :code_review_assignments, :issues, :issue_statuses, - :projects, :trackers, :projects_trackers, :users, :members, :repositories, - :enumerations - ActiveRecord::Fixtures.create_fixtures(File.dirname(__FILE__)+ '/../fixtures/', - [ :code_review_assignments, - :code_reviews, - :code_review_project_settings, - :code_review_user_settings]) - - def setup - @assignment = CodeReviewAssignment.new - end - - context "is_closed?" do - should "return false if assignment issue is not closed." do - @assignment.issue = Issue.new - assert !@assignment.is_closed? - end - - should "return true if assignment issue is closed." do - @assignment.issue = Issue.new - @assignment.issue.status = IssueStatus.find(5) - assert @assignment.is_closed? - end - end - - context "path" do - should "return nil if file_path is nil." do - @assignment.file_path = nil - assert_nil @assignment.path - end - - should "return aaa if file_path is aaa" do - @assignment.file_path = 'aaa' - assert_equal('aaa', @assignment.path) - end - end - - context "revision" do - should "return '123' if rev is '123'" do - @assignment.rev = '123' - assert_equal('123', @assignment.revision) - end - - should "return '456' if rev is nil and changeset.revision is '456'" do - changeset = Changeset.new - changeset.revision = '456' - @assignment.rev = nil - @assignment.changeset = changeset - assert_equal('456', @assignment.revision) - end - - should "return nil if rev and chageset are nil" do - @assignment.rev = nil - @assignment.changeset = nil - assert_nil(@assignment.revision) - end - end - - context "create_with_changeset" do - setup do - @project = Project.find(1) - @setting = CodeReviewProjectSetting.find_or_create(@project) - @setting.auto_assign_settings.author_id = 1 - @setting.assignment_tracker_id = @project.trackers[0].id - @setting.save! - end - should "create new assignment" do - @setting.auto_assign_settings.description = "aaa bbb" - @setting.save! - count = CodeReviewAssignment.all.length - changeset = Changeset.new(:repository => @project.repository, :revision => '5000', :comments => 'foo') - assignment = CodeReviewAssignment.create_with_changeset(changeset) - assert_equal(count + 1, CodeReviewAssignment.all.length) - assert_equal('aaa bbb', assignment.issue.description) - end - - should "create new assignment with keyword replacement." do - @setting.auto_assign_settings.subject = "123 $REV $COMMENTS 456" - @setting.auto_assign_settings.description = "aaa $REV $COMMENTS bbb" - @setting.save! - changeset = Changeset.new(:repository => @project.repository, :revision => '5001', :comments => 'foo') - assignment = CodeReviewAssignment.create_with_changeset(changeset) - assert_equal('aaa 5001 foo bbb', assignment.issue.description) - assert_equal('123 5001 foo 456', assignment.issue.subject) - end - end - -end +# Code Review plugin for Redmine +# Copyright (C) 2010 Haruyuki Iida +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') + +class CodeReviewAssignmentTest < ActiveSupport::TestCase + fixtures :code_review_assignments, :issues, :issue_statuses, + :projects, :trackers, :projects_trackers, :users, :members, :repositories, + :enumerations + ActiveRecord::Fixtures.create_fixtures(File.dirname(__FILE__)+ '/../fixtures/', + [ :code_review_assignments, + :code_reviews, + :code_review_project_settings, + :code_review_user_settings]) + + def setup + @assignment = CodeReviewAssignment.new + end + + context "is_closed?" do + should "return false if assignment issue is not closed." do + @assignment.issue = Issue.new + assert !@assignment.is_closed? + end + + should "return true if assignment issue is closed." do + @assignment.issue = Issue.new + @assignment.issue.status = IssueStatus.find(5) + assert @assignment.is_closed? + end + end + + context "path" do + should "return nil if file_path is nil." do + @assignment.file_path = nil + assert_nil @assignment.path + end + + should "return aaa if file_path is aaa" do + @assignment.file_path = 'aaa' + assert_equal('aaa', @assignment.path) + end + end + + context "revision" do + should "return '123' if rev is '123'" do + @assignment.rev = '123' + assert_equal('123', @assignment.revision) + end + + should "return '456' if rev is nil and changeset.revision is '456'" do + changeset = Changeset.new + changeset.revision = '456' + @assignment.rev = nil + @assignment.changeset = changeset + assert_equal('456', @assignment.revision) + end + + should "return nil if rev and chageset are nil" do + @assignment.rev = nil + @assignment.changeset = nil + assert_nil(@assignment.revision) + end + end + + context "create_with_changeset" do + setup do + @project = Project.find(1) + @setting = CodeReviewProjectSetting.find_or_create(@project) + @setting.auto_assign_settings.author_id = 1 + @setting.assignment_tracker_id = @project.trackers[0].id + @setting.save! + end + should "create new assignment" do + @setting.auto_assign_settings.description = "aaa bbb" + @setting.save! + count = CodeReviewAssignment.all.length + changeset = Changeset.new(:repository => @project.repository, :revision => '5000', :comments => 'foo') + assignment = CodeReviewAssignment.create_with_changeset(changeset) + assert_equal(count + 1, CodeReviewAssignment.all.length) + assert_equal('aaa bbb', assignment.issue.description) + end + + should "create new assignment with keyword replacement." do + @setting.auto_assign_settings.subject = "123 $REV $COMMENTS 456" + @setting.auto_assign_settings.description = "aaa $REV $COMMENTS bbb" + @setting.save! + changeset = Changeset.new(:repository => @project.repository, :revision => '5001', :comments => 'foo') + assignment = CodeReviewAssignment.create_with_changeset(changeset) + assert_equal('aaa 5001 foo bbb', assignment.issue.description) + assert_equal('123 5001 foo 456', assignment.issue.subject) + end + end + +end diff --git a/public/file_not_found.html b/public/file_not_found.html index 74b2013e7..986daa0c1 100644 --- a/public/file_not_found.html +++ b/public/file_not_found.html @@ -1,42 +1,42 @@ - - - - - File not found - - - -
- -

对不起,该文件现在不能下载!

-

返回主页

- -
-
-

Trustie开发团队.

-
-
- -
- - + + + + + File not found + + + +
+ +

对不起,该文件现在不能下载!

+

返回主页

+ +
+
+

Trustie开发团队.

+
+
+ +
+ + diff --git a/public/javascripts/application.js b/public/javascripts/application.js index e4c5d4089..57e3e32b8 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1,687 +1,687 @@ -//= require_directory ./rateable -/* Redmine - project management software - Copyright (C) 2006-2013 Jean-Philippe Lang */ - -function cleanArray (actual){ - var newArray = new Array(); - for (var i = 0; i< actual.length; i++){ - if (actual[i]){ - newArray.push(actual[i]); - } - } - return newArray; -} - -function checkAll(id, checked) { - if (checked) { - $('#'+id).find('input[type=checkbox]').attr('checked', true); - } else { - $('#'+id).find('input[type=checkbox]').removeAttr('checked'); - } -} - -function toggleCheckboxesBySelector(selector) { - var all_checked = true; - $(selector).each(function(index) { - if (!$(this).is(':checked')) { all_checked = false; } - }); - $(selector).attr('checked', !all_checked); -} - -function showAndScrollTo(id, focus) { - $('#'+id).show(); - if (focus !== null) { - $('#'+focus).focus(); - } - $('html, body').animate({scrollTop: $('#'+id).offset().top}, 400); -} - -function toggleRowGroup(el) { - var tr = $(el).parents('tr').first(); - var n = tr.next(); - tr.toggleClass('open'); - while (n.length && !n.hasClass('group')) { - n.toggle(); - n = n.next('tr'); - } -} - -function collapseAllRowGroups(el) { - var tbody = $(el).parents('tbody').first(); - tbody.children('tr').each(function(index) { - if ($(this).hasClass('group')) { - $(this).removeClass('open'); - } else { - $(this).hide(); - } - }); -} - -function expandAllRowGroups(el) { - var tbody = $(el).parents('tbody').first(); - tbody.children('tr').each(function(index) { - if ($(this).hasClass('group')) { - $(this).addClass('open'); - } else { - $(this).show(); - } - }); -} - -function toggleAllRowGroups(el) { - var tr = $(el).parents('tr').first(); - if (tr.hasClass('open')) { - collapseAllRowGroups(el); - } else { - expandAllRowGroups(el); - } -} - -function toggleFieldset(el) { - var fieldset = $(el).parents('fieldset').first(); - fieldset.toggleClass('collapsed'); - fieldset.children('div').toggle(); -} - -function hideFieldset(el) { - var fieldset = $(el).parents('fieldset').first(); - fieldset.toggleClass('collapsed'); - fieldset.children('div').hide(); -} - -function initFilters(){ - $('#add_filter_select').change(function(){ - addFilter($(this).val(), '', []); - }); - $('#filters-table td.field input[type=checkbox]').each(function(){ - toggleFilter($(this).val()); - }); - $('#filters-table td.field input[type=checkbox]').live('click',function(){ - toggleFilter($(this).val()); - }); - $('#filters-table .toggle-multiselect').live('click',function(){ - toggleMultiSelect($(this).siblings('select')); - }); - $('#filters-table input[type=text]').live('keypress', function(e){ - if (e.keyCode == 13) submit_query_form("query_form"); - }); -} - -function addFilter(field, operator, values) { - var fieldId = field.replace('.', '_'); - var tr = $('#tr_'+fieldId); - if (tr.length > 0) { - tr.show(); - } else { - buildFilterRow(field, operator, values); - } - $('#cb_'+fieldId).attr('checked', true); - toggleFilter(field); - $('#add_filter_select').val('').children('option').each(function(){ - if ($(this).attr('value') == field) { - $(this).attr('disabled', true); - } - }); -} - -function buildFilterRow(field, operator, values) { - var fieldId = field.replace('.', '_'); - var filterTable = $("#filters-table"); - var filterOptions = availableFilters[field]; - var operators = operatorByType[filterOptions['type']]; - var filterValues = filterOptions['values']; - var i, select; - - var tr = $('').attr('id', 'tr_'+fieldId).html( - '' + - '' + - ' 复选/multi-select' - ); - select = tr.find('td.values select'); - if (values.length > 1) { select.attr('multiple', true); } - for (i=0;i'); - if ($.isArray(filterValue)) { - option.val(filterValue[1]).text(filterValue[0]); - if ($.inArray(filterValue[1], values) > -1) {option.attr('selected', true);} - } else { - option.val(filterValue).text(filterValue); - if ($.inArray(filterValue, values) > -1) {option.attr('selected', true);} - } - select.append(option); - } - break; - case "date": - case "date_past": - tr.find('td.values').append( - '' + - ' ' + - ' '+labelDayPlural+'' - ); - $('#values_'+fieldId+'_1').val(values[0]).datepicker(datepickerOptions); - $('#values_'+fieldId+'_2').val(values[1]).datepicker(datepickerOptions); - $('#values_'+fieldId).val(values[0]); - break; - case "string": - case "text": - tr.find('td.values').append( - '' - ); - $('#values_'+fieldId).val(values[0]); - break; - case "relation": - tr.find('td.values').append( - '' + - '' - ); - $('#values_'+fieldId).val(values[0]); - select = tr.find('td.values select'); - for (i=0;i'); - option.val(filterValue[1]).text(filterValue[0]); - if (values[0] == filterValue[1]) { option.attr('selected', true); } - select.append(option); - } - case "integer": - case "float": - tr.find('td.values').append( - '' + - ' ' - ); - $('#values_'+fieldId+'_1').val(values[0]); - $('#values_'+fieldId+'_2').val(values[1]); - break; - } -} - -function toggleFilter(field) { - var fieldId = field.replace('.', '_'); - if ($('#cb_' + fieldId).is(':checked')) { - $("#operators_" + fieldId).show().removeAttr('disabled'); - toggleOperator(field); - } else { - $("#operators_" + fieldId).hide().attr('disabled', true); - enableValues(field, []); - } -} - -function enableValues(field, indexes) { - var fieldId = field.replace('.', '_'); - $('#tr_'+fieldId+' td.values .value').each(function(index) { - if ($.inArray(index, indexes) >= 0) { - $(this).removeAttr('disabled'); - $(this).parents('span').first().show(); - } else { - $(this).val(''); - $(this).attr('disabled', true); - $(this).parents('span').first().hide(); - } - - if ($(this).hasClass('group')) { - $(this).addClass('open'); - } else { - $(this).show(); - } - }); -} - -function toggleOperator(field) { - var fieldId = field.replace('.', '_'); - var operator = $("#operators_" + fieldId); - switch (operator.val()) { - case "!*": - case "*": - case "t": - case "ld": - case "w": - case "lw": - case "l2w": - case "m": - case "lm": - case "y": - case "o": - case "c": - enableValues(field, []); - break; - case "><": - enableValues(field, [0,1]); - break; - case "t+": - case ">t-": - case "0) { - lis.eq(i-1).show(); - } -} - -function displayTabsButtons() { - var lis; - var tabsWidth = 0; - var el; - $('div.tabs').each(function() { - el = $(this); - lis = el.find('ul').children(); - lis.each(function(){ - if ($(this).is(':visible')) { - tabsWidth += $(this).width() + 6; - } - }); - if ((tabsWidth < el.width() - 60) && (lis.first().is(':visible'))) { - el.find('div.tabs-buttons').hide(); - } else { - el.find('div.tabs-buttons').show(); - } - }); -} - -function setPredecessorFieldsVisibility() { - var relationType = $('#relation_relation_type'); - if (relationType.val() == "precedes" || relationType.val() == "follows") { - $('#predecessor_fields').show(); - } else { - $('#predecessor_fields').hide(); - } -} - -function showModal(id, width) { - var el = $('#'+id).first(); - if (el.length === 0 || el.is(':visible')) {return;} - var title = el.find('h3.title').text(); - el.dialog({ - width: width, - modal: true, - resizable: false, - dialogClass: 'modal', - title: title - }); - el.find("input[type=text], input[type=submit]").first().focus(); -} - -function hideModal(el) { - var modal; - if (el) { - modal = $(el).parents('.ui-dialog-content'); - } else { - modal = $('#ajax-modal'); - } - modal.dialog("close"); -} - -function submitPreview(url, form, target) { - $.ajax({ - url: url, - type: 'post', - data: $('#'+form).serialize(), - success: function(data){ - $('#'+target).html(data); - } - }); -} - -function collapseScmEntry(id) { - $('.'+id).each(function() { - if ($(this).hasClass('open')) { - collapseScmEntry($(this).attr('id')); - } - $(this).hide(); - }); - $('#'+id).removeClass('open'); -} - -function expandScmEntry(id) { - $('.'+id).each(function() { - $(this).show(); - if ($(this).hasClass('loaded') && !$(this).hasClass('collapsed')) { - expandScmEntry($(this).attr('id')); - } - }); - $('#'+id).addClass('open'); -} - -function scmEntryClick(id, url) { - el = $('#'+id); - if (el.hasClass('open')) { - collapseScmEntry(id); - el.addClass('collapsed'); - return false; - } else if (el.hasClass('loaded')) { - expandScmEntry(id); - el.removeClass('collapsed'); - return false; - } - if (el.hasClass('loading')) { - return false; - } - el.addClass('loading'); - $.ajax({ - url: url, - success: function(data){ - el.after(data); - el.addClass('open').addClass('loaded').removeClass('loading'); - } - }); - return true; -} - -function randomKey(size) { - var chars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); - var key = ''; - for (i = 0; i < size; i++) { - key += chars[Math.floor(Math.random() * chars.length)]; - } - return key; -} - -// Can't use Rails' remote select because we need the form data -function updateIssueFrom(url) { - $.ajax({ - url: url, - type: 'post', - data: $('#issue-form').serialize() - }); -} - -function updateBulkEditFrom(url) { - $.ajax({ - url: url, - type: 'post', - data: $('#bulk_edit_form').serialize() - }); -} - -function clearMessage(id) { - $('#'+id).val(""); -} - - -function observeAutocompleteField(fieldId, url, options) { - $(document).ready(function() { - $('#'+fieldId).autocomplete($.extend({ - source: url, - select: function(e,ui){self.location="/issues/"+ui.item.value;}, - minLength: 2, - search: function(){$('#'+fieldId).addClass('ajax-loading');}, - response: function(){$('#'+fieldId).removeClass('ajax-loading'); - } - }, options)); - $('#'+fieldId).addClass('autocomplete'); - - }); - -} - -function observeSearchfield(fieldId, targetId, url) { - $('#'+fieldId).each(function() { - var $this = $(this); - $this.addClass('autocomplete'); - $this.attr('data-value-was', $this.val()); - var check = function() { - var val = $this.val(); - if ($this.attr('data-value-was') != val){ - $this.attr('data-value-was', val); - $.ajax({ - url: url, - type: 'get', - data: {q: $this.val()}, - success: function(data){ if(targetId) $('#'+targetId).html(data); }, - beforeSend: function(){ $this.addClass('ajax-loading'); }, - complete: function(){ $this.removeClass('ajax-loading'); } - }); - } - }; - var reset = function() { - if (timer) { - clearInterval(timer); - timer = setInterval(check, 300); - } - }; - var timer = setInterval(check, 300); - $this.bind('keyup click mousemove', reset); - }); -} - -function observeProjectModules() { - var f = function() { - /* Hides trackers and issues custom fields on the new project form when issue_tracking module is disabled */ - if ($('#project_enabled_module_names_issue_tracking').attr('checked')) { - $('#project_trackers').show(); - }else{ - $('#project_trackers').hide(); - } - }; - - $(window).load(f); - $('#project_enabled_module_names_issue_tracking').change(f); -} - -function initMyPageSortable(list, url) { - $('#list-'+list).sortable({ - connectWith: '.block-receiver', - tolerance: 'pointer', - update: function(){ - $.ajax({ - url: url, - type: 'post', - data: {'blocks': $.map($('#list-'+list).children(), function(el){return $(el).attr('id');})} - }); - } - }); - $("#list-top, #list-left, #list-right").disableSelection(); -} - -var warnLeavingUnsavedMessage; -function warnLeavingUnsaved(message) { - warnLeavingUnsavedMessage = message; - - $('form').submit(function(){ - $('textarea').removeData('changed'); - }); - $('textarea').change(function(){ - $(this).data('changed', 'changed'); - }); - window.onbeforeunload = function(){ - var warn = false; - $('textarea').blur().each(function(){ - if ($(this).data('changed')) { - warn = true; - } - }); - if (warn) {return warnLeavingUnsavedMessage;} - }; -} - -function setupAjaxIndicator() { - - $('#ajax-indicator').bind('ajaxSend', function(event, xhr, settings) { - - if ($('.ajax-loading').length === 0 && settings.contentType != 'application/octet-stream') { - $('#ajax-indicator').show(); - } - }); - - $('#ajax-indicator').bind('ajaxStop', function() { - $('#ajax-indicator').hide(); - }); -} - -function hideOnLoad() { - $('.hol').hide(); -} - -function addFormObserversForDoubleSubmit() { - $('form[method=post]').each(function() { - if (!$(this).hasClass('multiple-submit')) { - $(this).submit(function(form_submission) { - if ($(form_submission.target).attr('data-submitted')) { - form_submission.preventDefault(); - } else { - $(form_submission.target).attr('data-submitted', true); - } - }); - } - }); -} - -function blockEventPropagation(event) { - event.stopPropagation(); - event.preventDefault(); -} - -function toggleAndSettingWordsVal(parent_widget, text_widget, value){ - text_widget.val(value) - parent_widget.slideToggle(400) -} -function transpotUrl (scope) { - $(scope).each(function(){ - var tmpContent = $(this).html(); - tmpContent = tmpContent.replace(/(^|[^\"\'])(http|ftp|mms|rstp|news|https)(\:\/\/[^<\s\+,,]+)/gi,"$1$2$3<\/a>"); - // tmpContent = tmpContent.replace(/(^|[^\/])(www\.[^<\s\+,,]+)/gi,"$1$2"); - $(this).html(tmpContent); - }); -} - -$(document).ready(setupAjaxIndicator); -$(document).ready(hideOnLoad); -$(document).ready(addFormObserversForDoubleSubmit); - -function img_thumbnails() { - $('.thumbnails a').colorbox({rel:'nofollow'}); - $('.attachments').find('a').each(function(index, element) { - var href_value = $(element).attr('href'); - if (/\.(jpg|png|gif|bmp)$/.test(href_value)) { - $(element).colorbox({rel:'nofollow'}); - } - - }); -} -$(document).ready(img_thumbnails); - -function TimeClose(dateText, inst) { - if(inst.id=="issue_start_date"){ - time=dateText; - } -} -var time=new Date(); -function TimeBeforeShow(input){ - if(input.id=="issue_due_date"){ - //var minDate = $(input).datepicker('option', 'minDate'); - var tempdata=$("#issue_start_date").attr("value"); - - $(input).datepicker('option', 'minDate',new Date(tempdata.replace(/-/g, "/"))); - //$('.selector').datepicker('option', 'minDate', '12/25/2012'); - } -} - -function SetMinValue(){ - /// var tempdata=$("#issue_start_date").attr("value"); - //$('.selector').datepicker('option', 'minDate', '12/25/2012'); - //alert(tempdata); - //$("#issue_due_date").datepicker({ - // minDate: new Date(2014,08,23) - //var datepickerOptions= - //{dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true}; - //alert( $('.issue_due_date').length); - //$('.selector')[1].datepicker('option', 'minDate', new Date(2014, 0 - 8, 23)); - //$("#issue_due_date").datepicker(datepickerOptions); - //$("##{issue_due_date}").datepicker(datepickerOptions); - //$("#issue_due_date").datepicker( - // {dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true} - //) - //}); -} -function PrecentChange(obj){ - var _v= obj; - if(_v==100) - { - //var select=$("select[id='issue_status_id']"); - $("select[id='issue_status_id']").find("option[value='3']").attr("selected","selected"); - } - else if(_v==0) - { - //alert(1); - $("select[id='issue_status_id']").find("option[value='1']").attr("selected","selected"); - } - else if(_v!=100&&_v!=0) - { - // alert(2); - $("select[id='issue_status_id']").find("option[value='2']").attr("selected","selected"); - } -} +//= require_directory ./rateable +/* Redmine - project management software + Copyright (C) 2006-2013 Jean-Philippe Lang */ + +function cleanArray (actual){ + var newArray = new Array(); + for (var i = 0; i< actual.length; i++){ + if (actual[i]){ + newArray.push(actual[i]); + } + } + return newArray; +} + +function checkAll(id, checked) { + if (checked) { + $('#'+id).find('input[type=checkbox]').attr('checked', true); + } else { + $('#'+id).find('input[type=checkbox]').removeAttr('checked'); + } +} + +function toggleCheckboxesBySelector(selector) { + var all_checked = true; + $(selector).each(function(index) { + if (!$(this).is(':checked')) { all_checked = false; } + }); + $(selector).attr('checked', !all_checked); +} + +function showAndScrollTo(id, focus) { + $('#'+id).show(); + if (focus !== null) { + $('#'+focus).focus(); + } + $('html, body').animate({scrollTop: $('#'+id).offset().top}, 400); +} + +function toggleRowGroup(el) { + var tr = $(el).parents('tr').first(); + var n = tr.next(); + tr.toggleClass('open'); + while (n.length && !n.hasClass('group')) { + n.toggle(); + n = n.next('tr'); + } +} + +function collapseAllRowGroups(el) { + var tbody = $(el).parents('tbody').first(); + tbody.children('tr').each(function(index) { + if ($(this).hasClass('group')) { + $(this).removeClass('open'); + } else { + $(this).hide(); + } + }); +} + +function expandAllRowGroups(el) { + var tbody = $(el).parents('tbody').first(); + tbody.children('tr').each(function(index) { + if ($(this).hasClass('group')) { + $(this).addClass('open'); + } else { + $(this).show(); + } + }); +} + +function toggleAllRowGroups(el) { + var tr = $(el).parents('tr').first(); + if (tr.hasClass('open')) { + collapseAllRowGroups(el); + } else { + expandAllRowGroups(el); + } +} + +function toggleFieldset(el) { + var fieldset = $(el).parents('fieldset').first(); + fieldset.toggleClass('collapsed'); + fieldset.children('div').toggle(); +} + +function hideFieldset(el) { + var fieldset = $(el).parents('fieldset').first(); + fieldset.toggleClass('collapsed'); + fieldset.children('div').hide(); +} + +function initFilters(){ + $('#add_filter_select').change(function(){ + addFilter($(this).val(), '', []); + }); + $('#filters-table td.field input[type=checkbox]').each(function(){ + toggleFilter($(this).val()); + }); + $('#filters-table td.field input[type=checkbox]').live('click',function(){ + toggleFilter($(this).val()); + }); + $('#filters-table .toggle-multiselect').live('click',function(){ + toggleMultiSelect($(this).siblings('select')); + }); + $('#filters-table input[type=text]').live('keypress', function(e){ + if (e.keyCode == 13) submit_query_form("query_form"); + }); +} + +function addFilter(field, operator, values) { + var fieldId = field.replace('.', '_'); + var tr = $('#tr_'+fieldId); + if (tr.length > 0) { + tr.show(); + } else { + buildFilterRow(field, operator, values); + } + $('#cb_'+fieldId).attr('checked', true); + toggleFilter(field); + $('#add_filter_select').val('').children('option').each(function(){ + if ($(this).attr('value') == field) { + $(this).attr('disabled', true); + } + }); +} + +function buildFilterRow(field, operator, values) { + var fieldId = field.replace('.', '_'); + var filterTable = $("#filters-table"); + var filterOptions = availableFilters[field]; + var operators = operatorByType[filterOptions['type']]; + var filterValues = filterOptions['values']; + var i, select; + + var tr = $('').attr('id', 'tr_'+fieldId).html( + '' + + '' + + ' 复选/multi-select' + ); + select = tr.find('td.values select'); + if (values.length > 1) { select.attr('multiple', true); } + for (i=0;i'); + if ($.isArray(filterValue)) { + option.val(filterValue[1]).text(filterValue[0]); + if ($.inArray(filterValue[1], values) > -1) {option.attr('selected', true);} + } else { + option.val(filterValue).text(filterValue); + if ($.inArray(filterValue, values) > -1) {option.attr('selected', true);} + } + select.append(option); + } + break; + case "date": + case "date_past": + tr.find('td.values').append( + '' + + ' ' + + ' '+labelDayPlural+'' + ); + $('#values_'+fieldId+'_1').val(values[0]).datepicker(datepickerOptions); + $('#values_'+fieldId+'_2').val(values[1]).datepicker(datepickerOptions); + $('#values_'+fieldId).val(values[0]); + break; + case "string": + case "text": + tr.find('td.values').append( + '' + ); + $('#values_'+fieldId).val(values[0]); + break; + case "relation": + tr.find('td.values').append( + '' + + '' + ); + $('#values_'+fieldId).val(values[0]); + select = tr.find('td.values select'); + for (i=0;i'); + option.val(filterValue[1]).text(filterValue[0]); + if (values[0] == filterValue[1]) { option.attr('selected', true); } + select.append(option); + } + case "integer": + case "float": + tr.find('td.values').append( + '' + + ' ' + ); + $('#values_'+fieldId+'_1').val(values[0]); + $('#values_'+fieldId+'_2').val(values[1]); + break; + } +} + +function toggleFilter(field) { + var fieldId = field.replace('.', '_'); + if ($('#cb_' + fieldId).is(':checked')) { + $("#operators_" + fieldId).show().removeAttr('disabled'); + toggleOperator(field); + } else { + $("#operators_" + fieldId).hide().attr('disabled', true); + enableValues(field, []); + } +} + +function enableValues(field, indexes) { + var fieldId = field.replace('.', '_'); + $('#tr_'+fieldId+' td.values .value').each(function(index) { + if ($.inArray(index, indexes) >= 0) { + $(this).removeAttr('disabled'); + $(this).parents('span').first().show(); + } else { + $(this).val(''); + $(this).attr('disabled', true); + $(this).parents('span').first().hide(); + } + + if ($(this).hasClass('group')) { + $(this).addClass('open'); + } else { + $(this).show(); + } + }); +} + +function toggleOperator(field) { + var fieldId = field.replace('.', '_'); + var operator = $("#operators_" + fieldId); + switch (operator.val()) { + case "!*": + case "*": + case "t": + case "ld": + case "w": + case "lw": + case "l2w": + case "m": + case "lm": + case "y": + case "o": + case "c": + enableValues(field, []); + break; + case "><": + enableValues(field, [0,1]); + break; + case "t+": + case ">t-": + case "0) { + lis.eq(i-1).show(); + } +} + +function displayTabsButtons() { + var lis; + var tabsWidth = 0; + var el; + $('div.tabs').each(function() { + el = $(this); + lis = el.find('ul').children(); + lis.each(function(){ + if ($(this).is(':visible')) { + tabsWidth += $(this).width() + 6; + } + }); + if ((tabsWidth < el.width() - 60) && (lis.first().is(':visible'))) { + el.find('div.tabs-buttons').hide(); + } else { + el.find('div.tabs-buttons').show(); + } + }); +} + +function setPredecessorFieldsVisibility() { + var relationType = $('#relation_relation_type'); + if (relationType.val() == "precedes" || relationType.val() == "follows") { + $('#predecessor_fields').show(); + } else { + $('#predecessor_fields').hide(); + } +} + +function showModal(id, width) { + var el = $('#'+id).first(); + if (el.length === 0 || el.is(':visible')) {return;} + var title = el.find('h3.title').text(); + el.dialog({ + width: width, + modal: true, + resizable: false, + dialogClass: 'modal', + title: title + }); + el.find("input[type=text], input[type=submit]").first().focus(); +} + +function hideModal(el) { + var modal; + if (el) { + modal = $(el).parents('.ui-dialog-content'); + } else { + modal = $('#ajax-modal'); + } + modal.dialog("close"); +} + +function submitPreview(url, form, target) { + $.ajax({ + url: url, + type: 'post', + data: $('#'+form).serialize(), + success: function(data){ + $('#'+target).html(data); + } + }); +} + +function collapseScmEntry(id) { + $('.'+id).each(function() { + if ($(this).hasClass('open')) { + collapseScmEntry($(this).attr('id')); + } + $(this).hide(); + }); + $('#'+id).removeClass('open'); +} + +function expandScmEntry(id) { + $('.'+id).each(function() { + $(this).show(); + if ($(this).hasClass('loaded') && !$(this).hasClass('collapsed')) { + expandScmEntry($(this).attr('id')); + } + }); + $('#'+id).addClass('open'); +} + +function scmEntryClick(id, url) { + el = $('#'+id); + if (el.hasClass('open')) { + collapseScmEntry(id); + el.addClass('collapsed'); + return false; + } else if (el.hasClass('loaded')) { + expandScmEntry(id); + el.removeClass('collapsed'); + return false; + } + if (el.hasClass('loading')) { + return false; + } + el.addClass('loading'); + $.ajax({ + url: url, + success: function(data){ + el.after(data); + el.addClass('open').addClass('loaded').removeClass('loading'); + } + }); + return true; +} + +function randomKey(size) { + var chars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); + var key = ''; + for (i = 0; i < size; i++) { + key += chars[Math.floor(Math.random() * chars.length)]; + } + return key; +} + +// Can't use Rails' remote select because we need the form data +function updateIssueFrom(url) { + $.ajax({ + url: url, + type: 'post', + data: $('#issue-form').serialize() + }); +} + +function updateBulkEditFrom(url) { + $.ajax({ + url: url, + type: 'post', + data: $('#bulk_edit_form').serialize() + }); +} + +function clearMessage(id) { + $('#'+id).val(""); +} + + +function observeAutocompleteField(fieldId, url, options) { + $(document).ready(function() { + $('#'+fieldId).autocomplete($.extend({ + source: url, + select: function(e,ui){self.location="/issues/"+ui.item.value;}, + minLength: 2, + search: function(){$('#'+fieldId).addClass('ajax-loading');}, + response: function(){$('#'+fieldId).removeClass('ajax-loading'); + } + }, options)); + $('#'+fieldId).addClass('autocomplete'); + + }); + +} + +function observeSearchfield(fieldId, targetId, url) { + $('#'+fieldId).each(function() { + var $this = $(this); + $this.addClass('autocomplete'); + $this.attr('data-value-was', $this.val()); + var check = function() { + var val = $this.val(); + if ($this.attr('data-value-was') != val){ + $this.attr('data-value-was', val); + $.ajax({ + url: url, + type: 'get', + data: {q: $this.val()}, + success: function(data){ if(targetId) $('#'+targetId).html(data); }, + beforeSend: function(){ $this.addClass('ajax-loading'); }, + complete: function(){ $this.removeClass('ajax-loading'); } + }); + } + }; + var reset = function() { + if (timer) { + clearInterval(timer); + timer = setInterval(check, 300); + } + }; + var timer = setInterval(check, 300); + $this.bind('keyup click mousemove', reset); + }); +} + +function observeProjectModules() { + var f = function() { + /* Hides trackers and issues custom fields on the new project form when issue_tracking module is disabled */ + if ($('#project_enabled_module_names_issue_tracking').attr('checked')) { + $('#project_trackers').show(); + }else{ + $('#project_trackers').hide(); + } + }; + + $(window).load(f); + $('#project_enabled_module_names_issue_tracking').change(f); +} + +function initMyPageSortable(list, url) { + $('#list-'+list).sortable({ + connectWith: '.block-receiver', + tolerance: 'pointer', + update: function(){ + $.ajax({ + url: url, + type: 'post', + data: {'blocks': $.map($('#list-'+list).children(), function(el){return $(el).attr('id');})} + }); + } + }); + $("#list-top, #list-left, #list-right").disableSelection(); +} + +var warnLeavingUnsavedMessage; +function warnLeavingUnsaved(message) { + warnLeavingUnsavedMessage = message; + + $('form').submit(function(){ + $('textarea').removeData('changed'); + }); + $('textarea').change(function(){ + $(this).data('changed', 'changed'); + }); + window.onbeforeunload = function(){ + var warn = false; + $('textarea').blur().each(function(){ + if ($(this).data('changed')) { + warn = true; + } + }); + if (warn) {return warnLeavingUnsavedMessage;} + }; +} + +function setupAjaxIndicator() { + + $('#ajax-indicator').bind('ajaxSend', function(event, xhr, settings) { + + if ($('.ajax-loading').length === 0 && settings.contentType != 'application/octet-stream') { + $('#ajax-indicator').show(); + } + }); + + $('#ajax-indicator').bind('ajaxStop', function() { + $('#ajax-indicator').hide(); + }); +} + +function hideOnLoad() { + $('.hol').hide(); +} + +function addFormObserversForDoubleSubmit() { + $('form[method=post]').each(function() { + if (!$(this).hasClass('multiple-submit')) { + $(this).submit(function(form_submission) { + if ($(form_submission.target).attr('data-submitted')) { + form_submission.preventDefault(); + } else { + $(form_submission.target).attr('data-submitted', true); + } + }); + } + }); +} + +function blockEventPropagation(event) { + event.stopPropagation(); + event.preventDefault(); +} + +function toggleAndSettingWordsVal(parent_widget, text_widget, value){ + text_widget.val(value) + parent_widget.slideToggle(400) +} +function transpotUrl (scope) { + $(scope).each(function(){ + var tmpContent = $(this).html(); + tmpContent = tmpContent.replace(/(^|[^\"\'])(http|ftp|mms|rstp|news|https)(\:\/\/[^<\s\+,,]+)/gi,"$1$2$3<\/a>"); + // tmpContent = tmpContent.replace(/(^|[^\/])(www\.[^<\s\+,,]+)/gi,"$1$2"); + $(this).html(tmpContent); + }); +} + +$(document).ready(setupAjaxIndicator); +$(document).ready(hideOnLoad); +$(document).ready(addFormObserversForDoubleSubmit); + +function img_thumbnails() { + $('.thumbnails a').colorbox({rel:'nofollow'}); + $('.attachments').find('a').each(function(index, element) { + var href_value = $(element).attr('href'); + if (/\.(jpg|png|gif|bmp)$/.test(href_value)) { + $(element).colorbox({rel:'nofollow'}); + } + + }); +} +$(document).ready(img_thumbnails); + +function TimeClose(dateText, inst) { + if(inst.id=="issue_start_date"){ + time=dateText; + } +} +var time=new Date(); +function TimeBeforeShow(input){ + if(input.id=="issue_due_date"){ + //var minDate = $(input).datepicker('option', 'minDate'); + var tempdata=$("#issue_start_date").attr("value"); + + $(input).datepicker('option', 'minDate',new Date(tempdata.replace(/-/g, "/"))); + //$('.selector').datepicker('option', 'minDate', '12/25/2012'); + } +} + +function SetMinValue(){ + /// var tempdata=$("#issue_start_date").attr("value"); + //$('.selector').datepicker('option', 'minDate', '12/25/2012'); + //alert(tempdata); + //$("#issue_due_date").datepicker({ + // minDate: new Date(2014,08,23) + //var datepickerOptions= + //{dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true}; + //alert( $('.issue_due_date').length); + //$('.selector')[1].datepicker('option', 'minDate', new Date(2014, 0 - 8, 23)); + //$("#issue_due_date").datepicker(datepickerOptions); + //$("##{issue_due_date}").datepicker(datepickerOptions); + //$("#issue_due_date").datepicker( + // {dateFormat: 'yy-mm-dd',minDate: new Date(2014,08,23), showOn: 'button', buttonImageOnly: true, buttonImage: "path_to_image('/images/calendar.png')", showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true} + //) + //}); +} +function PrecentChange(obj){ + var _v= obj; + if(_v==100) + { + //var select=$("select[id='issue_status_id']"); + $("select[id='issue_status_id']").find("option[value='3']").attr("selected","selected"); + } + else if(_v==0) + { + //alert(1); + $("select[id='issue_status_id']").find("option[value='1']").attr("selected","selected"); + } + else if(_v!=100&&_v!=0) + { + // alert(2); + $("select[id='issue_status_id']").find("option[value='2']").attr("selected","selected"); + } +} diff --git a/public/javascripts/avatars.js b/public/javascripts/avatars.js index 747eb11e1..3d8420dc0 100644 --- a/public/javascripts/avatars.js +++ b/public/javascripts/avatars.js @@ -1,207 +1,207 @@ -/* Redmine - project management software - Copyright (C) 2006-2013 Jean-Philippe Lang - Modified by Jianfeng Tao, to upload one avatar for user*/ - -function addFile(inputEl, file, eagerUpload) { - - var fileSpan = $('#avatar_file'); - - //fileSpan.append( - // $('', { type: 'text', 'class': 'filename readonly', name: 'avatar[filename]', readonly: 'readonly'} ).val(file.name), - // $(' ').attr({ href: "#", 'class': 'remove-upload' }).click(removeFile).toggle(!eagerUpload) - //).appendTo('#avatar_fields'); - - if(eagerUpload) { - ajaxUpload(file, fileSpan, inputEl); - } - - return 1; -} - -function ajaxUpload(file, fileSpan, inputEl) { - - function onLoadstart(e) { - fileSpan.removeClass('ajax-waiting'); - fileSpan.addClass('ajax-loading'); - $('input:submit', $(this).parents('form')).attr('disabled', 'disabled'); - } - - function onProgress(e) { - if(e.lengthComputable) { - this.progressbar( 'value', e.loaded * 100 / e.total ); - } - } - - function actualUpload(file, fileSpan, inputEl) { - - ajaxUpload.uploading++; - - uploadBlob(file, $(inputEl).data('upload-path'),$(inputEl).data('source-type'), $(inputEl).data('source-id'),{ - loadstartEventHandler: onLoadstart.bind(progressSpan), - progressEventHandler: onProgress.bind(progressSpan) - }) - .done(function(result) { - progressSpan.progressbar( 'value', 100 ); - progressSpan.progressbar( 'destroy'); - fileSpan.find('input.description, a').css('display', 'inline-block'); - }) - .fail(function(result) { - progressSpan.text(result.statusText); - }).always(function() { - ajaxUpload.uploading--; - fileSpan.removeClass('ajax-loading'); - var form = fileSpan.parents('form'); - - if (form.queue('upload').length == 0 && ajaxUpload.uploading == 0) { - $('input:submit', form).removeAttr('disabled'); - } - form.dequeue('upload'); - }); - } - - var progressSpan = $('#upload_progressbar'); - progressSpan.progressbar(); - fileSpan.addClass('ajax-waiting'); - - var maxSyncUpload = $(inputEl).data('max-concurrent-uploads'); - - if(maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload) - actualUpload(file, fileSpan, inputEl); - else - $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, fileSpan, inputEl)); -} - -ajaxUpload.uploading = 0; - -function removeFile() { - $(this).parent('span').remove(); - return false; -} - -function uploadBlob(blob, uploadUrl, source_type,source_id, options) { - - var actualOptions = $.extend({ - loadstartEventHandler: $.noop, - progressEventHandler: $.noop - }, options); - - uploadUrl = uploadUrl + '?source_type=' + source_type + '&source_id=' + source_id; - if (blob instanceof window.File) { - uploadUrl += '&filename=' + encodeURIComponent(blob.name); - } - - return $.ajax(uploadUrl, { - type: 'POST', - contentType: 'application/octet-stream', - beforeSend: function(jqXhr) { - jqXhr.setRequestHeader('Accept', 'application/js'); - }, - xhr: function() { - var xhr = $.ajaxSettings.xhr(); - xhr.upload.onloadstart = actualOptions.loadstartEventHandler; - xhr.upload.onprogress = actualOptions.progressEventHandler; - return xhr; - }, - data: blob, - cache: false, - processData: false - }); -} - -function addInputAvatar(inputEl) { -// var clearedFileInput = $(inputEl).clone().val(''); - - if (inputEl.files) { - // upload files using ajax - uploadAndAttachFiles(inputEl.files, inputEl); - // $(inputEl).remove(); - } else { - // browser not supporting the file API, upload on form submission - var avatarId; - var aFilename = inputEl.value.split(/\/|\\/); - avatarId = addFile(inputEl, { name: aFilename[ aFilename.length - 1 ] }, false); - if (avatarId) { - $(inputEl).attr({ name: 'avatar[file]', style: 'display:none;' }).appendTo('#avatar_image'); - } - } - - //clearedFileInput.insertAfter('#avatars_fields'); -} - - -function uploadAndAttachFiles(files, inputEl) { - - var maxFileSize = $(inputEl).data('max-file-size'); - var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); - - var sizeExceeded = false; - $.each(files, function() { - if (this.size && maxFileSize && this.size > parseInt(maxFileSize)) {sizeExceeded=true;} - }); - if (sizeExceeded) { - window.alert(maxFileSizeExceeded); - } else { - uploadAndTypeFiles(files,inputEl); - //$.each(files, function() {addFile(inputEl, this, true);}); - } -} - -function uploadAndTypeFiles(files, inputEl) { - - var enableType = $(inputEl).data('file-type'); - var typeSupportrdMessage = $(inputEl).data('type-support-message'); - if (enableType == null || enableType.trim() == "") - { - $.each(files, function() {addFile(inputEl, this, true);}); - return; - } - var typeSupported = false; - $.each(files, function() { - var a = this.name.split('.'); - var type = a[a.length-1]; - var rs = enableType.indexOf(type); - if(rs >= 0) {typeSupported = true } - }); - if (typeSupported) { - $.each(files, function() {addFile(inputEl, this, true);}); - } else { - window.alert(typeSupportrdMessage + enableType); - } -} - -function handleFileDropEvent(e) { - - $(this).removeClass('fileover'); - blockEventPropagation(e); - - if ($.inArray('Files', e.dataTransfer.types) > -1) { - uploadAndAttachFiles(e.dataTransfer.files, $('input:file.file_selector')); - } -} - -function dragOverHandler(e) { - $(this).addClass('fileover'); - blockEventPropagation(e); -} - -function dragOutHandler(e) { - $(this).removeClass('fileover'); - blockEventPropagation(e); -} - -function setupFileDrop() { - if (window.File && window.FileList && window.ProgressEvent && window.FormData) { - - $.event.fixHooks.drop = { props: [ 'dataTransfer' ] }; - - $('form div.box').has('input:file').each(function() { - $(this).on({ - dragover: dragOverHandler, - dragleave: dragOutHandler, - drop: handleFileDropEvent - }); - }); - } -} - -$(document).ready(setupFileDrop); +/* Redmine - project management software + Copyright (C) 2006-2013 Jean-Philippe Lang + Modified by Jianfeng Tao, to upload one avatar for user*/ + +function addFile(inputEl, file, eagerUpload) { + + var fileSpan = $('#avatar_file'); + + //fileSpan.append( + // $('', { type: 'text', 'class': 'filename readonly', name: 'avatar[filename]', readonly: 'readonly'} ).val(file.name), + // $(' ').attr({ href: "#", 'class': 'remove-upload' }).click(removeFile).toggle(!eagerUpload) + //).appendTo('#avatar_fields'); + + if(eagerUpload) { + ajaxUpload(file, fileSpan, inputEl); + } + + return 1; +} + +function ajaxUpload(file, fileSpan, inputEl) { + + function onLoadstart(e) { + fileSpan.removeClass('ajax-waiting'); + fileSpan.addClass('ajax-loading'); + $('input:submit', $(this).parents('form')).attr('disabled', 'disabled'); + } + + function onProgress(e) { + if(e.lengthComputable) { + this.progressbar( 'value', e.loaded * 100 / e.total ); + } + } + + function actualUpload(file, fileSpan, inputEl) { + + ajaxUpload.uploading++; + + uploadBlob(file, $(inputEl).data('upload-path'),$(inputEl).data('source-type'), $(inputEl).data('source-id'),{ + loadstartEventHandler: onLoadstart.bind(progressSpan), + progressEventHandler: onProgress.bind(progressSpan) + }) + .done(function(result) { + progressSpan.progressbar( 'value', 100 ); + progressSpan.progressbar( 'destroy'); + fileSpan.find('input.description, a').css('display', 'inline-block'); + }) + .fail(function(result) { + progressSpan.text(result.statusText); + }).always(function() { + ajaxUpload.uploading--; + fileSpan.removeClass('ajax-loading'); + var form = fileSpan.parents('form'); + + if (form.queue('upload').length == 0 && ajaxUpload.uploading == 0) { + $('input:submit', form).removeAttr('disabled'); + } + form.dequeue('upload'); + }); + } + + var progressSpan = $('#upload_progressbar'); + progressSpan.progressbar(); + fileSpan.addClass('ajax-waiting'); + + var maxSyncUpload = $(inputEl).data('max-concurrent-uploads'); + + if(maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload) + actualUpload(file, fileSpan, inputEl); + else + $(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, fileSpan, inputEl)); +} + +ajaxUpload.uploading = 0; + +function removeFile() { + $(this).parent('span').remove(); + return false; +} + +function uploadBlob(blob, uploadUrl, source_type,source_id, options) { + + var actualOptions = $.extend({ + loadstartEventHandler: $.noop, + progressEventHandler: $.noop + }, options); + + uploadUrl = uploadUrl + '?source_type=' + source_type + '&source_id=' + source_id; + if (blob instanceof window.File) { + uploadUrl += '&filename=' + encodeURIComponent(blob.name); + } + + return $.ajax(uploadUrl, { + type: 'POST', + contentType: 'application/octet-stream', + beforeSend: function(jqXhr) { + jqXhr.setRequestHeader('Accept', 'application/js'); + }, + xhr: function() { + var xhr = $.ajaxSettings.xhr(); + xhr.upload.onloadstart = actualOptions.loadstartEventHandler; + xhr.upload.onprogress = actualOptions.progressEventHandler; + return xhr; + }, + data: blob, + cache: false, + processData: false + }); +} + +function addInputAvatar(inputEl) { +// var clearedFileInput = $(inputEl).clone().val(''); + + if (inputEl.files) { + // upload files using ajax + uploadAndAttachFiles(inputEl.files, inputEl); + // $(inputEl).remove(); + } else { + // browser not supporting the file API, upload on form submission + var avatarId; + var aFilename = inputEl.value.split(/\/|\\/); + avatarId = addFile(inputEl, { name: aFilename[ aFilename.length - 1 ] }, false); + if (avatarId) { + $(inputEl).attr({ name: 'avatar[file]', style: 'display:none;' }).appendTo('#avatar_image'); + } + } + + //clearedFileInput.insertAfter('#avatars_fields'); +} + + +function uploadAndAttachFiles(files, inputEl) { + + var maxFileSize = $(inputEl).data('max-file-size'); + var maxFileSizeExceeded = $(inputEl).data('max-file-size-message'); + + var sizeExceeded = false; + $.each(files, function() { + if (this.size && maxFileSize && this.size > parseInt(maxFileSize)) {sizeExceeded=true;} + }); + if (sizeExceeded) { + window.alert(maxFileSizeExceeded); + } else { + uploadAndTypeFiles(files,inputEl); + //$.each(files, function() {addFile(inputEl, this, true);}); + } +} + +function uploadAndTypeFiles(files, inputEl) { + + var enableType = $(inputEl).data('file-type'); + var typeSupportrdMessage = $(inputEl).data('type-support-message'); + if (enableType == null || enableType.trim() == "") + { + $.each(files, function() {addFile(inputEl, this, true);}); + return; + } + var typeSupported = false; + $.each(files, function() { + var a = this.name.split('.'); + var type = a[a.length-1]; + var rs = enableType.indexOf(type); + if(rs >= 0) {typeSupported = true } + }); + if (typeSupported) { + $.each(files, function() {addFile(inputEl, this, true);}); + } else { + window.alert(typeSupportrdMessage + enableType); + } +} + +function handleFileDropEvent(e) { + + $(this).removeClass('fileover'); + blockEventPropagation(e); + + if ($.inArray('Files', e.dataTransfer.types) > -1) { + uploadAndAttachFiles(e.dataTransfer.files, $('input:file.file_selector')); + } +} + +function dragOverHandler(e) { + $(this).addClass('fileover'); + blockEventPropagation(e); +} + +function dragOutHandler(e) { + $(this).removeClass('fileover'); + blockEventPropagation(e); +} + +function setupFileDrop() { + if (window.File && window.FileList && window.ProgressEvent && window.FormData) { + + $.event.fixHooks.drop = { props: [ 'dataTransfer' ] }; + + $('form div.box').has('input:file').each(function() { + $(this).on({ + dragover: dragOverHandler, + dragleave: dragOutHandler, + drop: handleFileDropEvent + }); + }); + } +} + +$(document).ready(setupFileDrop); diff --git a/public/javascripts/jquery-1.8.3-ui-1.9.2-ujs-2.0.3.js b/public/javascripts/jquery-1.8.3-ui-1.9.2-ujs-2.0.3.js index b65683fa8..7f3701c87 100644 --- a/public/javascripts/jquery-1.8.3-ui-1.9.2-ujs-2.0.3.js +++ b/public/javascripts/jquery-1.8.3-ui-1.9.2-ujs-2.0.3.js @@ -1,11 +1,11 @@ -/*! jQuery v1.8.3 jquery.com | jquery.org/license */ -(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
t
",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
","
"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); - -/*! jQuery UI - v1.9.2 - 2012-12-26 - * http://jqueryui.com - * Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js - * Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ -(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().andSelf().filter(function(){return e.css(this,"visibility")==="hidden"}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.9.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e(function(){var t=document.body,n=t.appendChild(n=document.createElement("div"));n.offsetHeight,e.extend(n.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),e.support.minHeight=n.offsetHeight===100,e.support.selectstart="onselectstart"in n,t.removeChild(n).style.display="none"}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),function(){var t=/msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase())||[];e.ui.ie=t.length?!0:!1,e.ui.ie6=parseFloat(t[1],10)===6}(),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},isOverAxis:function(e,t,n){return e>t&&e",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetName,this),e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u=9||!!t.button?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(e){return this.mouseDelayMet},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return!0}})})(jQuery);(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("
"),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};lr(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)a&&(v<0||v0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)10&&i<11,t.innerHTML="",n.removeChild(t)}(),e.uiBackCompat!==!1&&function(e){var n=e.fn.position;e.fn.position=function(r){if(!r||!r.offset)return n.call(this,r);var i=r.offset.split(" "),s=r.at.split(" ");return i.length===1&&(i[1]=i[0]),/^\d/.test(i[0])&&(i[0]="+"+i[0]),/^\d/.test(i[1])&&(i[1]="+"+i[1]),s.length===1&&(/left|center|right/.test(s[0])?s[1]="center":(s[1]=s[0],s[0]="center")),n.call(this,e.extend(r,{at:s[0]+i[0]+" "+s[1]+i[1],offset:t}))}}(jQuery)})(jQuery);(function(e,t){e.widget("ui.draggable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this.helper||n.disabled||e(t.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(t),this.handle?(e(n.iframeFix===!0?"iframe":n.iframeFix).each(function(){e('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.leftu[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.topu[3]?f-this.offset.click.topu[2]?l-this.offset.click.left=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s=l&&o<=c||u>=l&&u<=c||oc)&&(i>=a&&i<=f||s>=a&&s<=f||if);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;o
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")}).insertAfter(n),n.remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),ie.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r');var r=e.ui.ie6?1:0,i=e.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+i,height:this.element.outerHeight()+i,position:"absolute",left:this.elementOffset.left-r+"px",top:this.elementOffset.top-r+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.rightu||a.bottomi&&a.rights&&a.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+fs&&t+le[this.floating?"width":"height"]?c:s0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else{var s=1e4,o=null,u=this.containers[r].floating?"left":"top",a=this.containers[r].floating?"width":"height",f=this.positionAbs[u]+this.offset.click[u];for(var l=this.items.length-1;l>=0;l--){if(!e.contains(this.containers[r].element[0],this.items[l].item[0]))continue;if(this.items[l].item[0]==this.currentItem[0])continue;var c=this.items[l].item.offset()[u],h=!1;Math.abs(c-f)>Math.abs(c+this.items[l][a]-f)&&(h=!0,c+=this.items[l][a]),Math.abs(c-f)this.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.topthis.containment[3]?u-this.offset.click.topthis.containment[2]?a-this.offset.click.left=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n),r=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset"),this.headers=this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this._hoverable(this.headers),this._focusable(this.headers),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(),!r.collapsible&&(r.active===!1||r.active==null)&&(r.active=0),r.active<0&&(r.active+=this.headers.length),this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"),this.active.next().addClass("ui-accordion-content-active").show(),this._createIcons(),this.refresh(),this.element.attr("role","tablist"),this.headers.attr("role","tab").each(function(n){var r=e(this),i=r.attr("id"),s=r.next(),o=s.attr("id");i||(i=t+"-header-"+n,r.attr("id",i)),o||(o=t+"-panel-"+n,s.attr("id",o)),r.attr("aria-controls",o),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._on(this.headers,{keydown:"_keydown"}),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._setupEvents(r.event)},_getCreateEventData:function(){return{header:this.active,content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&e.css("height","")},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t,n,r=this.options.heightStyle,i=this.element.parent();r==="fill"?(e.support.minHeight||(n=i.css("overflow"),i.css("overflow","hidden")),t=i.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),n&&i.css("overflow",n),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):r==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={};if(!t)return;e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._on(this.headers,n)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r;this.isMultiLine=this._isMultiLine(),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("
'+"";var z=N?'":"";for(var W=0;W<7;W++){var X=(W+T)%7;z+="=5?' class="ui-datepicker-week-end"':"")+">"+''+L[X]+""}U+=z+"";var V=this._getDaysInMonth(d,p);d==e.selectedYear&&p==e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,V));var J=(this._getFirstDayOfMonth(d,p)-T+7)%7,K=Math.ceil((J+V)/7),Q=f?this.maxRows>K?this.maxRows:K:K;this.maxRows=Q;var G=this._daylightSavingAdjust(new Date(d,p,1-J));for(var Y=0;Y";var Z=N?'":"";for(var W=0;W<7;W++){var et=M?M.apply(e.input?e.input[0]:null,[G]):[!0,""],tt=G.getMonth()!=p,nt=tt&&!D||!et[0]||c&&Gh;Z+='",G.setDate(G.getDate()+1),G=this._daylightSavingAdjust(G)}U+=Z+""}p++,p>11&&(p=0,d++),U+="
'+this._get(e,"weekHeader")+"
'+this._get(e,"calculateWeek")(G)+""+(tt&&!_?" ":nt?''+G.getDate()+"":''+G.getDate()+"")+"
"+(f?"
"+(o[0]>0&&I==o[1]-1?'
':""):""),F+=U}B+=F}return B+=x+($.ui.ie6&&!e.inline?'':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='
',h="";if(s||!a)h+=''+o[t]+"";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+=''+n+"";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="
",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.2",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s,o,u,a,f;s=(this.uiDialog=e("
")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),o=(this.uiDialogTitlebar=e("
")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").bind("mousedown",function(){s.focus()}).prependTo(s),u=e("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(o),(this.uiDialogTitlebarCloseText=e("")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u),a=e("").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o),f=(this.uiDialogButtonPane=e("
")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),(this.uiButtonSet=e("
")).addClass("ui-dialog-buttonset").appendTo(f),s.attr({role:"dialog","aria-labelledby":a.attr("id")}),o.find("*").add(o).disableSelection(),this._hoverable(u),this._focusable(u),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n=this,r=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(r=!0)}),r?(e.each(t,function(t,r){var i,s;r=e.isFunction(r)?{click:r,text:t}:r,r=e.extend({type:"button"},r),s=r.click,r.click=function(){s.apply(n.element[0],arguments)},i=e("",r).appendTo(n.uiButtonSet),e.fn.button&&i.button()}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)):this.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._trigger("dragStop",i,r(s)),e.ui.dialog.overlay.resize()}})},_makeResizable:function(n){function u(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}n=n===t?this.options.resizable:n;var r=this,i=this.options,s=this.uiDialog.css("position"),o=typeof n=="string"?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(t,n){e(this).addClass("ui-dialog-resizing"),r._trigger("resizeStart",t,u(n))},resize:function(e,t){r._trigger("resize",e,u(t))},stop:function(t,n){e(this).removeClass("ui-dialog-resizing"),i.height=e(this).height(),i.width=e(this).width(),r._trigger("resizeStop",t,u(n)),e.ui.dialog.overlay.resize()}}).css("position",s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(t){var n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()},_setOptions:function(t){var n=this,s={},o=!1;e.each(t,function(e,t){n._setOption(e,t),e in r&&(o=!0),e in i&&(s[e]=t)}),o&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,r){var i,s,o=this.uiDialog;switch(t){case"buttons":this._createButtons(r);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+r);break;case"dialogClass":o.removeClass(this.options.dialogClass).addClass(n+r);break;case"disabled":r?o.addClass("ui-dialog-disabled"):o.removeClass("ui-dialog-disabled");break;case"draggable":i=o.is(":data(draggable)"),i&&!r&&o.draggable("destroy"),!i&&r&&this._makeDraggable();break;case"position":this._position(r);break;case"resizable":s=o.is(":data(resizable)"),s&&!r&&o.resizable("destroy"),s&&typeof r=="string"&&o.resizable("option","handles",r),!s&&r!==!1&&this._makeResizable(r);break;case"title":e(".ui-dialog-title",this.uiDialogTitlebar).html(""+(r||" "))}this._super(t,r)},_size:function(){var t,n,r,i=this.options,s=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),n=Math.max(0,i.minHeight-t),i.height==="auto"?e.support.minHeight?this.element.css({minHeight:n,height:"auto"}):(this.uiDialog.show(),r=this.element.css("height","auto").height(),s||this.uiDialog.hide(),this.element.height(Math.max(r,n))):this.element.height(Math.max(i.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),e.extend(e.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){var t=e.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=e.ui.dialog.overlay.create(t)}}),e.extend(e.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(t){this.instances.length===0&&(setTimeout(function(){e.ui.dialog.overlay.instances.length&&e(document).bind(e.ui.dialog.overlay.events,function(t){if(e(t.target).zIndex()").addClass("ui-widget-overlay");return e(document).bind("keydown.dialog-overlay",function(r){var i=e.ui.dialog.overlay.instances;i.length!==0&&i[i.length-1]===n&&t.options.closeOnEscape&&!r.isDefaultPrevented()&&r.keyCode&&r.keyCode===e.ui.keyCode.ESCAPE&&(t.close(r),r.preventDefault())}),n.appendTo(document.body).css({width:this.width(),height:this.height()}),e.fn.bgiframe&&n.bgiframe(),this.instances.push(n),n},destroy:function(t){var n=e.inArray(t,this.instances),r=0;n!==-1&&this.oldInstances.push(this.instances.splice(n,1)[0]),this.instances.length===0&&e([document,window]).unbind(".dialog-overlay"),t.height(0).width(0).remove(),e.each(this.instances,function(){r=Math.max(r,this.css("z-index"))}),this.maxZ=r},height:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),n=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),t",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var t,r,i=this.options,s=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),o="",u=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(i.disabled?" ui-slider-disabled ui-disabled":"")),this.range=e([]),i.range&&(i.range===!0&&(i.values||(i.values=[this._valueMin(),this._valueMin()]),i.values.length&&i.values.length!==2&&(i.values=[i.values[0],i.values[0]])),this.range=e("
").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(i.range==="min"||i.range==="max"?" ui-slider-range-"+i.range:""))),r=i.values&&i.values.length||1;for(t=s.length;tn&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.9.2",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&e.href.replace(r,"")===location.href.replace(r,"").replace(/\s/g,"%20")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options,r=n.active,i=location.hash.substring(1);this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(r===null){i&&this.tabs.each(function(t,n){if(e(n).attr("aria-controls")===i)return r=t,!1}),r===null&&(r=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(r===null||r===-1)r=this.tabs.length?0:!1}r!==!1&&(r=this.tabs.index(this.tabs.eq(r)),r===-1&&(r=n.collapsible?!1:0)),n.active=r,!n.collapsible&&n.active===!1&&this.anchors.length&&(n.active=0),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  • #{label}
  • "},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r,i,s=this._superApply(arguments);return s?(e==="beforeActivate"?(r=n.newTab.length?n.newTab:n.oldTab,i=n.newPanel.length?n.newPanel:n.oldPanel,s=this._super("select",t,{tab:r.find(".ui-tabs-anchor")[0],panel:i[0],index:r.closest("li").index()})):e==="activate"&&n.newTab.length&&(s=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),s):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
    ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
    ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery);jQuery.effects||function(e,t){var n=e.uiBackCompat!==!1,r="ui-effects-";e.effects={effect:{}},function(t,n){function p(e,t,n){var r=a[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[];i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i;if(t&&t.length&&t[0]&&t[t[0]]){i=t.length;while(i--)r=t[i],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.2",save:function(e,t){for(var n=0;n
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function a(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,s=t.mode;(r.is(":hidden")?s==="hide":s==="show")?u():o.call(r[0],t,u)}var t=i.apply(this,arguments),r=t.mode,s=t.queue,o=e.effects.effect[t.effect],u=!o&&n&&e.effects[t.effect];return e.fx.off||!o&&!u?r?this[r](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):o?s===!1?this.each(a):this.queue(s||"fx",a):u.call(this,{options:t,duration:t.duration,callback:t.complete,mode:t.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
    ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('
    ').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery); - -/* JQuery UJS 2.0.3 */ -(function(a,b){var c=function(){var b=a(document).data("events");return b&&b.click&&a.grep(b.click,function(a){return a.namespace==="rails"}).length};if(c()){a.error("jquery-ujs has already been loaded!")}var d;a.rails=d={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input:file",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(b){var c=a('meta[name="csrf-token"]').attr("content");if(c)b.setRequestHeader("X-CSRF-Token",c)},fire:function(b,c,d){var e=a.Event(c);b.trigger(e,d);return e.result!==false},confirm:function(a){return confirm(a)},ajax:function(b){return a.ajax(b)},href:function(a){return a.attr("href")},handleRemote:function(c){var e,f,g,h,i,j,k,l;if(d.fire(c,"ajax:before")){h=c.data("cross-domain");i=h===b?null:h;j=c.data("with-credentials")||null;k=c.data("type")||a.ajaxSettings&&a.ajaxSettings.dataType;if(c.is("form")){e=c.attr("method");f=c.attr("action");g=c.serializeArray();var m=c.data("ujs:submit-button");if(m){g.push(m);c.data("ujs:submit-button",null)}}else if(c.is(d.inputChangeSelector)){e=c.data("method");f=c.data("url");g=c.serialize();if(c.data("params"))g=g+"&"+c.data("params")}else{e=c.data("method");f=d.href(c);g=c.data("params")||null}l={type:e||"GET",data:g,dataType:k,beforeSend:function(a,e){if(e.dataType===b){a.setRequestHeader("accept","*/*;q=0.5, "+e.accepts.script)}return d.fire(c,"ajax:beforeSend",[a,e])},success:function(a,b,d){c.trigger("ajax:success",[a,b,d])},complete:function(a,b){c.trigger("ajax:complete",[a,b])},error:function(a,b,d){c.trigger("ajax:error",[a,b,d])},xhrFields:{withCredentials:j},crossDomain:i};if(f){l.url=f}var n=d.ajax(l);c.trigger("ajax:send",n);return n}else{return false}},handleMethod:function(c){var e=d.href(c),f=c.data("method"),g=c.attr("target"),h=a("meta[name=csrf-token]").attr("content"),i=a("meta[name=csrf-param]").attr("content"),j=a('
    '),k='';if(i!==b&&h!==b){k+=''}if(g){j.attr("target",g)}j.hide().append(k).appendTo("body");j.submit()},disableFormElements:function(b){b.find(d.disableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with",b[c]());b[c](b.data("disable-with"));b.prop("disabled",true)})},enableFormElements:function(b){b.find(d.enableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";if(b.data("ujs:enable-with"))b[c](b.data("ujs:enable-with"));b.prop("disabled",false)})},allowAction:function(a){var b=a.data("confirm"),c=false,e;if(!b){return true}if(d.fire(a,"confirm")){c=d.confirm(b);e=d.fire(a,"confirm:complete",[c])}return c&&e},blankInputs:function(b,c,d){var e=a(),f,g,h=c||"input,textarea";b.find(h).each(function(){f=a(this);g=f.is(":checkbox,:radio")?f.is(":checked"):f.val();if(g==!!d){e=e.add(f)}});return e.length?e:false},nonBlankInputs:function(a,b){return d.blankInputs(a,b,true)},stopEverything:function(b){a(b.target).trigger("ujs:everythingStopped");b.stopImmediatePropagation();return false},callFormSubmitBindings:function(c,d){var e=c.data("events"),f=true;if(e!==b&&e["submit"]!==b){a.each(e["submit"],function(a,b){if(typeof b.handler==="function")return f=b.handler(d)})}return f},disableElement:function(a){a.data("ujs:enable-with",a.html());a.html(a.data("disable-with"));a.bind("click.railsDisable",function(a){return d.stopEverything(a)})},enableElement:function(a){if(a.data("ujs:enable-with")!==b){a.html(a.data("ujs:enable-with"));a.data("ujs:enable-with",false)}a.unbind("click.railsDisable")}};if(d.fire(a(document),"rails:attachBindings")){a.ajaxPrefilter(function(a,b,c){if(!a.crossDomain){d.CSRFProtection(c)}});a(document).delegate(d.linkDisableSelector,"ajax:complete",function(){d.enableElement(a(this))});a(document).delegate(d.linkClickSelector,"click.rails",function(c){var e=a(this),f=e.data("method"),g=e.data("params");if(!d.allowAction(e))return d.stopEverything(c);if(e.is(d.linkDisableSelector))d.disableElement(e);if(e.data("remote")!==b){if((c.metaKey||c.ctrlKey)&&(!f||f==="GET")&&!g){return true}if(d.handleRemote(e)===false){d.enableElement(e)}return false}else if(e.data("method")){d.handleMethod(e);return false}});a(document).delegate(d.inputChangeSelector,"change.rails",function(b){var c=a(this);if(!d.allowAction(c))return d.stopEverything(b);d.handleRemote(c);return false});a(document).delegate(d.formSubmitSelector,"submit.rails",function(c){var e=a(this),f=e.data("remote")!==b,g=d.blankInputs(e,d.requiredInputSelector),h=d.nonBlankInputs(e,d.fileInputSelector);if(!d.allowAction(e))return d.stopEverything(c);if(g&&e.attr("novalidate")==b&&d.fire(e,"ajax:aborted:required",[g])){return d.stopEverything(c)}if(f){if(h){setTimeout(function(){d.disableFormElements(e)},13);return d.fire(e,"ajax:aborted:file",[h])}if(!a.support.submitBubbles&&a().jquery<"1.7"&&d.callFormSubmitBindings(e,c)===false)return d.stopEverything(c);d.handleRemote(e);return false}else{setTimeout(function(){d.disableFormElements(e)},13)}});a(document).delegate(d.formInputClickSelector,"click.rails",function(b){var c=a(this);if(!d.allowAction(c))return d.stopEverything(b);var e=c.attr("name"),f=e?{name:e,value:c.val()}:null;c.closest("form").data("ujs:submit-button",f)});a(document).delegate(d.formSubmitSelector,"ajax:beforeSend.rails",function(b){if(this==b.target)d.disableFormElements(a(this))});a(document).delegate(d.formSubmitSelector,"ajax:complete.rails",function(b){if(this==b.target)d.enableFormElements(a(this))});a(function(){csrf_token=a("meta[name=csrf-token]").attr("content");csrf_param=a("meta[name=csrf-param]").attr("content");a('form input[name="'+csrf_param+'"]').val(csrf_token)})}})(jQuery) +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
    a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
    t
    ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
    ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
    ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

    ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
    ","
    "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
    ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); + +/*! jQuery UI - v1.9.2 - 2012-12-26 + * http://jqueryui.com + * Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js + * Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */ +(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().andSelf().filter(function(){return e.css(this,"visibility")==="hidden"}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.9.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e(function(){var t=document.body,n=t.appendChild(n=document.createElement("div"));n.offsetHeight,e.extend(n.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),e.support.minHeight=n.offsetHeight===100,e.support.selectstart="onselectstart"in n,t.removeChild(n).style.display="none"}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),function(){var t=/msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase())||[];e.ui.ie=t.length?!0:!1,e.ui.ie6=parseFloat(t[1],10)===6}(),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},isOverAxis:function(e,t,n){return e>t&&e",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetName,this),e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u=9||!!t.button?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(e){return this.mouseDelayMet},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return!0}})})(jQuery);(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("
    "),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};lr(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)a&&(v<0||v0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)10&&i<11,t.innerHTML="",n.removeChild(t)}(),e.uiBackCompat!==!1&&function(e){var n=e.fn.position;e.fn.position=function(r){if(!r||!r.offset)return n.call(this,r);var i=r.offset.split(" "),s=r.at.split(" ");return i.length===1&&(i[1]=i[0]),/^\d/.test(i[0])&&(i[0]="+"+i[0]),/^\d/.test(i[1])&&(i[1]="+"+i[1]),s.length===1&&(/left|center|right/.test(s[0])?s[1]="center":(s[1]=s[0],s[0]="center")),n.call(this,e.extend(r,{at:s[0]+i[0]+" "+s[1]+i[1],offset:t}))}}(jQuery)})(jQuery);(function(e,t){e.widget("ui.draggable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this.helper||n.disabled||e(t.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(t),this.handle?(e(n.iframeFix===!0?"iframe":n.iframeFix).each(function(){e('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.leftu[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.topu[3]?f-this.offset.click.topu[2]?l-this.offset.click.left=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s=l&&o<=c||u>=l&&u<=c||oc)&&(i>=a&&i<=f||s>=a&&s<=f||if);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;o
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")}).insertAfter(n),n.remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),ie.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r');var r=e.ui.ie6?1:0,i=e.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+i,height:this.element.outerHeight()+i,position:"absolute",left:this.elementOffset.left-r+"px",top:this.elementOffset.top-r+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.rightu||a.bottomi&&a.rights&&a.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+fs&&t+le[this.floating?"width":"height"]?c:s0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else{var s=1e4,o=null,u=this.containers[r].floating?"left":"top",a=this.containers[r].floating?"width":"height",f=this.positionAbs[u]+this.offset.click[u];for(var l=this.items.length-1;l>=0;l--){if(!e.contains(this.containers[r].element[0],this.items[l].item[0]))continue;if(this.items[l].item[0]==this.currentItem[0])continue;var c=this.items[l].item.offset()[u],h=!1;Math.abs(c-f)>Math.abs(c+this.items[l][a]-f)&&(h=!0,c+=this.items[l][a]),Math.abs(c-f)this.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.topthis.containment[3]?u-this.offset.click.topthis.containment[2]?a-this.offset.click.left=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n),r=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset"),this.headers=this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this._hoverable(this.headers),this._focusable(this.headers),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(),!r.collapsible&&(r.active===!1||r.active==null)&&(r.active=0),r.active<0&&(r.active+=this.headers.length),this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"),this.active.next().addClass("ui-accordion-content-active").show(),this._createIcons(),this.refresh(),this.element.attr("role","tablist"),this.headers.attr("role","tab").each(function(n){var r=e(this),i=r.attr("id"),s=r.next(),o=s.attr("id");i||(i=t+"-header-"+n,r.attr("id",i)),o||(o=t+"-panel-"+n,s.attr("id",o)),r.attr("aria-controls",o),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._on(this.headers,{keydown:"_keydown"}),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._setupEvents(r.event)},_getCreateEventData:function(){return{header:this.active,content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&e.css("height","")},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t,n,r=this.options.heightStyle,i=this.element.parent();r==="fill"?(e.support.minHeight||(n=i.css("overflow"),i.css("overflow","hidden")),t=i.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),n&&i.css("overflow",n),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):r==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={};if(!t)return;e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._on(this.headers,n)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r;this.isMultiLine=this._isMultiLine(),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("
    '+"";var z=N?'":"";for(var W=0;W<7;W++){var X=(W+T)%7;z+="=5?' class="ui-datepicker-week-end"':"")+">"+''+L[X]+""}U+=z+"";var V=this._getDaysInMonth(d,p);d==e.selectedYear&&p==e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,V));var J=(this._getFirstDayOfMonth(d,p)-T+7)%7,K=Math.ceil((J+V)/7),Q=f?this.maxRows>K?this.maxRows:K:K;this.maxRows=Q;var G=this._daylightSavingAdjust(new Date(d,p,1-J));for(var Y=0;Y";var Z=N?'":"";for(var W=0;W<7;W++){var et=M?M.apply(e.input?e.input[0]:null,[G]):[!0,""],tt=G.getMonth()!=p,nt=tt&&!D||!et[0]||c&&Gh;Z+='",G.setDate(G.getDate()+1),G=this._daylightSavingAdjust(G)}U+=Z+""}p++,p>11&&(p=0,d++),U+="
    '+this._get(e,"weekHeader")+"
    '+this._get(e,"calculateWeek")(G)+""+(tt&&!_?" ":nt?''+G.getDate()+"":''+G.getDate()+"")+"
    "+(f?"
    "+(o[0]>0&&I==o[1]-1?'
    ':""):""),F+=U}B+=F}return B+=x+($.ui.ie6&&!e.inline?'':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='
    ',h="";if(s||!a)h+=''+o[t]+"";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+=''+n+"";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="
    ",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.2",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s,o,u,a,f;s=(this.uiDialog=e("
    ")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),o=(this.uiDialogTitlebar=e("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").bind("mousedown",function(){s.focus()}).prependTo(s),u=e("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(o),(this.uiDialogTitlebarCloseText=e("")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u),a=e("").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o),f=(this.uiDialogButtonPane=e("
    ")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),(this.uiButtonSet=e("
    ")).addClass("ui-dialog-buttonset").appendTo(f),s.attr({role:"dialog","aria-labelledby":a.attr("id")}),o.find("*").add(o).disableSelection(),this._hoverable(u),this._focusable(u),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n=this,r=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(r=!0)}),r?(e.each(t,function(t,r){var i,s;r=e.isFunction(r)?{click:r,text:t}:r,r=e.extend({type:"button"},r),s=r.click,r.click=function(){s.apply(n.element[0],arguments)},i=e("",r).appendTo(n.uiButtonSet),e.fn.button&&i.button()}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)):this.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._trigger("dragStop",i,r(s)),e.ui.dialog.overlay.resize()}})},_makeResizable:function(n){function u(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}n=n===t?this.options.resizable:n;var r=this,i=this.options,s=this.uiDialog.css("position"),o=typeof n=="string"?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(t,n){e(this).addClass("ui-dialog-resizing"),r._trigger("resizeStart",t,u(n))},resize:function(e,t){r._trigger("resize",e,u(t))},stop:function(t,n){e(this).removeClass("ui-dialog-resizing"),i.height=e(this).height(),i.width=e(this).width(),r._trigger("resizeStop",t,u(n)),e.ui.dialog.overlay.resize()}}).css("position",s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(t){var n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()},_setOptions:function(t){var n=this,s={},o=!1;e.each(t,function(e,t){n._setOption(e,t),e in r&&(o=!0),e in i&&(s[e]=t)}),o&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,r){var i,s,o=this.uiDialog;switch(t){case"buttons":this._createButtons(r);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+r);break;case"dialogClass":o.removeClass(this.options.dialogClass).addClass(n+r);break;case"disabled":r?o.addClass("ui-dialog-disabled"):o.removeClass("ui-dialog-disabled");break;case"draggable":i=o.is(":data(draggable)"),i&&!r&&o.draggable("destroy"),!i&&r&&this._makeDraggable();break;case"position":this._position(r);break;case"resizable":s=o.is(":data(resizable)"),s&&!r&&o.resizable("destroy"),s&&typeof r=="string"&&o.resizable("option","handles",r),!s&&r!==!1&&this._makeResizable(r);break;case"title":e(".ui-dialog-title",this.uiDialogTitlebar).html(""+(r||" "))}this._super(t,r)},_size:function(){var t,n,r,i=this.options,s=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),n=Math.max(0,i.minHeight-t),i.height==="auto"?e.support.minHeight?this.element.css({minHeight:n,height:"auto"}):(this.uiDialog.show(),r=this.element.css("height","auto").height(),s||this.uiDialog.hide(),this.element.height(Math.max(r,n))):this.element.height(Math.max(i.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),e.extend(e.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){var t=e.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=e.ui.dialog.overlay.create(t)}}),e.extend(e.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(t){this.instances.length===0&&(setTimeout(function(){e.ui.dialog.overlay.instances.length&&e(document).bind(e.ui.dialog.overlay.events,function(t){if(e(t.target).zIndex()").addClass("ui-widget-overlay");return e(document).bind("keydown.dialog-overlay",function(r){var i=e.ui.dialog.overlay.instances;i.length!==0&&i[i.length-1]===n&&t.options.closeOnEscape&&!r.isDefaultPrevented()&&r.keyCode&&r.keyCode===e.ui.keyCode.ESCAPE&&(t.close(r),r.preventDefault())}),n.appendTo(document.body).css({width:this.width(),height:this.height()}),e.fn.bgiframe&&n.bgiframe(),this.instances.push(n),n},destroy:function(t){var n=e.inArray(t,this.instances),r=0;n!==-1&&this.oldInstances.push(this.instances.splice(n,1)[0]),this.instances.length===0&&e([document,window]).unbind(".dialog-overlay"),t.height(0).width(0).remove(),e.each(this.instances,function(){r=Math.max(r,this.css("z-index"))}),this.maxZ=r},height:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),n=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),t",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
    ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var t,r,i=this.options,s=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),o="",u=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(i.disabled?" ui-slider-disabled ui-disabled":"")),this.range=e([]),i.range&&(i.range===!0&&(i.values||(i.values=[this._valueMin(),this._valueMin()]),i.values.length&&i.values.length!==2&&(i.values=[i.values[0],i.values[0]])),this.range=e("
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(i.range==="min"||i.range==="max"?" ui-slider-range-"+i.range:""))),r=i.values&&i.values.length||1;for(t=s.length;tn&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.9.2",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&e.href.replace(r,"")===location.href.replace(r,"").replace(/\s/g,"%20")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options,r=n.active,i=location.hash.substring(1);this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(r===null){i&&this.tabs.each(function(t,n){if(e(n).attr("aria-controls")===i)return r=t,!1}),r===null&&(r=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(r===null||r===-1)r=this.tabs.length?0:!1}r!==!1&&(r=this.tabs.index(this.tabs.eq(r)),r===-1&&(r=n.collapsible?!1:0)),n.active=r,!n.collapsible&&n.active===!1&&this.anchors.length&&(n.active=0),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
    ").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  • #{label}
  • "},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r,i,s=this._superApply(arguments);return s?(e==="beforeActivate"?(r=n.newTab.length?n.newTab:n.oldTab,i=n.newPanel.length?n.newPanel:n.oldPanel,s=this._super("select",t,{tab:r.find(".ui-tabs-anchor")[0],panel:i[0],index:r.closest("li").index()})):e==="activate"&&n.newTab.length&&(s=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),s):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
    ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
    ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery);jQuery.effects||function(e,t){var n=e.uiBackCompat!==!1,r="ui-effects-";e.effects={effect:{}},function(t,n){function p(e,t,n){var r=a[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[];i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i;if(t&&t.length&&t[0]&&t[t[0]]){i=t.length;while(i--)r=t[i],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.2",save:function(e,t){for(var n=0;n
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function a(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,s=t.mode;(r.is(":hidden")?s==="hide":s==="show")?u():o.call(r[0],t,u)}var t=i.apply(this,arguments),r=t.mode,s=t.queue,o=e.effects.effect[t.effect],u=!o&&n&&e.effects[t.effect];return e.fx.off||!o&&!u?r?this[r](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):o?s===!1?this.each(a):this.queue(s||"fx",a):u.call(this,{options:t,duration:t.duration,callback:t.complete,mode:t.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
    ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('
    ').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery); + +/* JQuery UJS 2.0.3 */ +(function(a,b){var c=function(){var b=a(document).data("events");return b&&b.click&&a.grep(b.click,function(a){return a.namespace==="rails"}).length};if(c()){a.error("jquery-ujs has already been loaded!")}var d;a.rails=d={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input:file",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(b){var c=a('meta[name="csrf-token"]').attr("content");if(c)b.setRequestHeader("X-CSRF-Token",c)},fire:function(b,c,d){var e=a.Event(c);b.trigger(e,d);return e.result!==false},confirm:function(a){return confirm(a)},ajax:function(b){return a.ajax(b)},href:function(a){return a.attr("href")},handleRemote:function(c){var e,f,g,h,i,j,k,l;if(d.fire(c,"ajax:before")){h=c.data("cross-domain");i=h===b?null:h;j=c.data("with-credentials")||null;k=c.data("type")||a.ajaxSettings&&a.ajaxSettings.dataType;if(c.is("form")){e=c.attr("method");f=c.attr("action");g=c.serializeArray();var m=c.data("ujs:submit-button");if(m){g.push(m);c.data("ujs:submit-button",null)}}else if(c.is(d.inputChangeSelector)){e=c.data("method");f=c.data("url");g=c.serialize();if(c.data("params"))g=g+"&"+c.data("params")}else{e=c.data("method");f=d.href(c);g=c.data("params")||null}l={type:e||"GET",data:g,dataType:k,beforeSend:function(a,e){if(e.dataType===b){a.setRequestHeader("accept","*/*;q=0.5, "+e.accepts.script)}return d.fire(c,"ajax:beforeSend",[a,e])},success:function(a,b,d){c.trigger("ajax:success",[a,b,d])},complete:function(a,b){c.trigger("ajax:complete",[a,b])},error:function(a,b,d){c.trigger("ajax:error",[a,b,d])},xhrFields:{withCredentials:j},crossDomain:i};if(f){l.url=f}var n=d.ajax(l);c.trigger("ajax:send",n);return n}else{return false}},handleMethod:function(c){var e=d.href(c),f=c.data("method"),g=c.attr("target"),h=a("meta[name=csrf-token]").attr("content"),i=a("meta[name=csrf-param]").attr("content"),j=a('
    '),k='';if(i!==b&&h!==b){k+=''}if(g){j.attr("target",g)}j.hide().append(k).appendTo("body");j.submit()},disableFormElements:function(b){b.find(d.disableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";b.data("ujs:enable-with",b[c]());b[c](b.data("disable-with"));b.prop("disabled",true)})},enableFormElements:function(b){b.find(d.enableSelector).each(function(){var b=a(this),c=b.is("button")?"html":"val";if(b.data("ujs:enable-with"))b[c](b.data("ujs:enable-with"));b.prop("disabled",false)})},allowAction:function(a){var b=a.data("confirm"),c=false,e;if(!b){return true}if(d.fire(a,"confirm")){c=d.confirm(b);e=d.fire(a,"confirm:complete",[c])}return c&&e},blankInputs:function(b,c,d){var e=a(),f,g,h=c||"input,textarea";b.find(h).each(function(){f=a(this);g=f.is(":checkbox,:radio")?f.is(":checked"):f.val();if(g==!!d){e=e.add(f)}});return e.length?e:false},nonBlankInputs:function(a,b){return d.blankInputs(a,b,true)},stopEverything:function(b){a(b.target).trigger("ujs:everythingStopped");b.stopImmediatePropagation();return false},callFormSubmitBindings:function(c,d){var e=c.data("events"),f=true;if(e!==b&&e["submit"]!==b){a.each(e["submit"],function(a,b){if(typeof b.handler==="function")return f=b.handler(d)})}return f},disableElement:function(a){a.data("ujs:enable-with",a.html());a.html(a.data("disable-with"));a.bind("click.railsDisable",function(a){return d.stopEverything(a)})},enableElement:function(a){if(a.data("ujs:enable-with")!==b){a.html(a.data("ujs:enable-with"));a.data("ujs:enable-with",false)}a.unbind("click.railsDisable")}};if(d.fire(a(document),"rails:attachBindings")){a.ajaxPrefilter(function(a,b,c){if(!a.crossDomain){d.CSRFProtection(c)}});a(document).delegate(d.linkDisableSelector,"ajax:complete",function(){d.enableElement(a(this))});a(document).delegate(d.linkClickSelector,"click.rails",function(c){var e=a(this),f=e.data("method"),g=e.data("params");if(!d.allowAction(e))return d.stopEverything(c);if(e.is(d.linkDisableSelector))d.disableElement(e);if(e.data("remote")!==b){if((c.metaKey||c.ctrlKey)&&(!f||f==="GET")&&!g){return true}if(d.handleRemote(e)===false){d.enableElement(e)}return false}else if(e.data("method")){d.handleMethod(e);return false}});a(document).delegate(d.inputChangeSelector,"change.rails",function(b){var c=a(this);if(!d.allowAction(c))return d.stopEverything(b);d.handleRemote(c);return false});a(document).delegate(d.formSubmitSelector,"submit.rails",function(c){var e=a(this),f=e.data("remote")!==b,g=d.blankInputs(e,d.requiredInputSelector),h=d.nonBlankInputs(e,d.fileInputSelector);if(!d.allowAction(e))return d.stopEverything(c);if(g&&e.attr("novalidate")==b&&d.fire(e,"ajax:aborted:required",[g])){return d.stopEverything(c)}if(f){if(h){setTimeout(function(){d.disableFormElements(e)},13);return d.fire(e,"ajax:aborted:file",[h])}if(!a.support.submitBubbles&&a().jquery<"1.7"&&d.callFormSubmitBindings(e,c)===false)return d.stopEverything(c);d.handleRemote(e);return false}else{setTimeout(function(){d.disableFormElements(e)},13)}});a(document).delegate(d.formInputClickSelector,"click.rails",function(b){var c=a(this);if(!d.allowAction(c))return d.stopEverything(b);var e=c.attr("name"),f=e?{name:e,value:c.val()}:null;c.closest("form").data("ujs:submit-button",f)});a(document).delegate(d.formSubmitSelector,"ajax:beforeSend.rails",function(b){if(this==b.target)d.disableFormElements(a(this))});a(document).delegate(d.formSubmitSelector,"ajax:complete.rails",function(b){if(this==b.target)d.enableFormElements(a(this))});a(function(){csrf_token=a("meta[name=csrf-token]").attr("content");csrf_param=a("meta[name=csrf-param]").attr("content");a('form input[name="'+csrf_param+'"]').val(csrf_token)})}})(jQuery) diff --git a/public/javascripts/jquery.colorbox-min.js b/public/javascripts/jquery.colorbox-min.js index f563217f0..46c33f314 100644 --- a/public/javascripts/jquery.colorbox-min.js +++ b/public/javascripts/jquery.colorbox-min.js @@ -1,7 +1,7 @@ -/*! - Colorbox v1.5.10 - 2014-06-26 - jQuery lightbox and modal window plugin - (c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox - license: http://www.opensource.org/licenses/mit-license.php -*/ +/*! + Colorbox v1.5.10 - 2014-06-26 + jQuery lightbox and modal window plugin + (c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox + license: http://www.opensource.org/licenses/mit-license.php +*/ (function(t,e,i){function n(i,n,o){var r=e.createElement(i);return n&&(r.id=Z+n),o&&(r.style.cssText=o),t(r)}function o(){return i.innerHeight?i.innerHeight:t(i).height()}function r(e,i){i!==Object(i)&&(i={}),this.cache={},this.el=e,this.value=function(e){var n;return void 0===this.cache[e]&&(n=t(this.el).attr("data-cbox-"+e),void 0!==n?this.cache[e]=n:void 0!==i[e]?this.cache[e]=i[e]:void 0!==X[e]&&(this.cache[e]=X[e])),this.cache[e]},this.get=function(e){var i=this.value(e);return t.isFunction(i)?i.call(this.el,this):i}}function h(t){var e=W.length,i=(z+t)%e;return 0>i?e+i:i}function a(t,e){return Math.round((/%/.test(t)?("x"===e?E.width():o())/100:1)*parseInt(t,10))}function s(t,e){return t.get("photo")||t.get("photoRegex").test(e)}function l(t,e){return t.get("retinaUrl")&&i.devicePixelRatio>1?e.replace(t.get("photoRegex"),t.get("retinaSuffix")):e}function d(t){"contains"in y[0]&&!y[0].contains(t.target)&&t.target!==v[0]&&(t.stopPropagation(),y.focus())}function c(t){c.str!==t&&(y.add(v).removeClass(c.str).addClass(t),c.str=t)}function g(e){z=0,e&&e!==!1&&"nofollow"!==e?(W=t("."+te).filter(function(){var i=t.data(this,Y),n=new r(this,i);return n.get("rel")===e}),z=W.index(_.el),-1===z&&(W=W.add(_.el),z=W.length-1)):W=t(_.el)}function u(i){t(e).trigger(i),ae.triggerHandler(i)}function f(i){var o;if(!G){if(o=t(i).data(Y),_=new r(i,o),g(_.get("rel")),!$){$=q=!0,c(_.get("className")),y.css({visibility:"hidden",display:"block",opacity:""}),L=n(se,"LoadedContent","width:0; height:0; overflow:hidden; visibility:hidden"),b.css({width:"",height:""}).append(L),D=T.height()+k.height()+b.outerHeight(!0)-b.height(),j=C.width()+H.width()+b.outerWidth(!0)-b.width(),A=L.outerHeight(!0),N=L.outerWidth(!0);var h=a(_.get("initialWidth"),"x"),s=a(_.get("initialHeight"),"y"),l=_.get("maxWidth"),f=_.get("maxHeight");_.w=(l!==!1?Math.min(h,a(l,"x")):h)-N-j,_.h=(f!==!1?Math.min(s,a(f,"y")):s)-A-D,L.css({width:"",height:_.h}),J.position(),u(ee),_.get("onOpen"),O.add(I).hide(),y.focus(),_.get("trapFocus")&&e.addEventListener&&(e.addEventListener("focus",d,!0),ae.one(re,function(){e.removeEventListener("focus",d,!0)})),_.get("returnFocus")&&ae.one(re,function(){t(_.el).focus()})}v.css({opacity:parseFloat(_.get("opacity"))||"",cursor:_.get("overlayClose")?"pointer":"",visibility:"visible"}).show(),_.get("closeButton")?B.html(_.get("close")).appendTo(b):B.appendTo("
    "),w()}}function p(){!y&&e.body&&(V=!1,E=t(i),y=n(se).attr({id:Y,"class":t.support.opacity===!1?Z+"IE":"",role:"dialog",tabindex:"-1"}).hide(),v=n(se,"Overlay").hide(),S=t([n(se,"LoadingOverlay")[0],n(se,"LoadingGraphic")[0]]),x=n(se,"Wrapper"),b=n(se,"Content").append(I=n(se,"Title"),R=n(se,"Current"),P=t(' "; - function replace(cm, all) { - dialog(cm, replaceQueryDialog, "Replace:", function(query) { - if (!query) return; - query = parseQuery(query); - dialog(cm, replacementQueryDialog, "Replace with:", function(text) { - if (all) { - cm.operation(function() { - for (var cursor = getSearchCursor(cm, query); cursor.findNext();) { - if (typeof query != "string") { - var match = cm.getRange(cursor.from(), cursor.to()).match(query); - cursor.replace(text.replace(/\$(\d)/, function(_, i) {return match[i];})); - } else cursor.replace(text); - } - }); - } else { - clearSearch(cm); - var cursor = getSearchCursor(cm, query, cm.getCursor()); - var advance = function() { - var start = cursor.from(), match; - if (!(match = cursor.findNext())) { - cursor = getSearchCursor(cm, query); - if (!(match = cursor.findNext()) || - (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return; - } - cm.setSelection(cursor.from(), cursor.to()); - confirmDialog(cm, doReplaceConfirm, "Replace?", - [function() {doReplace(match);}, advance]); - }; - var doReplace = function(match) { - cursor.replace(typeof query == "string" ? text : - text.replace(/\$(\d)/, function(_, i) {return match[i];})); - advance(); - }; - advance(); - } - }); - }); - } - - CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);}; - CodeMirror.commands.findNext = doSearch; - CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);}; - CodeMirror.commands.clearSearch = clearSearch; - CodeMirror.commands.replace = replace; - CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);}; -})(); +// Define search commands. Depends on dialog.js or another +// implementation of the openDialog method. + +// Replace works a little oddly -- it will do the replace on the next +// Ctrl-G (or whatever is bound to findNext) press. You prevent a +// replace by making sure the match is no longer selected when hitting +// Ctrl-G. + +(function() { + function searchOverlay(query) { + if (typeof query == "string") return {token: function(stream) { + if (stream.match(query)) return "searching"; + stream.next(); + stream.skipTo(query.charAt(0)) || stream.skipToEnd(); + }}; + return {token: function(stream) { + if (stream.match(query)) return "searching"; + while (!stream.eol()) { + stream.next(); + if (stream.match(query, false)) break; + } + }}; + } + + function SearchState() { + this.posFrom = this.posTo = this.query = null; + this.overlay = null; + } + function getSearchState(cm) { + return cm._searchState || (cm._searchState = new SearchState()); + } + function getSearchCursor(cm, query, pos) { + // Heuristic: if the query string is all lowercase, do a case insensitive search. + return cm.getSearchCursor(query, pos, typeof query == "string" && query == query.toLowerCase()); + } + function dialog(cm, text, shortText, f) { + if (cm.openDialog) cm.openDialog(text, f); + else f(prompt(shortText, "")); + } + function confirmDialog(cm, text, shortText, fs) { + if (cm.openConfirm) cm.openConfirm(text, fs); + else if (confirm(shortText)) fs[0](); + } + function parseQuery(query) { + var isRE = query.match(/^\/(.*)\/([a-z]*)$/); + return isRE ? new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i") : query; + } + var queryDialog = + 'Search: (Use /re/ syntax for regexp search)'; + function doSearch(cm, rev) { + var state = getSearchState(cm); + if (state.query) return findNext(cm, rev); + dialog(cm, queryDialog, "Search for:", function(query) { + cm.operation(function() { + if (!query || state.query) return; + state.query = parseQuery(query); + cm.removeOverlay(state.overlay); + state.overlay = searchOverlay(query); + cm.addOverlay(state.overlay); + state.posFrom = state.posTo = cm.getCursor(); + findNext(cm, rev); + }); + }); + } + function findNext(cm, rev) {cm.operation(function() { + var state = getSearchState(cm); + var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo); + if (!cursor.find(rev)) { + cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0)); + if (!cursor.find(rev)) return; + } + cm.setSelection(cursor.from(), cursor.to()); + state.posFrom = cursor.from(); state.posTo = cursor.to(); + });} + function clearSearch(cm) {cm.operation(function() { + var state = getSearchState(cm); + if (!state.query) return; + state.query = null; + cm.removeOverlay(state.overlay); + });} + + var replaceQueryDialog = + 'Replace: (Use /re/ syntax for regexp search)'; + var replacementQueryDialog = 'With: '; + var doReplaceConfirm = "Replace? "; + function replace(cm, all) { + dialog(cm, replaceQueryDialog, "Replace:", function(query) { + if (!query) return; + query = parseQuery(query); + dialog(cm, replacementQueryDialog, "Replace with:", function(text) { + if (all) { + cm.operation(function() { + for (var cursor = getSearchCursor(cm, query); cursor.findNext();) { + if (typeof query != "string") { + var match = cm.getRange(cursor.from(), cursor.to()).match(query); + cursor.replace(text.replace(/\$(\d)/, function(_, i) {return match[i];})); + } else cursor.replace(text); + } + }); + } else { + clearSearch(cm); + var cursor = getSearchCursor(cm, query, cm.getCursor()); + var advance = function() { + var start = cursor.from(), match; + if (!(match = cursor.findNext())) { + cursor = getSearchCursor(cm, query); + if (!(match = cursor.findNext()) || + (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return; + } + cm.setSelection(cursor.from(), cursor.to()); + confirmDialog(cm, doReplaceConfirm, "Replace?", + [function() {doReplace(match);}, advance]); + }; + var doReplace = function(match) { + cursor.replace(typeof query == "string" ? text : + text.replace(/\$(\d)/, function(_, i) {return match[i];})); + advance(); + }; + advance(); + } + }); + }); + } + + CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);}; + CodeMirror.commands.findNext = doSearch; + CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);}; + CodeMirror.commands.clearSearch = clearSearch; + CodeMirror.commands.replace = replace; + CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);}; +})(); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/addon/search/searchcursor.js b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/addon/search/searchcursor.js index fd134636e..d04f4f7d0 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/addon/search/searchcursor.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/addon/search/searchcursor.js @@ -1,130 +1,130 @@ -(function(){ - var Pos = CodeMirror.Pos; - - function SearchCursor(cm, query, pos, caseFold) { - this.atOccurrence = false; this.cm = cm; - if (caseFold == null && typeof query == "string") caseFold = false; - - pos = pos ? cm.clipPos(pos) : Pos(0, 0); - this.pos = {from: pos, to: pos}; - - // The matches method is filled in based on the type of query. - // It takes a position and a direction, and returns an object - // describing the next occurrence of the query, or null if no - // more matches were found. - if (typeof query != "string") { // Regexp match - if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g"); - this.matches = function(reverse, pos) { - if (reverse) { - query.lastIndex = 0; - var line = cm.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start; - for (;;) { - query.lastIndex = cutOff; - var newMatch = query.exec(line); - if (!newMatch) break; - match = newMatch; - start = match.index; - cutOff = match.index + 1; - } - } else { - query.lastIndex = pos.ch; - var line = cm.getLine(pos.line), match = query.exec(line), - start = match && match.index; - } - if (match && match[0]) - return {from: Pos(pos.line, start), - to: Pos(pos.line, start + match[0].length), - match: match}; - }; - } else { // String query - if (caseFold) query = query.toLowerCase(); - var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;}; - var target = query.split("\n"); - // Different methods for single-line and multi-line queries - if (target.length == 1) { - if (!query.length) { - // Empty string would match anything and never progress, so - // we define it to match nothing instead. - this.matches = function() {}; - } else { - this.matches = function(reverse, pos) { - var line = fold(cm.getLine(pos.line)), len = query.length, match; - if (reverse ? (pos.ch >= len && (match = line.lastIndexOf(query, pos.ch - len)) != -1) - : (match = line.indexOf(query, pos.ch)) != -1) - return {from: Pos(pos.line, match), - to: Pos(pos.line, match + len)}; - }; - } - } else { - this.matches = function(reverse, pos) { - var ln = pos.line, idx = (reverse ? target.length - 1 : 0), match = target[idx], line = fold(cm.getLine(ln)); - var offsetA = (reverse ? line.indexOf(match) + match.length : line.lastIndexOf(match)); - if (reverse ? offsetA >= pos.ch || offsetA != match.length - : offsetA <= pos.ch || offsetA != line.length - match.length) - return; - for (;;) { - if (reverse ? !ln : ln == cm.lineCount() - 1) return; - line = fold(cm.getLine(ln += reverse ? -1 : 1)); - match = target[reverse ? --idx : ++idx]; - if (idx > 0 && idx < target.length - 1) { - if (line != match) return; - else continue; - } - var offsetB = (reverse ? line.lastIndexOf(match) : line.indexOf(match) + match.length); - if (reverse ? offsetB != line.length - match.length : offsetB != match.length) - return; - var start = Pos(pos.line, offsetA), end = Pos(ln, offsetB); - return {from: reverse ? end : start, to: reverse ? start : end}; - } - }; - } - } - } - - SearchCursor.prototype = { - findNext: function() {return this.find(false);}, - findPrevious: function() {return this.find(true);}, - - find: function(reverse) { - var self = this, pos = this.cm.clipPos(reverse ? this.pos.from : this.pos.to); - function savePosAndFail(line) { - var pos = Pos(line, 0); - self.pos = {from: pos, to: pos}; - self.atOccurrence = false; - return false; - } - - for (;;) { - if (this.pos = this.matches(reverse, pos)) { - if (!this.pos.from || !this.pos.to) { console.log(this.matches, this.pos); } - this.atOccurrence = true; - return this.pos.match || true; - } - if (reverse) { - if (!pos.line) return savePosAndFail(0); - pos = Pos(pos.line-1, this.cm.getLine(pos.line-1).length); - } - else { - var maxLine = this.cm.lineCount(); - if (pos.line == maxLine - 1) return savePosAndFail(maxLine); - pos = Pos(pos.line + 1, 0); - } - } - }, - - from: function() {if (this.atOccurrence) return this.pos.from;}, - to: function() {if (this.atOccurrence) return this.pos.to;}, - - replace: function(newText) { - if (!this.atOccurrence) return; - var lines = CodeMirror.splitLines(newText); - this.cm.replaceRange(lines, this.pos.from, this.pos.to); - this.pos.to = Pos(this.pos.from.line + lines.length - 1, - lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)); - } - }; - - CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) { - return new SearchCursor(this, query, pos, caseFold); - }); -})(); +(function(){ + var Pos = CodeMirror.Pos; + + function SearchCursor(cm, query, pos, caseFold) { + this.atOccurrence = false; this.cm = cm; + if (caseFold == null && typeof query == "string") caseFold = false; + + pos = pos ? cm.clipPos(pos) : Pos(0, 0); + this.pos = {from: pos, to: pos}; + + // The matches method is filled in based on the type of query. + // It takes a position and a direction, and returns an object + // describing the next occurrence of the query, or null if no + // more matches were found. + if (typeof query != "string") { // Regexp match + if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g"); + this.matches = function(reverse, pos) { + if (reverse) { + query.lastIndex = 0; + var line = cm.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start; + for (;;) { + query.lastIndex = cutOff; + var newMatch = query.exec(line); + if (!newMatch) break; + match = newMatch; + start = match.index; + cutOff = match.index + 1; + } + } else { + query.lastIndex = pos.ch; + var line = cm.getLine(pos.line), match = query.exec(line), + start = match && match.index; + } + if (match && match[0]) + return {from: Pos(pos.line, start), + to: Pos(pos.line, start + match[0].length), + match: match}; + }; + } else { // String query + if (caseFold) query = query.toLowerCase(); + var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;}; + var target = query.split("\n"); + // Different methods for single-line and multi-line queries + if (target.length == 1) { + if (!query.length) { + // Empty string would match anything and never progress, so + // we define it to match nothing instead. + this.matches = function() {}; + } else { + this.matches = function(reverse, pos) { + var line = fold(cm.getLine(pos.line)), len = query.length, match; + if (reverse ? (pos.ch >= len && (match = line.lastIndexOf(query, pos.ch - len)) != -1) + : (match = line.indexOf(query, pos.ch)) != -1) + return {from: Pos(pos.line, match), + to: Pos(pos.line, match + len)}; + }; + } + } else { + this.matches = function(reverse, pos) { + var ln = pos.line, idx = (reverse ? target.length - 1 : 0), match = target[idx], line = fold(cm.getLine(ln)); + var offsetA = (reverse ? line.indexOf(match) + match.length : line.lastIndexOf(match)); + if (reverse ? offsetA >= pos.ch || offsetA != match.length + : offsetA <= pos.ch || offsetA != line.length - match.length) + return; + for (;;) { + if (reverse ? !ln : ln == cm.lineCount() - 1) return; + line = fold(cm.getLine(ln += reverse ? -1 : 1)); + match = target[reverse ? --idx : ++idx]; + if (idx > 0 && idx < target.length - 1) { + if (line != match) return; + else continue; + } + var offsetB = (reverse ? line.lastIndexOf(match) : line.indexOf(match) + match.length); + if (reverse ? offsetB != line.length - match.length : offsetB != match.length) + return; + var start = Pos(pos.line, offsetA), end = Pos(ln, offsetB); + return {from: reverse ? end : start, to: reverse ? start : end}; + } + }; + } + } + } + + SearchCursor.prototype = { + findNext: function() {return this.find(false);}, + findPrevious: function() {return this.find(true);}, + + find: function(reverse) { + var self = this, pos = this.cm.clipPos(reverse ? this.pos.from : this.pos.to); + function savePosAndFail(line) { + var pos = Pos(line, 0); + self.pos = {from: pos, to: pos}; + self.atOccurrence = false; + return false; + } + + for (;;) { + if (this.pos = this.matches(reverse, pos)) { + if (!this.pos.from || !this.pos.to) { console.log(this.matches, this.pos); } + this.atOccurrence = true; + return this.pos.match || true; + } + if (reverse) { + if (!pos.line) return savePosAndFail(0); + pos = Pos(pos.line-1, this.cm.getLine(pos.line-1).length); + } + else { + var maxLine = this.cm.lineCount(); + if (pos.line == maxLine - 1) return savePosAndFail(maxLine); + pos = Pos(pos.line + 1, 0); + } + } + }, + + from: function() {if (this.atOccurrence) return this.pos.from;}, + to: function() {if (this.atOccurrence) return this.pos.to;}, + + replace: function(newText) { + if (!this.atOccurrence) return; + var lines = CodeMirror.splitLines(newText); + this.cm.replaceRange(lines, this.pos.from, this.pos.to); + this.pos.to = Pos(this.pos.from.line + lines.length - 1, + lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)); + } + }; + + CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) { + return new SearchCursor(this, query, pos, caseFold); + }); +})(); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/codemirror.js b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/codemirror.js index 342fb6583..dd8ad8d56 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/codemirror.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/codemirror.js @@ -1,5516 +1,5516 @@ -// CodeMirror version 3.11 -// -// CodeMirror is the only global var we claim -window.CodeMirror = (function() { - "use strict"; - - // BROWSER SNIFFING - - // Crude, but necessary to handle a number of hard-to-feature-detect - // bugs and behavior differences. - var gecko = /gecko\/\d/i.test(navigator.userAgent); - var ie = /MSIE \d/.test(navigator.userAgent); - var ie_lt8 = ie && (document.documentMode == null || document.documentMode < 8); - var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9); - var webkit = /WebKit\//.test(navigator.userAgent); - var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(navigator.userAgent); - var chrome = /Chrome\//.test(navigator.userAgent); - var opera = /Opera\//.test(navigator.userAgent); - var safari = /Apple Computer/.test(navigator.vendor); - var khtml = /KHTML\//.test(navigator.userAgent); - var mac_geLion = /Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent); - var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent); - var phantom = /PhantomJS/.test(navigator.userAgent); - - var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); - // This is woefully incomplete. Suggestions for alternative methods welcome. - var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent); - var mac = ios || /Mac/.test(navigator.platform); - var windows = /windows/i.test(navigator.platform); - - var opera_version = opera && navigator.userAgent.match(/Version\/(\d*\.\d*)/); - if (opera_version) opera_version = Number(opera_version[1]); - // Some browsers use the wrong event properties to signal cmd/ctrl on OS X - var flipCtrlCmd = mac && (qtwebkit || opera && (opera_version == null || opera_version < 12.11)); - var captureMiddleClick = gecko || (ie && !ie_lt9); - - // Optimize some code when these features are not used - var sawReadOnlySpans = false, sawCollapsedSpans = false; - - // CONSTRUCTOR - - function CodeMirror(place, options) { - if (!(this instanceof CodeMirror)) return new CodeMirror(place, options); - - this.options = options = options || {}; - // Determine effective options based on given values and defaults. - for (var opt in defaults) if (!options.hasOwnProperty(opt) && defaults.hasOwnProperty(opt)) - options[opt] = defaults[opt]; - setGuttersForLineNumbers(options); - - var docStart = typeof options.value == "string" ? 0 : options.value.first; - var display = this.display = makeDisplay(place, docStart); - display.wrapper.CodeMirror = this; - updateGutters(this); - if (options.autofocus && !mobile) focusInput(this); - - this.state = {keyMaps: [], - overlays: [], - modeGen: 0, - overwrite: false, focused: false, - suppressEdits: false, pasteIncoming: false, - draggingText: false, - highlight: new Delayed()}; - - themeChanged(this); - if (options.lineWrapping) - this.display.wrapper.className += " CodeMirror-wrap"; - - var doc = options.value; - if (typeof doc == "string") doc = new Doc(options.value, options.mode); - operation(this, attachDoc)(this, doc); - - // Override magic textarea content restore that IE sometimes does - // on our hidden textarea on reload - if (ie) setTimeout(bind(resetInput, this, true), 20); - - registerEventHandlers(this); - // IE throws unspecified error in certain cases, when - // trying to access activeElement before onload - var hasFocus; try { hasFocus = (document.activeElement == display.input); } catch(e) { } - if (hasFocus || (options.autofocus && !mobile)) setTimeout(bind(onFocus, this), 20); - else onBlur(this); - - operation(this, function() { - for (var opt in optionHandlers) - if (optionHandlers.propertyIsEnumerable(opt)) - optionHandlers[opt](this, options[opt], Init); - for (var i = 0; i < initHooks.length; ++i) initHooks[i](this); - })(); - } - - // DISPLAY CONSTRUCTOR - - function makeDisplay(place, docStart) { - var d = {}; - - var input = d.input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none;"); - if (webkit) input.style.width = "1000px"; - else input.setAttribute("wrap", "off"); - // if border: 0; -- iOS fails to open keyboard (issue #1287) - if (ios) input.style.border = "1px solid black"; - input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); - - // Wraps and hides input textarea - d.inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); - // The actual fake scrollbars. - d.scrollbarH = elt("div", [elt("div", null, null, "height: 1px")], "CodeMirror-hscrollbar"); - d.scrollbarV = elt("div", [elt("div", null, null, "width: 1px")], "CodeMirror-vscrollbar"); - d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); - // DIVs containing the selection and the actual code - d.lineDiv = elt("div"); - d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); - // Blinky cursor, and element used to ensure cursor fits at the end of a line - d.cursor = elt("div", "\u00a0", "CodeMirror-cursor"); - // Secondary cursor, shown when on a 'jump' in bi-directional text - d.otherCursor = elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"); - // Used to measure text size - d.measure = elt("div", null, "CodeMirror-measure"); - // Wraps everything that needs to exist inside the vertically-padded coordinate system - d.lineSpace = elt("div", [d.measure, d.selectionDiv, d.lineDiv, d.cursor, d.otherCursor], - null, "position: relative; outline: none"); - // Moved around its parent to cover visible view - d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative"); - // Set to the height of the text, causes scrolling - d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); - // D is needed because behavior of elts with overflow: auto and padding is inconsistent across browsers - d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerCutOff + "px; width: 1px;"); - // Will contain the gutters, if any - d.gutters = elt("div", null, "CodeMirror-gutters"); - d.lineGutter = null; - // Helper element to properly size the gutter backgrounds - var scrollerInner = elt("div", [d.sizer, d.heightForcer, d.gutters], null, "position: relative; min-height: 100%"); - // Provides scrolling - d.scroller = elt("div", [scrollerInner], "CodeMirror-scroll"); - d.scroller.setAttribute("tabIndex", "-1"); - // The element in which the editor lives. - d.wrapper = elt("div", [d.inputDiv, d.scrollbarH, d.scrollbarV, - d.scrollbarFiller, d.scroller], "CodeMirror"); - // Work around IE7 z-index bug - if (ie_lt8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } - if (place.appendChild) place.appendChild(d.wrapper); else place(d.wrapper); - - // Needed to hide big blue blinking cursor on Mobile Safari - if (ios) input.style.width = "0px"; - if (!webkit) d.scroller.draggable = true; - // Needed to handle Tab key in KHTML - if (khtml) { d.inputDiv.style.height = "1px"; d.inputDiv.style.position = "absolute"; } - // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). - else if (ie_lt8) d.scrollbarH.style.minWidth = d.scrollbarV.style.minWidth = "18px"; - - // Current visible range (may be bigger than the view window). - d.viewOffset = d.lastSizeC = 0; - d.showingFrom = d.showingTo = docStart; - - // Used to only resize the line number gutter when necessary (when - // the amount of lines crosses a boundary that makes its width change) - d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; - // See readInput and resetInput - d.prevInput = ""; - // Set to true when a non-horizontal-scrolling widget is added. As - // an optimization, widget aligning is skipped when d is false. - d.alignWidgets = false; - // Flag that indicates whether we currently expect input to appear - // (after some event like 'keypress' or 'input') and are polling - // intensively. - d.pollingFast = false; - // Self-resetting timeout for the poller - d.poll = new Delayed(); - // True when a drag from the editor is active - d.draggingText = false; - - d.cachedCharWidth = d.cachedTextHeight = null; - d.measureLineCache = []; - d.measureLineCachePos = 0; - - // Tracks when resetInput has punted to just putting a short - // string instead of the (large) selection. - d.inaccurateSelection = false; - - // Tracks the maximum line length so that the horizontal scrollbar - // can be kept static when scrolling. - d.maxLine = null; - d.maxLineLength = 0; - d.maxLineChanged = false; - - // Used for measuring wheel scrolling granularity - d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; - - return d; - } - - // STATE UPDATES - - // Used to get the editor into a consistent state again when options change. - - function loadMode(cm) { - cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption); - cm.doc.iter(function(line) { - if (line.stateAfter) line.stateAfter = null; - if (line.styles) line.styles = null; - }); - cm.doc.frontier = cm.doc.first; - startWorker(cm, 100); - cm.state.modeGen++; - if (cm.curOp) regChange(cm); - } - - function wrappingChanged(cm) { - if (cm.options.lineWrapping) { - cm.display.wrapper.className += " CodeMirror-wrap"; - cm.display.sizer.style.minWidth = ""; - } else { - cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-wrap", ""); - computeMaxLength(cm); - } - estimateLineHeights(cm); - regChange(cm); - clearCaches(cm); - setTimeout(function(){updateScrollbars(cm.display, cm.doc.height);}, 100); - } - - function estimateHeight(cm) { - var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; - var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); - return function(line) { - if (lineIsHidden(cm.doc, line)) - return 0; - else if (wrapping) - return (Math.ceil(line.text.length / perLine) || 1) * th; - else - return th; - }; - } - - function estimateLineHeights(cm) { - var doc = cm.doc, est = estimateHeight(cm); - doc.iter(function(line) { - var estHeight = est(line); - if (estHeight != line.height) updateLineHeight(line, estHeight); - }); - } - - function keyMapChanged(cm) { - var style = keyMap[cm.options.keyMap].style; - cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-keymap-\S+/g, "") + - (style ? " cm-keymap-" + style : ""); - } - - function themeChanged(cm) { - cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + - cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); - clearCaches(cm); - } - - function guttersChanged(cm) { - updateGutters(cm); - regChange(cm); - } - - function updateGutters(cm) { - var gutters = cm.display.gutters, specs = cm.options.gutters; - removeChildren(gutters); - for (var i = 0; i < specs.length; ++i) { - var gutterClass = specs[i]; - var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass)); - if (gutterClass == "CodeMirror-linenumbers") { - cm.display.lineGutter = gElt; - gElt.style.width = (cm.display.lineNumWidth || 1) + "px"; - } - } - gutters.style.display = i ? "" : "none"; - } - - function lineLength(doc, line) { - if (line.height == 0) return 0; - var len = line.text.length, merged, cur = line; - while (merged = collapsedSpanAtStart(cur)) { - var found = merged.find(); - cur = getLine(doc, found.from.line); - len += found.from.ch - found.to.ch; - } - cur = line; - while (merged = collapsedSpanAtEnd(cur)) { - var found = merged.find(); - len -= cur.text.length - found.from.ch; - cur = getLine(doc, found.to.line); - len += cur.text.length - found.to.ch; - } - return len; - } - - function computeMaxLength(cm) { - var d = cm.display, doc = cm.doc; - d.maxLine = getLine(doc, doc.first); - d.maxLineLength = lineLength(doc, d.maxLine); - d.maxLineChanged = true; - doc.iter(function(line) { - var len = lineLength(doc, line); - if (len > d.maxLineLength) { - d.maxLineLength = len; - d.maxLine = line; - } - }); - } - - // Make sure the gutters options contains the element - // "CodeMirror-linenumbers" when the lineNumbers option is true. - function setGuttersForLineNumbers(options) { - var found = false; - for (var i = 0; i < options.gutters.length; ++i) { - if (options.gutters[i] == "CodeMirror-linenumbers") { - if (options.lineNumbers) found = true; - else options.gutters.splice(i--, 1); - } - } - if (!found && options.lineNumbers) - options.gutters.push("CodeMirror-linenumbers"); - } - - // SCROLLBARS - - // Re-synchronize the fake scrollbars with the actual size of the - // content. Optionally force a scrollTop. - function updateScrollbars(d /* display */, docHeight) { - var totalHeight = docHeight + paddingVert(d); - d.sizer.style.minHeight = d.heightForcer.style.top = totalHeight + "px"; - var scrollHeight = Math.max(totalHeight, d.scroller.scrollHeight); - var needsH = d.scroller.scrollWidth > d.scroller.clientWidth; - var needsV = scrollHeight > d.scroller.clientHeight; - if (needsV) { - d.scrollbarV.style.display = "block"; - d.scrollbarV.style.bottom = needsH ? scrollbarWidth(d.measure) + "px" : "0"; - d.scrollbarV.firstChild.style.height = - (scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight) + "px"; - } else d.scrollbarV.style.display = ""; - if (needsH) { - d.scrollbarH.style.display = "block"; - d.scrollbarH.style.right = needsV ? scrollbarWidth(d.measure) + "px" : "0"; - d.scrollbarH.firstChild.style.width = - (d.scroller.scrollWidth - d.scroller.clientWidth + d.scrollbarH.clientWidth) + "px"; - } else d.scrollbarH.style.display = ""; - if (needsH && needsV) { - d.scrollbarFiller.style.display = "block"; - d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = scrollbarWidth(d.measure) + "px"; - } else d.scrollbarFiller.style.display = ""; - - if (mac_geLion && scrollbarWidth(d.measure) === 0) - d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? "18px" : "12px"; - } - - function visibleLines(display, doc, viewPort) { - var top = display.scroller.scrollTop, height = display.wrapper.clientHeight; - if (typeof viewPort == "number") top = viewPort; - else if (viewPort) {top = viewPort.top; height = viewPort.bottom - viewPort.top;} - top = Math.floor(top - paddingTop(display)); - var bottom = Math.ceil(top + height); - return {from: lineAtHeight(doc, top), to: lineAtHeight(doc, bottom)}; - } - - // LINE NUMBERS - - function alignHorizontally(cm) { - var display = cm.display; - if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return; - var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; - var gutterW = display.gutters.offsetWidth, l = comp + "px"; - for (var n = display.lineDiv.firstChild; n; n = n.nextSibling) if (n.alignable) { - for (var i = 0, a = n.alignable; i < a.length; ++i) a[i].style.left = l; - } - if (cm.options.fixedGutter) - display.gutters.style.left = (comp + gutterW) + "px"; - } - - function maybeUpdateLineNumberWidth(cm) { - if (!cm.options.lineNumbers) return false; - var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; - if (last.length != display.lineNumChars) { - var test = display.measure.appendChild(elt("div", [elt("div", last)], - "CodeMirror-linenumber CodeMirror-gutter-elt")); - var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; - display.lineGutter.style.width = ""; - display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding); - display.lineNumWidth = display.lineNumInnerWidth + padding; - display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; - display.lineGutter.style.width = display.lineNumWidth + "px"; - return true; - } - return false; - } - - function lineNumberFor(options, i) { - return String(options.lineNumberFormatter(i + options.firstLineNumber)); - } - function compensateForHScroll(display) { - return getRect(display.scroller).left - getRect(display.sizer).left; - } - - // DISPLAY DRAWING - - function updateDisplay(cm, changes, viewPort) { - var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo; - var updated = updateDisplayInner(cm, changes, viewPort); - if (updated) { - signalLater(cm, "update", cm); - if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo) - signalLater(cm, "viewportChange", cm, cm.display.showingFrom, cm.display.showingTo); - } - updateSelection(cm); - updateScrollbars(cm.display, cm.doc.height); - - return updated; - } - - // Uses a set of changes plus the current scroll position to - // determine which DOM updates have to be made, and makes the - // updates. - function updateDisplayInner(cm, changes, viewPort) { - var display = cm.display, doc = cm.doc; - if (!display.wrapper.clientWidth) { - display.showingFrom = display.showingTo = doc.first; - display.viewOffset = 0; - return; - } - - // Compute the new visible window - // If scrollTop is specified, use that to determine which lines - // to render instead of the current scrollbar position. - var visible = visibleLines(display, doc, viewPort); - // Bail out if the visible area is already rendered and nothing changed. - if (changes.length == 0 && - visible.from > display.showingFrom && visible.to < display.showingTo) - return; - - if (maybeUpdateLineNumberWidth(cm)) - changes = [{from: doc.first, to: doc.first + doc.size}]; - var gutterW = display.sizer.style.marginLeft = display.gutters.offsetWidth + "px"; - display.scrollbarH.style.left = cm.options.fixedGutter ? gutterW : "0"; - - // Used to determine which lines need their line numbers updated - var positionsChangedFrom = Infinity; - if (cm.options.lineNumbers) - for (var i = 0; i < changes.length; ++i) - if (changes[i].diff) { positionsChangedFrom = changes[i].from; break; } - - var end = doc.first + doc.size; - var from = Math.max(visible.from - cm.options.viewportMargin, doc.first); - var to = Math.min(end, visible.to + cm.options.viewportMargin); - if (display.showingFrom < from && from - display.showingFrom < 20) from = Math.max(doc.first, display.showingFrom); - if (display.showingTo > to && display.showingTo - to < 20) to = Math.min(end, display.showingTo); - if (sawCollapsedSpans) { - from = lineNo(visualLine(doc, getLine(doc, from))); - while (to < end && lineIsHidden(doc, getLine(doc, to))) ++to; - } - - // Create a range of theoretically intact lines, and punch holes - // in that using the change info. - var intact = [{from: Math.max(display.showingFrom, doc.first), - to: Math.min(display.showingTo, end)}]; - if (intact[0].from >= intact[0].to) intact = []; - else intact = computeIntact(intact, changes); - // When merged lines are present, we might have to reduce the - // intact ranges because changes in continued fragments of the - // intact lines do require the lines to be redrawn. - if (sawCollapsedSpans) - for (var i = 0; i < intact.length; ++i) { - var range = intact[i], merged; - while (merged = collapsedSpanAtEnd(getLine(doc, range.to - 1))) { - var newTo = merged.find().from.line; - if (newTo > range.from) range.to = newTo; - else { intact.splice(i--, 1); break; } - } - } - - // Clip off the parts that won't be visible - var intactLines = 0; - for (var i = 0; i < intact.length; ++i) { - var range = intact[i]; - if (range.from < from) range.from = from; - if (range.to > to) range.to = to; - if (range.from >= range.to) intact.splice(i--, 1); - else intactLines += range.to - range.from; - } - if (intactLines == to - from && from == display.showingFrom && to == display.showingTo) { - updateViewOffset(cm); - return; - } - intact.sort(function(a, b) {return a.from - b.from;}); - - var focused = document.activeElement; - if (intactLines < (to - from) * .7) display.lineDiv.style.display = "none"; - patchDisplay(cm, from, to, intact, positionsChangedFrom); - display.lineDiv.style.display = ""; - if (document.activeElement != focused && focused.offsetHeight) focused.focus(); - - var different = from != display.showingFrom || to != display.showingTo || - display.lastSizeC != display.wrapper.clientHeight; - // This is just a bogus formula that detects when the editor is - // resized or the font size changes. - if (different) display.lastSizeC = display.wrapper.clientHeight; - display.showingFrom = from; display.showingTo = to; - startWorker(cm, 100); - - var prevBottom = display.lineDiv.offsetTop; - for (var node = display.lineDiv.firstChild, height; node; node = node.nextSibling) if (node.lineObj) { - if (ie_lt8) { - var bot = node.offsetTop + node.offsetHeight; - height = bot - prevBottom; - prevBottom = bot; - } else { - var box = getRect(node); - height = box.bottom - box.top; - } - var diff = node.lineObj.height - height; - if (height < 2) height = textHeight(display); - if (diff > .001 || diff < -.001) { - updateLineHeight(node.lineObj, height); - var widgets = node.lineObj.widgets; - if (widgets) for (var i = 0; i < widgets.length; ++i) - widgets[i].height = widgets[i].node.offsetHeight; - } - } - updateViewOffset(cm); - - if (visibleLines(display, doc, viewPort).to > to) - updateDisplayInner(cm, [], viewPort); - return true; - } - - function updateViewOffset(cm) { - var off = cm.display.viewOffset = heightAtLine(cm, getLine(cm.doc, cm.display.showingFrom)); - // Position the mover div to align with the current virtual scroll position - cm.display.mover.style.top = off + "px"; - } - - function computeIntact(intact, changes) { - for (var i = 0, l = changes.length || 0; i < l; ++i) { - var change = changes[i], intact2 = [], diff = change.diff || 0; - for (var j = 0, l2 = intact.length; j < l2; ++j) { - var range = intact[j]; - if (change.to <= range.from && change.diff) { - intact2.push({from: range.from + diff, to: range.to + diff}); - } else if (change.to <= range.from || change.from >= range.to) { - intact2.push(range); - } else { - if (change.from > range.from) - intact2.push({from: range.from, to: change.from}); - if (change.to < range.to) - intact2.push({from: change.to + diff, to: range.to + diff}); - } - } - intact = intact2; - } - return intact; - } - - function getDimensions(cm) { - var d = cm.display, left = {}, width = {}; - for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { - left[cm.options.gutters[i]] = n.offsetLeft; - width[cm.options.gutters[i]] = n.offsetWidth; - } - return {fixedPos: compensateForHScroll(d), - gutterTotalWidth: d.gutters.offsetWidth, - gutterLeft: left, - gutterWidth: width, - wrapperWidth: d.wrapper.clientWidth}; - } - - function patchDisplay(cm, from, to, intact, updateNumbersFrom) { - var dims = getDimensions(cm); - var display = cm.display, lineNumbers = cm.options.lineNumbers; - if (!intact.length && (!webkit || !cm.display.currentWheelTarget)) - removeChildren(display.lineDiv); - var container = display.lineDiv, cur = container.firstChild; - - function rm(node) { - var next = node.nextSibling; - if (webkit && mac && cm.display.currentWheelTarget == node) { - node.style.display = "none"; - node.lineObj = null; - } else { - node.parentNode.removeChild(node); - } - return next; - } - - var nextIntact = intact.shift(), lineN = from; - cm.doc.iter(from, to, function(line) { - if (nextIntact && nextIntact.to == lineN) nextIntact = intact.shift(); - if (lineIsHidden(cm.doc, line)) { - if (line.height != 0) updateLineHeight(line, 0); - if (line.widgets && cur.previousSibling) for (var i = 0; i < line.widgets.length; ++i) - if (line.widgets[i].showIfHidden) { - var prev = cur.previousSibling; - if (/pre/i.test(prev.nodeName)) { - var wrap = elt("div", null, null, "position: relative"); - prev.parentNode.replaceChild(wrap, prev); - wrap.appendChild(prev); - prev = wrap; - } - var wnode = prev.appendChild(elt("div", [line.widgets[i].node], "CodeMirror-linewidget")); - positionLineWidget(line.widgets[i], wnode, prev, dims); - } - } else if (nextIntact && nextIntact.from <= lineN && nextIntact.to > lineN) { - // This line is intact. Skip to the actual node. Update its - // line number if needed. - while (cur.lineObj != line) cur = rm(cur); - if (lineNumbers && updateNumbersFrom <= lineN && cur.lineNumber) - setTextContent(cur.lineNumber, lineNumberFor(cm.options, lineN)); - cur = cur.nextSibling; - } else { - // For lines with widgets, make an attempt to find and reuse - // the existing element, so that widgets aren't needlessly - // removed and re-inserted into the dom - if (line.widgets) for (var j = 0, search = cur, reuse; search && j < 20; ++j, search = search.nextSibling) - if (search.lineObj == line && /div/i.test(search.nodeName)) { reuse = search; break; } - // This line needs to be generated. - var lineNode = buildLineElement(cm, line, lineN, dims, reuse); - if (lineNode != reuse) { - container.insertBefore(lineNode, cur); - } else { - while (cur != reuse) cur = rm(cur); - cur = cur.nextSibling; - } - - lineNode.lineObj = line; - } - ++lineN; - }); - while (cur) cur = rm(cur); - } - - function buildLineElement(cm, line, lineNo, dims, reuse) { - var lineElement = lineContent(cm, line); - var markers = line.gutterMarkers, display = cm.display, wrap; - - if (!cm.options.lineNumbers && !markers && !line.bgClass && !line.wrapClass && !line.widgets) - return lineElement; - - // Lines with gutter elements, widgets or a background class need - // to be wrapped again, and have the extra elements added to the - // wrapper div - - if (reuse) { - reuse.alignable = null; - var isOk = true, widgetsSeen = 0; - for (var n = reuse.firstChild, next; n; n = next) { - next = n.nextSibling; - if (!/\bCodeMirror-linewidget\b/.test(n.className)) { - reuse.removeChild(n); - } else { - for (var i = 0, first = true; i < line.widgets.length; ++i) { - var widget = line.widgets[i], isFirst = false; - if (!widget.above) { isFirst = first; first = false; } - if (widget.node == n.firstChild) { - positionLineWidget(widget, n, reuse, dims); - ++widgetsSeen; - if (isFirst) reuse.insertBefore(lineElement, n); - break; - } - } - if (i == line.widgets.length) { isOk = false; break; } - } - } - if (isOk && widgetsSeen == line.widgets.length) { - wrap = reuse; - reuse.className = line.wrapClass || ""; - } - } - if (!wrap) { - wrap = elt("div", null, line.wrapClass, "position: relative"); - wrap.appendChild(lineElement); - } - // Kludge to make sure the styled element lies behind the selection (by z-index) - if (line.bgClass) - wrap.insertBefore(elt("div", null, line.bgClass + " CodeMirror-linebackground"), wrap.firstChild); - if (cm.options.lineNumbers || markers) { - var gutterWrap = wrap.insertBefore(elt("div", null, null, "position: absolute; left: " + - (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"), - wrap.firstChild); - if (cm.options.fixedGutter) (wrap.alignable || (wrap.alignable = [])).push(gutterWrap); - if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) - wrap.lineNumber = gutterWrap.appendChild( - elt("div", lineNumberFor(cm.options, lineNo), - "CodeMirror-linenumber CodeMirror-gutter-elt", - "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " - + display.lineNumInnerWidth + "px")); - if (markers) - for (var k = 0; k < cm.options.gutters.length; ++k) { - var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; - if (found) - gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + - dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); - } - } - if (ie_lt8) wrap.style.zIndex = 2; - if (line.widgets && wrap != reuse) for (var i = 0, ws = line.widgets; i < ws.length; ++i) { - var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); - positionLineWidget(widget, node, wrap, dims); - if (widget.above) - wrap.insertBefore(node, cm.options.lineNumbers && line.height != 0 ? gutterWrap : lineElement); - else - wrap.appendChild(node); - signalLater(widget, "redraw"); - } - return wrap; - } - - function positionLineWidget(widget, node, wrap, dims) { - if (widget.noHScroll) { - (wrap.alignable || (wrap.alignable = [])).push(node); - var width = dims.wrapperWidth; - node.style.left = dims.fixedPos + "px"; - if (!widget.coverGutter) { - width -= dims.gutterTotalWidth; - node.style.paddingLeft = dims.gutterTotalWidth + "px"; - } - node.style.width = width + "px"; - } - if (widget.coverGutter) { - node.style.zIndex = 5; - node.style.position = "relative"; - if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px"; - } - } - - // SELECTION / CURSOR - - function updateSelection(cm) { - var display = cm.display; - var collapsed = posEq(cm.doc.sel.from, cm.doc.sel.to); - if (collapsed || cm.options.showCursorWhenSelecting) - updateSelectionCursor(cm); - else - display.cursor.style.display = display.otherCursor.style.display = "none"; - if (!collapsed) - updateSelectionRange(cm); - else - display.selectionDiv.style.display = "none"; - - // Move the hidden textarea near the cursor to prevent scrolling artifacts - var headPos = cursorCoords(cm, cm.doc.sel.head, "div"); - var wrapOff = getRect(display.wrapper), lineOff = getRect(display.lineDiv); - display.inputDiv.style.top = Math.max(0, Math.min(display.wrapper.clientHeight - 10, - headPos.top + lineOff.top - wrapOff.top)) + "px"; - display.inputDiv.style.left = Math.max(0, Math.min(display.wrapper.clientWidth - 10, - headPos.left + lineOff.left - wrapOff.left)) + "px"; - } - - // No selection, plain cursor - function updateSelectionCursor(cm) { - var display = cm.display, pos = cursorCoords(cm, cm.doc.sel.head, "div"); - display.cursor.style.left = pos.left + "px"; - display.cursor.style.top = pos.top + "px"; - display.cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; - display.cursor.style.display = ""; - - if (pos.other) { - display.otherCursor.style.display = ""; - display.otherCursor.style.left = pos.other.left + "px"; - display.otherCursor.style.top = pos.other.top + "px"; - display.otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; - } else { display.otherCursor.style.display = "none"; } - } - - // Highlight selection - function updateSelectionRange(cm) { - var display = cm.display, doc = cm.doc, sel = cm.doc.sel; - var fragment = document.createDocumentFragment(); - var clientWidth = display.lineSpace.offsetWidth, pl = paddingLeft(cm.display); - - function add(left, top, width, bottom) { - if (top < 0) top = 0; - fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + - "px; top: " + top + "px; width: " + (width == null ? clientWidth - left : width) + - "px; height: " + (bottom - top) + "px")); - } - - function drawForLine(line, fromArg, toArg, retTop) { - var lineObj = getLine(doc, line); - var lineLen = lineObj.text.length, rVal = retTop ? Infinity : -Infinity; - function coords(ch) { - return charCoords(cm, Pos(line, ch), "div", lineObj); - } - - iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) { - var leftPos = coords(dir == "rtl" ? to - 1 : from); - var rightPos = coords(dir == "rtl" ? from : to - 1); - var left = leftPos.left, right = rightPos.right; - if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part - add(left, leftPos.top, null, leftPos.bottom); - left = pl; - if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top); - } - if (toArg == null && to == lineLen) right = clientWidth; - if (fromArg == null && from == 0) left = pl; - rVal = retTop ? Math.min(rightPos.top, rVal) : Math.max(rightPos.bottom, rVal); - if (left < pl + 1) left = pl; - add(left, rightPos.top, right - left, rightPos.bottom); - }); - return rVal; - } - - if (sel.from.line == sel.to.line) { - drawForLine(sel.from.line, sel.from.ch, sel.to.ch); - } else { - var fromObj = getLine(doc, sel.from.line); - var cur = fromObj, merged, path = [sel.from.line, sel.from.ch], singleLine; - while (merged = collapsedSpanAtEnd(cur)) { - var found = merged.find(); - path.push(found.from.ch, found.to.line, found.to.ch); - if (found.to.line == sel.to.line) { - path.push(sel.to.ch); - singleLine = true; - break; - } - cur = getLine(doc, found.to.line); - } - - // This is a single, merged line - if (singleLine) { - for (var i = 0; i < path.length; i += 3) - drawForLine(path[i], path[i+1], path[i+2]); - } else { - var middleTop, middleBot, toObj = getLine(doc, sel.to.line); - if (sel.from.ch) - // Draw the first line of selection. - middleTop = drawForLine(sel.from.line, sel.from.ch, null, false); - else - // Simply include it in the middle block. - middleTop = heightAtLine(cm, fromObj) - display.viewOffset; - - if (!sel.to.ch) - middleBot = heightAtLine(cm, toObj) - display.viewOffset; - else - middleBot = drawForLine(sel.to.line, collapsedSpanAtStart(toObj) ? null : 0, sel.to.ch, true); - - if (middleTop < middleBot) add(pl, middleTop, null, middleBot); - } - } - - removeChildrenAndAdd(display.selectionDiv, fragment); - display.selectionDiv.style.display = ""; - } - - // Cursor-blinking - function restartBlink(cm) { - var display = cm.display; - clearInterval(display.blinker); - var on = true; - display.cursor.style.visibility = display.otherCursor.style.visibility = ""; - display.blinker = setInterval(function() { - if (!display.cursor.offsetHeight) return; - display.cursor.style.visibility = display.otherCursor.style.visibility = (on = !on) ? "" : "hidden"; - }, cm.options.cursorBlinkRate); - } - - // HIGHLIGHT WORKER - - function startWorker(cm, time) { - if (cm.doc.mode.startState && cm.doc.frontier < cm.display.showingTo) - cm.state.highlight.set(time, bind(highlightWorker, cm)); - } - - function highlightWorker(cm) { - var doc = cm.doc; - if (doc.frontier < doc.first) doc.frontier = doc.first; - if (doc.frontier >= cm.display.showingTo) return; - var end = +new Date + cm.options.workTime; - var state = copyState(doc.mode, getStateBefore(cm, doc.frontier)); - var changed = [], prevChange; - doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.showingTo + 500), function(line) { - if (doc.frontier >= cm.display.showingFrom) { // Visible - var oldStyles = line.styles; - line.styles = highlightLine(cm, line, state); - var ischange = !oldStyles || oldStyles.length != line.styles.length; - for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i]; - if (ischange) { - if (prevChange && prevChange.end == doc.frontier) prevChange.end++; - else changed.push(prevChange = {start: doc.frontier, end: doc.frontier + 1}); - } - line.stateAfter = copyState(doc.mode, state); - } else { - processLine(cm, line, state); - line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null; - } - ++doc.frontier; - if (+new Date > end) { - startWorker(cm, cm.options.workDelay); - return true; - } - }); - if (changed.length) - operation(cm, function() { - for (var i = 0; i < changed.length; ++i) - regChange(this, changed[i].start, changed[i].end); - })(); - } - - // Finds the line to start with when starting a parse. Tries to - // find a line with a stateAfter, so that it can start with a - // valid state. If that fails, it returns the line with the - // smallest indentation, which tends to need the least context to - // parse correctly. - function findStartLine(cm, n) { - var minindent, minline, doc = cm.doc; - for (var search = n, lim = n - 100; search > lim; --search) { - if (search <= doc.first) return doc.first; - var line = getLine(doc, search - 1); - if (line.stateAfter) return search; - var indented = countColumn(line.text, null, cm.options.tabSize); - if (minline == null || minindent > indented) { - minline = search - 1; - minindent = indented; - } - } - return minline; - } - - function getStateBefore(cm, n) { - var doc = cm.doc, display = cm.display; - if (!doc.mode.startState) return true; - var pos = findStartLine(cm, n), state = pos > doc.first && getLine(doc, pos-1).stateAfter; - if (!state) state = startState(doc.mode); - else state = copyState(doc.mode, state); - doc.iter(pos, n, function(line) { - processLine(cm, line, state); - var save = pos == n - 1 || pos % 5 == 0 || pos >= display.showingFrom && pos < display.showingTo; - line.stateAfter = save ? copyState(doc.mode, state) : null; - ++pos; - }); - return state; - } - - // POSITION MEASUREMENT - - function paddingTop(display) {return display.lineSpace.offsetTop;} - function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;} - function paddingLeft(display) { - var e = removeChildrenAndAdd(display.measure, elt("pre", null, null, "text-align: left")).appendChild(elt("span", "x")); - return e.offsetLeft; - } - - function measureChar(cm, line, ch, data) { - var dir = -1; - data = data || measureLine(cm, line); - - for (var pos = ch;; pos += dir) { - var r = data[pos]; - if (r) break; - if (dir < 0 && pos == 0) dir = 1; - } - return {left: pos < ch ? r.right : r.left, - right: pos > ch ? r.left : r.right, - top: r.top, bottom: r.bottom}; - } - - function findCachedMeasurement(cm, line) { - var cache = cm.display.measureLineCache; - for (var i = 0; i < cache.length; ++i) { - var memo = cache[i]; - if (memo.text == line.text && memo.markedSpans == line.markedSpans && - cm.display.scroller.clientWidth == memo.width && - memo.classes == line.textClass + "|" + line.bgClass + "|" + line.wrapClass) - return memo.measure; - } - } - - function measureLine(cm, line) { - // First look in the cache - var measure = findCachedMeasurement(cm, line); - if (!measure) { - // Failing that, recompute and store result in cache - measure = measureLineInner(cm, line); - var cache = cm.display.measureLineCache; - var memo = {text: line.text, width: cm.display.scroller.clientWidth, - markedSpans: line.markedSpans, measure: measure, - classes: line.textClass + "|" + line.bgClass + "|" + line.wrapClass}; - if (cache.length == 16) cache[++cm.display.measureLineCachePos % 16] = memo; - else cache.push(memo); - } - return measure; - } - - function measureLineInner(cm, line) { - var display = cm.display, measure = emptyArray(line.text.length); - var pre = lineContent(cm, line, measure); - - // IE does not cache element positions of inline elements between - // calls to getBoundingClientRect. This makes the loop below, - // which gathers the positions of all the characters on the line, - // do an amount of layout work quadratic to the number of - // characters. When line wrapping is off, we try to improve things - // by first subdividing the line into a bunch of inline blocks, so - // that IE can reuse most of the layout information from caches - // for those blocks. This does interfere with line wrapping, so it - // doesn't work when wrapping is on, but in that case the - // situation is slightly better, since IE does cache line-wrapping - // information and only recomputes per-line. - if (ie && !ie_lt8 && !cm.options.lineWrapping && pre.childNodes.length > 100) { - var fragment = document.createDocumentFragment(); - var chunk = 10, n = pre.childNodes.length; - for (var i = 0, chunks = Math.ceil(n / chunk); i < chunks; ++i) { - var wrap = elt("div", null, null, "display: inline-block"); - for (var j = 0; j < chunk && n; ++j) { - wrap.appendChild(pre.firstChild); - --n; - } - fragment.appendChild(wrap); - } - pre.appendChild(fragment); - } - - removeChildrenAndAdd(display.measure, pre); - - var outer = getRect(display.lineDiv); - var vranges = [], data = emptyArray(line.text.length), maxBot = pre.offsetHeight; - // Work around an IE7/8 bug where it will sometimes have randomly - // replaced our pre with a clone at this point. - if (ie_lt9 && display.measure.first != pre) - removeChildrenAndAdd(display.measure, pre); - - for (var i = 0, cur; i < measure.length; ++i) if (cur = measure[i]) { - var size = getRect(cur); - var top = Math.max(0, size.top - outer.top), bot = Math.min(size.bottom - outer.top, maxBot); - for (var j = 0; j < vranges.length; j += 2) { - var rtop = vranges[j], rbot = vranges[j+1]; - if (rtop > bot || rbot < top) continue; - if (rtop <= top && rbot >= bot || - top <= rtop && bot >= rbot || - Math.min(bot, rbot) - Math.max(top, rtop) >= (bot - top) >> 1) { - vranges[j] = Math.min(top, rtop); - vranges[j+1] = Math.max(bot, rbot); - break; - } - } - if (j == vranges.length) vranges.push(top, bot); - var right = size.right; - if (cur.measureRight) right = getRect(cur.measureRight).left; - data[i] = {left: size.left - outer.left, right: right - outer.left, top: j}; - } - for (var i = 0, cur; i < data.length; ++i) if (cur = data[i]) { - var vr = cur.top; - cur.top = vranges[vr]; cur.bottom = vranges[vr+1]; - } - - return data; - } - - function measureLineWidth(cm, line) { - var hasBadSpan = false; - if (line.markedSpans) for (var i = 0; i < line.markedSpans; ++i) { - var sp = line.markedSpans[i]; - if (sp.collapsed && (sp.to == null || sp.to == line.text.length)) hasBadSpan = true; - } - var cached = !hasBadSpan && findCachedMeasurement(cm, line); - if (cached) return measureChar(cm, line, line.text.length, cached).right; - - var pre = lineContent(cm, line); - var end = pre.appendChild(zeroWidthElement(cm.display.measure)); - removeChildrenAndAdd(cm.display.measure, pre); - return getRect(end).right - getRect(cm.display.lineDiv).left; - } - - function clearCaches(cm) { - cm.display.measureLineCache.length = cm.display.measureLineCachePos = 0; - cm.display.cachedCharWidth = cm.display.cachedTextHeight = null; - cm.display.maxLineChanged = true; - cm.display.lineNumChars = null; - } - - // Context is one of "line", "div" (display.lineDiv), "local"/null (editor), or "page" - function intoCoordSystem(cm, lineObj, rect, context) { - if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) { - var size = widgetHeight(lineObj.widgets[i]); - rect.top += size; rect.bottom += size; - } - if (context == "line") return rect; - if (!context) context = "local"; - var yOff = heightAtLine(cm, lineObj); - if (context != "local") yOff -= cm.display.viewOffset; - if (context == "page") { - var lOff = getRect(cm.display.lineSpace); - yOff += lOff.top + (window.pageYOffset || (document.documentElement || document.body).scrollTop); - var xOff = lOff.left + (window.pageXOffset || (document.documentElement || document.body).scrollLeft); - rect.left += xOff; rect.right += xOff; - } - rect.top += yOff; rect.bottom += yOff; - return rect; - } - - // Context may be "window", "page", "div", or "local"/null - // Result is in local coords - function fromCoordSystem(cm, coords, context) { - if (context == "div") return coords; - var left = coords.left, top = coords.top; - if (context == "page") { - left -= window.pageXOffset || (document.documentElement || document.body).scrollLeft; - top -= window.pageYOffset || (document.documentElement || document.body).scrollTop; - } - var lineSpaceBox = getRect(cm.display.lineSpace); - left -= lineSpaceBox.left; - top -= lineSpaceBox.top; - if (context == "local" || !context) { - var editorBox = getRect(cm.display.wrapper); - left -= editorBox.left; - top -= editorBox.top; - } - return {left: left, top: top}; - } - - function charCoords(cm, pos, context, lineObj) { - if (!lineObj) lineObj = getLine(cm.doc, pos.line); - return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch), context); - } - - function cursorCoords(cm, pos, context, lineObj, measurement) { - lineObj = lineObj || getLine(cm.doc, pos.line); - if (!measurement) measurement = measureLine(cm, lineObj); - function get(ch, right) { - var m = measureChar(cm, lineObj, ch, measurement); - if (right) m.left = m.right; else m.right = m.left; - return intoCoordSystem(cm, lineObj, m, context); - } - var order = getOrder(lineObj), ch = pos.ch; - if (!order) return get(ch); - var main, other, linedir = order[0].level; - for (var i = 0; i < order.length; ++i) { - var part = order[i], rtl = part.level % 2, nb, here; - if (part.from < ch && part.to > ch) return get(ch, rtl); - var left = rtl ? part.to : part.from, right = rtl ? part.from : part.to; - if (left == ch) { - // IE returns bogus offsets and widths for edges where the - // direction flips, but only for the side with the lower - // level. So we try to use the side with the higher level. - if (i && part.level < (nb = order[i-1]).level) here = get(nb.level % 2 ? nb.from : nb.to - 1, true); - else here = get(rtl && part.from != part.to ? ch - 1 : ch); - if (rtl == linedir) main = here; else other = here; - } else if (right == ch) { - var nb = i < order.length - 1 && order[i+1]; - if (!rtl && nb && nb.from == nb.to) continue; - if (nb && part.level < nb.level) here = get(nb.level % 2 ? nb.to - 1 : nb.from); - else here = get(rtl ? ch : ch - 1, true); - if (rtl == linedir) main = here; else other = here; - } - } - if (linedir && !ch) other = get(order[0].to - 1); - if (!main) return other; - if (other) main.other = other; - return main; - } - - function PosMaybeOutside(line, ch, outside) { - var pos = new Pos(line, ch); - if (outside) pos.outside = true; - return pos; - } - - // Coords must be lineSpace-local - function coordsChar(cm, x, y) { - var doc = cm.doc; - y += cm.display.viewOffset; - if (y < 0) return PosMaybeOutside(doc.first, 0, true); - var lineNo = lineAtHeight(doc, y), last = doc.first + doc.size - 1; - if (lineNo > last) - return PosMaybeOutside(doc.first + doc.size - 1, getLine(doc, last).text.length, true); - if (x < 0) x = 0; - - for (;;) { - var lineObj = getLine(doc, lineNo); - var found = coordsCharInner(cm, lineObj, lineNo, x, y); - var merged = collapsedSpanAtEnd(lineObj); - var mergedPos = merged && merged.find(); - if (merged && found.ch >= mergedPos.from.ch) - lineNo = mergedPos.to.line; - else - return found; - } - } - - function coordsCharInner(cm, lineObj, lineNo, x, y) { - var innerOff = y - heightAtLine(cm, lineObj); - var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth; - var measurement = measureLine(cm, lineObj); - - function getX(ch) { - var sp = cursorCoords(cm, Pos(lineNo, ch), "line", - lineObj, measurement); - wrongLine = true; - if (innerOff > sp.bottom) return sp.left - adjust; - else if (innerOff < sp.top) return sp.left + adjust; - else wrongLine = false; - return sp.left; - } - - var bidi = getOrder(lineObj), dist = lineObj.text.length; - var from = lineLeft(lineObj), to = lineRight(lineObj); - var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine; - - if (x > toX) return PosMaybeOutside(lineNo, to, toOutside); - // Do a binary search between these bounds. - for (;;) { - if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) { - var after = x - fromX < toX - x, ch = after ? from : to; - while (isExtendingChar.test(lineObj.text.charAt(ch))) ++ch; - var pos = PosMaybeOutside(lineNo, ch, after ? fromOutside : toOutside); - pos.after = after; - return pos; - } - var step = Math.ceil(dist / 2), middle = from + step; - if (bidi) { - middle = from; - for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1); - } - var middleX = getX(middle); - if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist -= step;} - else {from = middle; fromX = middleX; fromOutside = wrongLine; dist = step;} - } - } - - var measureText; - function textHeight(display) { - if (display.cachedTextHeight != null) return display.cachedTextHeight; - if (measureText == null) { - measureText = elt("pre"); - // Measure a bunch of lines, for browsers that compute - // fractional heights. - for (var i = 0; i < 49; ++i) { - measureText.appendChild(document.createTextNode("x")); - measureText.appendChild(elt("br")); - } - measureText.appendChild(document.createTextNode("x")); - } - removeChildrenAndAdd(display.measure, measureText); - var height = measureText.offsetHeight / 50; - if (height > 3) display.cachedTextHeight = height; - removeChildren(display.measure); - return height || 1; - } - - function charWidth(display) { - if (display.cachedCharWidth != null) return display.cachedCharWidth; - var anchor = elt("span", "x"); - var pre = elt("pre", [anchor]); - removeChildrenAndAdd(display.measure, pre); - var width = anchor.offsetWidth; - if (width > 2) display.cachedCharWidth = width; - return width || 10; - } - - // OPERATIONS - - // Operations are used to wrap changes in such a way that each - // change won't have to update the cursor and display (which would - // be awkward, slow, and error-prone), but instead updates are - // batched and then all combined and executed at once. - - var nextOpId = 0; - function startOperation(cm) { - cm.curOp = { - // An array of ranges of lines that have to be updated. See - // updateDisplay. - changes: [], - updateInput: null, - userSelChange: null, - textChanged: null, - selectionChanged: false, - updateMaxLine: false, - updateScrollPos: false, - id: ++nextOpId - }; - if (!delayedCallbackDepth++) delayedCallbacks = []; - } - - function endOperation(cm) { - var op = cm.curOp, doc = cm.doc, display = cm.display; - cm.curOp = null; - - if (op.updateMaxLine) computeMaxLength(cm); - if (display.maxLineChanged && !cm.options.lineWrapping) { - var width = measureLineWidth(cm, display.maxLine); - display.sizer.style.minWidth = Math.max(0, width + 3 + scrollerCutOff) + "px"; - display.maxLineChanged = false; - var maxScrollLeft = Math.max(0, display.sizer.offsetLeft + display.sizer.offsetWidth - display.scroller.clientWidth); - if (maxScrollLeft < doc.scrollLeft && !op.updateScrollPos) - setScrollLeft(cm, Math.min(display.scroller.scrollLeft, maxScrollLeft), true); - } - var newScrollPos, updated; - if (op.updateScrollPos) { - newScrollPos = op.updateScrollPos; - } else if (op.selectionChanged && display.scroller.clientHeight) { // don't rescroll if not visible - var coords = cursorCoords(cm, doc.sel.head); - newScrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom); - } - if (op.changes.length || newScrollPos && newScrollPos.scrollTop != null) { - updated = updateDisplay(cm, op.changes, newScrollPos && newScrollPos.scrollTop); - if (cm.display.scroller.offsetHeight) cm.doc.scrollTop = cm.display.scroller.scrollTop; - } - if (!updated && op.selectionChanged) updateSelection(cm); - if (op.updateScrollPos) { - display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = newScrollPos.scrollTop; - display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = newScrollPos.scrollLeft; - alignHorizontally(cm); - } else if (newScrollPos) { - scrollCursorIntoView(cm); - } - if (op.selectionChanged) restartBlink(cm); - - if (cm.state.focused && op.updateInput) - resetInput(cm, op.userSelChange); - - var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; - if (hidden) for (var i = 0; i < hidden.length; ++i) - if (!hidden[i].lines.length) signal(hidden[i], "hide"); - if (unhidden) for (var i = 0; i < unhidden.length; ++i) - if (unhidden[i].lines.length) signal(unhidden[i], "unhide"); - - var delayed; - if (!--delayedCallbackDepth) { - delayed = delayedCallbacks; - delayedCallbacks = null; - } - if (op.textChanged) - signal(cm, "change", cm, op.textChanged); - if (op.selectionChanged) signal(cm, "cursorActivity", cm); - if (delayed) for (var i = 0; i < delayed.length; ++i) delayed[i](); - } - - // Wraps a function in an operation. Returns the wrapped function. - function operation(cm1, f) { - return function() { - var cm = cm1 || this, withOp = !cm.curOp; - if (withOp) startOperation(cm); - try { var result = f.apply(cm, arguments); } - finally { if (withOp) endOperation(cm); } - return result; - }; - } - function docOperation(f) { - return function() { - var withOp = this.cm && !this.cm.curOp, result; - if (withOp) startOperation(this.cm); - try { result = f.apply(this, arguments); } - finally { if (withOp) endOperation(this.cm); } - return result; - }; - } - function runInOp(cm, f) { - var withOp = !cm.curOp, result; - if (withOp) startOperation(cm); - try { result = f(); } - finally { if (withOp) endOperation(cm); } - return result; - } - - function regChange(cm, from, to, lendiff) { - if (from == null) from = cm.doc.first; - if (to == null) to = cm.doc.first + cm.doc.size; - cm.curOp.changes.push({from: from, to: to, diff: lendiff}); - } - - // INPUT HANDLING - - function slowPoll(cm) { - if (cm.display.pollingFast) return; - cm.display.poll.set(cm.options.pollInterval, function() { - readInput(cm); - if (cm.state.focused) slowPoll(cm); - }); - } - - function fastPoll(cm) { - var missed = false; - cm.display.pollingFast = true; - function p() { - var changed = readInput(cm); - if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);} - else {cm.display.pollingFast = false; slowPoll(cm);} - } - cm.display.poll.set(20, p); - } - - // prevInput is a hack to work with IME. If we reset the textarea - // on every change, that breaks IME. So we look for changes - // compared to the previous content instead. (Modern browsers have - // events that indicate IME taking place, but these are not widely - // supported or compatible enough yet to rely on.) - function readInput(cm) { - var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc, sel = doc.sel; - if (!cm.state.focused || hasSelection(input) || isReadOnly(cm)) return false; - var text = input.value; - if (text == prevInput && posEq(sel.from, sel.to)) return false; - // IE enjoys randomly deselecting our input's text when - // re-focusing. If the selection is gone but the cursor is at the - // start of the input, that's probably what happened. - if (ie && text && input.selectionStart === 0) { - resetInput(cm, true); - return false; - } - var withOp = !cm.curOp; - if (withOp) startOperation(cm); - sel.shift = false; - var same = 0, l = Math.min(prevInput.length, text.length); - while (same < l && prevInput[same] == text[same]) ++same; - var from = sel.from, to = sel.to; - if (same < prevInput.length) - from = Pos(from.line, from.ch - (prevInput.length - same)); - else if (cm.state.overwrite && posEq(from, to) && !cm.state.pasteIncoming) - to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + (text.length - same))); - var updateInput = cm.curOp.updateInput; - makeChange(cm.doc, {from: from, to: to, text: splitLines(text.slice(same)), - origin: cm.state.pasteIncoming ? "paste" : "+input"}, "end"); - - cm.curOp.updateInput = updateInput; - if (text.length > 1000 || text.indexOf("\n") > -1) input.value = cm.display.prevInput = ""; - else cm.display.prevInput = text; - if (withOp) endOperation(cm); - cm.state.pasteIncoming = false; - return true; - } - - function resetInput(cm, user) { - var minimal, selected, doc = cm.doc; - if (!posEq(doc.sel.from, doc.sel.to)) { - cm.display.prevInput = ""; - minimal = hasCopyEvent && - (doc.sel.to.line - doc.sel.from.line > 100 || (selected = cm.getSelection()).length > 1000); - if (minimal) cm.display.input.value = "-"; - else cm.display.input.value = selected || cm.getSelection(); - if (cm.state.focused) selectInput(cm.display.input); - } else if (user) cm.display.prevInput = cm.display.input.value = ""; - cm.display.inaccurateSelection = minimal; - } - - function focusInput(cm) { - if (cm.options.readOnly != "nocursor" && (!mobile || document.activeElement != cm.display.input)) - cm.display.input.focus(); - } - - function isReadOnly(cm) { - return cm.options.readOnly || cm.doc.cantEdit; - } - - // EVENT HANDLERS - - function registerEventHandlers(cm) { - var d = cm.display; - on(d.scroller, "mousedown", operation(cm, onMouseDown)); - on(d.scroller, "dblclick", operation(cm, e_preventDefault)); - on(d.lineSpace, "selectstart", function(e) { - if (!eventInWidget(d, e)) e_preventDefault(e); - }); - // Gecko browsers fire contextmenu *after* opening the menu, at - // which point we can't mess with it anymore. Context menu is - // handled in onMouseDown for Gecko. - if (!captureMiddleClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);}); - - on(d.scroller, "scroll", function() { - if (d.scroller.clientHeight) { - setScrollTop(cm, d.scroller.scrollTop); - setScrollLeft(cm, d.scroller.scrollLeft, true); - signal(cm, "scroll", cm); - } - }); - on(d.scrollbarV, "scroll", function() { - if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop); - }); - on(d.scrollbarH, "scroll", function() { - if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft); - }); - - on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);}); - on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);}); - - function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); } - on(d.scrollbarH, "mousedown", reFocus); - on(d.scrollbarV, "mousedown", reFocus); - // Prevent wrapper from ever scrolling - on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); - - function onResize() { - // Might be a text scaling operation, clear size caches. - d.cachedCharWidth = d.cachedTextHeight = null; - clearCaches(cm); - runInOp(cm, bind(regChange, cm)); - } - on(window, "resize", onResize); - // Above handler holds on to the editor and its data structures. - // Here we poll to unregister it when the editor is no longer in - // the document, so that it can be garbage-collected. - function unregister() { - for (var p = d.wrapper.parentNode; p && p != document.body; p = p.parentNode) {} - if (p) setTimeout(unregister, 5000); - else off(window, "resize", onResize); - } - setTimeout(unregister, 5000); - - on(d.input, "keyup", operation(cm, function(e) { - if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; - if (e.keyCode == 16) cm.doc.sel.shift = false; - })); - on(d.input, "input", bind(fastPoll, cm)); - on(d.input, "keydown", operation(cm, onKeyDown)); - on(d.input, "keypress", operation(cm, onKeyPress)); - on(d.input, "focus", bind(onFocus, cm)); - on(d.input, "blur", bind(onBlur, cm)); - - function drag_(e) { - if (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))) return; - e_stop(e); - } - if (cm.options.dragDrop) { - on(d.scroller, "dragstart", function(e){onDragStart(cm, e);}); - on(d.scroller, "dragenter", drag_); - on(d.scroller, "dragover", drag_); - on(d.scroller, "drop", operation(cm, onDrop)); - } - on(d.scroller, "paste", function(e){ - if (eventInWidget(d, e)) return; - focusInput(cm); - fastPoll(cm); - }); - on(d.input, "paste", function() { - cm.state.pasteIncoming = true; - fastPoll(cm); - }); - - function prepareCopy() { - if (d.inaccurateSelection) { - d.prevInput = ""; - d.inaccurateSelection = false; - d.input.value = cm.getSelection(); - selectInput(d.input); - } - } - on(d.input, "cut", prepareCopy); - on(d.input, "copy", prepareCopy); - - // Needed to handle Tab key in KHTML - if (khtml) on(d.sizer, "mouseup", function() { - if (document.activeElement == d.input) d.input.blur(); - focusInput(cm); - }); - } - - function eventInWidget(display, e) { - for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { - if (!n) return true; - if (/\bCodeMirror-(?:line)?widget\b/.test(n.className) || - n.parentNode == display.sizer && n != display.mover) return true; - } - } - - function posFromMouse(cm, e, liberal) { - var display = cm.display; - if (!liberal) { - var target = e_target(e); - if (target == display.scrollbarH || target == display.scrollbarH.firstChild || - target == display.scrollbarV || target == display.scrollbarV.firstChild || - target == display.scrollbarFiller) return null; - } - var x, y, space = getRect(display.lineSpace); - // Fails unpredictably on IE[67] when mouse is dragged around quickly. - try { x = e.clientX; y = e.clientY; } catch (e) { return null; } - return coordsChar(cm, x - space.left, y - space.top); - } - - var lastClick, lastDoubleClick; - function onMouseDown(e) { - var cm = this, display = cm.display, doc = cm.doc, sel = doc.sel; - sel.shift = e.shiftKey; - - if (eventInWidget(display, e)) { - if (!webkit) { - display.scroller.draggable = false; - setTimeout(function(){display.scroller.draggable = true;}, 100); - } - return; - } - if (clickInGutter(cm, e)) return; - var start = posFromMouse(cm, e); - - switch (e_button(e)) { - case 3: - if (captureMiddleClick) onContextMenu.call(cm, cm, e); - return; - case 2: - if (start) extendSelection(cm.doc, start); - setTimeout(bind(focusInput, cm), 20); - e_preventDefault(e); - return; - } - // For button 1, if it was clicked inside the editor - // (posFromMouse returning non-null), we have to adjust the - // selection. - if (!start) {if (e_target(e) == display.scroller) e_preventDefault(e); return;} - - if (!cm.state.focused) onFocus(cm); - - var now = +new Date, type = "single"; - if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) { - type = "triple"; - e_preventDefault(e); - setTimeout(bind(focusInput, cm), 20); - selectLine(cm, start.line); - } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) { - type = "double"; - lastDoubleClick = {time: now, pos: start}; - e_preventDefault(e); - var word = findWordAt(getLine(doc, start.line).text, start); - extendSelection(cm.doc, word.from, word.to); - } else { lastClick = {time: now, pos: start}; } - - var last = start; - if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && !posEq(sel.from, sel.to) && - !posLess(start, sel.from) && !posLess(sel.to, start) && type == "single") { - var dragEnd = operation(cm, function(e2) { - if (webkit) display.scroller.draggable = false; - cm.state.draggingText = false; - off(document, "mouseup", dragEnd); - off(display.scroller, "drop", dragEnd); - if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { - e_preventDefault(e2); - extendSelection(cm.doc, start); - focusInput(cm); - } - }); - // Let the drag handler handle this. - if (webkit) display.scroller.draggable = true; - cm.state.draggingText = dragEnd; - // IE's approach to draggable - if (display.scroller.dragDrop) display.scroller.dragDrop(); - on(document, "mouseup", dragEnd); - on(display.scroller, "drop", dragEnd); - return; - } - e_preventDefault(e); - if (type == "single") extendSelection(cm.doc, clipPos(doc, start)); - - var startstart = sel.from, startend = sel.to; - - function doSelect(cur) { - if (type == "single") { - extendSelection(cm.doc, clipPos(doc, start), cur); - return; - } - - startstart = clipPos(doc, startstart); - startend = clipPos(doc, startend); - if (type == "double") { - var word = findWordAt(getLine(doc, cur.line).text, cur); - if (posLess(cur, startstart)) extendSelection(cm.doc, word.from, startend); - else extendSelection(cm.doc, startstart, word.to); - } else if (type == "triple") { - if (posLess(cur, startstart)) extendSelection(cm.doc, startend, clipPos(doc, Pos(cur.line, 0))); - else extendSelection(cm.doc, startstart, clipPos(doc, Pos(cur.line + 1, 0))); - } - } - - var editorSize = getRect(display.wrapper); - // Used to ensure timeout re-tries don't fire when another extend - // happened in the meantime (clearTimeout isn't reliable -- at - // least on Chrome, the timeouts still happen even when cleared, - // if the clear happens after their scheduled firing time). - var counter = 0; - - function extend(e) { - var curCount = ++counter; - var cur = posFromMouse(cm, e, true); - if (!cur) return; - if (!posEq(cur, last)) { - if (!cm.state.focused) onFocus(cm); - last = cur; - doSelect(cur); - var visible = visibleLines(display, doc); - if (cur.line >= visible.to || cur.line < visible.from) - setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150); - } else { - var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; - if (outside) setTimeout(operation(cm, function() { - if (counter != curCount) return; - display.scroller.scrollTop += outside; - extend(e); - }), 50); - } - } - - function done(e) { - counter = Infinity; - var cur = posFromMouse(cm, e); - if (cur) doSelect(cur); - e_preventDefault(e); - focusInput(cm); - off(document, "mousemove", move); - off(document, "mouseup", up); - } - - var move = operation(cm, function(e) { - if (!ie && !e_button(e)) done(e); - else extend(e); - }); - var up = operation(cm, done); - on(document, "mousemove", move); - on(document, "mouseup", up); - } - - function onDrop(e) { - var cm = this; - if (eventInWidget(cm.display, e) || (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e)))) - return; - e_preventDefault(e); - var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; - if (!pos || isReadOnly(cm)) return; - if (files && files.length && window.FileReader && window.File) { - var n = files.length, text = Array(n), read = 0; - var loadFile = function(file, i) { - var reader = new FileReader; - reader.onload = function() { - text[i] = reader.result; - if (++read == n) { - pos = clipPos(cm.doc, pos); - makeChange(cm.doc, {from: pos, to: pos, text: splitLines(text.join("\n")), origin: "paste"}, "around"); - } - }; - reader.readAsText(file); - }; - for (var i = 0; i < n; ++i) loadFile(files[i], i); - } else { - // Don't do a replace if the drop happened inside of the selected text. - if (cm.state.draggingText && !(posLess(pos, cm.doc.sel.from) || posLess(cm.doc.sel.to, pos))) { - cm.state.draggingText(e); - // Ensure the editor is re-focused - setTimeout(bind(focusInput, cm), 20); - return; - } - try { - var text = e.dataTransfer.getData("Text"); - if (text) { - var curFrom = cm.doc.sel.from, curTo = cm.doc.sel.to; - setSelection(cm.doc, pos, pos); - if (cm.state.draggingText) replaceRange(cm.doc, "", curFrom, curTo, "paste"); - cm.replaceSelection(text, null, "paste"); - focusInput(cm); - onFocus(cm); - } - } - catch(e){} - } - } - - function clickInGutter(cm, e) { - var display = cm.display; - try { var mX = e.clientX, mY = e.clientY; } - catch(e) { return false; } - - if (mX >= Math.floor(getRect(display.gutters).right)) return false; - e_preventDefault(e); - if (!hasHandler(cm, "gutterClick")) return true; - - var lineBox = getRect(display.lineDiv); - if (mY > lineBox.bottom) return true; - mY -= lineBox.top - display.viewOffset; - - for (var i = 0; i < cm.options.gutters.length; ++i) { - var g = display.gutters.childNodes[i]; - if (g && getRect(g).right >= mX) { - var line = lineAtHeight(cm.doc, mY); - var gutter = cm.options.gutters[i]; - signalLater(cm, "gutterClick", cm, line, gutter, e); - break; - } - } - return true; - } - - function onDragStart(cm, e) { - if (eventInWidget(cm.display, e)) return; - - var txt = cm.getSelection(); - e.dataTransfer.setData("Text", txt); - - // Use dummy image instead of default browsers image. - // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. - if (e.dataTransfer.setDragImage) { - var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); - if (opera) { - img.width = img.height = 1; - cm.display.wrapper.appendChild(img); - // Force a relayout, or Opera won't use our image for some obscure reason - img._top = img.offsetTop; - } - if (safari) { - if (cm.display.dragImg) { - img = cm.display.dragImg; - } else { - cm.display.dragImg = img; - img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; - cm.display.wrapper.appendChild(img); - } - } - e.dataTransfer.setDragImage(img, 0, 0); - if (opera) img.parentNode.removeChild(img); - } - } - - function setScrollTop(cm, val) { - if (Math.abs(cm.doc.scrollTop - val) < 2) return; - cm.doc.scrollTop = val; - if (!gecko) updateDisplay(cm, [], val); - if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val; - if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val; - if (gecko) updateDisplay(cm, []); - } - function setScrollLeft(cm, val, isScroller) { - if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return; - val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); - cm.doc.scrollLeft = val; - alignHorizontally(cm); - if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; - if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val; - } - - // Since the delta values reported on mouse wheel events are - // unstandardized between browsers and even browser versions, and - // generally horribly unpredictable, this code starts by measuring - // the scroll effect that the first few mouse wheel events have, - // and, from that, detects the way it can convert deltas to pixel - // offsets afterwards. - // - // The reason we want to know the amount a wheel event will scroll - // is that it gives us a chance to update the display before the - // actual scrolling happens, reducing flickering. - - var wheelSamples = 0, wheelPixelsPerUnit = null; - // Fill in a browser-detected starting value on browsers where we - // know one. These don't have to be accurate -- the result of them - // being wrong would just be a slight flicker on the first wheel - // scroll (if it is large enough). - if (ie) wheelPixelsPerUnit = -.53; - else if (gecko) wheelPixelsPerUnit = 15; - else if (chrome) wheelPixelsPerUnit = -.7; - else if (safari) wheelPixelsPerUnit = -1/3; - - function onScrollWheel(cm, e) { - var dx = e.wheelDeltaX, dy = e.wheelDeltaY; - if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail; - if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail; - else if (dy == null) dy = e.wheelDelta; - - // Webkit browsers on OS X abort momentum scrolls when the target - // of the scroll event is removed from the scrollable element. - // This hack (see related code in patchDisplay) makes sure the - // element is kept around. - if (dy && mac && webkit) { - for (var cur = e.target; cur != scroll; cur = cur.parentNode) { - if (cur.lineObj) { - cm.display.currentWheelTarget = cur; - break; - } - } - } - - var display = cm.display, scroll = display.scroller; - // On some browsers, horizontal scrolling will cause redraws to - // happen before the gutter has been realigned, causing it to - // wriggle around in a most unseemly way. When we have an - // estimated pixels/delta value, we just handle horizontal - // scrolling entirely here. It'll be slightly off from native, but - // better than glitching out. - if (dx && !gecko && !opera && wheelPixelsPerUnit != null) { - if (dy) - setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); - setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth))); - e_preventDefault(e); - display.wheelStartX = null; // Abort measurement, if in progress - return; - } - - if (dy && wheelPixelsPerUnit != null) { - var pixels = dy * wheelPixelsPerUnit; - var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; - if (pixels < 0) top = Math.max(0, top + pixels - 50); - else bot = Math.min(cm.doc.height, bot + pixels + 50); - updateDisplay(cm, [], {top: top, bottom: bot}); - } - - if (wheelSamples < 20) { - if (display.wheelStartX == null) { - display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; - display.wheelDX = dx; display.wheelDY = dy; - setTimeout(function() { - if (display.wheelStartX == null) return; - var movedX = scroll.scrollLeft - display.wheelStartX; - var movedY = scroll.scrollTop - display.wheelStartY; - var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || - (movedX && display.wheelDX && movedX / display.wheelDX); - display.wheelStartX = display.wheelStartY = null; - if (!sample) return; - wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); - ++wheelSamples; - }, 200); - } else { - display.wheelDX += dx; display.wheelDY += dy; - } - } - } - - function doHandleBinding(cm, bound, dropShift) { - if (typeof bound == "string") { - bound = commands[bound]; - if (!bound) return false; - } - // Ensure previous input has been read, so that the handler sees a - // consistent view of the document - if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false; - var doc = cm.doc, prevShift = doc.sel.shift, done = false; - try { - if (isReadOnly(cm)) cm.state.suppressEdits = true; - if (dropShift) doc.sel.shift = false; - done = bound(cm) != Pass; - } finally { - doc.sel.shift = prevShift; - cm.state.suppressEdits = false; - } - return done; - } - - function allKeyMaps(cm) { - var maps = cm.state.keyMaps.slice(0); - if (cm.options.extraKeys) maps.push(cm.options.extraKeys); - maps.push(cm.options.keyMap); - return maps; - } - - var maybeTransition; - function handleKeyBinding(cm, e) { - // Handle auto keymap transitions - var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto; - clearTimeout(maybeTransition); - if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() { - if (getKeyMap(cm.options.keyMap) == startMap) - cm.options.keyMap = (next.call ? next.call(null, cm) : next); - }, 50); - - var name = keyName(e, true), handled = false; - if (!name) return false; - var keymaps = allKeyMaps(cm); - - if (e.shiftKey) { - // First try to resolve full name (including 'Shift-'). Failing - // that, see if there is a cursor-motion command (starting with - // 'go') bound to the keyname without 'Shift-'. - handled = lookupKey("Shift-" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);}) - || lookupKey(name, keymaps, function(b) { - if (typeof b == "string" && /^go[A-Z]/.test(b)) return doHandleBinding(cm, b); - }); - } else { - handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); }); - } - if (handled == "stop") handled = false; - - if (handled) { - e_preventDefault(e); - restartBlink(cm); - if (ie_lt9) { e.oldKeyCode = e.keyCode; e.keyCode = 0; } - } - return handled; - } - - function handleCharBinding(cm, e, ch) { - var handled = lookupKey("'" + ch + "'", allKeyMaps(cm), - function(b) { return doHandleBinding(cm, b, true); }); - if (handled) { - e_preventDefault(e); - restartBlink(cm); - } - return handled; - } - - var lastStoppedKey = null; - function onKeyDown(e) { - var cm = this; - if (!cm.state.focused) onFocus(cm); - if (ie && e.keyCode == 27) { e.returnValue = false; } - if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; - var code = e.keyCode; - // IE does strange things with escape. - cm.doc.sel.shift = code == 16 || e.shiftKey; - // First give onKeyEvent option a chance to handle this. - var handled = handleKeyBinding(cm, e); - if (opera) { - lastStoppedKey = handled ? code : null; - // Opera has no cut event... we try to at least catch the key combo - if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) - cm.replaceSelection(""); - } - } - - function onKeyPress(e) { - var cm = this; - if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; - var keyCode = e.keyCode, charCode = e.charCode; - if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} - if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return; - var ch = String.fromCharCode(charCode == null ? keyCode : charCode); - if (this.options.electricChars && this.doc.mode.electricChars && - this.options.smartIndent && !isReadOnly(this) && - this.doc.mode.electricChars.indexOf(ch) > -1) - setTimeout(operation(cm, function() {indentLine(cm, cm.doc.sel.to.line, "smart");}), 75); - if (handleCharBinding(cm, e, ch)) return; - fastPoll(cm); - } - - function onFocus(cm) { - if (cm.options.readOnly == "nocursor") return; - if (!cm.state.focused) { - signal(cm, "focus", cm); - cm.state.focused = true; - if (cm.display.wrapper.className.search(/\bCodeMirror-focused\b/) == -1) - cm.display.wrapper.className += " CodeMirror-focused"; - resetInput(cm, true); - } - slowPoll(cm); - restartBlink(cm); - } - function onBlur(cm) { - if (cm.state.focused) { - signal(cm, "blur", cm); - cm.state.focused = false; - cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-focused", ""); - } - clearInterval(cm.display.blinker); - setTimeout(function() {if (!cm.state.focused) cm.doc.sel.shift = false;}, 150); - } - - var detectingSelectAll; - function onContextMenu(cm, e) { - var display = cm.display, sel = cm.doc.sel; - if (eventInWidget(display, e)) return; - - var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; - if (!pos || opera) return; // Opera is difficult. - if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) - operation(cm, setSelection)(cm.doc, pos, pos); - - var oldCSS = display.input.style.cssText; - display.inputDiv.style.position = "absolute"; - display.input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + - "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; outline: none;" + - "border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);"; - focusInput(cm); - resetInput(cm, true); - // Adds "Select all" to context menu in FF - if (posEq(sel.from, sel.to)) display.input.value = display.prevInput = " "; - - function rehide() { - display.inputDiv.style.position = "relative"; - display.input.style.cssText = oldCSS; - if (ie_lt9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos; - slowPoll(cm); - - // Try to detect the user choosing select-all - if (display.input.selectionStart != null && (!ie || ie_lt9)) { - clearTimeout(detectingSelectAll); - var extval = display.input.value = " " + (posEq(sel.from, sel.to) ? "" : display.input.value), i = 0; - display.prevInput = " "; - display.input.selectionStart = 1; display.input.selectionEnd = extval.length; - var poll = function(){ - if (display.prevInput == " " && display.input.selectionStart == 0) - operation(cm, commands.selectAll)(cm); - else if (i++ < 10) detectingSelectAll = setTimeout(poll, 500); - else resetInput(cm); - }; - detectingSelectAll = setTimeout(poll, 200); - } - } - - if (captureMiddleClick) { - e_stop(e); - var mouseup = function() { - off(window, "mouseup", mouseup); - setTimeout(rehide, 20); - }; - on(window, "mouseup", mouseup); - } else { - setTimeout(rehide, 50); - } - } - - // UPDATING - - function changeEnd(change) { - return Pos(change.from.line + change.text.length - 1, - lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); - } - - // Make sure a position will be valid after the given change. - function clipPostChange(doc, change, pos) { - if (!posLess(change.from, pos)) return clipPos(doc, pos); - var diff = (change.text.length - 1) - (change.to.line - change.from.line); - if (pos.line > change.to.line + diff) { - var preLine = pos.line - diff, lastLine = doc.first + doc.size - 1; - if (preLine > lastLine) return Pos(lastLine, getLine(doc, lastLine).text.length); - return clipToLen(pos, getLine(doc, preLine).text.length); - } - if (pos.line == change.to.line + diff) - return clipToLen(pos, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0) + - getLine(doc, change.to.line).text.length - change.to.ch); - var inside = pos.line - change.from.line; - return clipToLen(pos, change.text[inside].length + (inside ? 0 : change.from.ch)); - } - - // Hint can be null|"end"|"start"|"around"|{anchor,head} - function computeSelAfterChange(doc, change, hint) { - if (hint && typeof hint == "object") // Assumed to be {anchor, head} object - return {anchor: clipPostChange(doc, change, hint.anchor), - head: clipPostChange(doc, change, hint.head)}; - - if (hint == "start") return {anchor: change.from, head: change.from}; - - var end = changeEnd(change); - if (hint == "around") return {anchor: change.from, head: end}; - if (hint == "end") return {anchor: end, head: end}; - - // hint is null, leave the selection alone as much as possible - var adjustPos = function(pos) { - if (posLess(pos, change.from)) return pos; - if (!posLess(change.to, pos)) return end; - - var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; - if (pos.line == change.to.line) ch += end.ch - change.to.ch; - return Pos(line, ch); - }; - return {anchor: adjustPos(doc.sel.anchor), head: adjustPos(doc.sel.head)}; - } - - function filterChange(doc, change) { - var obj = { - canceled: false, - from: change.from, - to: change.to, - text: change.text, - origin: change.origin, - update: function(from, to, text, origin) { - if (from) this.from = clipPos(doc, from); - if (to) this.to = clipPos(doc, to); - if (text) this.text = text; - if (origin !== undefined) this.origin = origin; - }, - cancel: function() { this.canceled = true; } - }; - signal(doc, "beforeChange", doc, obj); - if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj); - - if (obj.canceled) return null; - return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}; - } - - // Replace the range from from to to by the strings in replacement. - // change is a {from, to, text [, origin]} object - function makeChange(doc, change, selUpdate, ignoreReadOnly) { - if (doc.cm) { - if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, selUpdate, ignoreReadOnly); - if (doc.cm.state.suppressEdits) return; - } - - if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { - change = filterChange(doc, change); - if (!change) return; - } - - // Possibly split or suppress the update based on the presence - // of read-only spans in its range. - var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); - if (split) { - for (var i = split.length - 1; i >= 1; --i) - makeChangeNoReadonly(doc, {from: split[i].from, to: split[i].to, text: [""]}); - if (split.length) - makeChangeNoReadonly(doc, {from: split[0].from, to: split[0].to, text: change.text}, selUpdate); - } else { - makeChangeNoReadonly(doc, change, selUpdate); - } - } - - function makeChangeNoReadonly(doc, change, selUpdate) { - var selAfter = computeSelAfterChange(doc, change, selUpdate); - addToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); - - makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); - var rebased = []; - - linkedDocs(doc, function(doc, sharedHist) { - if (!sharedHist && indexOf(rebased, doc.history) == -1) { - rebaseHist(doc.history, change); - rebased.push(doc.history); - } - makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); - }); - } - - function makeChangeFromHistory(doc, type) { - if (doc.cm && doc.cm.state.suppressEdits) return; - - var hist = doc.history; - var event = (type == "undo" ? hist.done : hist.undone).pop(); - if (!event) return; - hist.dirtyCounter += type == "undo" ? -1 : 1; - - var anti = {changes: [], anchorBefore: event.anchorAfter, headBefore: event.headAfter, - anchorAfter: event.anchorBefore, headAfter: event.headBefore}; - (type == "undo" ? hist.undone : hist.done).push(anti); - - for (var i = event.changes.length - 1; i >= 0; --i) { - var change = event.changes[i]; - change.origin = type; - anti.changes.push(historyChangeFromChange(doc, change)); - - var after = i ? computeSelAfterChange(doc, change, null) - : {anchor: event.anchorBefore, head: event.headBefore}; - makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); - var rebased = []; - - linkedDocs(doc, function(doc, sharedHist) { - if (!sharedHist && indexOf(rebased, doc.history) == -1) { - rebaseHist(doc.history, change); - rebased.push(doc.history); - } - makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); - }); - } - } - - function shiftDoc(doc, distance) { - function shiftPos(pos) {return Pos(pos.line + distance, pos.ch);} - doc.first += distance; - if (doc.cm) regChange(doc.cm, doc.first, doc.first, distance); - doc.sel.head = shiftPos(doc.sel.head); doc.sel.anchor = shiftPos(doc.sel.anchor); - doc.sel.from = shiftPos(doc.sel.from); doc.sel.to = shiftPos(doc.sel.to); - } - - function makeChangeSingleDoc(doc, change, selAfter, spans) { - if (doc.cm && !doc.cm.curOp) - return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); - - if (change.to.line < doc.first) { - shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); - return; - } - if (change.from.line > doc.lastLine()) return; - - // Clip the change to the size of this doc - if (change.from.line < doc.first) { - var shift = change.text.length - 1 - (doc.first - change.from.line); - shiftDoc(doc, shift); - change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), - text: [lst(change.text)], origin: change.origin}; - } - var last = doc.lastLine(); - if (change.to.line > last) { - change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), - text: [change.text[0]], origin: change.origin}; - } - - change.removed = getBetween(doc, change.from, change.to); - - if (!selAfter) selAfter = computeSelAfterChange(doc, change, null); - if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter); - else updateDoc(doc, change, spans, selAfter); - } - - function makeChangeSingleDocInEditor(cm, change, spans, selAfter) { - var doc = cm.doc, display = cm.display, from = change.from, to = change.to; - - var recomputeMaxLength = false, checkWidthStart = from.line; - if (!cm.options.lineWrapping) { - checkWidthStart = lineNo(visualLine(doc, getLine(doc, from.line))); - doc.iter(checkWidthStart, to.line + 1, function(line) { - if (line == display.maxLine) { - recomputeMaxLength = true; - return true; - } - }); - } - - updateDoc(doc, change, spans, selAfter, estimateHeight(cm)); - - if (!cm.options.lineWrapping) { - doc.iter(checkWidthStart, from.line + change.text.length, function(line) { - var len = lineLength(doc, line); - if (len > display.maxLineLength) { - display.maxLine = line; - display.maxLineLength = len; - display.maxLineChanged = true; - recomputeMaxLength = false; - } - }); - if (recomputeMaxLength) cm.curOp.updateMaxLine = true; - } - - // Adjust frontier, schedule worker - doc.frontier = Math.min(doc.frontier, from.line); - startWorker(cm, 400); - - var lendiff = change.text.length - (to.line - from.line) - 1; - // Remember that these lines changed, for updating the display - regChange(cm, from.line, to.line + 1, lendiff); - - if (hasHandler(cm, "change")) { - var changeObj = {from: from, to: to, - text: change.text, - removed: change.removed, - origin: change.origin}; - if (cm.curOp.textChanged) { - for (var cur = cm.curOp.textChanged; cur.next; cur = cur.next) {} - cur.next = changeObj; - } else cm.curOp.textChanged = changeObj; - } - } - - function replaceRange(doc, code, from, to, origin) { - if (!to) to = from; - if (posLess(to, from)) { var tmp = to; to = from; from = tmp; } - if (typeof code == "string") code = splitLines(code); - makeChange(doc, {from: from, to: to, text: code, origin: origin}, null); - } - - // POSITION OBJECT - - function Pos(line, ch) { - if (!(this instanceof Pos)) return new Pos(line, ch); - this.line = line; this.ch = ch; - } - CodeMirror.Pos = Pos; - - function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} - function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} - function copyPos(x) {return Pos(x.line, x.ch);} - - // SELECTION - - function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));} - function clipPos(doc, pos) { - if (pos.line < doc.first) return Pos(doc.first, 0); - var last = doc.first + doc.size - 1; - if (pos.line > last) return Pos(last, getLine(doc, last).text.length); - return clipToLen(pos, getLine(doc, pos.line).text.length); - } - function clipToLen(pos, linelen) { - var ch = pos.ch; - if (ch == null || ch > linelen) return Pos(pos.line, linelen); - else if (ch < 0) return Pos(pos.line, 0); - else return pos; - } - function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;} - - // If shift is held, this will move the selection anchor. Otherwise, - // it'll set the whole selection. - function extendSelection(doc, pos, other, bias) { - if (doc.sel.shift || doc.sel.extend) { - var anchor = doc.sel.anchor; - if (other) { - var posBefore = posLess(pos, anchor); - if (posBefore != posLess(other, anchor)) { - anchor = pos; - pos = other; - } else if (posBefore != posLess(pos, other)) { - pos = other; - } - } - setSelection(doc, anchor, pos, bias); - } else { - setSelection(doc, pos, other || pos, bias); - } - if (doc.cm) doc.cm.curOp.userSelChange = true; - } - - function filterSelectionChange(doc, anchor, head) { - var obj = {anchor: anchor, head: head}; - signal(doc, "beforeSelectionChange", doc, obj); - if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj); - obj.anchor = clipPos(doc, obj.anchor); obj.head = clipPos(doc, obj.head); - return obj; - } - - // Update the selection. Last two args are only used by - // updateDoc, since they have to be expressed in the line - // numbers before the update. - function setSelection(doc, anchor, head, bias, checkAtomic) { - if (!checkAtomic && hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) { - var filtered = filterSelectionChange(doc, anchor, head); - head = filtered.head; - anchor = filtered.anchor; - } - - var sel = doc.sel; - sel.goalColumn = null; - // Skip over atomic spans. - if (checkAtomic || !posEq(anchor, sel.anchor)) - anchor = skipAtomic(doc, anchor, bias, checkAtomic != "push"); - if (checkAtomic || !posEq(head, sel.head)) - head = skipAtomic(doc, head, bias, checkAtomic != "push"); - - if (posEq(sel.anchor, anchor) && posEq(sel.head, head)) return; - - sel.anchor = anchor; sel.head = head; - var inv = posLess(head, anchor); - sel.from = inv ? head : anchor; - sel.to = inv ? anchor : head; - - if (doc.cm) - doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true; - - signalLater(doc, "cursorActivity", doc); - } - - function reCheckSelection(cm) { - setSelection(cm.doc, cm.doc.sel.from, cm.doc.sel.to, null, "push"); - } - - function skipAtomic(doc, pos, bias, mayClear) { - var flipped = false, curPos = pos; - var dir = bias || 1; - doc.cantEdit = false; - search: for (;;) { - var line = getLine(doc, curPos.line); - if (line.markedSpans) { - for (var i = 0; i < line.markedSpans.length; ++i) { - var sp = line.markedSpans[i], m = sp.marker; - if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) && - (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) { - if (mayClear) { - signal(m, "beforeCursorEnter"); - if (m.explicitlyCleared) { - if (!line.markedSpans) break; - else {--i; continue;} - } - } - if (!m.atomic) continue; - var newPos = m.find()[dir < 0 ? "from" : "to"]; - if (posEq(newPos, curPos)) { - newPos.ch += dir; - if (newPos.ch < 0) { - if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1)); - else newPos = null; - } else if (newPos.ch > line.text.length) { - if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0); - else newPos = null; - } - if (!newPos) { - if (flipped) { - // Driven in a corner -- no valid cursor position found at all - // -- try again *with* clearing, if we didn't already - if (!mayClear) return skipAtomic(doc, pos, bias, true); - // Otherwise, turn off editing until further notice, and return the start of the doc - doc.cantEdit = true; - return Pos(doc.first, 0); - } - flipped = true; newPos = pos; dir = -dir; - } - } - curPos = newPos; - continue search; - } - } - } - return curPos; - } - } - - // SCROLLING - - function scrollCursorIntoView(cm) { - var coords = scrollPosIntoView(cm, cm.doc.sel.head); - if (!cm.state.focused) return; - var display = cm.display, box = getRect(display.sizer), doScroll = null, pTop = paddingTop(cm.display); - if (coords.top + pTop + box.top < 0) doScroll = true; - else if (coords.bottom + pTop + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; - if (doScroll != null && !phantom) { - var hidden = display.cursor.style.display == "none"; - if (hidden) { - display.cursor.style.display = ""; - display.cursor.style.left = coords.left + "px"; - display.cursor.style.top = (coords.top - display.viewOffset) + "px"; - } - display.cursor.scrollIntoView(doScroll); - if (hidden) display.cursor.style.display = "none"; - } - } - - function scrollPosIntoView(cm, pos, margin) { - if (margin == null) margin = 0; - for (;;) { - var changed = false, coords = cursorCoords(cm, pos); - var scrollPos = calculateScrollPos(cm, coords.left, coords.top - margin, coords.left, coords.bottom + margin); - var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; - if (scrollPos.scrollTop != null) { - setScrollTop(cm, scrollPos.scrollTop); - if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true; - } - if (scrollPos.scrollLeft != null) { - setScrollLeft(cm, scrollPos.scrollLeft); - if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true; - } - if (!changed) return coords; - } - } - - function scrollIntoView(cm, x1, y1, x2, y2) { - var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2); - if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop); - if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft); - } - - function calculateScrollPos(cm, x1, y1, x2, y2) { - var display = cm.display, pt = paddingTop(display); - y1 += pt; y2 += pt; - var screen = display.scroller.clientHeight - scrollerCutOff, screentop = display.scroller.scrollTop, result = {}; - var docBottom = cm.doc.height + paddingVert(display); - var atTop = y1 < pt + 10, atBottom = y2 + pt > docBottom - 10; - if (y1 < screentop) result.scrollTop = atTop ? 0 : Math.max(0, y1); - else if (y2 > screentop + screen) result.scrollTop = (atBottom ? docBottom : y2) - screen; - - var screenw = display.scroller.clientWidth - scrollerCutOff, screenleft = display.scroller.scrollLeft; - x1 += display.gutters.offsetWidth; x2 += display.gutters.offsetWidth; - var gutterw = display.gutters.offsetWidth; - var atLeft = x1 < gutterw + 10; - if (x1 < screenleft + gutterw || atLeft) { - if (atLeft) x1 = 0; - result.scrollLeft = Math.max(0, x1 - 10 - gutterw); - } else if (x2 > screenw + screenleft - 3) { - result.scrollLeft = x2 + 10 - screenw; - } - return result; - } - - function updateScrollPos(cm, left, top) { - cm.curOp.updateScrollPos = {scrollLeft: left, scrollTop: top}; - } - - function addToScrollPos(cm, left, top) { - var pos = cm.curOp.updateScrollPos || (cm.curOp.updateScrollPos = {scrollLeft: cm.doc.scrollLeft, scrollTop: cm.doc.scrollTop}); - var scroll = cm.display.scroller; - pos.scrollTop = Math.max(0, Math.min(scroll.scrollHeight - scroll.clientHeight, pos.scrollTop + top)); - pos.scrollLeft = Math.max(0, Math.min(scroll.scrollWidth - scroll.clientWidth, pos.scrollLeft + left)); - } - - // API UTILITIES - - function indentLine(cm, n, how, aggressive) { - var doc = cm.doc; - if (!how) how = "add"; - if (how == "smart") { - if (!cm.doc.mode.indent) how = "prev"; - else var state = getStateBefore(cm, n); - } - - var tabSize = cm.options.tabSize; - var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); - var curSpaceString = line.text.match(/^\s*/)[0], indentation; - if (how == "smart") { - indentation = cm.doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); - if (indentation == Pass) { - if (!aggressive) return; - how = "prev"; - } - } - if (how == "prev") { - if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize); - else indentation = 0; - } else if (how == "add") { - indentation = curSpace + cm.options.indentUnit; - } else if (how == "subtract") { - indentation = curSpace - cm.options.indentUnit; - } - indentation = Math.max(0, indentation); - - var indentString = "", pos = 0; - if (cm.options.indentWithTabs) - for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} - if (pos < indentation) indentString += spaceStr(indentation - pos); - - if (indentString != curSpaceString) - replaceRange(cm.doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); - line.stateAfter = null; - } - - function changeLine(cm, handle, op) { - var no = handle, line = handle, doc = cm.doc; - if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle)); - else no = lineNo(handle); - if (no == null) return null; - if (op(line, no)) regChange(cm, no, no + 1); - else return null; - return line; - } - - function findPosH(doc, pos, dir, unit, visually) { - var line = pos.line, ch = pos.ch; - var lineObj = getLine(doc, line); - var possible = true; - function findNextLine() { - var l = line + dir; - if (l < doc.first || l >= doc.first + doc.size) return (possible = false); - line = l; - return lineObj = getLine(doc, l); - } - function moveOnce(boundToLine) { - var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true); - if (next == null) { - if (!boundToLine && findNextLine()) { - if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj); - else ch = dir < 0 ? lineObj.text.length : 0; - } else return (possible = false); - } else ch = next; - return true; - } - - if (unit == "char") moveOnce(); - else if (unit == "column") moveOnce(true); - else if (unit == "word" || unit == "group") { - var sawType = null, group = unit == "group"; - for (var first = true;; first = false) { - if (dir < 0 && !moveOnce(!first)) break; - var cur = lineObj.text.charAt(ch) || "\n"; - var type = isWordChar(cur) ? "w" - : !group ? null - : /\s/.test(cur) ? null - : "p"; - if (sawType && sawType != type) { - if (dir < 0) {dir = 1; moveOnce();} - break; - } - if (type) sawType = type; - if (dir > 0 && !moveOnce(!first)) break; - } - } - var result = skipAtomic(doc, Pos(line, ch), dir, true); - if (!possible) result.hitSide = true; - return result; - } - - function findPosV(cm, pos, dir, unit) { - var doc = cm.doc, x = pos.left, y; - if (unit == "page") { - var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); - y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display)); - } else if (unit == "line") { - y = dir > 0 ? pos.bottom + 3 : pos.top - 3; - } - for (;;) { - var target = coordsChar(cm, x, y); - if (!target.outside) break; - if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; } - y += dir * 5; - } - return target; - } - - function findWordAt(line, pos) { - var start = pos.ch, end = pos.ch; - if (line) { - if (pos.after === false || end == line.length) --start; else ++end; - var startChar = line.charAt(start); - var check = isWordChar(startChar) ? isWordChar - : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} - : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; - while (start > 0 && check(line.charAt(start - 1))) --start; - while (end < line.length && check(line.charAt(end))) ++end; - } - return {from: Pos(pos.line, start), to: Pos(pos.line, end)}; - } - - function selectLine(cm, line) { - extendSelection(cm.doc, Pos(line, 0), clipPos(cm.doc, Pos(line + 1, 0))); - } - - // PROTOTYPE - - // The publicly visible API. Note that operation(null, f) means - // 'wrap f in an operation, performed on its `this` parameter' - - CodeMirror.prototype = { - focus: function(){window.focus(); focusInput(this); onFocus(this); fastPoll(this);}, - - setOption: function(option, value) { - var options = this.options, old = options[option]; - if (options[option] == value && option != "mode") return; - options[option] = value; - if (optionHandlers.hasOwnProperty(option)) - operation(this, optionHandlers[option])(this, value, old); - }, - - getOption: function(option) {return this.options[option];}, - getDoc: function() {return this.doc;}, - - addKeyMap: function(map, bottom) { - this.state.keyMaps[bottom ? "push" : "unshift"](map); - }, - removeKeyMap: function(map) { - var maps = this.state.keyMaps; - for (var i = 0; i < maps.length; ++i) - if ((typeof map == "string" ? maps[i].name : maps[i]) == map) { - maps.splice(i, 1); - return true; - } - }, - - addOverlay: operation(null, function(spec, options) { - var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); - if (mode.startState) throw new Error("Overlays may not be stateful."); - this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque}); - this.state.modeGen++; - regChange(this); - }), - removeOverlay: operation(null, function(spec) { - var overlays = this.state.overlays; - for (var i = 0; i < overlays.length; ++i) { - if (overlays[i].modeSpec == spec) { - overlays.splice(i, 1); - this.state.modeGen++; - regChange(this); - return; - } - } - }), - - indentLine: operation(null, function(n, dir, aggressive) { - if (typeof dir != "string") { - if (dir == null) dir = this.options.smartIndent ? "smart" : "prev"; - else dir = dir ? "add" : "subtract"; - } - if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive); - }), - indentSelection: operation(null, function(how) { - var sel = this.doc.sel; - if (posEq(sel.from, sel.to)) return indentLine(this, sel.from.line, how); - var e = sel.to.line - (sel.to.ch ? 0 : 1); - for (var i = sel.from.line; i <= e; ++i) indentLine(this, i, how); - }), - - // Fetch the parser token for a given character. Useful for hacks - // that want to inspect the mode state (say, for completion). - getTokenAt: function(pos) { - var doc = this.doc; - pos = clipPos(doc, pos); - var state = getStateBefore(this, pos.line), mode = this.doc.mode; - var line = getLine(doc, pos.line); - var stream = new StringStream(line.text, this.options.tabSize); - while (stream.pos < pos.ch && !stream.eol()) { - stream.start = stream.pos; - var style = mode.token(stream, state); - } - return {start: stream.start, - end: stream.pos, - string: stream.current(), - className: style || null, // Deprecated, use 'type' instead - type: style || null, - state: state}; - }, - - getStateAfter: function(line) { - var doc = this.doc; - line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); - return getStateBefore(this, line + 1); - }, - - cursorCoords: function(start, mode) { - var pos, sel = this.doc.sel; - if (start == null) pos = sel.head; - else if (typeof start == "object") pos = clipPos(this.doc, start); - else pos = start ? sel.from : sel.to; - return cursorCoords(this, pos, mode || "page"); - }, - - charCoords: function(pos, mode) { - return charCoords(this, clipPos(this.doc, pos), mode || "page"); - }, - - coordsChar: function(coords, mode) { - coords = fromCoordSystem(this, coords, mode || "page"); - return coordsChar(this, coords.left, coords.top); - }, - - defaultTextHeight: function() { return textHeight(this.display); }, - defaultCharWidth: function() { return charWidth(this.display); }, - - setGutterMarker: operation(null, function(line, gutterID, value) { - return changeLine(this, line, function(line) { - var markers = line.gutterMarkers || (line.gutterMarkers = {}); - markers[gutterID] = value; - if (!value && isEmpty(markers)) line.gutterMarkers = null; - return true; - }); - }), - - clearGutter: operation(null, function(gutterID) { - var cm = this, doc = cm.doc, i = doc.first; - doc.iter(function(line) { - if (line.gutterMarkers && line.gutterMarkers[gutterID]) { - line.gutterMarkers[gutterID] = null; - regChange(cm, i, i + 1); - if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null; - } - ++i; - }); - }), - - addLineClass: operation(null, function(handle, where, cls) { - return changeLine(this, handle, function(line) { - var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; - if (!line[prop]) line[prop] = cls; - else if (new RegExp("\\b" + cls + "\\b").test(line[prop])) return false; - else line[prop] += " " + cls; - return true; - }); - }), - - removeLineClass: operation(null, function(handle, where, cls) { - return changeLine(this, handle, function(line) { - var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; - var cur = line[prop]; - if (!cur) return false; - else if (cls == null) line[prop] = null; - else { - var upd = cur.replace(new RegExp("^" + cls + "\\b\\s*|\\s*\\b" + cls + "\\b"), ""); - if (upd == cur) return false; - line[prop] = upd || null; - } - return true; - }); - }), - - addLineWidget: operation(null, function(handle, node, options) { - return addLineWidget(this, handle, node, options); - }), - - removeLineWidget: function(widget) { widget.clear(); }, - - lineInfo: function(line) { - if (typeof line == "number") { - if (!isLine(this.doc, line)) return null; - var n = line; - line = getLine(this.doc, line); - if (!line) return null; - } else { - var n = lineNo(line); - if (n == null) return null; - } - return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, - textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, - widgets: line.widgets}; - }, - - getViewport: function() { return {from: this.display.showingFrom, to: this.display.showingTo};}, - - addWidget: function(pos, node, scroll, vert, horiz) { - var display = this.display; - pos = cursorCoords(this, clipPos(this.doc, pos)); - var top = pos.bottom, left = pos.left; - node.style.position = "absolute"; - display.sizer.appendChild(node); - if (vert == "over") { - top = pos.top; - } else if (vert == "above" || vert == "near") { - var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), - hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); - // Default to positioning above (if specified and possible); otherwise default to positioning below - if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) - top = pos.top - node.offsetHeight; - else if (pos.bottom + node.offsetHeight <= vspace) - top = pos.bottom; - if (left + node.offsetWidth > hspace) - left = hspace - node.offsetWidth; - } - node.style.top = (top + paddingTop(display)) + "px"; - node.style.left = node.style.right = ""; - if (horiz == "right") { - left = display.sizer.clientWidth - node.offsetWidth; - node.style.right = "0px"; - } else { - if (horiz == "left") left = 0; - else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2; - node.style.left = left + "px"; - } - if (scroll) - scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight); - }, - - triggerOnKeyDown: operation(null, onKeyDown), - - execCommand: function(cmd) {return commands[cmd](this);}, - - findPosH: function(from, amount, unit, visually) { - var dir = 1; - if (amount < 0) { dir = -1; amount = -amount; } - for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { - cur = findPosH(this.doc, cur, dir, unit, visually); - if (cur.hitSide) break; - } - return cur; - }, - - moveH: operation(null, function(dir, unit) { - var sel = this.doc.sel, pos; - if (sel.shift || sel.extend || posEq(sel.from, sel.to)) - pos = findPosH(this.doc, sel.head, dir, unit, this.options.rtlMoveVisually); - else - pos = dir < 0 ? sel.from : sel.to; - extendSelection(this.doc, pos, pos, dir); - }), - - deleteH: operation(null, function(dir, unit) { - var sel = this.doc.sel; - if (!posEq(sel.from, sel.to)) replaceRange(this.doc, "", sel.from, sel.to, "+delete"); - else replaceRange(this.doc, "", sel.from, findPosH(this.doc, sel.head, dir, unit, false), "+delete"); - this.curOp.userSelChange = true; - }), - - findPosV: function(from, amount, unit, goalColumn) { - var dir = 1, x = goalColumn; - if (amount < 0) { dir = -1; amount = -amount; } - for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { - var coords = cursorCoords(this, cur, "div"); - if (x == null) x = coords.left; - else coords.left = x; - cur = findPosV(this, coords, dir, unit); - if (cur.hitSide) break; - } - return cur; - }, - - moveV: operation(null, function(dir, unit) { - var sel = this.doc.sel; - var pos = cursorCoords(this, sel.head, "div"); - if (sel.goalColumn != null) pos.left = sel.goalColumn; - var target = findPosV(this, pos, dir, unit); - - if (unit == "page") addToScrollPos(this, 0, charCoords(this, target, "div").top - pos.top); - extendSelection(this.doc, target, target, dir); - sel.goalColumn = pos.left; - }), - - toggleOverwrite: function() { - if (this.state.overwrite = !this.state.overwrite) - this.display.cursor.className += " CodeMirror-overwrite"; - else - this.display.cursor.className = this.display.cursor.className.replace(" CodeMirror-overwrite", ""); - }, - hasFocus: function() { return this.state.focused; }, - - scrollTo: operation(null, function(x, y) { - updateScrollPos(this, x, y); - }), - getScrollInfo: function() { - var scroller = this.display.scroller, co = scrollerCutOff; - return {left: scroller.scrollLeft, top: scroller.scrollTop, - height: scroller.scrollHeight - co, width: scroller.scrollWidth - co, - clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co}; - }, - - scrollIntoView: function(pos, margin) { - if (typeof pos == "number") pos = Pos(pos, 0); - if (!pos || pos.line != null) { - pos = pos ? clipPos(this.doc, pos) : this.doc.sel.head; - scrollPosIntoView(this, pos, margin); - } else { - scrollIntoView(this, pos.left, pos.top - margin, pos.right, pos.bottom + margin); - } - }, - - setSize: function(width, height) { - function interpret(val) { - return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; - } - if (width != null) this.display.wrapper.style.width = interpret(width); - if (height != null) this.display.wrapper.style.height = interpret(height); - this.refresh(); - }, - - on: function(type, f) {on(this, type, f);}, - off: function(type, f) {off(this, type, f);}, - - operation: function(f){return runInOp(this, f);}, - - refresh: operation(null, function() { - clearCaches(this); - updateScrollPos(this, this.doc.scrollLeft, this.doc.scrollTop); - regChange(this); - }), - - swapDoc: operation(null, function(doc) { - var old = this.doc; - old.cm = null; - attachDoc(this, doc); - clearCaches(this); - updateScrollPos(this, doc.scrollLeft, doc.scrollTop); - return old; - }), - - getInputField: function(){return this.display.input;}, - getWrapperElement: function(){return this.display.wrapper;}, - getScrollerElement: function(){return this.display.scroller;}, - getGutterElement: function(){return this.display.gutters;} - }; - - // OPTION DEFAULTS - - var optionHandlers = CodeMirror.optionHandlers = {}; - - // The default configuration options. - var defaults = CodeMirror.defaults = {}; - - function option(name, deflt, handle, notOnInit) { - CodeMirror.defaults[name] = deflt; - if (handle) optionHandlers[name] = - notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle; - } - - var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}}; - - // These two are, on init, called from the constructor because they - // have to be initialized before the editor can start at all. - option("value", "", function(cm, val) { - cm.setValue(val); - }, true); - option("mode", null, function(cm, val) { - cm.doc.modeOption = val; - loadMode(cm); - }, true); - - option("indentUnit", 2, loadMode, true); - option("indentWithTabs", false); - option("smartIndent", true); - option("tabSize", 4, function(cm) { - loadMode(cm); - clearCaches(cm); - regChange(cm); - }, true); - option("electricChars", true); - option("rtlMoveVisually", !windows); - - option("theme", "default", function(cm) { - themeChanged(cm); - guttersChanged(cm); - }, true); - option("keyMap", "default", keyMapChanged); - option("extraKeys", null); - - option("onKeyEvent", null); - option("onDragEvent", null); - - option("lineWrapping", false, wrappingChanged, true); - option("gutters", [], function(cm) { - setGuttersForLineNumbers(cm.options); - guttersChanged(cm); - }, true); - option("fixedGutter", true, function(cm, val) { - cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; - cm.refresh(); - }, true); - option("lineNumbers", false, function(cm) { - setGuttersForLineNumbers(cm.options); - guttersChanged(cm); - }, true); - option("firstLineNumber", 1, guttersChanged, true); - option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true); - option("showCursorWhenSelecting", false, updateSelection, true); - - option("readOnly", false, function(cm, val) { - if (val == "nocursor") {onBlur(cm); cm.display.input.blur();} - else if (!val) resetInput(cm, true); - }); - option("dragDrop", true); - - option("cursorBlinkRate", 530); - option("cursorHeight", 1); - option("workTime", 100); - option("workDelay", 100); - option("flattenSpans", true); - option("pollInterval", 100); - option("undoDepth", 40, function(cm, val){cm.doc.history.undoDepth = val;}); - option("viewportMargin", 10, function(cm){cm.refresh();}, true); - - option("tabindex", null, function(cm, val) { - cm.display.input.tabIndex = val || ""; - }); - option("autofocus", null); - - // MODE DEFINITION AND QUERYING - - // Known modes, by name and by MIME - var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; - - CodeMirror.defineMode = function(name, mode) { - if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; - if (arguments.length > 2) { - mode.dependencies = []; - for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]); - } - modes[name] = mode; - }; - - CodeMirror.defineMIME = function(mime, spec) { - mimeModes[mime] = spec; - }; - - CodeMirror.resolveMode = function(spec) { - if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) - spec = mimeModes[spec]; - else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) - return CodeMirror.resolveMode("application/xml"); - if (typeof spec == "string") return {name: spec}; - else return spec || {name: "null"}; - }; - - CodeMirror.getMode = function(options, spec) { - spec = CodeMirror.resolveMode(spec); - var mfactory = modes[spec.name]; - if (!mfactory) return CodeMirror.getMode(options, "text/plain"); - var modeObj = mfactory(options, spec); - if (modeExtensions.hasOwnProperty(spec.name)) { - var exts = modeExtensions[spec.name]; - for (var prop in exts) { - if (!exts.hasOwnProperty(prop)) continue; - if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop]; - modeObj[prop] = exts[prop]; - } - } - modeObj.name = spec.name; - return modeObj; - }; - - CodeMirror.defineMode("null", function() { - return {token: function(stream) {stream.skipToEnd();}}; - }); - CodeMirror.defineMIME("text/plain", "null"); - - var modeExtensions = CodeMirror.modeExtensions = {}; - CodeMirror.extendMode = function(mode, properties) { - var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); - copyObj(properties, exts); - }; - - // EXTENSIONS - - CodeMirror.defineExtension = function(name, func) { - CodeMirror.prototype[name] = func; - }; - - CodeMirror.defineOption = option; - - var initHooks = []; - CodeMirror.defineInitHook = function(f) {initHooks.push(f);}; - - // MODE STATE HANDLING - - // Utility functions for working with state. Exported because modes - // sometimes need to do this. - function copyState(mode, state) { - if (state === true) return state; - if (mode.copyState) return mode.copyState(state); - var nstate = {}; - for (var n in state) { - var val = state[n]; - if (val instanceof Array) val = val.concat([]); - nstate[n] = val; - } - return nstate; - } - CodeMirror.copyState = copyState; - - function startState(mode, a1, a2) { - return mode.startState ? mode.startState(a1, a2) : true; - } - CodeMirror.startState = startState; - - CodeMirror.innerMode = function(mode, state) { - while (mode.innerMode) { - var info = mode.innerMode(state); - state = info.state; - mode = info.mode; - } - return info || {mode: mode, state: state}; - }; - - // STANDARD COMMANDS - - var commands = CodeMirror.commands = { - selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()));}, - killLine: function(cm) { - var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); - if (!sel && cm.getLine(from.line).length == from.ch) - cm.replaceRange("", from, Pos(from.line + 1, 0), "+delete"); - else cm.replaceRange("", from, sel ? to : Pos(from.line), "+delete"); - }, - deleteLine: function(cm) { - var l = cm.getCursor().line; - cm.replaceRange("", Pos(l, 0), Pos(l), "+delete"); - }, - undo: function(cm) {cm.undo();}, - redo: function(cm) {cm.redo();}, - goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));}, - goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));}, - goLineStart: function(cm) { - cm.extendSelection(lineStart(cm, cm.getCursor().line)); - }, - goLineStartSmart: function(cm) { - var cur = cm.getCursor(), start = lineStart(cm, cur.line); - var line = cm.getLineHandle(start.line); - var order = getOrder(line); - if (!order || order[0].level == 0) { - var firstNonWS = Math.max(0, line.text.search(/\S/)); - var inWS = cur.line == start.line && cur.ch <= firstNonWS && cur.ch; - cm.extendSelection(Pos(start.line, inWS ? 0 : firstNonWS)); - } else cm.extendSelection(start); - }, - goLineEnd: function(cm) { - cm.extendSelection(lineEnd(cm, cm.getCursor().line)); - }, - goLineRight: function(cm) { - var top = cm.charCoords(cm.getCursor(), "div").top + 5; - cm.extendSelection(cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")); - }, - goLineLeft: function(cm) { - var top = cm.charCoords(cm.getCursor(), "div").top + 5; - cm.extendSelection(cm.coordsChar({left: 0, top: top}, "div")); - }, - goLineUp: function(cm) {cm.moveV(-1, "line");}, - goLineDown: function(cm) {cm.moveV(1, "line");}, - goPageUp: function(cm) {cm.moveV(-1, "page");}, - goPageDown: function(cm) {cm.moveV(1, "page");}, - goCharLeft: function(cm) {cm.moveH(-1, "char");}, - goCharRight: function(cm) {cm.moveH(1, "char");}, - goColumnLeft: function(cm) {cm.moveH(-1, "column");}, - goColumnRight: function(cm) {cm.moveH(1, "column");}, - goWordLeft: function(cm) {cm.moveH(-1, "word");}, - goGroupRight: function(cm) {cm.moveH(1, "group");}, - goGroupLeft: function(cm) {cm.moveH(-1, "group");}, - goWordRight: function(cm) {cm.moveH(1, "word");}, - delCharBefore: function(cm) {cm.deleteH(-1, "char");}, - delCharAfter: function(cm) {cm.deleteH(1, "char");}, - delWordBefore: function(cm) {cm.deleteH(-1, "word");}, - delWordAfter: function(cm) {cm.deleteH(1, "word");}, - delGroupBefore: function(cm) {cm.deleteH(-1, "group");}, - delGroupAfter: function(cm) {cm.deleteH(1, "group");}, - indentAuto: function(cm) {cm.indentSelection("smart");}, - indentMore: function(cm) {cm.indentSelection("add");}, - indentLess: function(cm) {cm.indentSelection("subtract");}, - insertTab: function(cm) {cm.replaceSelection("\t", "end", "+input");}, - defaultTab: function(cm) { - if (cm.somethingSelected()) cm.indentSelection("add"); - else cm.replaceSelection("\t", "end", "+input"); - }, - transposeChars: function(cm) { - var cur = cm.getCursor(), line = cm.getLine(cur.line); - if (cur.ch > 0 && cur.ch < line.length - 1) - cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1), - Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1)); - }, - newlineAndIndent: function(cm) { - operation(cm, function() { - cm.replaceSelection("\n", "end", "+input"); - cm.indentLine(cm.getCursor().line, null, true); - })(); - }, - toggleOverwrite: function(cm) {cm.toggleOverwrite();} - }; - - // STANDARD KEYMAPS - - var keyMap = CodeMirror.keyMap = {}; - keyMap.basic = { - "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", - "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", - "Delete": "delCharAfter", "Backspace": "delCharBefore", "Tab": "defaultTab", "Shift-Tab": "indentAuto", - "Enter": "newlineAndIndent", "Insert": "toggleOverwrite" - }; - // Note that the save and find-related commands aren't defined by - // default. Unknown commands are simply ignored. - keyMap.pcDefault = { - "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", - "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd", - "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", - "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", - "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", - "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", - fallthrough: "basic" - }; - keyMap.macDefault = { - "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", - "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", - "Alt-Right": "goGroupRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delGroupBefore", - "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", - "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", - "Cmd-[": "indentLess", "Cmd-]": "indentMore", - fallthrough: ["basic", "emacsy"] - }; - keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; - keyMap.emacsy = { - "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", - "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", - "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", - "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" - }; - - // KEYMAP DISPATCH - - function getKeyMap(val) { - if (typeof val == "string") return keyMap[val]; - else return val; - } - - function lookupKey(name, maps, handle) { - function lookup(map) { - map = getKeyMap(map); - var found = map[name]; - if (found === false) return "stop"; - if (found != null && handle(found)) return true; - if (map.nofallthrough) return "stop"; - - var fallthrough = map.fallthrough; - if (fallthrough == null) return false; - if (Object.prototype.toString.call(fallthrough) != "[object Array]") - return lookup(fallthrough); - for (var i = 0, e = fallthrough.length; i < e; ++i) { - var done = lookup(fallthrough[i]); - if (done) return done; - } - return false; - } - - for (var i = 0; i < maps.length; ++i) { - var done = lookup(maps[i]); - if (done) return done; - } - } - function isModifierKey(event) { - var name = keyNames[event.keyCode]; - return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; - } - function keyName(event, noShift) { - var name = keyNames[event.keyCode]; - if (name == null || event.altGraphKey) return false; - if (event.altKey) name = "Alt-" + name; - if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = "Ctrl-" + name; - if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = "Cmd-" + name; - if (!noShift && event.shiftKey) name = "Shift-" + name; - return name; - } - CodeMirror.lookupKey = lookupKey; - CodeMirror.isModifierKey = isModifierKey; - CodeMirror.keyName = keyName; - - // FROMTEXTAREA - - CodeMirror.fromTextArea = function(textarea, options) { - if (!options) options = {}; - options.value = textarea.value; - if (!options.tabindex && textarea.tabindex) - options.tabindex = textarea.tabindex; - if (!options.placeholder && textarea.placeholder) - options.placeholder = textarea.placeholder; - // Set autofocus to true if this textarea is focused, or if it has - // autofocus and no other element is focused. - if (options.autofocus == null) { - var hasFocus = document.body; - // doc.activeElement occasionally throws on IE - try { hasFocus = document.activeElement; } catch(e) {} - options.autofocus = hasFocus == textarea || - textarea.getAttribute("autofocus") != null && hasFocus == document.body; - } - - function save() {textarea.value = cm.getValue();} - if (textarea.form) { - on(textarea.form, "submit", save); - // Deplorable hack to make the submit method do the right thing. - if (!options.leaveSubmitMethodAlone) { - var form = textarea.form, realSubmit = form.submit; - try { - var wrappedSubmit = form.submit = function() { - save(); - form.submit = realSubmit; - form.submit(); - form.submit = wrappedSubmit; - }; - } catch(e) {} - } - } - - textarea.style.display = "none"; - var cm = CodeMirror(function(node) { - textarea.parentNode.insertBefore(node, textarea.nextSibling); - }, options); - cm.save = save; - cm.getTextArea = function() { return textarea; }; - cm.toTextArea = function() { - save(); - textarea.parentNode.removeChild(cm.getWrapperElement()); - textarea.style.display = ""; - if (textarea.form) { - off(textarea.form, "submit", save); - if (typeof textarea.form.submit == "function") - textarea.form.submit = realSubmit; - } - }; - return cm; - }; - - // STRING STREAM - - // Fed to the mode parsers, provides helper functions to make - // parsers more succinct. - - // The character stream used by a mode's parser. - function StringStream(string, tabSize) { - this.pos = this.start = 0; - this.string = string; - this.tabSize = tabSize || 8; - this.lastColumnPos = this.lastColumnValue = 0; - } - - StringStream.prototype = { - eol: function() {return this.pos >= this.string.length;}, - sol: function() {return this.pos == 0;}, - peek: function() {return this.string.charAt(this.pos) || undefined;}, - next: function() { - if (this.pos < this.string.length) - return this.string.charAt(this.pos++); - }, - eat: function(match) { - var ch = this.string.charAt(this.pos); - if (typeof match == "string") var ok = ch == match; - else var ok = ch && (match.test ? match.test(ch) : match(ch)); - if (ok) {++this.pos; return ch;} - }, - eatWhile: function(match) { - var start = this.pos; - while (this.eat(match)){} - return this.pos > start; - }, - eatSpace: function() { - var start = this.pos; - while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; - return this.pos > start; - }, - skipToEnd: function() {this.pos = this.string.length;}, - skipTo: function(ch) { - var found = this.string.indexOf(ch, this.pos); - if (found > -1) {this.pos = found; return true;} - }, - backUp: function(n) {this.pos -= n;}, - column: function() { - if (this.lastColumnPos < this.start) { - this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); - this.lastColumnPos = this.start; - } - return this.lastColumnValue; - }, - indentation: function() {return countColumn(this.string, null, this.tabSize);}, - match: function(pattern, consume, caseInsensitive) { - if (typeof pattern == "string") { - var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; - var substr = this.string.substr(this.pos, pattern.length); - if (cased(substr) == cased(pattern)) { - if (consume !== false) this.pos += pattern.length; - return true; - } - } else { - var match = this.string.slice(this.pos).match(pattern); - if (match && match.index > 0) return null; - if (match && consume !== false) this.pos += match[0].length; - return match; - } - }, - current: function(){return this.string.slice(this.start, this.pos);} - }; - CodeMirror.StringStream = StringStream; - - // TEXTMARKERS - - function TextMarker(doc, type) { - this.lines = []; - this.type = type; - this.doc = doc; - } - CodeMirror.TextMarker = TextMarker; - - TextMarker.prototype.clear = function() { - if (this.explicitlyCleared) return; - var cm = this.doc.cm, withOp = cm && !cm.curOp; - if (withOp) startOperation(cm); - var min = null, max = null; - for (var i = 0; i < this.lines.length; ++i) { - var line = this.lines[i]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (span.to != null) max = lineNo(line); - line.markedSpans = removeMarkedSpan(line.markedSpans, span); - if (span.from != null) - min = lineNo(line); - else if (this.collapsed && !lineIsHidden(this.doc, line) && cm) - updateLineHeight(line, textHeight(cm.display)); - } - if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) { - var visual = visualLine(cm.doc, this.lines[i]), len = lineLength(cm.doc, visual); - if (len > cm.display.maxLineLength) { - cm.display.maxLine = visual; - cm.display.maxLineLength = len; - cm.display.maxLineChanged = true; - } - } - - if (min != null && cm) regChange(cm, min, max + 1); - this.lines.length = 0; - this.explicitlyCleared = true; - if (this.collapsed && this.doc.cantEdit) { - this.doc.cantEdit = false; - if (cm) reCheckSelection(cm); - } - if (withOp) endOperation(cm); - signalLater(this, "clear"); - }; - - TextMarker.prototype.find = function() { - var from, to; - for (var i = 0; i < this.lines.length; ++i) { - var line = this.lines[i]; - var span = getMarkedSpanFor(line.markedSpans, this); - if (span.from != null || span.to != null) { - var found = lineNo(line); - if (span.from != null) from = Pos(found, span.from); - if (span.to != null) to = Pos(found, span.to); - } - } - if (this.type == "bookmark") return from; - return from && {from: from, to: to}; - }; - - TextMarker.prototype.getOptions = function(copyWidget) { - var repl = this.replacedWith; - return {className: this.className, - inclusiveLeft: this.inclusiveLeft, inclusiveRight: this.inclusiveRight, - atomic: this.atomic, - collapsed: this.collapsed, - replacedWith: copyWidget ? repl && repl.cloneNode(true) : repl, - readOnly: this.readOnly, - startStyle: this.startStyle, endStyle: this.endStyle}; - }; - - TextMarker.prototype.attachLine = function(line) { - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) - (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); - } - this.lines.push(line); - }; - TextMarker.prototype.detachLine = function(line) { - this.lines.splice(indexOf(this.lines, line), 1); - if (!this.lines.length && this.doc.cm) { - var op = this.doc.cm.curOp; - (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); - } - }; - - function markText(doc, from, to, options, type) { - if (options && options.shared) return markTextShared(doc, from, to, options, type); - if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type); - - var marker = new TextMarker(doc, type); - if (type == "range" && !posLess(from, to)) return marker; - if (options) copyObj(options, marker); - if (marker.replacedWith) { - marker.collapsed = true; - marker.replacedWith = elt("span", [marker.replacedWith], "CodeMirror-widget"); - } - if (marker.collapsed) sawCollapsedSpans = true; - - var curLine = from.line, size = 0, collapsedAtStart, collapsedAtEnd, cm = doc.cm, updateMaxLine; - doc.iter(curLine, to.line + 1, function(line) { - if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(doc, line) == cm.display.maxLine) - updateMaxLine = true; - var span = {from: null, to: null, marker: marker}; - size += line.text.length; - if (curLine == from.line) {span.from = from.ch; size -= from.ch;} - if (curLine == to.line) {span.to = to.ch; size -= line.text.length - to.ch;} - if (marker.collapsed) { - if (curLine == to.line) collapsedAtEnd = collapsedSpanAt(line, to.ch); - if (curLine == from.line) collapsedAtStart = collapsedSpanAt(line, from.ch); - else updateLineHeight(line, 0); - } - addMarkedSpan(line, span); - ++curLine; - }); - if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) { - if (lineIsHidden(doc, line)) updateLineHeight(line, 0); - }); - - if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); }); - - if (marker.readOnly) { - sawReadOnlySpans = true; - if (doc.history.done.length || doc.history.undone.length) - doc.clearHistory(); - } - if (marker.collapsed) { - if (collapsedAtStart != collapsedAtEnd) - throw new Error("Inserting collapsed marker overlapping an existing one"); - marker.size = size; - marker.atomic = true; - } - if (cm) { - if (updateMaxLine) cm.curOp.updateMaxLine = true; - if (marker.className || marker.startStyle || marker.endStyle || marker.collapsed) - regChange(cm, from.line, to.line + 1); - if (marker.atomic) reCheckSelection(cm); - } - return marker; - } - - // SHARED TEXTMARKERS - - function SharedTextMarker(markers, primary) { - this.markers = markers; - this.primary = primary; - for (var i = 0, me = this; i < markers.length; ++i) { - markers[i].parent = this; - on(markers[i], "clear", function(){me.clear();}); - } - } - CodeMirror.SharedTextMarker = SharedTextMarker; - - SharedTextMarker.prototype.clear = function() { - if (this.explicitlyCleared) return; - this.explicitlyCleared = true; - for (var i = 0; i < this.markers.length; ++i) - this.markers[i].clear(); - signalLater(this, "clear"); - }; - SharedTextMarker.prototype.find = function() { - return this.primary.find(); - }; - SharedTextMarker.prototype.getOptions = function(copyWidget) { - var inner = this.primary.getOptions(copyWidget); - inner.shared = true; - return inner; - }; - - function markTextShared(doc, from, to, options, type) { - options = copyObj(options); - options.shared = false; - var markers = [markText(doc, from, to, options, type)], primary = markers[0]; - var widget = options.replacedWith; - linkedDocs(doc, function(doc) { - if (widget) options.replacedWith = widget.cloneNode(true); - markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); - for (var i = 0; i < doc.linked.length; ++i) - if (doc.linked[i].isParent) return; - primary = lst(markers); - }); - return new SharedTextMarker(markers, primary); - } - - // TEXTMARKER SPANS - - function getMarkedSpanFor(spans, marker) { - if (spans) for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if (span.marker == marker) return span; - } - } - function removeMarkedSpan(spans, span) { - for (var r, i = 0; i < spans.length; ++i) - if (spans[i] != span) (r || (r = [])).push(spans[i]); - return r; - } - function addMarkedSpan(line, span) { - line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; - span.marker.attachLine(line); - } - - function markedSpansBefore(old, startCh, isInsert) { - if (old) for (var i = 0, nw; i < old.length; ++i) { - var span = old[i], marker = span.marker; - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); - if (startsBefore || marker.type == "bookmark" && span.from == startCh && (!isInsert || !span.marker.insertLeft)) { - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); - (nw || (nw = [])).push({from: span.from, - to: endsAfter ? null : span.to, - marker: marker}); - } - } - return nw; - } - - function markedSpansAfter(old, endCh, isInsert) { - if (old) for (var i = 0, nw; i < old.length; ++i) { - var span = old[i], marker = span.marker; - var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); - if (endsAfter || marker.type == "bookmark" && span.from == endCh && (!isInsert || span.marker.insertLeft)) { - var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); - (nw || (nw = [])).push({from: startsBefore ? null : span.from - endCh, - to: span.to == null ? null : span.to - endCh, - marker: marker}); - } - } - return nw; - } - - function stretchSpansOverChange(doc, change) { - var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; - var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; - if (!oldFirst && !oldLast) return null; - - var startCh = change.from.ch, endCh = change.to.ch, isInsert = posEq(change.from, change.to); - // Get the spans that 'stick out' on both sides - var first = markedSpansBefore(oldFirst, startCh, isInsert); - var last = markedSpansAfter(oldLast, endCh, isInsert); - - // Next, merge those two ends - var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); - if (first) { - // Fix up .to properties of first - for (var i = 0; i < first.length; ++i) { - var span = first[i]; - if (span.to == null) { - var found = getMarkedSpanFor(last, span.marker); - if (!found) span.to = startCh; - else if (sameLine) span.to = found.to == null ? null : found.to + offset; - } - } - } - if (last) { - // Fix up .from in last (or move them into first in case of sameLine) - for (var i = 0; i < last.length; ++i) { - var span = last[i]; - if (span.to != null) span.to += offset; - if (span.from == null) { - var found = getMarkedSpanFor(first, span.marker); - if (!found) { - span.from = offset; - if (sameLine) (first || (first = [])).push(span); - } - } else { - span.from += offset; - if (sameLine) (first || (first = [])).push(span); - } - } - } - - var newMarkers = [first]; - if (!sameLine) { - // Fill gap with whole-line-spans - var gap = change.text.length - 2, gapMarkers; - if (gap > 0 && first) - for (var i = 0; i < first.length; ++i) - if (first[i].to == null) - (gapMarkers || (gapMarkers = [])).push({from: null, to: null, marker: first[i].marker}); - for (var i = 0; i < gap; ++i) - newMarkers.push(gapMarkers); - newMarkers.push(last); - } - return newMarkers; - } - - function mergeOldSpans(doc, change) { - var old = getOldSpans(doc, change); - var stretched = stretchSpansOverChange(doc, change); - if (!old) return stretched; - if (!stretched) return old; - - for (var i = 0; i < old.length; ++i) { - var oldCur = old[i], stretchCur = stretched[i]; - if (oldCur && stretchCur) { - spans: for (var j = 0; j < stretchCur.length; ++j) { - var span = stretchCur[j]; - for (var k = 0; k < oldCur.length; ++k) - if (oldCur[k].marker == span.marker) continue spans; - oldCur.push(span); - } - } else if (stretchCur) { - old[i] = stretchCur; - } - } - return old; - } - - function removeReadOnlyRanges(doc, from, to) { - var markers = null; - doc.iter(from.line, to.line + 1, function(line) { - if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { - var mark = line.markedSpans[i].marker; - if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) - (markers || (markers = [])).push(mark); - } - }); - if (!markers) return null; - var parts = [{from: from, to: to}]; - for (var i = 0; i < markers.length; ++i) { - var mk = markers[i], m = mk.find(); - for (var j = 0; j < parts.length; ++j) { - var p = parts[j]; - if (posLess(p.to, m.from) || posLess(m.to, p.from)) continue; - var newParts = [j, 1]; - if (posLess(p.from, m.from) || !mk.inclusiveLeft && posEq(p.from, m.from)) - newParts.push({from: p.from, to: m.from}); - if (posLess(m.to, p.to) || !mk.inclusiveRight && posEq(p.to, m.to)) - newParts.push({from: m.to, to: p.to}); - parts.splice.apply(parts, newParts); - j += newParts.length - 1; - } - } - return parts; - } - - function collapsedSpanAt(line, ch) { - var sps = sawCollapsedSpans && line.markedSpans, found; - if (sps) for (var sp, i = 0; i < sps.length; ++i) { - sp = sps[i]; - if (!sp.marker.collapsed) continue; - if ((sp.from == null || sp.from < ch) && - (sp.to == null || sp.to > ch) && - (!found || found.width < sp.marker.width)) - found = sp.marker; - } - return found; - } - function collapsedSpanAtStart(line) { return collapsedSpanAt(line, -1); } - function collapsedSpanAtEnd(line) { return collapsedSpanAt(line, line.text.length + 1); } - - function visualLine(doc, line) { - var merged; - while (merged = collapsedSpanAtStart(line)) - line = getLine(doc, merged.find().from.line); - return line; - } - - function lineIsHidden(doc, line) { - var sps = sawCollapsedSpans && line.markedSpans; - if (sps) for (var sp, i = 0; i < sps.length; ++i) { - sp = sps[i]; - if (!sp.marker.collapsed) continue; - if (sp.from == null) return true; - if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) - return true; - } - } - function lineIsHiddenInner(doc, line, span) { - if (span.to == null) { - var end = span.marker.find().to, endLine = getLine(doc, end.line); - return lineIsHiddenInner(doc, endLine, getMarkedSpanFor(endLine.markedSpans, span.marker)); - } - if (span.marker.inclusiveRight && span.to == line.text.length) - return true; - for (var sp, i = 0; i < line.markedSpans.length; ++i) { - sp = line.markedSpans[i]; - if (sp.marker.collapsed && sp.from == span.to && - (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && - lineIsHiddenInner(doc, line, sp)) return true; - } - } - - function detachMarkedSpans(line) { - var spans = line.markedSpans; - if (!spans) return; - for (var i = 0; i < spans.length; ++i) - spans[i].marker.detachLine(line); - line.markedSpans = null; - } - - function attachMarkedSpans(line, spans) { - if (!spans) return; - for (var i = 0; i < spans.length; ++i) - spans[i].marker.attachLine(line); - line.markedSpans = spans; - } - - // LINE WIDGETS - - var LineWidget = CodeMirror.LineWidget = function(cm, node, options) { - for (var opt in options) if (options.hasOwnProperty(opt)) - this[opt] = options[opt]; - this.cm = cm; - this.node = node; - }; - function widgetOperation(f) { - return function() { - var withOp = !this.cm.curOp; - if (withOp) startOperation(this.cm); - try {var result = f.apply(this, arguments);} - finally {if (withOp) endOperation(this.cm);} - return result; - }; - } - LineWidget.prototype.clear = widgetOperation(function() { - var ws = this.line.widgets, no = lineNo(this.line); - if (no == null || !ws) return; - for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1); - if (!ws.length) this.line.widgets = null; - updateLineHeight(this.line, Math.max(0, this.line.height - widgetHeight(this))); - regChange(this.cm, no, no + 1); - }); - LineWidget.prototype.changed = widgetOperation(function() { - var oldH = this.height; - this.height = null; - var diff = widgetHeight(this) - oldH; - if (!diff) return; - updateLineHeight(this.line, this.line.height + diff); - var no = lineNo(this.line); - regChange(this.cm, no, no + 1); - }); - - function widgetHeight(widget) { - if (widget.height != null) return widget.height; - if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1) - removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, "position: relative")); - return widget.height = widget.node.offsetHeight; - } - - function addLineWidget(cm, handle, node, options) { - var widget = new LineWidget(cm, node, options); - if (widget.noHScroll) cm.display.alignWidgets = true; - changeLine(cm, handle, function(line) { - (line.widgets || (line.widgets = [])).push(widget); - widget.line = line; - if (!lineIsHidden(cm.doc, line) || widget.showIfHidden) { - var aboveVisible = heightAtLine(cm, line) < cm.display.scroller.scrollTop; - updateLineHeight(line, line.height + widgetHeight(widget)); - if (aboveVisible) addToScrollPos(cm, 0, widget.height); - } - return true; - }); - return widget; - } - - // LINE DATA STRUCTURE - - // Line objects. These hold state related to a line, including - // highlighting info (the styles array). - function makeLine(text, markedSpans, estimateHeight) { - var line = {text: text}; - attachMarkedSpans(line, markedSpans); - line.height = estimateHeight ? estimateHeight(line) : 1; - return line; - } - - function updateLine(line, text, markedSpans, estimateHeight) { - line.text = text; - if (line.stateAfter) line.stateAfter = null; - if (line.styles) line.styles = null; - if (line.order != null) line.order = null; - detachMarkedSpans(line); - attachMarkedSpans(line, markedSpans); - var estHeight = estimateHeight ? estimateHeight(line) : 1; - if (estHeight != line.height) updateLineHeight(line, estHeight); - } - - function cleanUpLine(line) { - line.parent = null; - detachMarkedSpans(line); - } - - // Run the given mode's parser over a line, update the styles - // array, which contains alternating fragments of text and CSS - // classes. - function runMode(cm, text, mode, state, f) { - var flattenSpans = mode.flattenSpans; - if (flattenSpans == null) flattenSpans = cm.options.flattenSpans; - var curText = "", curStyle = null; - var stream = new StringStream(text, cm.options.tabSize); - if (text == "" && mode.blankLine) mode.blankLine(state); - while (!stream.eol()) { - var style = mode.token(stream, state); - if (stream.pos > 5000) { - flattenSpans = false; - // Webkit seems to refuse to render text nodes longer than 57444 characters - stream.pos = Math.min(text.length, stream.start + 50000); - style = null; - } - var substr = stream.current(); - stream.start = stream.pos; - if (!flattenSpans || curStyle != style) { - if (curText) f(curText, curStyle); - curText = substr; curStyle = style; - } else curText = curText + substr; - } - if (curText) f(curText, curStyle); - } - - function highlightLine(cm, line, state) { - // A styles array always starts with a number identifying the - // mode/overlays that it is based on (for easy invalidation). - var st = [cm.state.modeGen]; - // Compute the base array of styles - runMode(cm, line.text, cm.doc.mode, state, function(txt, style) {st.push(txt, style);}); - - // Run overlays, adjust style array. - for (var o = 0; o < cm.state.overlays.length; ++o) { - var overlay = cm.state.overlays[o], i = 1; - runMode(cm, line.text, overlay.mode, true, function(txt, style) { - var start = i, len = txt.length; - // Ensure there's a token end at the current position, and that i points at it - while (len) { - var cur = st[i], len_ = cur.length; - if (len_ <= len) { - len -= len_; - } else { - st.splice(i, 1, cur.slice(0, len), st[i+1], cur.slice(len)); - len = 0; - } - i += 2; - } - if (!style) return; - if (overlay.opaque) { - st.splice(start, i - start, txt, style); - i = start + 2; - } else { - for (; start < i; start += 2) { - var cur = st[start+1]; - st[start+1] = cur ? cur + " " + style : style; - } - } - }); - } - - return st; - } - - function getLineStyles(cm, line) { - if (!line.styles || line.styles[0] != cm.state.modeGen) - line.styles = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line))); - return line.styles; - } - - // Lightweight form of highlight -- proceed over this line and - // update state, but don't save a style array. - function processLine(cm, line, state) { - var mode = cm.doc.mode; - var stream = new StringStream(line.text, cm.options.tabSize); - if (line.text == "" && mode.blankLine) mode.blankLine(state); - while (!stream.eol() && stream.pos <= 5000) { - mode.token(stream, state); - stream.start = stream.pos; - } - } - - var styleToClassCache = {}; - function styleToClass(style) { - if (!style) return null; - return styleToClassCache[style] || - (styleToClassCache[style] = "cm-" + style.replace(/ +/g, " cm-")); - } - - function lineContent(cm, realLine, measure) { - var merged, line = realLine, lineBefore, sawBefore, simple = true; - while (merged = collapsedSpanAtStart(line)) { - simple = false; - line = getLine(cm.doc, merged.find().from.line); - if (!lineBefore) lineBefore = line; - } - - var builder = {pre: elt("pre"), col: 0, pos: 0, display: !measure, - measure: null, addedOne: false, cm: cm}; - if (line.textClass) builder.pre.className = line.textClass; - - do { - builder.measure = line == realLine && measure; - builder.pos = 0; - builder.addToken = builder.measure ? buildTokenMeasure : buildToken; - if ((ie || webkit) && cm.getOption("lineWrapping")) - builder.addToken = buildTokenSplitSpaces(builder.addToken); - if (measure && sawBefore && line != realLine && !builder.addedOne) { - measure[0] = builder.pre.appendChild(zeroWidthElement(cm.display.measure)); - builder.addedOne = true; - } - var next = insertLineContent(line, builder, getLineStyles(cm, line)); - sawBefore = line == lineBefore; - if (next) { - line = getLine(cm.doc, next.to.line); - simple = false; - } - } while (next); - - if (measure && !builder.addedOne) - measure[0] = builder.pre.appendChild(simple ? elt("span", "\u00a0") : zeroWidthElement(cm.display.measure)); - if (!builder.pre.firstChild && !lineIsHidden(cm.doc, realLine)) - builder.pre.appendChild(document.createTextNode("\u00a0")); - - var order; - // Work around problem with the reported dimensions of single-char - // direction spans on IE (issue #1129). See also the comment in - // cursorCoords. - if (measure && ie && (order = getOrder(line))) { - var l = order.length - 1; - if (order[l].from == order[l].to) --l; - var last = order[l], prev = order[l - 1]; - if (last.from + 1 == last.to && prev && last.level < prev.level) { - var span = measure[builder.pos - 1]; - if (span) span.parentNode.insertBefore(span.measureRight = zeroWidthElement(cm.display.measure), - span.nextSibling); - } - } - - signal(cm, "renderLine", cm, realLine, builder.pre); - return builder.pre; - } - - var tokenSpecialChars = /[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g; - function buildToken(builder, text, style, startStyle, endStyle) { - if (!text) return; - if (!tokenSpecialChars.test(text)) { - builder.col += text.length; - var content = document.createTextNode(text); - } else { - var content = document.createDocumentFragment(), pos = 0; - while (true) { - tokenSpecialChars.lastIndex = pos; - var m = tokenSpecialChars.exec(text); - var skipped = m ? m.index - pos : text.length - pos; - if (skipped) { - content.appendChild(document.createTextNode(text.slice(pos, pos + skipped))); - builder.col += skipped; - } - if (!m) break; - pos += skipped + 1; - if (m[0] == "\t") { - var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; - content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); - builder.col += tabWidth; - } else { - var token = elt("span", "\u2022", "cm-invalidchar"); - token.title = "\\u" + m[0].charCodeAt(0).toString(16); - content.appendChild(token); - builder.col += 1; - } - } - } - if (style || startStyle || endStyle || builder.measure) { - var fullStyle = style || ""; - if (startStyle) fullStyle += startStyle; - if (endStyle) fullStyle += endStyle; - return builder.pre.appendChild(elt("span", [content], fullStyle)); - } - builder.pre.appendChild(content); - } - - function buildTokenMeasure(builder, text, style, startStyle, endStyle) { - var wrapping = builder.cm.options.lineWrapping; - for (var i = 0; i < text.length; ++i) { - var ch = text.charAt(i), start = i == 0; - if (ch >= "\ud800" && ch < "\udbff" && i < text.length - 1) { - ch = text.slice(i, i + 2); - ++i; - } else if (i && wrapping && - spanAffectsWrapping.test(text.slice(i - 1, i + 1))) { - builder.pre.appendChild(elt("wbr")); - } - var span = builder.measure[builder.pos] = - buildToken(builder, ch, style, - start && startStyle, i == text.length - 1 && endStyle); - // In IE single-space nodes wrap differently than spaces - // embedded in larger text nodes, except when set to - // white-space: normal (issue #1268). - if (ie && wrapping && ch == " " && i && !/\s/.test(text.charAt(i - 1)) && - i < text.length - 1 && !/\s/.test(text.charAt(i + 1))) - span.style.whiteSpace = "normal"; - builder.pos += ch.length; - } - if (text.length) builder.addedOne = true; - } - - function buildTokenSplitSpaces(inner) { - function split(old) { - var out = " "; - for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0"; - out += " "; - return out; - } - return function(builder, text, style, startStyle, endStyle) { - return inner(builder, text.replace(/ {3,}/, split), style, startStyle, endStyle); - }; - } - - function buildCollapsedSpan(builder, size, widget) { - if (widget) { - if (!builder.display) widget = widget.cloneNode(true); - builder.pre.appendChild(widget); - if (builder.measure && size) { - builder.measure[builder.pos] = widget; - builder.addedOne = true; - } - } - builder.pos += size; - } - - // Outputs a number of spans to make up a line, taking highlighting - // and marked text into account. - function insertLineContent(line, builder, styles) { - var spans = line.markedSpans; - if (!spans) { - for (var i = 1; i < styles.length; i+=2) - builder.addToken(builder, styles[i], styleToClass(styles[i+1])); - return; - } - - var allText = line.text, len = allText.length; - var pos = 0, i = 1, text = "", style; - var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed; - for (;;) { - if (nextChange == pos) { // Update current marker set - spanStyle = spanEndStyle = spanStartStyle = ""; - collapsed = null; nextChange = Infinity; - var foundBookmark = null; - for (var j = 0; j < spans.length; ++j) { - var sp = spans[j], m = sp.marker; - if (sp.from <= pos && (sp.to == null || sp.to > pos)) { - if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; } - if (m.className) spanStyle += " " + m.className; - if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle; - if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle; - if (m.collapsed && (!collapsed || collapsed.marker.width < m.width)) - collapsed = sp; - } else if (sp.from > pos && nextChange > sp.from) { - nextChange = sp.from; - } - if (m.type == "bookmark" && sp.from == pos && m.replacedWith) - foundBookmark = m.replacedWith; - } - if (collapsed && (collapsed.from || 0) == pos) { - buildCollapsedSpan(builder, (collapsed.to == null ? len : collapsed.to) - pos, - collapsed.from != null && collapsed.marker.replacedWith); - if (collapsed.to == null) return collapsed.marker.find(); - } - if (foundBookmark && !collapsed) buildCollapsedSpan(builder, 0, foundBookmark); - } - if (pos >= len) break; - - var upto = Math.min(len, nextChange); - while (true) { - if (text) { - var end = pos + text.length; - if (!collapsed) { - var tokenText = end > upto ? text.slice(0, upto - pos) : text; - builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, - spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : ""); - } - if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} - pos = end; - spanStartStyle = ""; - } - text = styles[i++]; style = styleToClass(styles[i++]); - } - } - } - - // DOCUMENT DATA STRUCTURE - - function updateDoc(doc, change, markedSpans, selAfter, estimateHeight) { - function spansFor(n) {return markedSpans ? markedSpans[n] : null;} - function update(line, text, spans) { - updateLine(line, text, spans, estimateHeight); - signalLater(line, "change", line, change); - } - - var from = change.from, to = change.to, text = change.text; - var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); - var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; - - // First adjust the line structure - if (from.ch == 0 && to.ch == 0 && lastText == "") { - // This is a whole-line replace. Treated specially to make - // sure line objects move the way they are supposed to. - for (var i = 0, e = text.length - 1, added = []; i < e; ++i) - added.push(makeLine(text[i], spansFor(i), estimateHeight)); - update(lastLine, lastLine.text, lastSpans); - if (nlines) doc.remove(from.line, nlines); - if (added.length) doc.insert(from.line, added); - } else if (firstLine == lastLine) { - if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); - } else { - for (var added = [], i = 1, e = text.length - 1; i < e; ++i) - added.push(makeLine(text[i], spansFor(i), estimateHeight)); - added.push(makeLine(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - doc.insert(from.line + 1, added); - } - } else if (text.length == 1) { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); - doc.remove(from.line + 1, nlines); - } else { - update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); - update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); - for (var i = 1, e = text.length - 1, added = []; i < e; ++i) - added.push(makeLine(text[i], spansFor(i), estimateHeight)); - if (nlines > 1) doc.remove(from.line + 1, nlines - 1); - doc.insert(from.line + 1, added); - } - - signalLater(doc, "change", doc, change); - setSelection(doc, selAfter.anchor, selAfter.head, null, true); - } - - function LeafChunk(lines) { - this.lines = lines; - this.parent = null; - for (var i = 0, e = lines.length, height = 0; i < e; ++i) { - lines[i].parent = this; - height += lines[i].height; - } - this.height = height; - } - - LeafChunk.prototype = { - chunkSize: function() { return this.lines.length; }, - removeInner: function(at, n) { - for (var i = at, e = at + n; i < e; ++i) { - var line = this.lines[i]; - this.height -= line.height; - cleanUpLine(line); - signalLater(line, "delete"); - } - this.lines.splice(at, n); - }, - collapse: function(lines) { - lines.splice.apply(lines, [lines.length, 0].concat(this.lines)); - }, - insertInner: function(at, lines, height) { - this.height += height; - this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); - for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this; - }, - iterN: function(at, n, op) { - for (var e = at + n; at < e; ++at) - if (op(this.lines[at])) return true; - } - }; - - function BranchChunk(children) { - this.children = children; - var size = 0, height = 0; - for (var i = 0, e = children.length; i < e; ++i) { - var ch = children[i]; - size += ch.chunkSize(); height += ch.height; - ch.parent = this; - } - this.size = size; - this.height = height; - this.parent = null; - } - - BranchChunk.prototype = { - chunkSize: function() { return this.size; }, - removeInner: function(at, n) { - this.size -= n; - for (var i = 0; i < this.children.length; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at < sz) { - var rm = Math.min(n, sz - at), oldHeight = child.height; - child.removeInner(at, rm); - this.height -= oldHeight - child.height; - if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } - if ((n -= rm) == 0) break; - at = 0; - } else at -= sz; - } - if (this.size - n < 25) { - var lines = []; - this.collapse(lines); - this.children = [new LeafChunk(lines)]; - this.children[0].parent = this; - } - }, - collapse: function(lines) { - for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines); - }, - insertInner: function(at, lines, height) { - this.size += lines.length; - this.height += height; - for (var i = 0, e = this.children.length; i < e; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at <= sz) { - child.insertInner(at, lines, height); - if (child.lines && child.lines.length > 50) { - while (child.lines.length > 50) { - var spilled = child.lines.splice(child.lines.length - 25, 25); - var newleaf = new LeafChunk(spilled); - child.height -= newleaf.height; - this.children.splice(i + 1, 0, newleaf); - newleaf.parent = this; - } - this.maybeSpill(); - } - break; - } - at -= sz; - } - }, - maybeSpill: function() { - if (this.children.length <= 10) return; - var me = this; - do { - var spilled = me.children.splice(me.children.length - 5, 5); - var sibling = new BranchChunk(spilled); - if (!me.parent) { // Become the parent node - var copy = new BranchChunk(me.children); - copy.parent = me; - me.children = [copy, sibling]; - me = copy; - } else { - me.size -= sibling.size; - me.height -= sibling.height; - var myIndex = indexOf(me.parent.children, me); - me.parent.children.splice(myIndex + 1, 0, sibling); - } - sibling.parent = me.parent; - } while (me.children.length > 10); - me.parent.maybeSpill(); - }, - iterN: function(at, n, op) { - for (var i = 0, e = this.children.length; i < e; ++i) { - var child = this.children[i], sz = child.chunkSize(); - if (at < sz) { - var used = Math.min(n, sz - at); - if (child.iterN(at, used, op)) return true; - if ((n -= used) == 0) break; - at = 0; - } else at -= sz; - } - } - }; - - var nextDocId = 0; - var Doc = CodeMirror.Doc = function(text, mode, firstLine) { - if (!(this instanceof Doc)) return new Doc(text, mode, firstLine); - if (firstLine == null) firstLine = 0; - - BranchChunk.call(this, [new LeafChunk([makeLine("", null)])]); - this.first = firstLine; - this.scrollTop = this.scrollLeft = 0; - this.cantEdit = false; - this.history = makeHistory(); - this.frontier = firstLine; - var start = Pos(firstLine, 0); - this.sel = {from: start, to: start, head: start, anchor: start, shift: false, extend: false, goalColumn: null}; - this.id = ++nextDocId; - this.modeOption = mode; - - if (typeof text == "string") text = splitLines(text); - updateDoc(this, {from: start, to: start, text: text}, null, {head: start, anchor: start}); - }; - - Doc.prototype = createObj(BranchChunk.prototype, { - iter: function(from, to, op) { - if (op) this.iterN(from - this.first, to - from, op); - else this.iterN(this.first, this.first + this.size, from); - }, - - insert: function(at, lines) { - var height = 0; - for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height; - this.insertInner(at - this.first, lines, height); - }, - remove: function(at, n) { this.removeInner(at - this.first, n); }, - - getValue: function(lineSep) { - var lines = getLines(this, this.first, this.first + this.size); - if (lineSep === false) return lines; - return lines.join(lineSep || "\n"); - }, - setValue: function(code) { - var top = Pos(this.first, 0), last = this.first + this.size - 1; - makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), - text: splitLines(code), origin: "setValue"}, - {head: top, anchor: top}, true); - }, - replaceRange: function(code, from, to, origin) { - from = clipPos(this, from); - to = to ? clipPos(this, to) : from; - replaceRange(this, code, from, to, origin); - }, - getRange: function(from, to, lineSep) { - var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); - if (lineSep === false) return lines; - return lines.join(lineSep || "\n"); - }, - - getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;}, - setLine: function(line, text) { - if (isLine(this, line)) - replaceRange(this, text, Pos(line, 0), clipPos(this, Pos(line))); - }, - removeLine: function(line) { - if (isLine(this, line)) - replaceRange(this, "", Pos(line, 0), clipPos(this, Pos(line + 1, 0))); - }, - - getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);}, - getLineNumber: function(line) {return lineNo(line);}, - - lineCount: function() {return this.size;}, - firstLine: function() {return this.first;}, - lastLine: function() {return this.first + this.size - 1;}, - - clipPos: function(pos) {return clipPos(this, pos);}, - - getCursor: function(start) { - var sel = this.sel, pos; - if (start == null || start == "head") pos = sel.head; - else if (start == "anchor") pos = sel.anchor; - else if (start == "end" || start === false) pos = sel.to; - else pos = sel.from; - return copyPos(pos); - }, - somethingSelected: function() {return !posEq(this.sel.head, this.sel.anchor);}, - - setCursor: docOperation(function(line, ch, extend) { - var pos = clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line); - if (extend) extendSelection(this, pos); - else setSelection(this, pos, pos); - }), - setSelection: docOperation(function(anchor, head) { - setSelection(this, clipPos(this, anchor), clipPos(this, head || anchor)); - }), - extendSelection: docOperation(function(from, to) { - extendSelection(this, clipPos(this, from), to && clipPos(this, to)); - }), - - getSelection: function(lineSep) {return this.getRange(this.sel.from, this.sel.to, lineSep);}, - replaceSelection: function(code, collapse, origin) { - makeChange(this, {from: this.sel.from, to: this.sel.to, text: splitLines(code), origin: origin}, collapse || "around"); - }, - undo: docOperation(function() {makeChangeFromHistory(this, "undo");}), - redo: docOperation(function() {makeChangeFromHistory(this, "redo");}), - - setExtending: function(val) {this.sel.extend = val;}, - - historySize: function() { - var hist = this.history; - return {undo: hist.done.length, redo: hist.undone.length}; - }, - clearHistory: function() {this.history = makeHistory();}, - - markClean: function() { - this.history.dirtyCounter = 0; - this.history.lastOp = this.history.lastOrigin = null; - }, - isClean: function () {return this.history.dirtyCounter == 0;}, - - getHistory: function() { - return {done: copyHistoryArray(this.history.done), - undone: copyHistoryArray(this.history.undone)}; - }, - setHistory: function(histData) { - var hist = this.history = makeHistory(); - hist.done = histData.done.slice(0); - hist.undone = histData.undone.slice(0); - }, - - markText: function(from, to, options) { - return markText(this, clipPos(this, from), clipPos(this, to), options, "range"); - }, - setBookmark: function(pos, options) { - var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), - insertLeft: options && options.insertLeft}; - pos = clipPos(this, pos); - return markText(this, pos, pos, realOpts, "bookmark"); - }, - findMarksAt: function(pos) { - pos = clipPos(this, pos); - var markers = [], spans = getLine(this, pos.line).markedSpans; - if (spans) for (var i = 0; i < spans.length; ++i) { - var span = spans[i]; - if ((span.from == null || span.from <= pos.ch) && - (span.to == null || span.to >= pos.ch)) - markers.push(span.marker.parent || span.marker); - } - return markers; - }, - getAllMarks: function() { - var markers = []; - this.iter(function(line) { - var sps = line.markedSpans; - if (sps) for (var i = 0; i < sps.length; ++i) - if (sps[i].from != null) markers.push(sps[i].marker); - }); - return markers; - }, - - posFromIndex: function(off) { - var ch, lineNo = this.first; - this.iter(function(line) { - var sz = line.text.length + 1; - if (sz > off) { ch = off; return true; } - off -= sz; - ++lineNo; - }); - return clipPos(this, Pos(lineNo, ch)); - }, - indexFromPos: function (coords) { - coords = clipPos(this, coords); - var index = coords.ch; - if (coords.line < this.first || coords.ch < 0) return 0; - this.iter(this.first, coords.line, function (line) { - index += line.text.length + 1; - }); - return index; - }, - - copy: function(copyHistory) { - var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first); - doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; - doc.sel = {from: this.sel.from, to: this.sel.to, head: this.sel.head, anchor: this.sel.anchor, - shift: this.sel.shift, extend: false, goalColumn: this.sel.goalColumn}; - if (copyHistory) { - doc.history.undoDepth = this.history.undoDepth; - doc.setHistory(this.getHistory()); - } - return doc; - }, - - linkedDoc: function(options) { - if (!options) options = {}; - var from = this.first, to = this.first + this.size; - if (options.from != null && options.from > from) from = options.from; - if (options.to != null && options.to < to) to = options.to; - var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from); - if (options.sharedHist) copy.history = this.history; - (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); - copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; - return copy; - }, - unlinkDoc: function(other) { - if (other instanceof CodeMirror) other = other.doc; - if (this.linked) for (var i = 0; i < this.linked.length; ++i) { - var link = this.linked[i]; - if (link.doc != other) continue; - this.linked.splice(i, 1); - other.unlinkDoc(this); - break; - } - // If the histories were shared, split them again - if (other.history == this.history) { - var splitIds = [other.id]; - linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true); - other.history = makeHistory(); - other.history.done = copyHistoryArray(this.history.done, splitIds); - other.history.undone = copyHistoryArray(this.history.undone, splitIds); - } - }, - iterLinkedDocs: function(f) {linkedDocs(this, f);}, - - getMode: function() {return this.mode;}, - getEditor: function() {return this.cm;} - }); - - Doc.prototype.eachLine = Doc.prototype.iter; - - // The Doc methods that should be available on CodeMirror instances - var dontDelegate = "iter insert remove copy getEditor".split(" "); - for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) - CodeMirror.prototype[prop] = (function(method) { - return function() {return method.apply(this.doc, arguments);}; - })(Doc.prototype[prop]); - - function linkedDocs(doc, f, sharedHistOnly) { - function propagate(doc, skip, sharedHist) { - if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) { - var rel = doc.linked[i]; - if (rel.doc == skip) continue; - var shared = sharedHist && rel.sharedHist; - if (sharedHistOnly && !shared) continue; - f(rel.doc, shared); - propagate(rel.doc, doc, shared); - } - } - propagate(doc, null, true); - } - - function attachDoc(cm, doc) { - if (doc.cm) throw new Error("This document is already in use."); - cm.doc = doc; - doc.cm = cm; - estimateLineHeights(cm); - loadMode(cm); - if (!cm.options.lineWrapping) computeMaxLength(cm); - cm.options.mode = doc.modeOption; - regChange(cm); - } - - // LINE UTILITIES - - function getLine(chunk, n) { - n -= chunk.first; - while (!chunk.lines) { - for (var i = 0;; ++i) { - var child = chunk.children[i], sz = child.chunkSize(); - if (n < sz) { chunk = child; break; } - n -= sz; - } - } - return chunk.lines[n]; - } - - function getBetween(doc, start, end) { - var out = [], n = start.line; - doc.iter(start.line, end.line + 1, function(line) { - var text = line.text; - if (n == end.line) text = text.slice(0, end.ch); - if (n == start.line) text = text.slice(start.ch); - out.push(text); - ++n; - }); - return out; - } - function getLines(doc, from, to) { - var out = []; - doc.iter(from, to, function(line) { out.push(line.text); }); - return out; - } - - function updateLineHeight(line, height) { - var diff = height - line.height; - for (var n = line; n; n = n.parent) n.height += diff; - } - - function lineNo(line) { - if (line.parent == null) return null; - var cur = line.parent, no = indexOf(cur.lines, line); - for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { - for (var i = 0;; ++i) { - if (chunk.children[i] == cur) break; - no += chunk.children[i].chunkSize(); - } - } - return no + cur.first; - } - - function lineAtHeight(chunk, h) { - var n = chunk.first; - outer: do { - for (var i = 0, e = chunk.children.length; i < e; ++i) { - var child = chunk.children[i], ch = child.height; - if (h < ch) { chunk = child; continue outer; } - h -= ch; - n += child.chunkSize(); - } - return n; - } while (!chunk.lines); - for (var i = 0, e = chunk.lines.length; i < e; ++i) { - var line = chunk.lines[i], lh = line.height; - if (h < lh) break; - h -= lh; - } - return n + i; - } - - function heightAtLine(cm, lineObj) { - lineObj = visualLine(cm.doc, lineObj); - - var h = 0, chunk = lineObj.parent; - for (var i = 0; i < chunk.lines.length; ++i) { - var line = chunk.lines[i]; - if (line == lineObj) break; - else h += line.height; - } - for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { - for (var i = 0; i < p.children.length; ++i) { - var cur = p.children[i]; - if (cur == chunk) break; - else h += cur.height; - } - } - return h; - } - - function getOrder(line) { - var order = line.order; - if (order == null) order = line.order = bidiOrdering(line.text); - return order; - } - - // HISTORY - - function makeHistory() { - return { - // Arrays of history events. Doing something adds an event to - // done and clears undo. Undoing moves events from done to - // undone, redoing moves them in the other direction. - done: [], undone: [], undoDepth: Infinity, - // Used to track when changes can be merged into a single undo - // event - lastTime: 0, lastOp: null, lastOrigin: null, - // Used by the isClean() method - dirtyCounter: 0 - }; - } - - function attachLocalSpans(doc, change, from, to) { - var existing = change["spans_" + doc.id], n = 0; - doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) { - if (line.markedSpans) - (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; - ++n; - }); - } - - function historyChangeFromChange(doc, change) { - var histChange = {from: change.from, to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; - attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); - linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true); - return histChange; - } - - function addToHistory(doc, change, selAfter, opId) { - var hist = doc.history; - hist.undone.length = 0; - var time = +new Date, cur = lst(hist.done); - - if (cur && - (hist.lastOp == opId || - hist.lastOrigin == change.origin && change.origin && - ((change.origin.charAt(0) == "+" && hist.lastTime > time - 600) || change.origin.charAt(0) == "*"))) { - // Merge this change into the last event - var last = lst(cur.changes); - if (posEq(change.from, change.to) && posEq(change.from, last.to)) { - // Optimized case for simple insertion -- don't want to add - // new changesets for every character typed - last.to = changeEnd(change); - } else { - // Add new sub-event - cur.changes.push(historyChangeFromChange(doc, change)); - } - cur.anchorAfter = selAfter.anchor; cur.headAfter = selAfter.head; - } else { - // Can not be merged, start a new event. - cur = {changes: [historyChangeFromChange(doc, change)], - anchorBefore: doc.sel.anchor, headBefore: doc.sel.head, - anchorAfter: selAfter.anchor, headAfter: selAfter.head}; - hist.done.push(cur); - while (hist.done.length > hist.undoDepth) - hist.done.shift(); - if (hist.dirtyCounter < 0) - // The user has made a change after undoing past the last clean state. - // We can never get back to a clean state now until markClean() is called. - hist.dirtyCounter = NaN; - else - hist.dirtyCounter++; - } - hist.lastTime = time; - hist.lastOp = opId; - hist.lastOrigin = change.origin; - } - - function removeClearedSpans(spans) { - if (!spans) return null; - for (var i = 0, out; i < spans.length; ++i) { - if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); } - else if (out) out.push(spans[i]); - } - return !out ? spans : out.length ? out : null; - } - - function getOldSpans(doc, change) { - var found = change["spans_" + doc.id]; - if (!found) return null; - for (var i = 0, nw = []; i < change.text.length; ++i) - nw.push(removeClearedSpans(found[i])); - return nw; - } - - // Used both to provide a JSON-safe object in .getHistory, and, when - // detaching a document, to split the history in two - function copyHistoryArray(events, newGroup) { - for (var i = 0, copy = []; i < events.length; ++i) { - var event = events[i], changes = event.changes, newChanges = []; - copy.push({changes: newChanges, anchorBefore: event.anchorBefore, headBefore: event.headBefore, - anchorAfter: event.anchorAfter, headAfter: event.headAfter}); - for (var j = 0; j < changes.length; ++j) { - var change = changes[j], m; - newChanges.push({from: change.from, to: change.to, text: change.text}); - if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) { - if (indexOf(newGroup, Number(m[1])) > -1) { - lst(newChanges)[prop] = change[prop]; - delete change[prop]; - } - } - } - } - return copy; - } - - // Rebasing/resetting history to deal with externally-sourced changes - - function rebaseHistSel(pos, from, to, diff) { - if (to < pos.line) { - pos.line += diff; - } else if (from < pos.line) { - pos.line = from; - pos.ch = 0; - } - } - - // Tries to rebase an array of history events given a change in the - // document. If the change touches the same lines as the event, the - // event, and everything 'behind' it, is discarded. If the change is - // before the event, the event's positions are updated. Uses a - // copy-on-write scheme for the positions, to avoid having to - // reallocate them all on every rebase, but also avoid problems with - // shared position objects being unsafely updated. - function rebaseHistArray(array, from, to, diff) { - for (var i = 0; i < array.length; ++i) { - var sub = array[i], ok = true; - for (var j = 0; j < sub.changes.length; ++j) { - var cur = sub.changes[j]; - if (!sub.copied) { cur.from = copyPos(cur.from); cur.to = copyPos(cur.to); } - if (to < cur.from.line) { - cur.from.line += diff; - cur.to.line += diff; - } else if (from <= cur.to.line) { - ok = false; - break; - } - } - if (!sub.copied) { - sub.anchorBefore = copyPos(sub.anchorBefore); sub.headBefore = copyPos(sub.headBefore); - sub.anchorAfter = copyPos(sub.anchorAfter); sub.readAfter = copyPos(sub.headAfter); - sub.copied = true; - } - if (!ok) { - array.splice(0, i + 1); - i = 0; - } else { - rebaseHistSel(sub.anchorBefore); rebaseHistSel(sub.headBefore); - rebaseHistSel(sub.anchorAfter); rebaseHistSel(sub.headAfter); - } - } - } - - function rebaseHist(hist, change) { - var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; - rebaseHistArray(hist.done, from, to, diff); - rebaseHistArray(hist.undone, from, to, diff); - } - - // EVENT OPERATORS - - function stopMethod() {e_stop(this);} - // Ensure an event has a stop method. - function addStop(event) { - if (!event.stop) event.stop = stopMethod; - return event; - } - - function e_preventDefault(e) { - if (e.preventDefault) e.preventDefault(); - else e.returnValue = false; - } - function e_stopPropagation(e) { - if (e.stopPropagation) e.stopPropagation(); - else e.cancelBubble = true; - } - function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} - CodeMirror.e_stop = e_stop; - CodeMirror.e_preventDefault = e_preventDefault; - CodeMirror.e_stopPropagation = e_stopPropagation; - - function e_target(e) {return e.target || e.srcElement;} - function e_button(e) { - var b = e.which; - if (b == null) { - if (e.button & 1) b = 1; - else if (e.button & 2) b = 3; - else if (e.button & 4) b = 2; - } - if (mac && e.ctrlKey && b == 1) b = 3; - return b; - } - - // EVENT HANDLING - - function on(emitter, type, f) { - if (emitter.addEventListener) - emitter.addEventListener(type, f, false); - else if (emitter.attachEvent) - emitter.attachEvent("on" + type, f); - else { - var map = emitter._handlers || (emitter._handlers = {}); - var arr = map[type] || (map[type] = []); - arr.push(f); - } - } - - function off(emitter, type, f) { - if (emitter.removeEventListener) - emitter.removeEventListener(type, f, false); - else if (emitter.detachEvent) - emitter.detachEvent("on" + type, f); - else { - var arr = emitter._handlers && emitter._handlers[type]; - if (!arr) return; - for (var i = 0; i < arr.length; ++i) - if (arr[i] == f) { arr.splice(i, 1); break; } - } - } - - function signal(emitter, type /*, values...*/) { - var arr = emitter._handlers && emitter._handlers[type]; - if (!arr) return; - var args = Array.prototype.slice.call(arguments, 2); - for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args); - } - - var delayedCallbacks, delayedCallbackDepth = 0; - function signalLater(emitter, type /*, values...*/) { - var arr = emitter._handlers && emitter._handlers[type]; - if (!arr) return; - var args = Array.prototype.slice.call(arguments, 2); - if (!delayedCallbacks) { - ++delayedCallbackDepth; - delayedCallbacks = []; - setTimeout(fireDelayed, 0); - } - function bnd(f) {return function(){f.apply(null, args);};}; - for (var i = 0; i < arr.length; ++i) - delayedCallbacks.push(bnd(arr[i])); - } - - function fireDelayed() { - --delayedCallbackDepth; - var delayed = delayedCallbacks; - delayedCallbacks = null; - for (var i = 0; i < delayed.length; ++i) delayed[i](); - } - - function hasHandler(emitter, type) { - var arr = emitter._handlers && emitter._handlers[type]; - return arr && arr.length > 0; - } - - CodeMirror.on = on; CodeMirror.off = off; CodeMirror.signal = signal; - - // MISC UTILITIES - - // Number of pixels added to scroller and sizer to hide scrollbar - var scrollerCutOff = 30; - - // Returned or thrown by various protocols to signal 'I'm not - // handling this'. - var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; - - function Delayed() {this.id = null;} - Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; - - // Counts the column offset in a string, taking tabs into account. - // Used mostly to find indentation. - function countColumn(string, end, tabSize, startIndex, startValue) { - if (end == null) { - end = string.search(/[^\s\u00a0]/); - if (end == -1) end = string.length; - } - for (var i = startIndex || 0, n = startValue || 0; i < end; ++i) { - if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); - else ++n; - } - return n; - } - CodeMirror.countColumn = countColumn; - - var spaceStrs = [""]; - function spaceStr(n) { - while (spaceStrs.length <= n) - spaceStrs.push(lst(spaceStrs) + " "); - return spaceStrs[n]; - } - - function lst(arr) { return arr[arr.length-1]; } - - function selectInput(node) { - if (ios) { // Mobile Safari apparently has a bug where select() is broken. - node.selectionStart = 0; - node.selectionEnd = node.value.length; - } else node.select(); - } - - function indexOf(collection, elt) { - if (collection.indexOf) return collection.indexOf(elt); - for (var i = 0, e = collection.length; i < e; ++i) - if (collection[i] == elt) return i; - return -1; - } - - function createObj(base, props) { - function Obj() {} - Obj.prototype = base; - var inst = new Obj(); - if (props) copyObj(props, inst); - return inst; - } - - function copyObj(obj, target) { - if (!target) target = {}; - for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop]; - return target; - } - - function emptyArray(size) { - for (var a = [], i = 0; i < size; ++i) a.push(undefined); - return a; - } - - function bind(f) { - var args = Array.prototype.slice.call(arguments, 1); - return function(){return f.apply(null, args);}; - } - - var nonASCIISingleCaseWordChar = /[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc]/; - function isWordChar(ch) { - return /\w/.test(ch) || ch > "\x80" && - (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); - } - - function isEmpty(obj) { - for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false; - return true; - } - - var isExtendingChar = /[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/; - - // DOM UTILITIES - - function elt(tag, content, className, style) { - var e = document.createElement(tag); - if (className) e.className = className; - if (style) e.style.cssText = style; - if (typeof content == "string") setTextContent(e, content); - else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); - return e; - } - - function removeChildren(e) { - for (var count = e.childNodes.length; count > 0; --count) - e.removeChild(e.firstChild); - return e; - } - - function removeChildrenAndAdd(parent, e) { - return removeChildren(parent).appendChild(e); - } - - function setTextContent(e, str) { - if (ie_lt9) { - e.innerHTML = ""; - e.appendChild(document.createTextNode(str)); - } else e.textContent = str; - } - - function getRect(node) { - return node.getBoundingClientRect(); - } - CodeMirror.replaceGetRect = function(f) { getRect = f; }; - - // FEATURE DETECTION - - // Detect drag-and-drop - var dragAndDrop = function() { - // There is *some* kind of drag-and-drop support in IE6-8, but I - // couldn't get it to work yet. - if (ie_lt9) return false; - var div = elt('div'); - return "draggable" in div || "dragDrop" in div; - }(); - - // For a reason I have yet to figure out, some browsers disallow - // word wrapping between certain characters *only* if a new inline - // element is started between them. This makes it hard to reliably - // measure the position of things, since that requires inserting an - // extra span. This terribly fragile set of regexps matches the - // character combinations that suffer from this phenomenon on the - // various browsers. - var spanAffectsWrapping = /^$/; // Won't match any two-character string - if (gecko) spanAffectsWrapping = /$'/; - else if (safari && !/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent)) spanAffectsWrapping = /\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/; - else if (webkit) spanAffectsWrapping = /[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.]|\?[\w~`@#$%\^&*(_=+{[|><]/; - - var knownScrollbarWidth; - function scrollbarWidth(measure) { - if (knownScrollbarWidth != null) return knownScrollbarWidth; - var test = elt("div", null, null, "width: 50px; height: 50px; overflow-x: scroll"); - removeChildrenAndAdd(measure, test); - if (test.offsetWidth) - knownScrollbarWidth = test.offsetHeight - test.clientHeight; - return knownScrollbarWidth || 0; - } - - var zwspSupported; - function zeroWidthElement(measure) { - if (zwspSupported == null) { - var test = elt("span", "\u200b"); - removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); - if (measure.firstChild.offsetHeight != 0) - zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !ie_lt8; - } - if (zwspSupported) return elt("span", "\u200b"); - else return elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); - } - - // See if "".split is the broken IE version, if so, provide an - // alternative way to split lines. - var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { - var pos = 0, result = [], l = string.length; - while (pos <= l) { - var nl = string.indexOf("\n", pos); - if (nl == -1) nl = string.length; - var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); - var rt = line.indexOf("\r"); - if (rt != -1) { - result.push(line.slice(0, rt)); - pos += rt + 1; - } else { - result.push(line); - pos = nl + 1; - } - } - return result; - } : function(string){return string.split(/\r\n?|\n/);}; - CodeMirror.splitLines = splitLines; - - var hasSelection = window.getSelection ? function(te) { - try { return te.selectionStart != te.selectionEnd; } - catch(e) { return false; } - } : function(te) { - try {var range = te.ownerDocument.selection.createRange();} - catch(e) {} - if (!range || range.parentElement() != te) return false; - return range.compareEndPoints("StartToEnd", range) != 0; - }; - - var hasCopyEvent = (function() { - var e = elt("div"); - if ("oncopy" in e) return true; - e.setAttribute("oncopy", "return;"); - return typeof e.oncopy == 'function'; - })(); - - // KEY NAMING - - var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", - 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", - 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", - 46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 109: "-", 107: "=", 127: "Delete", - 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", - 221: "]", 222: "'", 63276: "PageUp", 63277: "PageDown", 63275: "End", 63273: "Home", - 63234: "Left", 63232: "Up", 63235: "Right", 63233: "Down", 63302: "Insert", 63272: "Delete"}; - CodeMirror.keyNames = keyNames; - (function() { - // Number keys - for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i); - // Alphabetic keys - for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); - // Function keys - for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; - })(); - - // BIDI HELPERS - - function iterateBidiSections(order, from, to, f) { - if (!order) return f(from, to, "ltr"); - for (var i = 0; i < order.length; ++i) { - var part = order[i]; - if (part.from < to && part.to > from || from == to && part.to == from) - f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr"); - } - } - - function bidiLeft(part) { return part.level % 2 ? part.to : part.from; } - function bidiRight(part) { return part.level % 2 ? part.from : part.to; } - - function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; } - function lineRight(line) { - var order = getOrder(line); - if (!order) return line.text.length; - return bidiRight(lst(order)); - } - - function lineStart(cm, lineN) { - var line = getLine(cm.doc, lineN); - var visual = visualLine(cm.doc, line); - if (visual != line) lineN = lineNo(visual); - var order = getOrder(visual); - var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); - return Pos(lineN, ch); - } - function lineEnd(cm, lineN) { - var merged, line; - while (merged = collapsedSpanAtEnd(line = getLine(cm.doc, lineN))) - lineN = merged.find().to.line; - var order = getOrder(line); - var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line); - return Pos(lineN, ch); - } - - // This is somewhat involved. It is needed in order to move - // 'visually' through bi-directional text -- i.e., pressing left - // should make the cursor go left, even when in RTL text. The - // tricky part is the 'jumps', where RTL and LTR text touch each - // other. This often requires the cursor offset to move more than - // one unit, in order to visually move one unit. - function moveVisually(line, start, dir, byUnit) { - var bidi = getOrder(line); - if (!bidi) return moveLogically(line, start, dir, byUnit); - var moveOneUnit = byUnit ? function(pos, dir) { - do pos += dir; - while (pos > 0 && isExtendingChar.test(line.text.charAt(pos))); - return pos; - } : function(pos, dir) { return pos + dir; }; - var linedir = bidi[0].level; - for (var i = 0; i < bidi.length; ++i) { - var part = bidi[i], sticky = part.level % 2 == linedir; - if ((part.from < start && part.to > start) || - (sticky && (part.from == start || part.to == start))) break; - } - var target = moveOneUnit(start, part.level % 2 ? -dir : dir); - - while (target != null) { - if (part.level % 2 == linedir) { - if (target < part.from || target > part.to) { - part = bidi[i += dir]; - target = part && (dir > 0 == part.level % 2 ? moveOneUnit(part.to, -1) : moveOneUnit(part.from, 1)); - } else break; - } else { - if (target == bidiLeft(part)) { - part = bidi[--i]; - target = part && bidiRight(part); - } else if (target == bidiRight(part)) { - part = bidi[++i]; - target = part && bidiLeft(part); - } else break; - } - } - - return target < 0 || target > line.text.length ? null : target; - } - - function moveLogically(line, start, dir, byUnit) { - var target = start + dir; - if (byUnit) while (target > 0 && isExtendingChar.test(line.text.charAt(target))) target += dir; - return target < 0 || target > line.text.length ? null : target; - } - - // Bidirectional ordering algorithm - // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm - // that this (partially) implements. - - // One-char codes used for character types: - // L (L): Left-to-Right - // R (R): Right-to-Left - // r (AL): Right-to-Left Arabic - // 1 (EN): European Number - // + (ES): European Number Separator - // % (ET): European Number Terminator - // n (AN): Arabic Number - // , (CS): Common Number Separator - // m (NSM): Non-Spacing Mark - // b (BN): Boundary Neutral - // s (B): Paragraph Separator - // t (S): Segment Separator - // w (WS): Whitespace - // N (ON): Other Neutrals - - // Returns null if characters are ordered as they appear - // (left-to-right), or an array of sections ({from, to, level} - // objects) in the order in which they occur visually. - var bidiOrdering = (function() { - // Character types for codepoints 0 to 0xff - var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL"; - // Character types for codepoints 0x600 to 0x6ff - var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr"; - function charType(code) { - if (code <= 0xff) return lowTypes.charAt(code); - else if (0x590 <= code && code <= 0x5f4) return "R"; - else if (0x600 <= code && code <= 0x6ff) return arabicTypes.charAt(code - 0x600); - else if (0x700 <= code && code <= 0x8ac) return "r"; - else return "L"; - } - - var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; - var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; - // Browsers seem to always treat the boundaries of block elements as being L. - var outerType = "L"; - - return function(str) { - if (!bidiRE.test(str)) return false; - var len = str.length, types = []; - for (var i = 0, type; i < len; ++i) - types.push(type = charType(str.charCodeAt(i))); - - // W1. Examine each non-spacing mark (NSM) in the level run, and - // change the type of the NSM to the type of the previous - // character. If the NSM is at the start of the level run, it will - // get the type of sor. - for (var i = 0, prev = outerType; i < len; ++i) { - var type = types[i]; - if (type == "m") types[i] = prev; - else prev = type; - } - - // W2. Search backwards from each instance of a European number - // until the first strong type (R, L, AL, or sor) is found. If an - // AL is found, change the type of the European number to Arabic - // number. - // W3. Change all ALs to R. - for (var i = 0, cur = outerType; i < len; ++i) { - var type = types[i]; - if (type == "1" && cur == "r") types[i] = "n"; - else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; } - } - - // W4. A single European separator between two European numbers - // changes to a European number. A single common separator between - // two numbers of the same type changes to that type. - for (var i = 1, prev = types[0]; i < len - 1; ++i) { - var type = types[i]; - if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"; - else if (type == "," && prev == types[i+1] && - (prev == "1" || prev == "n")) types[i] = prev; - prev = type; - } - - // W5. A sequence of European terminators adjacent to European - // numbers changes to all European numbers. - // W6. Otherwise, separators and terminators change to Other - // Neutral. - for (var i = 0; i < len; ++i) { - var type = types[i]; - if (type == ",") types[i] = "N"; - else if (type == "%") { - for (var end = i + 1; end < len && types[end] == "%"; ++end) {} - var replace = (i && types[i-1] == "!") || (end < len - 1 && types[end] == "1") ? "1" : "N"; - for (var j = i; j < end; ++j) types[j] = replace; - i = end - 1; - } - } - - // W7. Search backwards from each instance of a European number - // until the first strong type (R, L, or sor) is found. If an L is - // found, then change the type of the European number to L. - for (var i = 0, cur = outerType; i < len; ++i) { - var type = types[i]; - if (cur == "L" && type == "1") types[i] = "L"; - else if (isStrong.test(type)) cur = type; - } - - // N1. A sequence of neutrals takes the direction of the - // surrounding strong text if the text on both sides has the same - // direction. European and Arabic numbers act as if they were R in - // terms of their influence on neutrals. Start-of-level-run (sor) - // and end-of-level-run (eor) are used at level run boundaries. - // N2. Any remaining neutrals take the embedding direction. - for (var i = 0; i < len; ++i) { - if (isNeutral.test(types[i])) { - for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {} - var before = (i ? types[i-1] : outerType) == "L"; - var after = (end < len - 1 ? types[end] : outerType) == "L"; - var replace = before || after ? "L" : "R"; - for (var j = i; j < end; ++j) types[j] = replace; - i = end - 1; - } - } - - // Here we depart from the documented algorithm, in order to avoid - // building up an actual levels array. Since there are only three - // levels (0, 1, 2) in an implementation that doesn't take - // explicit embedding into account, we can build up the order on - // the fly, without following the level-based algorithm. - var order = [], m; - for (var i = 0; i < len;) { - if (countsAsLeft.test(types[i])) { - var start = i; - for (++i; i < len && countsAsLeft.test(types[i]); ++i) {} - order.push({from: start, to: i, level: 0}); - } else { - var pos = i, at = order.length; - for (++i; i < len && types[i] != "L"; ++i) {} - for (var j = pos; j < i;) { - if (countsAsNum.test(types[j])) { - if (pos < j) order.splice(at, 0, {from: pos, to: j, level: 1}); - var nstart = j; - for (++j; j < i && countsAsNum.test(types[j]); ++j) {} - order.splice(at, 0, {from: nstart, to: j, level: 2}); - pos = j; - } else ++j; - } - if (pos < i) order.splice(at, 0, {from: pos, to: i, level: 1}); - } - } - if (order[0].level == 1 && (m = str.match(/^\s+/))) { - order[0].from = m[0].length; - order.unshift({from: 0, to: m[0].length, level: 0}); - } - if (lst(order).level == 1 && (m = str.match(/\s+$/))) { - lst(order).to -= m[0].length; - order.push({from: len - m[0].length, to: len, level: 0}); - } - if (order[0].level != lst(order).level) - order.push({from: len, to: len, level: order[0].level}); - - return order; - }; - })(); - - // THE END - - CodeMirror.version = "3.11"; - - return CodeMirror; -})(); +// CodeMirror version 3.11 +// +// CodeMirror is the only global var we claim +window.CodeMirror = (function() { + "use strict"; + + // BROWSER SNIFFING + + // Crude, but necessary to handle a number of hard-to-feature-detect + // bugs and behavior differences. + var gecko = /gecko\/\d/i.test(navigator.userAgent); + var ie = /MSIE \d/.test(navigator.userAgent); + var ie_lt8 = ie && (document.documentMode == null || document.documentMode < 8); + var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9); + var webkit = /WebKit\//.test(navigator.userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(navigator.userAgent); + var chrome = /Chrome\//.test(navigator.userAgent); + var opera = /Opera\//.test(navigator.userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var khtml = /KHTML\//.test(navigator.userAgent); + var mac_geLion = /Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent); + var phantom = /PhantomJS/.test(navigator.userAgent); + + var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent); + var mac = ios || /Mac/.test(navigator.platform); + var windows = /windows/i.test(navigator.platform); + + var opera_version = opera && navigator.userAgent.match(/Version\/(\d*\.\d*)/); + if (opera_version) opera_version = Number(opera_version[1]); + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || opera && (opera_version == null || opera_version < 12.11)); + var captureMiddleClick = gecko || (ie && !ie_lt9); + + // Optimize some code when these features are not used + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + // CONSTRUCTOR + + function CodeMirror(place, options) { + if (!(this instanceof CodeMirror)) return new CodeMirror(place, options); + + this.options = options = options || {}; + // Determine effective options based on given values and defaults. + for (var opt in defaults) if (!options.hasOwnProperty(opt) && defaults.hasOwnProperty(opt)) + options[opt] = defaults[opt]; + setGuttersForLineNumbers(options); + + var docStart = typeof options.value == "string" ? 0 : options.value.first; + var display = this.display = makeDisplay(place, docStart); + display.wrapper.CodeMirror = this; + updateGutters(this); + if (options.autofocus && !mobile) focusInput(this); + + this.state = {keyMaps: [], + overlays: [], + modeGen: 0, + overwrite: false, focused: false, + suppressEdits: false, pasteIncoming: false, + draggingText: false, + highlight: new Delayed()}; + + themeChanged(this); + if (options.lineWrapping) + this.display.wrapper.className += " CodeMirror-wrap"; + + var doc = options.value; + if (typeof doc == "string") doc = new Doc(options.value, options.mode); + operation(this, attachDoc)(this, doc); + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie) setTimeout(bind(resetInput, this, true), 20); + + registerEventHandlers(this); + // IE throws unspecified error in certain cases, when + // trying to access activeElement before onload + var hasFocus; try { hasFocus = (document.activeElement == display.input); } catch(e) { } + if (hasFocus || (options.autofocus && !mobile)) setTimeout(bind(onFocus, this), 20); + else onBlur(this); + + operation(this, function() { + for (var opt in optionHandlers) + if (optionHandlers.propertyIsEnumerable(opt)) + optionHandlers[opt](this, options[opt], Init); + for (var i = 0; i < initHooks.length; ++i) initHooks[i](this); + })(); + } + + // DISPLAY CONSTRUCTOR + + function makeDisplay(place, docStart) { + var d = {}; + + var input = d.input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none;"); + if (webkit) input.style.width = "1000px"; + else input.setAttribute("wrap", "off"); + // if border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) input.style.border = "1px solid black"; + input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); + + // Wraps and hides input textarea + d.inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The actual fake scrollbars. + d.scrollbarH = elt("div", [elt("div", null, null, "height: 1px")], "CodeMirror-hscrollbar"); + d.scrollbarV = elt("div", [elt("div", null, null, "width: 1px")], "CodeMirror-vscrollbar"); + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + // DIVs containing the selection and the actual code + d.lineDiv = elt("div"); + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + // Blinky cursor, and element used to ensure cursor fits at the end of a line + d.cursor = elt("div", "\u00a0", "CodeMirror-cursor"); + // Secondary cursor, shown when on a 'jump' in bi-directional text + d.otherCursor = elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"); + // Used to measure text size + d.measure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = elt("div", [d.measure, d.selectionDiv, d.lineDiv, d.cursor, d.otherCursor], + null, "position: relative; outline: none"); + // Moved around its parent to cover visible view + d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative"); + // Set to the height of the text, causes scrolling + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + // D is needed because behavior of elts with overflow: auto and padding is inconsistent across browsers + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerCutOff + "px; width: 1px;"); + // Will contain the gutters, if any + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Helper element to properly size the gutter backgrounds + var scrollerInner = elt("div", [d.sizer, d.heightForcer, d.gutters], null, "position: relative; min-height: 100%"); + // Provides scrolling + d.scroller = elt("div", [scrollerInner], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.inputDiv, d.scrollbarH, d.scrollbarV, + d.scrollbarFiller, d.scroller], "CodeMirror"); + // Work around IE7 z-index bug + if (ie_lt8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + if (place.appendChild) place.appendChild(d.wrapper); else place(d.wrapper); + + // Needed to hide big blue blinking cursor on Mobile Safari + if (ios) input.style.width = "0px"; + if (!webkit) d.scroller.draggable = true; + // Needed to handle Tab key in KHTML + if (khtml) { d.inputDiv.style.height = "1px"; d.inputDiv.style.position = "absolute"; } + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + else if (ie_lt8) d.scrollbarH.style.minWidth = d.scrollbarV.style.minWidth = "18px"; + + // Current visible range (may be bigger than the view window). + d.viewOffset = d.lastSizeC = 0; + d.showingFrom = d.showingTo = docStart; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // See readInput and resetInput + d.prevInput = ""; + // Set to true when a non-horizontal-scrolling widget is added. As + // an optimization, widget aligning is skipped when d is false. + d.alignWidgets = false; + // Flag that indicates whether we currently expect input to appear + // (after some event like 'keypress' or 'input') and are polling + // intensively. + d.pollingFast = false; + // Self-resetting timeout for the poller + d.poll = new Delayed(); + // True when a drag from the editor is active + d.draggingText = false; + + d.cachedCharWidth = d.cachedTextHeight = null; + d.measureLineCache = []; + d.measureLineCachePos = 0; + + // Tracks when resetInput has punted to just putting a short + // string instead of the (large) selection. + d.inaccurateSelection = false; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + return d; + } + + // STATE UPDATES + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption); + cm.doc.iter(function(line) { + if (line.stateAfter) line.stateAfter = null; + if (line.styles) line.styles = null; + }); + cm.doc.frontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) regChange(cm); + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + cm.display.wrapper.className += " CodeMirror-wrap"; + cm.display.sizer.style.minWidth = ""; + } else { + cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-wrap", ""); + computeMaxLength(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function(){updateScrollbars(cm.display, cm.doc.height);}, 100); + } + + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function(line) { + if (lineIsHidden(cm.doc, line)) + return 0; + else if (wrapping) + return (Math.ceil(line.text.length / perLine) || 1) * th; + else + return th; + }; + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function(line) { + var estHeight = est(line); + if (estHeight != line.height) updateLineHeight(line, estHeight); + }); + } + + function keyMapChanged(cm) { + var style = keyMap[cm.options.keyMap].style; + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-keymap-\S+/g, "") + + (style ? " cm-keymap-" + style : ""); + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + function guttersChanged(cm) { + updateGutters(cm); + regChange(cm); + } + + function updateGutters(cm) { + var gutters = cm.display.gutters, specs = cm.options.gutters; + removeChildren(gutters); + for (var i = 0; i < specs.length; ++i) { + var gutterClass = specs[i]; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass)); + if (gutterClass == "CodeMirror-linenumbers") { + cm.display.lineGutter = gElt; + gElt.style.width = (cm.display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = i ? "" : "none"; + } + + function lineLength(doc, line) { + if (line.height == 0) return 0; + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(); + cur = getLine(doc, found.from.line); + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found = merged.find(); + len -= cur.text.length - found.from.ch; + cur = getLine(doc, found.to.line); + len += cur.text.length - found.to.ch; + } + return len; + } + + function computeMaxLength(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(doc, d.maxLine); + d.maxLineChanged = true; + doc.iter(function(line) { + var len = lineLength(doc, line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // Make sure the gutters options contains the element + // "CodeMirror-linenumbers" when the lineNumbers option is true. + function setGuttersForLineNumbers(options) { + var found = false; + for (var i = 0; i < options.gutters.length; ++i) { + if (options.gutters[i] == "CodeMirror-linenumbers") { + if (options.lineNumbers) found = true; + else options.gutters.splice(i--, 1); + } + } + if (!found && options.lineNumbers) + options.gutters.push("CodeMirror-linenumbers"); + } + + // SCROLLBARS + + // Re-synchronize the fake scrollbars with the actual size of the + // content. Optionally force a scrollTop. + function updateScrollbars(d /* display */, docHeight) { + var totalHeight = docHeight + paddingVert(d); + d.sizer.style.minHeight = d.heightForcer.style.top = totalHeight + "px"; + var scrollHeight = Math.max(totalHeight, d.scroller.scrollHeight); + var needsH = d.scroller.scrollWidth > d.scroller.clientWidth; + var needsV = scrollHeight > d.scroller.clientHeight; + if (needsV) { + d.scrollbarV.style.display = "block"; + d.scrollbarV.style.bottom = needsH ? scrollbarWidth(d.measure) + "px" : "0"; + d.scrollbarV.firstChild.style.height = + (scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight) + "px"; + } else d.scrollbarV.style.display = ""; + if (needsH) { + d.scrollbarH.style.display = "block"; + d.scrollbarH.style.right = needsV ? scrollbarWidth(d.measure) + "px" : "0"; + d.scrollbarH.firstChild.style.width = + (d.scroller.scrollWidth - d.scroller.clientWidth + d.scrollbarH.clientWidth) + "px"; + } else d.scrollbarH.style.display = ""; + if (needsH && needsV) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = scrollbarWidth(d.measure) + "px"; + } else d.scrollbarFiller.style.display = ""; + + if (mac_geLion && scrollbarWidth(d.measure) === 0) + d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? "18px" : "12px"; + } + + function visibleLines(display, doc, viewPort) { + var top = display.scroller.scrollTop, height = display.wrapper.clientHeight; + if (typeof viewPort == "number") top = viewPort; + else if (viewPort) {top = viewPort.top; height = viewPort.bottom - viewPort.top;} + top = Math.floor(top - paddingTop(display)); + var bottom = Math.ceil(top + height); + return {from: lineAtHeight(doc, top), to: lineAtHeight(doc, bottom)}; + } + + // LINE NUMBERS + + function alignHorizontally(cm) { + var display = cm.display; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return; + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, l = comp + "px"; + for (var n = display.lineDiv.firstChild; n; n = n.nextSibling) if (n.alignable) { + for (var i = 0, a = n.alignable; i < a.length; ++i) a[i].style.left = l; + } + if (cm.options.fixedGutter) + display.gutters.style.left = (comp + gutterW) + "px"; + } + + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) return false; + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding); + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + return true; + } + return false; + } + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)); + } + function compensateForHScroll(display) { + return getRect(display.scroller).left - getRect(display.sizer).left; + } + + // DISPLAY DRAWING + + function updateDisplay(cm, changes, viewPort) { + var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo; + var updated = updateDisplayInner(cm, changes, viewPort); + if (updated) { + signalLater(cm, "update", cm); + if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo) + signalLater(cm, "viewportChange", cm, cm.display.showingFrom, cm.display.showingTo); + } + updateSelection(cm); + updateScrollbars(cm.display, cm.doc.height); + + return updated; + } + + // Uses a set of changes plus the current scroll position to + // determine which DOM updates have to be made, and makes the + // updates. + function updateDisplayInner(cm, changes, viewPort) { + var display = cm.display, doc = cm.doc; + if (!display.wrapper.clientWidth) { + display.showingFrom = display.showingTo = doc.first; + display.viewOffset = 0; + return; + } + + // Compute the new visible window + // If scrollTop is specified, use that to determine which lines + // to render instead of the current scrollbar position. + var visible = visibleLines(display, doc, viewPort); + // Bail out if the visible area is already rendered and nothing changed. + if (changes.length == 0 && + visible.from > display.showingFrom && visible.to < display.showingTo) + return; + + if (maybeUpdateLineNumberWidth(cm)) + changes = [{from: doc.first, to: doc.first + doc.size}]; + var gutterW = display.sizer.style.marginLeft = display.gutters.offsetWidth + "px"; + display.scrollbarH.style.left = cm.options.fixedGutter ? gutterW : "0"; + + // Used to determine which lines need their line numbers updated + var positionsChangedFrom = Infinity; + if (cm.options.lineNumbers) + for (var i = 0; i < changes.length; ++i) + if (changes[i].diff) { positionsChangedFrom = changes[i].from; break; } + + var end = doc.first + doc.size; + var from = Math.max(visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, visible.to + cm.options.viewportMargin); + if (display.showingFrom < from && from - display.showingFrom < 20) from = Math.max(doc.first, display.showingFrom); + if (display.showingTo > to && display.showingTo - to < 20) to = Math.min(end, display.showingTo); + if (sawCollapsedSpans) { + from = lineNo(visualLine(doc, getLine(doc, from))); + while (to < end && lineIsHidden(doc, getLine(doc, to))) ++to; + } + + // Create a range of theoretically intact lines, and punch holes + // in that using the change info. + var intact = [{from: Math.max(display.showingFrom, doc.first), + to: Math.min(display.showingTo, end)}]; + if (intact[0].from >= intact[0].to) intact = []; + else intact = computeIntact(intact, changes); + // When merged lines are present, we might have to reduce the + // intact ranges because changes in continued fragments of the + // intact lines do require the lines to be redrawn. + if (sawCollapsedSpans) + for (var i = 0; i < intact.length; ++i) { + var range = intact[i], merged; + while (merged = collapsedSpanAtEnd(getLine(doc, range.to - 1))) { + var newTo = merged.find().from.line; + if (newTo > range.from) range.to = newTo; + else { intact.splice(i--, 1); break; } + } + } + + // Clip off the parts that won't be visible + var intactLines = 0; + for (var i = 0; i < intact.length; ++i) { + var range = intact[i]; + if (range.from < from) range.from = from; + if (range.to > to) range.to = to; + if (range.from >= range.to) intact.splice(i--, 1); + else intactLines += range.to - range.from; + } + if (intactLines == to - from && from == display.showingFrom && to == display.showingTo) { + updateViewOffset(cm); + return; + } + intact.sort(function(a, b) {return a.from - b.from;}); + + var focused = document.activeElement; + if (intactLines < (to - from) * .7) display.lineDiv.style.display = "none"; + patchDisplay(cm, from, to, intact, positionsChangedFrom); + display.lineDiv.style.display = ""; + if (document.activeElement != focused && focused.offsetHeight) focused.focus(); + + var different = from != display.showingFrom || to != display.showingTo || + display.lastSizeC != display.wrapper.clientHeight; + // This is just a bogus formula that detects when the editor is + // resized or the font size changes. + if (different) display.lastSizeC = display.wrapper.clientHeight; + display.showingFrom = from; display.showingTo = to; + startWorker(cm, 100); + + var prevBottom = display.lineDiv.offsetTop; + for (var node = display.lineDiv.firstChild, height; node; node = node.nextSibling) if (node.lineObj) { + if (ie_lt8) { + var bot = node.offsetTop + node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = getRect(node); + height = box.bottom - box.top; + } + var diff = node.lineObj.height - height; + if (height < 2) height = textHeight(display); + if (diff > .001 || diff < -.001) { + updateLineHeight(node.lineObj, height); + var widgets = node.lineObj.widgets; + if (widgets) for (var i = 0; i < widgets.length; ++i) + widgets[i].height = widgets[i].node.offsetHeight; + } + } + updateViewOffset(cm); + + if (visibleLines(display, doc, viewPort).to > to) + updateDisplayInner(cm, [], viewPort); + return true; + } + + function updateViewOffset(cm) { + var off = cm.display.viewOffset = heightAtLine(cm, getLine(cm.doc, cm.display.showingFrom)); + // Position the mover div to align with the current virtual scroll position + cm.display.mover.style.top = off + "px"; + } + + function computeIntact(intact, changes) { + for (var i = 0, l = changes.length || 0; i < l; ++i) { + var change = changes[i], intact2 = [], diff = change.diff || 0; + for (var j = 0, l2 = intact.length; j < l2; ++j) { + var range = intact[j]; + if (change.to <= range.from && change.diff) { + intact2.push({from: range.from + diff, to: range.to + diff}); + } else if (change.to <= range.from || change.from >= range.to) { + intact2.push(range); + } else { + if (change.from > range.from) + intact2.push({from: range.from, to: change.from}); + if (change.to < range.to) + intact2.push({from: change.to + diff, to: range.to + diff}); + } + } + intact = intact2; + } + return intact; + } + + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + left[cm.options.gutters[i]] = n.offsetLeft; + width[cm.options.gutters[i]] = n.offsetWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth}; + } + + function patchDisplay(cm, from, to, intact, updateNumbersFrom) { + var dims = getDimensions(cm); + var display = cm.display, lineNumbers = cm.options.lineNumbers; + if (!intact.length && (!webkit || !cm.display.currentWheelTarget)) + removeChildren(display.lineDiv); + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + if (webkit && mac && cm.display.currentWheelTarget == node) { + node.style.display = "none"; + node.lineObj = null; + } else { + node.parentNode.removeChild(node); + } + return next; + } + + var nextIntact = intact.shift(), lineN = from; + cm.doc.iter(from, to, function(line) { + if (nextIntact && nextIntact.to == lineN) nextIntact = intact.shift(); + if (lineIsHidden(cm.doc, line)) { + if (line.height != 0) updateLineHeight(line, 0); + if (line.widgets && cur.previousSibling) for (var i = 0; i < line.widgets.length; ++i) + if (line.widgets[i].showIfHidden) { + var prev = cur.previousSibling; + if (/pre/i.test(prev.nodeName)) { + var wrap = elt("div", null, null, "position: relative"); + prev.parentNode.replaceChild(wrap, prev); + wrap.appendChild(prev); + prev = wrap; + } + var wnode = prev.appendChild(elt("div", [line.widgets[i].node], "CodeMirror-linewidget")); + positionLineWidget(line.widgets[i], wnode, prev, dims); + } + } else if (nextIntact && nextIntact.from <= lineN && nextIntact.to > lineN) { + // This line is intact. Skip to the actual node. Update its + // line number if needed. + while (cur.lineObj != line) cur = rm(cur); + if (lineNumbers && updateNumbersFrom <= lineN && cur.lineNumber) + setTextContent(cur.lineNumber, lineNumberFor(cm.options, lineN)); + cur = cur.nextSibling; + } else { + // For lines with widgets, make an attempt to find and reuse + // the existing element, so that widgets aren't needlessly + // removed and re-inserted into the dom + if (line.widgets) for (var j = 0, search = cur, reuse; search && j < 20; ++j, search = search.nextSibling) + if (search.lineObj == line && /div/i.test(search.nodeName)) { reuse = search; break; } + // This line needs to be generated. + var lineNode = buildLineElement(cm, line, lineN, dims, reuse); + if (lineNode != reuse) { + container.insertBefore(lineNode, cur); + } else { + while (cur != reuse) cur = rm(cur); + cur = cur.nextSibling; + } + + lineNode.lineObj = line; + } + ++lineN; + }); + while (cur) cur = rm(cur); + } + + function buildLineElement(cm, line, lineNo, dims, reuse) { + var lineElement = lineContent(cm, line); + var markers = line.gutterMarkers, display = cm.display, wrap; + + if (!cm.options.lineNumbers && !markers && !line.bgClass && !line.wrapClass && !line.widgets) + return lineElement; + + // Lines with gutter elements, widgets or a background class need + // to be wrapped again, and have the extra elements added to the + // wrapper div + + if (reuse) { + reuse.alignable = null; + var isOk = true, widgetsSeen = 0; + for (var n = reuse.firstChild, next; n; n = next) { + next = n.nextSibling; + if (!/\bCodeMirror-linewidget\b/.test(n.className)) { + reuse.removeChild(n); + } else { + for (var i = 0, first = true; i < line.widgets.length; ++i) { + var widget = line.widgets[i], isFirst = false; + if (!widget.above) { isFirst = first; first = false; } + if (widget.node == n.firstChild) { + positionLineWidget(widget, n, reuse, dims); + ++widgetsSeen; + if (isFirst) reuse.insertBefore(lineElement, n); + break; + } + } + if (i == line.widgets.length) { isOk = false; break; } + } + } + if (isOk && widgetsSeen == line.widgets.length) { + wrap = reuse; + reuse.className = line.wrapClass || ""; + } + } + if (!wrap) { + wrap = elt("div", null, line.wrapClass, "position: relative"); + wrap.appendChild(lineElement); + } + // Kludge to make sure the styled element lies behind the selection (by z-index) + if (line.bgClass) + wrap.insertBefore(elt("div", null, line.bgClass + " CodeMirror-linebackground"), wrap.firstChild); + if (cm.options.lineNumbers || markers) { + var gutterWrap = wrap.insertBefore(elt("div", null, null, "position: absolute; left: " + + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"), + wrap.firstChild); + if (cm.options.fixedGutter) (wrap.alignable || (wrap.alignable = [])).push(gutterWrap); + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + wrap.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineNo), + "CodeMirror-linenumber CodeMirror-gutter-elt", + "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + + display.lineNumInnerWidth + "px")); + if (markers) + for (var k = 0; k < cm.options.gutters.length; ++k) { + var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; + if (found) + gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + + dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); + } + } + if (ie_lt8) wrap.style.zIndex = 2; + if (line.widgets && wrap != reuse) for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); + positionLineWidget(widget, node, wrap, dims); + if (widget.above) + wrap.insertBefore(node, cm.options.lineNumbers && line.height != 0 ? gutterWrap : lineElement); + else + wrap.appendChild(node); + signalLater(widget, "redraw"); + } + return wrap; + } + + function positionLineWidget(widget, node, wrap, dims) { + if (widget.noHScroll) { + (wrap.alignable || (wrap.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px"; + } + } + + // SELECTION / CURSOR + + function updateSelection(cm) { + var display = cm.display; + var collapsed = posEq(cm.doc.sel.from, cm.doc.sel.to); + if (collapsed || cm.options.showCursorWhenSelecting) + updateSelectionCursor(cm); + else + display.cursor.style.display = display.otherCursor.style.display = "none"; + if (!collapsed) + updateSelectionRange(cm); + else + display.selectionDiv.style.display = "none"; + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + var headPos = cursorCoords(cm, cm.doc.sel.head, "div"); + var wrapOff = getRect(display.wrapper), lineOff = getRect(display.lineDiv); + display.inputDiv.style.top = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)) + "px"; + display.inputDiv.style.left = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)) + "px"; + } + + // No selection, plain cursor + function updateSelectionCursor(cm) { + var display = cm.display, pos = cursorCoords(cm, cm.doc.sel.head, "div"); + display.cursor.style.left = pos.left + "px"; + display.cursor.style.top = pos.top + "px"; + display.cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + display.cursor.style.display = ""; + + if (pos.other) { + display.otherCursor.style.display = ""; + display.otherCursor.style.left = pos.other.left + "px"; + display.otherCursor.style.top = pos.other.top + "px"; + display.otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } else { display.otherCursor.style.display = "none"; } + } + + // Highlight selection + function updateSelectionRange(cm) { + var display = cm.display, doc = cm.doc, sel = cm.doc.sel; + var fragment = document.createDocumentFragment(); + var clientWidth = display.lineSpace.offsetWidth, pl = paddingLeft(cm.display); + + function add(left, top, width, bottom) { + if (top < 0) top = 0; + fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + + "px; top: " + top + "px; width: " + (width == null ? clientWidth - left : width) + + "px; height: " + (bottom - top) + "px")); + } + + function drawForLine(line, fromArg, toArg, retTop) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length, rVal = retTop ? Infinity : -Infinity; + function coords(ch) { + return charCoords(cm, Pos(line, ch), "div", lineObj); + } + + iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) { + var leftPos = coords(dir == "rtl" ? to - 1 : from); + var rightPos = coords(dir == "rtl" ? from : to - 1); + var left = leftPos.left, right = rightPos.right; + if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part + add(left, leftPos.top, null, leftPos.bottom); + left = pl; + if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top); + } + if (toArg == null && to == lineLen) right = clientWidth; + if (fromArg == null && from == 0) left = pl; + rVal = retTop ? Math.min(rightPos.top, rVal) : Math.max(rightPos.bottom, rVal); + if (left < pl + 1) left = pl; + add(left, rightPos.top, right - left, rightPos.bottom); + }); + return rVal; + } + + if (sel.from.line == sel.to.line) { + drawForLine(sel.from.line, sel.from.ch, sel.to.ch); + } else { + var fromObj = getLine(doc, sel.from.line); + var cur = fromObj, merged, path = [sel.from.line, sel.from.ch], singleLine; + while (merged = collapsedSpanAtEnd(cur)) { + var found = merged.find(); + path.push(found.from.ch, found.to.line, found.to.ch); + if (found.to.line == sel.to.line) { + path.push(sel.to.ch); + singleLine = true; + break; + } + cur = getLine(doc, found.to.line); + } + + // This is a single, merged line + if (singleLine) { + for (var i = 0; i < path.length; i += 3) + drawForLine(path[i], path[i+1], path[i+2]); + } else { + var middleTop, middleBot, toObj = getLine(doc, sel.to.line); + if (sel.from.ch) + // Draw the first line of selection. + middleTop = drawForLine(sel.from.line, sel.from.ch, null, false); + else + // Simply include it in the middle block. + middleTop = heightAtLine(cm, fromObj) - display.viewOffset; + + if (!sel.to.ch) + middleBot = heightAtLine(cm, toObj) - display.viewOffset; + else + middleBot = drawForLine(sel.to.line, collapsedSpanAtStart(toObj) ? null : 0, sel.to.ch, true); + + if (middleTop < middleBot) add(pl, middleTop, null, middleBot); + } + } + + removeChildrenAndAdd(display.selectionDiv, fragment); + display.selectionDiv.style.display = ""; + } + + // Cursor-blinking + function restartBlink(cm) { + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursor.style.visibility = display.otherCursor.style.visibility = ""; + display.blinker = setInterval(function() { + if (!display.cursor.offsetHeight) return; + display.cursor.style.visibility = display.otherCursor.style.visibility = (on = !on) ? "" : "hidden"; + }, cm.options.cursorBlinkRate); + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.mode.startState && cm.doc.frontier < cm.display.showingTo) + cm.state.highlight.set(time, bind(highlightWorker, cm)); + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.frontier < doc.first) doc.frontier = doc.first; + if (doc.frontier >= cm.display.showingTo) return; + var end = +new Date + cm.options.workTime; + var state = copyState(doc.mode, getStateBefore(cm, doc.frontier)); + var changed = [], prevChange; + doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.showingTo + 500), function(line) { + if (doc.frontier >= cm.display.showingFrom) { // Visible + var oldStyles = line.styles; + line.styles = highlightLine(cm, line, state); + var ischange = !oldStyles || oldStyles.length != line.styles.length; + for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i]; + if (ischange) { + if (prevChange && prevChange.end == doc.frontier) prevChange.end++; + else changed.push(prevChange = {start: doc.frontier, end: doc.frontier + 1}); + } + line.stateAfter = copyState(doc.mode, state); + } else { + processLine(cm, line, state); + line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null; + } + ++doc.frontier; + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true; + } + }); + if (changed.length) + operation(cm, function() { + for (var i = 0; i < changed.length; ++i) + regChange(this, changed[i].start, changed[i].end); + })(); + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n) { + var minindent, minline, doc = cm.doc; + for (var search = n, lim = n - 100; search > lim; --search) { + if (search <= doc.first) return doc.first; + var line = getLine(doc, search - 1); + if (line.stateAfter) return search; + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline; + } + + function getStateBefore(cm, n) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) return true; + var pos = findStartLine(cm, n), state = pos > doc.first && getLine(doc, pos-1).stateAfter; + if (!state) state = startState(doc.mode); + else state = copyState(doc.mode, state); + doc.iter(pos, n, function(line) { + processLine(cm, line, state); + var save = pos == n - 1 || pos % 5 == 0 || pos >= display.showingFrom && pos < display.showingTo; + line.stateAfter = save ? copyState(doc.mode, state) : null; + ++pos; + }); + return state; + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop;} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;} + function paddingLeft(display) { + var e = removeChildrenAndAdd(display.measure, elt("pre", null, null, "text-align: left")).appendChild(elt("span", "x")); + return e.offsetLeft; + } + + function measureChar(cm, line, ch, data) { + var dir = -1; + data = data || measureLine(cm, line); + + for (var pos = ch;; pos += dir) { + var r = data[pos]; + if (r) break; + if (dir < 0 && pos == 0) dir = 1; + } + return {left: pos < ch ? r.right : r.left, + right: pos > ch ? r.left : r.right, + top: r.top, bottom: r.bottom}; + } + + function findCachedMeasurement(cm, line) { + var cache = cm.display.measureLineCache; + for (var i = 0; i < cache.length; ++i) { + var memo = cache[i]; + if (memo.text == line.text && memo.markedSpans == line.markedSpans && + cm.display.scroller.clientWidth == memo.width && + memo.classes == line.textClass + "|" + line.bgClass + "|" + line.wrapClass) + return memo.measure; + } + } + + function measureLine(cm, line) { + // First look in the cache + var measure = findCachedMeasurement(cm, line); + if (!measure) { + // Failing that, recompute and store result in cache + measure = measureLineInner(cm, line); + var cache = cm.display.measureLineCache; + var memo = {text: line.text, width: cm.display.scroller.clientWidth, + markedSpans: line.markedSpans, measure: measure, + classes: line.textClass + "|" + line.bgClass + "|" + line.wrapClass}; + if (cache.length == 16) cache[++cm.display.measureLineCachePos % 16] = memo; + else cache.push(memo); + } + return measure; + } + + function measureLineInner(cm, line) { + var display = cm.display, measure = emptyArray(line.text.length); + var pre = lineContent(cm, line, measure); + + // IE does not cache element positions of inline elements between + // calls to getBoundingClientRect. This makes the loop below, + // which gathers the positions of all the characters on the line, + // do an amount of layout work quadratic to the number of + // characters. When line wrapping is off, we try to improve things + // by first subdividing the line into a bunch of inline blocks, so + // that IE can reuse most of the layout information from caches + // for those blocks. This does interfere with line wrapping, so it + // doesn't work when wrapping is on, but in that case the + // situation is slightly better, since IE does cache line-wrapping + // information and only recomputes per-line. + if (ie && !ie_lt8 && !cm.options.lineWrapping && pre.childNodes.length > 100) { + var fragment = document.createDocumentFragment(); + var chunk = 10, n = pre.childNodes.length; + for (var i = 0, chunks = Math.ceil(n / chunk); i < chunks; ++i) { + var wrap = elt("div", null, null, "display: inline-block"); + for (var j = 0; j < chunk && n; ++j) { + wrap.appendChild(pre.firstChild); + --n; + } + fragment.appendChild(wrap); + } + pre.appendChild(fragment); + } + + removeChildrenAndAdd(display.measure, pre); + + var outer = getRect(display.lineDiv); + var vranges = [], data = emptyArray(line.text.length), maxBot = pre.offsetHeight; + // Work around an IE7/8 bug where it will sometimes have randomly + // replaced our pre with a clone at this point. + if (ie_lt9 && display.measure.first != pre) + removeChildrenAndAdd(display.measure, pre); + + for (var i = 0, cur; i < measure.length; ++i) if (cur = measure[i]) { + var size = getRect(cur); + var top = Math.max(0, size.top - outer.top), bot = Math.min(size.bottom - outer.top, maxBot); + for (var j = 0; j < vranges.length; j += 2) { + var rtop = vranges[j], rbot = vranges[j+1]; + if (rtop > bot || rbot < top) continue; + if (rtop <= top && rbot >= bot || + top <= rtop && bot >= rbot || + Math.min(bot, rbot) - Math.max(top, rtop) >= (bot - top) >> 1) { + vranges[j] = Math.min(top, rtop); + vranges[j+1] = Math.max(bot, rbot); + break; + } + } + if (j == vranges.length) vranges.push(top, bot); + var right = size.right; + if (cur.measureRight) right = getRect(cur.measureRight).left; + data[i] = {left: size.left - outer.left, right: right - outer.left, top: j}; + } + for (var i = 0, cur; i < data.length; ++i) if (cur = data[i]) { + var vr = cur.top; + cur.top = vranges[vr]; cur.bottom = vranges[vr+1]; + } + + return data; + } + + function measureLineWidth(cm, line) { + var hasBadSpan = false; + if (line.markedSpans) for (var i = 0; i < line.markedSpans; ++i) { + var sp = line.markedSpans[i]; + if (sp.collapsed && (sp.to == null || sp.to == line.text.length)) hasBadSpan = true; + } + var cached = !hasBadSpan && findCachedMeasurement(cm, line); + if (cached) return measureChar(cm, line, line.text.length, cached).right; + + var pre = lineContent(cm, line); + var end = pre.appendChild(zeroWidthElement(cm.display.measure)); + removeChildrenAndAdd(cm.display.measure, pre); + return getRect(end).right - getRect(cm.display.lineDiv).left; + } + + function clearCaches(cm) { + cm.display.measureLineCache.length = cm.display.measureLineCachePos = 0; + cm.display.cachedCharWidth = cm.display.cachedTextHeight = null; + cm.display.maxLineChanged = true; + cm.display.lineNumChars = null; + } + + // Context is one of "line", "div" (display.lineDiv), "local"/null (editor), or "page" + function intoCoordSystem(cm, lineObj, rect, context) { + if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) { + var size = widgetHeight(lineObj.widgets[i]); + rect.top += size; rect.bottom += size; + } + if (context == "line") return rect; + if (!context) context = "local"; + var yOff = heightAtLine(cm, lineObj); + if (context != "local") yOff -= cm.display.viewOffset; + if (context == "page") { + var lOff = getRect(cm.display.lineSpace); + yOff += lOff.top + (window.pageYOffset || (document.documentElement || document.body).scrollTop); + var xOff = lOff.left + (window.pageXOffset || (document.documentElement || document.body).scrollLeft); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect; + } + + // Context may be "window", "page", "div", or "local"/null + // Result is in local coords + function fromCoordSystem(cm, coords, context) { + if (context == "div") return coords; + var left = coords.left, top = coords.top; + if (context == "page") { + left -= window.pageXOffset || (document.documentElement || document.body).scrollLeft; + top -= window.pageYOffset || (document.documentElement || document.body).scrollTop; + } + var lineSpaceBox = getRect(cm.display.lineSpace); + left -= lineSpaceBox.left; + top -= lineSpaceBox.top; + if (context == "local" || !context) { + var editorBox = getRect(cm.display.wrapper); + left -= editorBox.left; + top -= editorBox.top; + } + return {left: left, top: top}; + } + + function charCoords(cm, pos, context, lineObj) { + if (!lineObj) lineObj = getLine(cm.doc, pos.line); + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch), context); + } + + function cursorCoords(cm, pos, context, lineObj, measurement) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!measurement) measurement = measureLine(cm, lineObj); + function get(ch, right) { + var m = measureChar(cm, lineObj, ch, measurement); + if (right) m.left = m.right; else m.right = m.left; + return intoCoordSystem(cm, lineObj, m, context); + } + var order = getOrder(lineObj), ch = pos.ch; + if (!order) return get(ch); + var main, other, linedir = order[0].level; + for (var i = 0; i < order.length; ++i) { + var part = order[i], rtl = part.level % 2, nb, here; + if (part.from < ch && part.to > ch) return get(ch, rtl); + var left = rtl ? part.to : part.from, right = rtl ? part.from : part.to; + if (left == ch) { + // IE returns bogus offsets and widths for edges where the + // direction flips, but only for the side with the lower + // level. So we try to use the side with the higher level. + if (i && part.level < (nb = order[i-1]).level) here = get(nb.level % 2 ? nb.from : nb.to - 1, true); + else here = get(rtl && part.from != part.to ? ch - 1 : ch); + if (rtl == linedir) main = here; else other = here; + } else if (right == ch) { + var nb = i < order.length - 1 && order[i+1]; + if (!rtl && nb && nb.from == nb.to) continue; + if (nb && part.level < nb.level) here = get(nb.level % 2 ? nb.to - 1 : nb.from); + else here = get(rtl ? ch : ch - 1, true); + if (rtl == linedir) main = here; else other = here; + } + } + if (linedir && !ch) other = get(order[0].to - 1); + if (!main) return other; + if (other) main.other = other; + return main; + } + + function PosMaybeOutside(line, ch, outside) { + var pos = new Pos(line, ch); + if (outside) pos.outside = true; + return pos; + } + + // Coords must be lineSpace-local + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) return PosMaybeOutside(doc.first, 0, true); + var lineNo = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineNo > last) + return PosMaybeOutside(doc.first + doc.size - 1, getLine(doc, last).text.length, true); + if (x < 0) x = 0; + + for (;;) { + var lineObj = getLine(doc, lineNo); + var found = coordsCharInner(cm, lineObj, lineNo, x, y); + var merged = collapsedSpanAtEnd(lineObj); + var mergedPos = merged && merged.find(); + if (merged && found.ch >= mergedPos.from.ch) + lineNo = mergedPos.to.line; + else + return found; + } + } + + function coordsCharInner(cm, lineObj, lineNo, x, y) { + var innerOff = y - heightAtLine(cm, lineObj); + var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth; + var measurement = measureLine(cm, lineObj); + + function getX(ch) { + var sp = cursorCoords(cm, Pos(lineNo, ch), "line", + lineObj, measurement); + wrongLine = true; + if (innerOff > sp.bottom) return sp.left - adjust; + else if (innerOff < sp.top) return sp.left + adjust; + else wrongLine = false; + return sp.left; + } + + var bidi = getOrder(lineObj), dist = lineObj.text.length; + var from = lineLeft(lineObj), to = lineRight(lineObj); + var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine; + + if (x > toX) return PosMaybeOutside(lineNo, to, toOutside); + // Do a binary search between these bounds. + for (;;) { + if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) { + var after = x - fromX < toX - x, ch = after ? from : to; + while (isExtendingChar.test(lineObj.text.charAt(ch))) ++ch; + var pos = PosMaybeOutside(lineNo, ch, after ? fromOutside : toOutside); + pos.after = after; + return pos; + } + var step = Math.ceil(dist / 2), middle = from + step; + if (bidi) { + middle = from; + for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1); + } + var middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist -= step;} + else {from = middle; fromX = middleX; fromOutside = wrongLine; dist = step;} + } + } + + var measureText; + function textHeight(display) { + if (display.cachedTextHeight != null) return display.cachedTextHeight; + if (measureText == null) { + measureText = elt("pre"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) display.cachedTextHeight = height; + removeChildren(display.measure); + return height || 1; + } + + function charWidth(display) { + if (display.cachedCharWidth != null) return display.cachedCharWidth; + var anchor = elt("span", "x"); + var pre = elt("pre", [anchor]); + removeChildrenAndAdd(display.measure, pre); + var width = anchor.offsetWidth; + if (width > 2) display.cachedCharWidth = width; + return width || 10; + } + + // OPERATIONS + + // Operations are used to wrap changes in such a way that each + // change won't have to update the cursor and display (which would + // be awkward, slow, and error-prone), but instead updates are + // batched and then all combined and executed at once. + + var nextOpId = 0; + function startOperation(cm) { + cm.curOp = { + // An array of ranges of lines that have to be updated. See + // updateDisplay. + changes: [], + updateInput: null, + userSelChange: null, + textChanged: null, + selectionChanged: false, + updateMaxLine: false, + updateScrollPos: false, + id: ++nextOpId + }; + if (!delayedCallbackDepth++) delayedCallbacks = []; + } + + function endOperation(cm) { + var op = cm.curOp, doc = cm.doc, display = cm.display; + cm.curOp = null; + + if (op.updateMaxLine) computeMaxLength(cm); + if (display.maxLineChanged && !cm.options.lineWrapping) { + var width = measureLineWidth(cm, display.maxLine); + display.sizer.style.minWidth = Math.max(0, width + 3 + scrollerCutOff) + "px"; + display.maxLineChanged = false; + var maxScrollLeft = Math.max(0, display.sizer.offsetLeft + display.sizer.offsetWidth - display.scroller.clientWidth); + if (maxScrollLeft < doc.scrollLeft && !op.updateScrollPos) + setScrollLeft(cm, Math.min(display.scroller.scrollLeft, maxScrollLeft), true); + } + var newScrollPos, updated; + if (op.updateScrollPos) { + newScrollPos = op.updateScrollPos; + } else if (op.selectionChanged && display.scroller.clientHeight) { // don't rescroll if not visible + var coords = cursorCoords(cm, doc.sel.head); + newScrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom); + } + if (op.changes.length || newScrollPos && newScrollPos.scrollTop != null) { + updated = updateDisplay(cm, op.changes, newScrollPos && newScrollPos.scrollTop); + if (cm.display.scroller.offsetHeight) cm.doc.scrollTop = cm.display.scroller.scrollTop; + } + if (!updated && op.selectionChanged) updateSelection(cm); + if (op.updateScrollPos) { + display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = newScrollPos.scrollTop; + display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = newScrollPos.scrollLeft; + alignHorizontally(cm); + } else if (newScrollPos) { + scrollCursorIntoView(cm); + } + if (op.selectionChanged) restartBlink(cm); + + if (cm.state.focused && op.updateInput) + resetInput(cm, op.userSelChange); + + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) for (var i = 0; i < hidden.length; ++i) + if (!hidden[i].lines.length) signal(hidden[i], "hide"); + if (unhidden) for (var i = 0; i < unhidden.length; ++i) + if (unhidden[i].lines.length) signal(unhidden[i], "unhide"); + + var delayed; + if (!--delayedCallbackDepth) { + delayed = delayedCallbacks; + delayedCallbacks = null; + } + if (op.textChanged) + signal(cm, "change", cm, op.textChanged); + if (op.selectionChanged) signal(cm, "cursorActivity", cm); + if (delayed) for (var i = 0; i < delayed.length; ++i) delayed[i](); + } + + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm1, f) { + return function() { + var cm = cm1 || this, withOp = !cm.curOp; + if (withOp) startOperation(cm); + try { var result = f.apply(cm, arguments); } + finally { if (withOp) endOperation(cm); } + return result; + }; + } + function docOperation(f) { + return function() { + var withOp = this.cm && !this.cm.curOp, result; + if (withOp) startOperation(this.cm); + try { result = f.apply(this, arguments); } + finally { if (withOp) endOperation(this.cm); } + return result; + }; + } + function runInOp(cm, f) { + var withOp = !cm.curOp, result; + if (withOp) startOperation(cm); + try { result = f(); } + finally { if (withOp) endOperation(cm); } + return result; + } + + function regChange(cm, from, to, lendiff) { + if (from == null) from = cm.doc.first; + if (to == null) to = cm.doc.first + cm.doc.size; + cm.curOp.changes.push({from: from, to: to, diff: lendiff}); + } + + // INPUT HANDLING + + function slowPoll(cm) { + if (cm.display.pollingFast) return; + cm.display.poll.set(cm.options.pollInterval, function() { + readInput(cm); + if (cm.state.focused) slowPoll(cm); + }); + } + + function fastPoll(cm) { + var missed = false; + cm.display.pollingFast = true; + function p() { + var changed = readInput(cm); + if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);} + else {cm.display.pollingFast = false; slowPoll(cm);} + } + cm.display.poll.set(20, p); + } + + // prevInput is a hack to work with IME. If we reset the textarea + // on every change, that breaks IME. So we look for changes + // compared to the previous content instead. (Modern browsers have + // events that indicate IME taking place, but these are not widely + // supported or compatible enough yet to rely on.) + function readInput(cm) { + var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc, sel = doc.sel; + if (!cm.state.focused || hasSelection(input) || isReadOnly(cm)) return false; + var text = input.value; + if (text == prevInput && posEq(sel.from, sel.to)) return false; + // IE enjoys randomly deselecting our input's text when + // re-focusing. If the selection is gone but the cursor is at the + // start of the input, that's probably what happened. + if (ie && text && input.selectionStart === 0) { + resetInput(cm, true); + return false; + } + var withOp = !cm.curOp; + if (withOp) startOperation(cm); + sel.shift = false; + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput[same] == text[same]) ++same; + var from = sel.from, to = sel.to; + if (same < prevInput.length) + from = Pos(from.line, from.ch - (prevInput.length - same)); + else if (cm.state.overwrite && posEq(from, to) && !cm.state.pasteIncoming) + to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + (text.length - same))); + var updateInput = cm.curOp.updateInput; + makeChange(cm.doc, {from: from, to: to, text: splitLines(text.slice(same)), + origin: cm.state.pasteIncoming ? "paste" : "+input"}, "end"); + + cm.curOp.updateInput = updateInput; + if (text.length > 1000 || text.indexOf("\n") > -1) input.value = cm.display.prevInput = ""; + else cm.display.prevInput = text; + if (withOp) endOperation(cm); + cm.state.pasteIncoming = false; + return true; + } + + function resetInput(cm, user) { + var minimal, selected, doc = cm.doc; + if (!posEq(doc.sel.from, doc.sel.to)) { + cm.display.prevInput = ""; + minimal = hasCopyEvent && + (doc.sel.to.line - doc.sel.from.line > 100 || (selected = cm.getSelection()).length > 1000); + if (minimal) cm.display.input.value = "-"; + else cm.display.input.value = selected || cm.getSelection(); + if (cm.state.focused) selectInput(cm.display.input); + } else if (user) cm.display.prevInput = cm.display.input.value = ""; + cm.display.inaccurateSelection = minimal; + } + + function focusInput(cm) { + if (cm.options.readOnly != "nocursor" && (!mobile || document.activeElement != cm.display.input)) + cm.display.input.focus(); + } + + function isReadOnly(cm) { + return cm.options.readOnly || cm.doc.cantEdit; + } + + // EVENT HANDLERS + + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + on(d.scroller, "dblclick", operation(cm, e_preventDefault)); + on(d.lineSpace, "selectstart", function(e) { + if (!eventInWidget(d, e)) e_preventDefault(e); + }); + // Gecko browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for Gecko. + if (!captureMiddleClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);}); + + on(d.scroller, "scroll", function() { + if (d.scroller.clientHeight) { + setScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + on(d.scrollbarV, "scroll", function() { + if (d.scroller.clientHeight) setScrollTop(cm, d.scrollbarV.scrollTop); + }); + on(d.scrollbarH, "scroll", function() { + if (d.scroller.clientHeight) setScrollLeft(cm, d.scrollbarH.scrollLeft); + }); + + on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);}); + on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);}); + + function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); } + on(d.scrollbarH, "mousedown", reFocus); + on(d.scrollbarV, "mousedown", reFocus); + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + function onResize() { + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = null; + clearCaches(cm); + runInOp(cm, bind(regChange, cm)); + } + on(window, "resize", onResize); + // Above handler holds on to the editor and its data structures. + // Here we poll to unregister it when the editor is no longer in + // the document, so that it can be garbage-collected. + function unregister() { + for (var p = d.wrapper.parentNode; p && p != document.body; p = p.parentNode) {} + if (p) setTimeout(unregister, 5000); + else off(window, "resize", onResize); + } + setTimeout(unregister, 5000); + + on(d.input, "keyup", operation(cm, function(e) { + if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; + if (e.keyCode == 16) cm.doc.sel.shift = false; + })); + on(d.input, "input", bind(fastPoll, cm)); + on(d.input, "keydown", operation(cm, onKeyDown)); + on(d.input, "keypress", operation(cm, onKeyPress)); + on(d.input, "focus", bind(onFocus, cm)); + on(d.input, "blur", bind(onBlur, cm)); + + function drag_(e) { + if (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))) return; + e_stop(e); + } + if (cm.options.dragDrop) { + on(d.scroller, "dragstart", function(e){onDragStart(cm, e);}); + on(d.scroller, "dragenter", drag_); + on(d.scroller, "dragover", drag_); + on(d.scroller, "drop", operation(cm, onDrop)); + } + on(d.scroller, "paste", function(e){ + if (eventInWidget(d, e)) return; + focusInput(cm); + fastPoll(cm); + }); + on(d.input, "paste", function() { + cm.state.pasteIncoming = true; + fastPoll(cm); + }); + + function prepareCopy() { + if (d.inaccurateSelection) { + d.prevInput = ""; + d.inaccurateSelection = false; + d.input.value = cm.getSelection(); + selectInput(d.input); + } + } + on(d.input, "cut", prepareCopy); + on(d.input, "copy", prepareCopy); + + // Needed to handle Tab key in KHTML + if (khtml) on(d.sizer, "mouseup", function() { + if (document.activeElement == d.input) d.input.blur(); + focusInput(cm); + }); + } + + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n) return true; + if (/\bCodeMirror-(?:line)?widget\b/.test(n.className) || + n.parentNode == display.sizer && n != display.mover) return true; + } + } + + function posFromMouse(cm, e, liberal) { + var display = cm.display; + if (!liberal) { + var target = e_target(e); + if (target == display.scrollbarH || target == display.scrollbarH.firstChild || + target == display.scrollbarV || target == display.scrollbarV.firstChild || + target == display.scrollbarFiller) return null; + } + var x, y, space = getRect(display.lineSpace); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX; y = e.clientY; } catch (e) { return null; } + return coordsChar(cm, x - space.left, y - space.top); + } + + var lastClick, lastDoubleClick; + function onMouseDown(e) { + var cm = this, display = cm.display, doc = cm.doc, sel = doc.sel; + sel.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + display.scroller.draggable = false; + setTimeout(function(){display.scroller.draggable = true;}, 100); + } + return; + } + if (clickInGutter(cm, e)) return; + var start = posFromMouse(cm, e); + + switch (e_button(e)) { + case 3: + if (captureMiddleClick) onContextMenu.call(cm, cm, e); + return; + case 2: + if (start) extendSelection(cm.doc, start); + setTimeout(bind(focusInput, cm), 20); + e_preventDefault(e); + return; + } + // For button 1, if it was clicked inside the editor + // (posFromMouse returning non-null), we have to adjust the + // selection. + if (!start) {if (e_target(e) == display.scroller) e_preventDefault(e); return;} + + if (!cm.state.focused) onFocus(cm); + + var now = +new Date, type = "single"; + if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) { + type = "triple"; + e_preventDefault(e); + setTimeout(bind(focusInput, cm), 20); + selectLine(cm, start.line); + } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) { + type = "double"; + lastDoubleClick = {time: now, pos: start}; + e_preventDefault(e); + var word = findWordAt(getLine(doc, start.line).text, start); + extendSelection(cm.doc, word.from, word.to); + } else { lastClick = {time: now, pos: start}; } + + var last = start; + if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && !posEq(sel.from, sel.to) && + !posLess(start, sel.from) && !posLess(sel.to, start) && type == "single") { + var dragEnd = operation(cm, function(e2) { + if (webkit) display.scroller.draggable = false; + cm.state.draggingText = false; + off(document, "mouseup", dragEnd); + off(display.scroller, "drop", dragEnd); + if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { + e_preventDefault(e2); + extendSelection(cm.doc, start); + focusInput(cm); + } + }); + // Let the drag handler handle this. + if (webkit) display.scroller.draggable = true; + cm.state.draggingText = dragEnd; + // IE's approach to draggable + if (display.scroller.dragDrop) display.scroller.dragDrop(); + on(document, "mouseup", dragEnd); + on(display.scroller, "drop", dragEnd); + return; + } + e_preventDefault(e); + if (type == "single") extendSelection(cm.doc, clipPos(doc, start)); + + var startstart = sel.from, startend = sel.to; + + function doSelect(cur) { + if (type == "single") { + extendSelection(cm.doc, clipPos(doc, start), cur); + return; + } + + startstart = clipPos(doc, startstart); + startend = clipPos(doc, startend); + if (type == "double") { + var word = findWordAt(getLine(doc, cur.line).text, cur); + if (posLess(cur, startstart)) extendSelection(cm.doc, word.from, startend); + else extendSelection(cm.doc, startstart, word.to); + } else if (type == "triple") { + if (posLess(cur, startstart)) extendSelection(cm.doc, startend, clipPos(doc, Pos(cur.line, 0))); + else extendSelection(cm.doc, startstart, clipPos(doc, Pos(cur.line + 1, 0))); + } + } + + var editorSize = getRect(display.wrapper); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true); + if (!cur) return; + if (!posEq(cur, last)) { + if (!cm.state.focused) onFocus(cm); + last = cur; + doSelect(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150); + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) setTimeout(operation(cm, function() { + if (counter != curCount) return; + display.scroller.scrollTop += outside; + extend(e); + }), 50); + } + } + + function done(e) { + counter = Infinity; + var cur = posFromMouse(cm, e); + if (cur) doSelect(cur); + e_preventDefault(e); + focusInput(cm); + off(document, "mousemove", move); + off(document, "mouseup", up); + } + + var move = operation(cm, function(e) { + if (!ie && !e_button(e)) done(e); + else extend(e); + }); + var up = operation(cm, done); + on(document, "mousemove", move); + on(document, "mouseup", up); + } + + function onDrop(e) { + var cm = this; + if (eventInWidget(cm.display, e) || (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e)))) + return; + e_preventDefault(e); + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || isReadOnly(cm)) return; + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var loadFile = function(file, i) { + var reader = new FileReader; + reader.onload = function() { + text[i] = reader.result; + if (++read == n) { + pos = clipPos(cm.doc, pos); + makeChange(cm.doc, {from: pos, to: pos, text: splitLines(text.join("\n")), origin: "paste"}, "around"); + } + }; + reader.readAsText(file); + }; + for (var i = 0; i < n; ++i) loadFile(files[i], i); + } else { + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && !(posLess(pos, cm.doc.sel.from) || posLess(cm.doc.sel.to, pos))) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(bind(focusInput, cm), 20); + return; + } + try { + var text = e.dataTransfer.getData("Text"); + if (text) { + var curFrom = cm.doc.sel.from, curTo = cm.doc.sel.to; + setSelection(cm.doc, pos, pos); + if (cm.state.draggingText) replaceRange(cm.doc, "", curFrom, curTo, "paste"); + cm.replaceSelection(text, null, "paste"); + focusInput(cm); + onFocus(cm); + } + } + catch(e){} + } + } + + function clickInGutter(cm, e) { + var display = cm.display; + try { var mX = e.clientX, mY = e.clientY; } + catch(e) { return false; } + + if (mX >= Math.floor(getRect(display.gutters).right)) return false; + e_preventDefault(e); + if (!hasHandler(cm, "gutterClick")) return true; + + var lineBox = getRect(display.lineDiv); + if (mY > lineBox.bottom) return true; + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.options.gutters.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && getRect(g).right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.options.gutters[i]; + signalLater(cm, "gutterClick", cm, line, gutter, e); + break; + } + } + return true; + } + + function onDragStart(cm, e) { + if (eventInWidget(cm.display, e)) return; + + var txt = cm.getSelection(); + e.dataTransfer.setData("Text", txt); + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + if (opera) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + if (safari) { + if (cm.display.dragImg) { + img = cm.display.dragImg; + } else { + cm.display.dragImg = img; + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + cm.display.wrapper.appendChild(img); + } + } + e.dataTransfer.setDragImage(img, 0, 0); + if (opera) img.parentNode.removeChild(img); + } + } + + function setScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) return; + cm.doc.scrollTop = val; + if (!gecko) updateDisplay(cm, [], val); + if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val; + if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val; + if (gecko) updateDisplay(cm, []); + } + function setScrollLeft(cm, val, isScroller) { + if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return; + val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; + if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val; + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) wheelPixelsPerUnit = -.53; + else if (gecko) wheelPixelsPerUnit = 15; + else if (chrome) wheelPixelsPerUnit = -.7; + else if (safari) wheelPixelsPerUnit = -1/3; + + function onScrollWheel(cm, e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail; + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail; + else if (dy == null) dy = e.wheelDelta; + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + for (var cur = e.target; cur != scroll; cur = cur.parentNode) { + if (cur.lineObj) { + cm.display.currentWheelTarget = cur; + break; + } + } + } + + var display = cm.display, scroll = display.scroller; + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !opera && wheelPixelsPerUnit != null) { + if (dy) + setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); + setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth))); + e_preventDefault(e); + display.wheelStartX = null; // Abort measurement, if in progress + return; + } + + if (dy && wheelPixelsPerUnit != null) { + var pixels = dy * wheelPixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) top = Math.max(0, top + pixels - 50); + else bot = Math.min(cm.doc.height, bot + pixels + 50); + updateDisplay(cm, [], {top: top, bottom: bot}); + } + + if (wheelSamples < 20) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function() { + if (display.wheelStartX == null) return; + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) return; + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) return false; + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false; + var doc = cm.doc, prevShift = doc.sel.shift, done = false; + try { + if (isReadOnly(cm)) cm.state.suppressEdits = true; + if (dropShift) doc.sel.shift = false; + done = bound(cm) != Pass; + } finally { + doc.sel.shift = prevShift; + cm.state.suppressEdits = false; + } + return done; + } + + function allKeyMaps(cm) { + var maps = cm.state.keyMaps.slice(0); + if (cm.options.extraKeys) maps.push(cm.options.extraKeys); + maps.push(cm.options.keyMap); + return maps; + } + + var maybeTransition; + function handleKeyBinding(cm, e) { + // Handle auto keymap transitions + var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto; + clearTimeout(maybeTransition); + if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() { + if (getKeyMap(cm.options.keyMap) == startMap) + cm.options.keyMap = (next.call ? next.call(null, cm) : next); + }, 50); + + var name = keyName(e, true), handled = false; + if (!name) return false; + var keymaps = allKeyMaps(cm); + + if (e.shiftKey) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + handled = lookupKey("Shift-" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);}) + || lookupKey(name, keymaps, function(b) { + if (typeof b == "string" && /^go[A-Z]/.test(b)) return doHandleBinding(cm, b); + }); + } else { + handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); }); + } + if (handled == "stop") handled = false; + + if (handled) { + e_preventDefault(e); + restartBlink(cm); + if (ie_lt9) { e.oldKeyCode = e.keyCode; e.keyCode = 0; } + } + return handled; + } + + function handleCharBinding(cm, e, ch) { + var handled = lookupKey("'" + ch + "'", allKeyMaps(cm), + function(b) { return doHandleBinding(cm, b, true); }); + if (handled) { + e_preventDefault(e); + restartBlink(cm); + } + return handled; + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + if (!cm.state.focused) onFocus(cm); + if (ie && e.keyCode == 27) { e.returnValue = false; } + if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; + var code = e.keyCode; + // IE does strange things with escape. + cm.doc.sel.shift = code == 16 || e.shiftKey; + // First give onKeyEvent option a chance to handle this. + var handled = handleKeyBinding(cm, e); + if (opera) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + cm.replaceSelection(""); + } + } + + function onKeyPress(e) { + var cm = this; + if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; + var keyCode = e.keyCode, charCode = e.charCode; + if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} + if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return; + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + if (this.options.electricChars && this.doc.mode.electricChars && + this.options.smartIndent && !isReadOnly(this) && + this.doc.mode.electricChars.indexOf(ch) > -1) + setTimeout(operation(cm, function() {indentLine(cm, cm.doc.sel.to.line, "smart");}), 75); + if (handleCharBinding(cm, e, ch)) return; + fastPoll(cm); + } + + function onFocus(cm) { + if (cm.options.readOnly == "nocursor") return; + if (!cm.state.focused) { + signal(cm, "focus", cm); + cm.state.focused = true; + if (cm.display.wrapper.className.search(/\bCodeMirror-focused\b/) == -1) + cm.display.wrapper.className += " CodeMirror-focused"; + resetInput(cm, true); + } + slowPoll(cm); + restartBlink(cm); + } + function onBlur(cm) { + if (cm.state.focused) { + signal(cm, "blur", cm); + cm.state.focused = false; + cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-focused", ""); + } + clearInterval(cm.display.blinker); + setTimeout(function() {if (!cm.state.focused) cm.doc.sel.shift = false;}, 150); + } + + var detectingSelectAll; + function onContextMenu(cm, e) { + var display = cm.display, sel = cm.doc.sel; + if (eventInWidget(display, e)) return; + + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || opera) return; // Opera is difficult. + if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) + operation(cm, setSelection)(cm.doc, pos, pos); + + var oldCSS = display.input.style.cssText; + display.inputDiv.style.position = "absolute"; + display.input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + + "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; outline: none;" + + "border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);"; + focusInput(cm); + resetInput(cm, true); + // Adds "Select all" to context menu in FF + if (posEq(sel.from, sel.to)) display.input.value = display.prevInput = " "; + + function rehide() { + display.inputDiv.style.position = "relative"; + display.input.style.cssText = oldCSS; + if (ie_lt9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos; + slowPoll(cm); + + // Try to detect the user choosing select-all + if (display.input.selectionStart != null && (!ie || ie_lt9)) { + clearTimeout(detectingSelectAll); + var extval = display.input.value = " " + (posEq(sel.from, sel.to) ? "" : display.input.value), i = 0; + display.prevInput = " "; + display.input.selectionStart = 1; display.input.selectionEnd = extval.length; + var poll = function(){ + if (display.prevInput == " " && display.input.selectionStart == 0) + operation(cm, commands.selectAll)(cm); + else if (i++ < 10) detectingSelectAll = setTimeout(poll, 500); + else resetInput(cm); + }; + detectingSelectAll = setTimeout(poll, 200); + } + } + + if (captureMiddleClick) { + e_stop(e); + var mouseup = function() { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + } + + // UPDATING + + function changeEnd(change) { + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); + } + + // Make sure a position will be valid after the given change. + function clipPostChange(doc, change, pos) { + if (!posLess(change.from, pos)) return clipPos(doc, pos); + var diff = (change.text.length - 1) - (change.to.line - change.from.line); + if (pos.line > change.to.line + diff) { + var preLine = pos.line - diff, lastLine = doc.first + doc.size - 1; + if (preLine > lastLine) return Pos(lastLine, getLine(doc, lastLine).text.length); + return clipToLen(pos, getLine(doc, preLine).text.length); + } + if (pos.line == change.to.line + diff) + return clipToLen(pos, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0) + + getLine(doc, change.to.line).text.length - change.to.ch); + var inside = pos.line - change.from.line; + return clipToLen(pos, change.text[inside].length + (inside ? 0 : change.from.ch)); + } + + // Hint can be null|"end"|"start"|"around"|{anchor,head} + function computeSelAfterChange(doc, change, hint) { + if (hint && typeof hint == "object") // Assumed to be {anchor, head} object + return {anchor: clipPostChange(doc, change, hint.anchor), + head: clipPostChange(doc, change, hint.head)}; + + if (hint == "start") return {anchor: change.from, head: change.from}; + + var end = changeEnd(change); + if (hint == "around") return {anchor: change.from, head: end}; + if (hint == "end") return {anchor: end, head: end}; + + // hint is null, leave the selection alone as much as possible + var adjustPos = function(pos) { + if (posLess(pos, change.from)) return pos; + if (!posLess(change.to, pos)) return end; + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) ch += end.ch - change.to.ch; + return Pos(line, ch); + }; + return {anchor: adjustPos(doc.sel.anchor), head: adjustPos(doc.sel.head)}; + } + + function filterChange(doc, change) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + update: function(from, to, text, origin) { + if (from) this.from = clipPos(doc, from); + if (to) this.to = clipPos(doc, to); + if (text) this.text = text; + if (origin !== undefined) this.origin = origin; + }, + cancel: function() { this.canceled = true; } + }; + signal(doc, "beforeChange", doc, obj); + if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj); + + if (obj.canceled) return null; + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}; + } + + // Replace the range from from to to by the strings in replacement. + // change is a {from, to, text [, origin]} object + function makeChange(doc, change, selUpdate, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, selUpdate, ignoreReadOnly); + if (doc.cm.state.suppressEdits) return; + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change); + if (!change) return; + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 1; --i) + makeChangeNoReadonly(doc, {from: split[i].from, to: split[i].to, text: [""]}); + if (split.length) + makeChangeNoReadonly(doc, {from: split[0].from, to: split[0].to, text: change.text}, selUpdate); + } else { + makeChangeNoReadonly(doc, change, selUpdate); + } + } + + function makeChangeNoReadonly(doc, change, selUpdate) { + var selAfter = computeSelAfterChange(doc, change, selUpdate); + addToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function(doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + function makeChangeFromHistory(doc, type) { + if (doc.cm && doc.cm.state.suppressEdits) return; + + var hist = doc.history; + var event = (type == "undo" ? hist.done : hist.undone).pop(); + if (!event) return; + hist.dirtyCounter += type == "undo" ? -1 : 1; + + var anti = {changes: [], anchorBefore: event.anchorAfter, headBefore: event.headAfter, + anchorAfter: event.anchorBefore, headAfter: event.headBefore}; + (type == "undo" ? hist.undone : hist.done).push(anti); + + for (var i = event.changes.length - 1; i >= 0; --i) { + var change = event.changes[i]; + change.origin = type; + anti.changes.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change, null) + : {anchor: event.anchorBefore, head: event.headBefore}; + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + var rebased = []; + + linkedDocs(doc, function(doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + } + } + + function shiftDoc(doc, distance) { + function shiftPos(pos) {return Pos(pos.line + distance, pos.ch);} + doc.first += distance; + if (doc.cm) regChange(doc.cm, doc.first, doc.first, distance); + doc.sel.head = shiftPos(doc.sel.head); doc.sel.anchor = shiftPos(doc.sel.anchor); + doc.sel.from = shiftPos(doc.sel.from); doc.sel.to = shiftPos(doc.sel.to); + } + + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return; + } + if (change.from.line > doc.lastLine()) return; + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) selAfter = computeSelAfterChange(doc, change, null); + if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter); + else updateDoc(doc, change, spans, selAfter); + } + + function makeChangeSingleDocInEditor(cm, change, spans, selAfter) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(doc, getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function(line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true; + } + }); + } + + updateDoc(doc, change, spans, selAfter, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function(line) { + var len = lineLength(doc, line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) cm.curOp.updateMaxLine = true; + } + + // Adjust frontier, schedule worker + doc.frontier = Math.min(doc.frontier, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + regChange(cm, from.line, to.line + 1, lendiff); + + if (hasHandler(cm, "change")) { + var changeObj = {from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin}; + if (cm.curOp.textChanged) { + for (var cur = cm.curOp.textChanged; cur.next; cur = cur.next) {} + cur.next = changeObj; + } else cm.curOp.textChanged = changeObj; + } + } + + function replaceRange(doc, code, from, to, origin) { + if (!to) to = from; + if (posLess(to, from)) { var tmp = to; to = from; from = tmp; } + if (typeof code == "string") code = splitLines(code); + makeChange(doc, {from: from, to: to, text: code, origin: origin}, null); + } + + // POSITION OBJECT + + function Pos(line, ch) { + if (!(this instanceof Pos)) return new Pos(line, ch); + this.line = line; this.ch = ch; + } + CodeMirror.Pos = Pos; + + function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} + function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} + function copyPos(x) {return Pos(x.line, x.ch);} + + // SELECTION + + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));} + function clipPos(doc, pos) { + if (pos.line < doc.first) return Pos(doc.first, 0); + var last = doc.first + doc.size - 1; + if (pos.line > last) return Pos(last, getLine(doc, last).text.length); + return clipToLen(pos, getLine(doc, pos.line).text.length); + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) return Pos(pos.line, linelen); + else if (ch < 0) return Pos(pos.line, 0); + else return pos; + } + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;} + + // If shift is held, this will move the selection anchor. Otherwise, + // it'll set the whole selection. + function extendSelection(doc, pos, other, bias) { + if (doc.sel.shift || doc.sel.extend) { + var anchor = doc.sel.anchor; + if (other) { + var posBefore = posLess(pos, anchor); + if (posBefore != posLess(other, anchor)) { + anchor = pos; + pos = other; + } else if (posBefore != posLess(pos, other)) { + pos = other; + } + } + setSelection(doc, anchor, pos, bias); + } else { + setSelection(doc, pos, other || pos, bias); + } + if (doc.cm) doc.cm.curOp.userSelChange = true; + } + + function filterSelectionChange(doc, anchor, head) { + var obj = {anchor: anchor, head: head}; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj); + obj.anchor = clipPos(doc, obj.anchor); obj.head = clipPos(doc, obj.head); + return obj; + } + + // Update the selection. Last two args are only used by + // updateDoc, since they have to be expressed in the line + // numbers before the update. + function setSelection(doc, anchor, head, bias, checkAtomic) { + if (!checkAtomic && hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) { + var filtered = filterSelectionChange(doc, anchor, head); + head = filtered.head; + anchor = filtered.anchor; + } + + var sel = doc.sel; + sel.goalColumn = null; + // Skip over atomic spans. + if (checkAtomic || !posEq(anchor, sel.anchor)) + anchor = skipAtomic(doc, anchor, bias, checkAtomic != "push"); + if (checkAtomic || !posEq(head, sel.head)) + head = skipAtomic(doc, head, bias, checkAtomic != "push"); + + if (posEq(sel.anchor, anchor) && posEq(sel.head, head)) return; + + sel.anchor = anchor; sel.head = head; + var inv = posLess(head, anchor); + sel.from = inv ? head : anchor; + sel.to = inv ? anchor : head; + + if (doc.cm) + doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true; + + signalLater(doc, "cursorActivity", doc); + } + + function reCheckSelection(cm) { + setSelection(cm.doc, cm.doc.sel.from, cm.doc.sel.to, null, "push"); + } + + function skipAtomic(doc, pos, bias, mayClear) { + var flipped = false, curPos = pos; + var dir = bias || 1; + doc.cantEdit = false; + search: for (;;) { + var line = getLine(doc, curPos.line); + if (line.markedSpans) { + for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) && + (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) break; + else {--i; continue;} + } + } + if (!m.atomic) continue; + var newPos = m.find()[dir < 0 ? "from" : "to"]; + if (posEq(newPos, curPos)) { + newPos.ch += dir; + if (newPos.ch < 0) { + if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1)); + else newPos = null; + } else if (newPos.ch > line.text.length) { + if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0); + else newPos = null; + } + if (!newPos) { + if (flipped) { + // Driven in a corner -- no valid cursor position found at all + // -- try again *with* clearing, if we didn't already + if (!mayClear) return skipAtomic(doc, pos, bias, true); + // Otherwise, turn off editing until further notice, and return the start of the doc + doc.cantEdit = true; + return Pos(doc.first, 0); + } + flipped = true; newPos = pos; dir = -dir; + } + } + curPos = newPos; + continue search; + } + } + } + return curPos; + } + } + + // SCROLLING + + function scrollCursorIntoView(cm) { + var coords = scrollPosIntoView(cm, cm.doc.sel.head); + if (!cm.state.focused) return; + var display = cm.display, box = getRect(display.sizer), doScroll = null, pTop = paddingTop(cm.display); + if (coords.top + pTop + box.top < 0) doScroll = true; + else if (coords.bottom + pTop + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; + if (doScroll != null && !phantom) { + var hidden = display.cursor.style.display == "none"; + if (hidden) { + display.cursor.style.display = ""; + display.cursor.style.left = coords.left + "px"; + display.cursor.style.top = (coords.top - display.viewOffset) + "px"; + } + display.cursor.scrollIntoView(doScroll); + if (hidden) display.cursor.style.display = "none"; + } + } + + function scrollPosIntoView(cm, pos, margin) { + if (margin == null) margin = 0; + for (;;) { + var changed = false, coords = cursorCoords(cm, pos); + var scrollPos = calculateScrollPos(cm, coords.left, coords.top - margin, coords.left, coords.bottom + margin); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + setScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true; + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true; + } + if (!changed) return coords; + } + } + + function scrollIntoView(cm, x1, y1, x2, y2) { + var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2); + if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop); + if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft); + } + + function calculateScrollPos(cm, x1, y1, x2, y2) { + var display = cm.display, pt = paddingTop(display); + y1 += pt; y2 += pt; + var screen = display.scroller.clientHeight - scrollerCutOff, screentop = display.scroller.scrollTop, result = {}; + var docBottom = cm.doc.height + paddingVert(display); + var atTop = y1 < pt + 10, atBottom = y2 + pt > docBottom - 10; + if (y1 < screentop) result.scrollTop = atTop ? 0 : Math.max(0, y1); + else if (y2 > screentop + screen) result.scrollTop = (atBottom ? docBottom : y2) - screen; + + var screenw = display.scroller.clientWidth - scrollerCutOff, screenleft = display.scroller.scrollLeft; + x1 += display.gutters.offsetWidth; x2 += display.gutters.offsetWidth; + var gutterw = display.gutters.offsetWidth; + var atLeft = x1 < gutterw + 10; + if (x1 < screenleft + gutterw || atLeft) { + if (atLeft) x1 = 0; + result.scrollLeft = Math.max(0, x1 - 10 - gutterw); + } else if (x2 > screenw + screenleft - 3) { + result.scrollLeft = x2 + 10 - screenw; + } + return result; + } + + function updateScrollPos(cm, left, top) { + cm.curOp.updateScrollPos = {scrollLeft: left, scrollTop: top}; + } + + function addToScrollPos(cm, left, top) { + var pos = cm.curOp.updateScrollPos || (cm.curOp.updateScrollPos = {scrollLeft: cm.doc.scrollLeft, scrollTop: cm.doc.scrollTop}); + var scroll = cm.display.scroller; + pos.scrollTop = Math.max(0, Math.min(scroll.scrollHeight - scroll.clientHeight, pos.scrollTop + top)); + pos.scrollLeft = Math.max(0, Math.min(scroll.scrollWidth - scroll.clientWidth, pos.scrollLeft + left)); + } + + // API UTILITIES + + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc; + if (!how) how = "add"; + if (how == "smart") { + if (!cm.doc.mode.indent) how = "prev"; + else var state = getStateBefore(cm, n); + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (how == "smart") { + indentation = cm.doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass) { + if (!aggressive) return; + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize); + else indentation = 0; + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} + if (pos < indentation) indentString += spaceStr(indentation - pos); + + if (indentString != curSpaceString) + replaceRange(cm.doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + } + + function changeLine(cm, handle, op) { + var no = handle, line = handle, doc = cm.doc; + if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle)); + else no = lineNo(handle); + if (no == null) return null; + if (op(line, no)) regChange(cm, no, no + 1); + else return null; + return line; + } + + function findPosH(doc, pos, dir, unit, visually) { + var line = pos.line, ch = pos.ch; + var lineObj = getLine(doc, line); + var possible = true; + function findNextLine() { + var l = line + dir; + if (l < doc.first || l >= doc.first + doc.size) return (possible = false); + line = l; + return lineObj = getLine(doc, l); + } + function moveOnce(boundToLine) { + var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true); + if (next == null) { + if (!boundToLine && findNextLine()) { + if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj); + else ch = dir < 0 ? lineObj.text.length : 0; + } else return (possible = false); + } else ch = next; + return true; + } + + if (unit == "char") moveOnce(); + else if (unit == "column") moveOnce(true); + else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) break; + var cur = lineObj.text.charAt(ch) || "\n"; + var type = isWordChar(cur) ? "w" + : !group ? null + : /\s/.test(cur) ? null + : "p"; + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce();} + break; + } + if (type) sawType = type; + if (dir > 0 && !moveOnce(!first)) break; + } + } + var result = skipAtomic(doc, Pos(line, ch), dir, true); + if (!possible) result.hitSide = true; + return result; + } + + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display)); + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + for (;;) { + var target = coordsChar(cm, x, y); + if (!target.outside) break; + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; } + y += dir * 5; + } + return target; + } + + function findWordAt(line, pos) { + var start = pos.ch, end = pos.ch; + if (line) { + if (pos.after === false || end == line.length) --start; else ++end; + var startChar = line.charAt(start); + var check = isWordChar(startChar) ? isWordChar + : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} + : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; + while (start > 0 && check(line.charAt(start - 1))) --start; + while (end < line.length && check(line.charAt(end))) ++end; + } + return {from: Pos(pos.line, start), to: Pos(pos.line, end)}; + } + + function selectLine(cm, line) { + extendSelection(cm.doc, Pos(line, 0), clipPos(cm.doc, Pos(line + 1, 0))); + } + + // PROTOTYPE + + // The publicly visible API. Note that operation(null, f) means + // 'wrap f in an operation, performed on its `this` parameter' + + CodeMirror.prototype = { + focus: function(){window.focus(); focusInput(this); onFocus(this); fastPoll(this);}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") return; + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + operation(this, optionHandlers[option])(this, value, old); + }, + + getOption: function(option) {return this.options[option];}, + getDoc: function() {return this.doc;}, + + addKeyMap: function(map, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](map); + }, + removeKeyMap: function(map) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + if ((typeof map == "string" ? maps[i].name : maps[i]) == map) { + maps.splice(i, 1); + return true; + } + }, + + addOverlay: operation(null, function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) throw new Error("Overlays may not be stateful."); + this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque}); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: operation(null, function(spec) { + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + if (overlays[i].modeSpec == spec) { + overlays.splice(i, 1); + this.state.modeGen++; + regChange(this); + return; + } + } + }), + + indentLine: operation(null, function(n, dir, aggressive) { + if (typeof dir != "string") { + if (dir == null) dir = this.options.smartIndent ? "smart" : "prev"; + else dir = dir ? "add" : "subtract"; + } + if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive); + }), + indentSelection: operation(null, function(how) { + var sel = this.doc.sel; + if (posEq(sel.from, sel.to)) return indentLine(this, sel.from.line, how); + var e = sel.to.line - (sel.to.ch ? 0 : 1); + for (var i = sel.from.line; i <= e; ++i) indentLine(this, i, how); + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos) { + var doc = this.doc; + pos = clipPos(doc, pos); + var state = getStateBefore(this, pos.line), mode = this.doc.mode; + var line = getLine(doc, pos.line); + var stream = new StringStream(line.text, this.options.tabSize); + while (stream.pos < pos.ch && !stream.eol()) { + stream.start = stream.pos; + var style = mode.token(stream, state); + } + return {start: stream.start, + end: stream.pos, + string: stream.current(), + className: style || null, // Deprecated, use 'type' instead + type: style || null, + state: state}; + }, + + getStateAfter: function(line) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getStateBefore(this, line + 1); + }, + + cursorCoords: function(start, mode) { + var pos, sel = this.doc.sel; + if (start == null) pos = sel.head; + else if (typeof start == "object") pos = clipPos(this.doc, start); + else pos = start ? sel.from : sel.to; + return cursorCoords(this, pos, mode || "page"); + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page"); + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top); + }, + + defaultTextHeight: function() { return textHeight(this.display); }, + defaultCharWidth: function() { return charWidth(this.display); }, + + setGutterMarker: operation(null, function(line, gutterID, value) { + return changeLine(this, line, function(line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) line.gutterMarkers = null; + return true; + }); + }), + + clearGutter: operation(null, function(gutterID) { + var cm = this, doc = cm.doc, i = doc.first; + doc.iter(function(line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + line.gutterMarkers[gutterID] = null; + regChange(cm, i, i + 1); + if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null; + } + ++i; + }); + }), + + addLineClass: operation(null, function(handle, where, cls) { + return changeLine(this, handle, function(line) { + var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; + if (!line[prop]) line[prop] = cls; + else if (new RegExp("\\b" + cls + "\\b").test(line[prop])) return false; + else line[prop] += " " + cls; + return true; + }); + }), + + removeLineClass: operation(null, function(handle, where, cls) { + return changeLine(this, handle, function(line) { + var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) return false; + else if (cls == null) line[prop] = null; + else { + var upd = cur.replace(new RegExp("^" + cls + "\\b\\s*|\\s*\\b" + cls + "\\b"), ""); + if (upd == cur) return false; + line[prop] = upd || null; + } + return true; + }); + }), + + addLineWidget: operation(null, function(handle, node, options) { + return addLineWidget(this, handle, node, options); + }), + + removeLineWidget: function(widget) { widget.clear(); }, + + lineInfo: function(line) { + if (typeof line == "number") { + if (!isLine(this.doc, line)) return null; + var n = line; + line = getLine(this.doc, line); + if (!line) return null; + } else { + var n = lineNo(line); + if (n == null) return null; + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets}; + }, + + getViewport: function() { return {from: this.display.showingFrom, to: this.display.showingTo};}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + top = pos.top - node.offsetHeight; + else if (pos.bottom + node.offsetHeight <= vspace) + top = pos.bottom; + if (left + node.offsetWidth > hspace) + left = hspace - node.offsetWidth; + } + node.style.top = (top + paddingTop(display)) + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") left = 0; + else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2; + node.style.left = left + "px"; + } + if (scroll) + scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight); + }, + + triggerOnKeyDown: operation(null, onKeyDown), + + execCommand: function(cmd) {return commands[cmd](this);}, + + findPosH: function(from, amount, unit, visually) { + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { + cur = findPosH(this.doc, cur, dir, unit, visually); + if (cur.hitSide) break; + } + return cur; + }, + + moveH: operation(null, function(dir, unit) { + var sel = this.doc.sel, pos; + if (sel.shift || sel.extend || posEq(sel.from, sel.to)) + pos = findPosH(this.doc, sel.head, dir, unit, this.options.rtlMoveVisually); + else + pos = dir < 0 ? sel.from : sel.to; + extendSelection(this.doc, pos, pos, dir); + }), + + deleteH: operation(null, function(dir, unit) { + var sel = this.doc.sel; + if (!posEq(sel.from, sel.to)) replaceRange(this.doc, "", sel.from, sel.to, "+delete"); + else replaceRange(this.doc, "", sel.from, findPosH(this.doc, sel.head, dir, unit, false), "+delete"); + this.curOp.userSelChange = true; + }), + + findPosV: function(from, amount, unit, goalColumn) { + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { + var coords = cursorCoords(this, cur, "div"); + if (x == null) x = coords.left; + else coords.left = x; + cur = findPosV(this, coords, dir, unit); + if (cur.hitSide) break; + } + return cur; + }, + + moveV: operation(null, function(dir, unit) { + var sel = this.doc.sel; + var pos = cursorCoords(this, sel.head, "div"); + if (sel.goalColumn != null) pos.left = sel.goalColumn; + var target = findPosV(this, pos, dir, unit); + + if (unit == "page") addToScrollPos(this, 0, charCoords(this, target, "div").top - pos.top); + extendSelection(this.doc, target, target, dir); + sel.goalColumn = pos.left; + }), + + toggleOverwrite: function() { + if (this.state.overwrite = !this.state.overwrite) + this.display.cursor.className += " CodeMirror-overwrite"; + else + this.display.cursor.className = this.display.cursor.className.replace(" CodeMirror-overwrite", ""); + }, + hasFocus: function() { return this.state.focused; }, + + scrollTo: operation(null, function(x, y) { + updateScrollPos(this, x, y); + }), + getScrollInfo: function() { + var scroller = this.display.scroller, co = scrollerCutOff; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - co, width: scroller.scrollWidth - co, + clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co}; + }, + + scrollIntoView: function(pos, margin) { + if (typeof pos == "number") pos = Pos(pos, 0); + if (!pos || pos.line != null) { + pos = pos ? clipPos(this.doc, pos) : this.doc.sel.head; + scrollPosIntoView(this, pos, margin); + } else { + scrollIntoView(this, pos.left, pos.top - margin, pos.right, pos.bottom + margin); + } + }, + + setSize: function(width, height) { + function interpret(val) { + return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; + } + if (width != null) this.display.wrapper.style.width = interpret(width); + if (height != null) this.display.wrapper.style.height = interpret(height); + this.refresh(); + }, + + on: function(type, f) {on(this, type, f);}, + off: function(type, f) {off(this, type, f);}, + + operation: function(f){return runInOp(this, f);}, + + refresh: operation(null, function() { + clearCaches(this); + updateScrollPos(this, this.doc.scrollLeft, this.doc.scrollTop); + regChange(this); + }), + + swapDoc: operation(null, function(doc) { + var old = this.doc; + old.cm = null; + attachDoc(this, doc); + clearCaches(this); + updateScrollPos(this, doc.scrollLeft, doc.scrollTop); + return old; + }), + + getInputField: function(){return this.display.input;}, + getWrapperElement: function(){return this.display.wrapper;}, + getScrollerElement: function(){return this.display.scroller;}, + getGutterElement: function(){return this.display.gutters;} + }; + + // OPTION DEFAULTS + + var optionHandlers = CodeMirror.optionHandlers = {}; + + // The default configuration options. + var defaults = CodeMirror.defaults = {}; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) optionHandlers[name] = + notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle; + } + + var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}}; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function(cm, val) { + cm.setValue(val); + }, true); + option("mode", null, function(cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function(cm) { + loadMode(cm); + clearCaches(cm); + regChange(cm); + }, true); + option("electricChars", true); + option("rtlMoveVisually", !windows); + + option("theme", "default", function(cm) { + themeChanged(cm); + guttersChanged(cm); + }, true); + option("keyMap", "default", keyMapChanged); + option("extraKeys", null); + + option("onKeyEvent", null); + option("onDragEvent", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function(cm) { + setGuttersForLineNumbers(cm.options); + guttersChanged(cm); + }, true); + option("fixedGutter", true, function(cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("lineNumbers", false, function(cm) { + setGuttersForLineNumbers(cm.options); + guttersChanged(cm); + }, true); + option("firstLineNumber", 1, guttersChanged, true); + option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("readOnly", false, function(cm, val) { + if (val == "nocursor") {onBlur(cm); cm.display.input.blur();} + else if (!val) resetInput(cm, true); + }); + option("dragDrop", true); + + option("cursorBlinkRate", 530); + option("cursorHeight", 1); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true); + option("pollInterval", 100); + option("undoDepth", 40, function(cm, val){cm.doc.history.undoDepth = val;}); + option("viewportMargin", 10, function(cm){cm.refresh();}, true); + + option("tabindex", null, function(cm, val) { + cm.display.input.tabIndex = val || ""; + }); + option("autofocus", null); + + // MODE DEFINITION AND QUERYING + + // Known modes, by name and by MIME + var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; + + CodeMirror.defineMode = function(name, mode) { + if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; + if (arguments.length > 2) { + mode.dependencies = []; + for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]); + } + modes[name] = mode; + }; + + CodeMirror.defineMIME = function(mime, spec) { + mimeModes[mime] = spec; + }; + + CodeMirror.resolveMode = function(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) + spec = mimeModes[spec]; + else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) + return CodeMirror.resolveMode("application/xml"); + if (typeof spec == "string") return {name: spec}; + else return spec || {name: "null"}; + }; + + CodeMirror.getMode = function(options, spec) { + spec = CodeMirror.resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) return CodeMirror.getMode(options, "text/plain"); + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) continue; + if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop]; + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + return modeObj; + }; + + CodeMirror.defineMode("null", function() { + return {token: function(stream) {stream.skipToEnd();}}; + }); + CodeMirror.defineMIME("text/plain", "null"); + + var modeExtensions = CodeMirror.modeExtensions = {}; + CodeMirror.extendMode = function(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + }; + + // EXTENSIONS + + CodeMirror.defineExtension = function(name, func) { + CodeMirror.prototype[name] = func; + }; + + CodeMirror.defineOption = option; + + var initHooks = []; + CodeMirror.defineInitHook = function(f) {initHooks.push(f);}; + + // MODE STATE HANDLING + + // Utility functions for working with state. Exported because modes + // sometimes need to do this. + function copyState(mode, state) { + if (state === true) return state; + if (mode.copyState) return mode.copyState(state); + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) val = val.concat([]); + nstate[n] = val; + } + return nstate; + } + CodeMirror.copyState = copyState; + + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true; + } + CodeMirror.startState = startState; + + CodeMirror.innerMode = function(mode, state) { + while (mode.innerMode) { + var info = mode.innerMode(state); + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state}; + }; + + // STANDARD COMMANDS + + var commands = CodeMirror.commands = { + selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()));}, + killLine: function(cm) { + var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); + if (!sel && cm.getLine(from.line).length == from.ch) + cm.replaceRange("", from, Pos(from.line + 1, 0), "+delete"); + else cm.replaceRange("", from, sel ? to : Pos(from.line), "+delete"); + }, + deleteLine: function(cm) { + var l = cm.getCursor().line; + cm.replaceRange("", Pos(l, 0), Pos(l), "+delete"); + }, + undo: function(cm) {cm.undo();}, + redo: function(cm) {cm.redo();}, + goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));}, + goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));}, + goLineStart: function(cm) { + cm.extendSelection(lineStart(cm, cm.getCursor().line)); + }, + goLineStartSmart: function(cm) { + var cur = cm.getCursor(), start = lineStart(cm, cur.line); + var line = cm.getLineHandle(start.line); + var order = getOrder(line); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(0, line.text.search(/\S/)); + var inWS = cur.line == start.line && cur.ch <= firstNonWS && cur.ch; + cm.extendSelection(Pos(start.line, inWS ? 0 : firstNonWS)); + } else cm.extendSelection(start); + }, + goLineEnd: function(cm) { + cm.extendSelection(lineEnd(cm, cm.getCursor().line)); + }, + goLineRight: function(cm) { + var top = cm.charCoords(cm.getCursor(), "div").top + 5; + cm.extendSelection(cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")); + }, + goLineLeft: function(cm) { + var top = cm.charCoords(cm.getCursor(), "div").top + 5; + cm.extendSelection(cm.coordsChar({left: 0, top: top}, "div")); + }, + goLineUp: function(cm) {cm.moveV(-1, "line");}, + goLineDown: function(cm) {cm.moveV(1, "line");}, + goPageUp: function(cm) {cm.moveV(-1, "page");}, + goPageDown: function(cm) {cm.moveV(1, "page");}, + goCharLeft: function(cm) {cm.moveH(-1, "char");}, + goCharRight: function(cm) {cm.moveH(1, "char");}, + goColumnLeft: function(cm) {cm.moveH(-1, "column");}, + goColumnRight: function(cm) {cm.moveH(1, "column");}, + goWordLeft: function(cm) {cm.moveH(-1, "word");}, + goGroupRight: function(cm) {cm.moveH(1, "group");}, + goGroupLeft: function(cm) {cm.moveH(-1, "group");}, + goWordRight: function(cm) {cm.moveH(1, "word");}, + delCharBefore: function(cm) {cm.deleteH(-1, "char");}, + delCharAfter: function(cm) {cm.deleteH(1, "char");}, + delWordBefore: function(cm) {cm.deleteH(-1, "word");}, + delWordAfter: function(cm) {cm.deleteH(1, "word");}, + delGroupBefore: function(cm) {cm.deleteH(-1, "group");}, + delGroupAfter: function(cm) {cm.deleteH(1, "group");}, + indentAuto: function(cm) {cm.indentSelection("smart");}, + indentMore: function(cm) {cm.indentSelection("add");}, + indentLess: function(cm) {cm.indentSelection("subtract");}, + insertTab: function(cm) {cm.replaceSelection("\t", "end", "+input");}, + defaultTab: function(cm) { + if (cm.somethingSelected()) cm.indentSelection("add"); + else cm.replaceSelection("\t", "end", "+input"); + }, + transposeChars: function(cm) { + var cur = cm.getCursor(), line = cm.getLine(cur.line); + if (cur.ch > 0 && cur.ch < line.length - 1) + cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1), + Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1)); + }, + newlineAndIndent: function(cm) { + operation(cm, function() { + cm.replaceSelection("\n", "end", "+input"); + cm.indentLine(cm.getCursor().line, null, true); + })(); + }, + toggleOverwrite: function(cm) {cm.toggleOverwrite();} + }; + + // STANDARD KEYMAPS + + var keyMap = CodeMirror.keyMap = {}; + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite" + }; + // Note that the save and find-related commands aren't defined by + // default. Unknown commands are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + fallthrough: "basic" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", + fallthrough: ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", + "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" + }; + + // KEYMAP DISPATCH + + function getKeyMap(val) { + if (typeof val == "string") return keyMap[val]; + else return val; + } + + function lookupKey(name, maps, handle) { + function lookup(map) { + map = getKeyMap(map); + var found = map[name]; + if (found === false) return "stop"; + if (found != null && handle(found)) return true; + if (map.nofallthrough) return "stop"; + + var fallthrough = map.fallthrough; + if (fallthrough == null) return false; + if (Object.prototype.toString.call(fallthrough) != "[object Array]") + return lookup(fallthrough); + for (var i = 0, e = fallthrough.length; i < e; ++i) { + var done = lookup(fallthrough[i]); + if (done) return done; + } + return false; + } + + for (var i = 0; i < maps.length; ++i) { + var done = lookup(maps[i]); + if (done) return done; + } + } + function isModifierKey(event) { + var name = keyNames[event.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; + } + function keyName(event, noShift) { + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) return false; + if (event.altKey) name = "Alt-" + name; + if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = "Ctrl-" + name; + if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = "Cmd-" + name; + if (!noShift && event.shiftKey) name = "Shift-" + name; + return name; + } + CodeMirror.lookupKey = lookupKey; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.keyName = keyName; + + // FROMTEXTAREA + + CodeMirror.fromTextArea = function(textarea, options) { + if (!options) options = {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabindex) + options.tabindex = textarea.tabindex; + if (!options.placeholder && textarea.placeholder) + options.placeholder = textarea.placeholder; + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = document.body; + // doc.activeElement occasionally throws on IE + try { hasFocus = document.activeElement; } catch(e) {} + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form, realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function() { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + textarea.style.display = "none"; + var cm = CodeMirror(function(node) { + textarea.parentNode.insertBefore(node, textarea.nextSibling); + }, options); + cm.save = save; + cm.getTextArea = function() { return textarea; }; + cm.toTextArea = function() { + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (typeof textarea.form.submit == "function") + textarea.form.submit = realSubmit; + } + }; + return cm; + }; + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + // The character stream used by a mode's parser. + function StringStream(string, tabSize) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + } + + StringStream.prototype = { + eol: function() {return this.pos >= this.string.length;}, + sol: function() {return this.pos == 0;}, + peek: function() {return this.string.charAt(this.pos) || undefined;}, + next: function() { + if (this.pos < this.string.length) + return this.string.charAt(this.pos++); + }, + eat: function(match) { + var ch = this.string.charAt(this.pos); + if (typeof match == "string") var ok = ch == match; + else var ok = ch && (match.test ? match.test(ch) : match(ch)); + if (ok) {++this.pos; return ch;} + }, + eatWhile: function(match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start; + }, + eatSpace: function() { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; + return this.pos > start; + }, + skipToEnd: function() {this.pos = this.string.length;}, + skipTo: function(ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true;} + }, + backUp: function(n) {this.pos -= n;}, + column: function() { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue; + }, + indentation: function() {return countColumn(this.string, null, this.tabSize);}, + match: function(pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) this.pos += pattern.length; + return true; + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) return null; + if (match && consume !== false) this.pos += match[0].length; + return match; + } + }, + current: function(){return this.string.slice(this.start, this.pos);} + }; + CodeMirror.StringStream = StringStream; + + // TEXTMARKERS + + function TextMarker(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + } + CodeMirror.TextMarker = TextMarker; + + TextMarker.prototype.clear = function() { + if (this.explicitlyCleared) return; + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) startOperation(cm); + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (span.to != null) max = lineNo(line); + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from != null) + min = lineNo(line); + else if (this.collapsed && !lineIsHidden(this.doc, line) && cm) + updateLineHeight(line, textHeight(cm.display)); + } + if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) { + var visual = visualLine(cm.doc, this.lines[i]), len = lineLength(cm.doc, visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } + + if (min != null && cm) regChange(cm, min, max + 1); + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.collapsed && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) reCheckSelection(cm); + } + if (withOp) endOperation(cm); + signalLater(this, "clear"); + }; + + TextMarker.prototype.find = function() { + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (span.from != null || span.to != null) { + var found = lineNo(line); + if (span.from != null) from = Pos(found, span.from); + if (span.to != null) to = Pos(found, span.to); + } + } + if (this.type == "bookmark") return from; + return from && {from: from, to: to}; + }; + + TextMarker.prototype.getOptions = function(copyWidget) { + var repl = this.replacedWith; + return {className: this.className, + inclusiveLeft: this.inclusiveLeft, inclusiveRight: this.inclusiveRight, + atomic: this.atomic, + collapsed: this.collapsed, + replacedWith: copyWidget ? repl && repl.cloneNode(true) : repl, + readOnly: this.readOnly, + startStyle: this.startStyle, endStyle: this.endStyle}; + }; + + TextMarker.prototype.attachLine = function(line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); + } + this.lines.push(line); + }; + TextMarker.prototype.detachLine = function(line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + + function markText(doc, from, to, options, type) { + if (options && options.shared) return markTextShared(doc, from, to, options, type); + if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type); + + var marker = new TextMarker(doc, type); + if (type == "range" && !posLess(from, to)) return marker; + if (options) copyObj(options, marker); + if (marker.replacedWith) { + marker.collapsed = true; + marker.replacedWith = elt("span", [marker.replacedWith], "CodeMirror-widget"); + } + if (marker.collapsed) sawCollapsedSpans = true; + + var curLine = from.line, size = 0, collapsedAtStart, collapsedAtEnd, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function(line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(doc, line) == cm.display.maxLine) + updateMaxLine = true; + var span = {from: null, to: null, marker: marker}; + size += line.text.length; + if (curLine == from.line) {span.from = from.ch; size -= from.ch;} + if (curLine == to.line) {span.to = to.ch; size -= line.text.length - to.ch;} + if (marker.collapsed) { + if (curLine == to.line) collapsedAtEnd = collapsedSpanAt(line, to.ch); + if (curLine == from.line) collapsedAtStart = collapsedSpanAt(line, from.ch); + else updateLineHeight(line, 0); + } + addMarkedSpan(line, span); + ++curLine; + }); + if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) { + if (lineIsHidden(doc, line)) updateLineHeight(line, 0); + }); + + if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); }); + + if (marker.readOnly) { + sawReadOnlySpans = true; + if (doc.history.done.length || doc.history.undone.length) + doc.clearHistory(); + } + if (marker.collapsed) { + if (collapsedAtStart != collapsedAtEnd) + throw new Error("Inserting collapsed marker overlapping an existing one"); + marker.size = size; + marker.atomic = true; + } + if (cm) { + if (updateMaxLine) cm.curOp.updateMaxLine = true; + if (marker.className || marker.startStyle || marker.endStyle || marker.collapsed) + regChange(cm, from.line, to.line + 1); + if (marker.atomic) reCheckSelection(cm); + } + return marker; + } + + // SHARED TEXTMARKERS + + function SharedTextMarker(markers, primary) { + this.markers = markers; + this.primary = primary; + for (var i = 0, me = this; i < markers.length; ++i) { + markers[i].parent = this; + on(markers[i], "clear", function(){me.clear();}); + } + } + CodeMirror.SharedTextMarker = SharedTextMarker; + + SharedTextMarker.prototype.clear = function() { + if (this.explicitlyCleared) return; + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + this.markers[i].clear(); + signalLater(this, "clear"); + }; + SharedTextMarker.prototype.find = function() { + return this.primary.find(); + }; + SharedTextMarker.prototype.getOptions = function(copyWidget) { + var inner = this.primary.getOptions(copyWidget); + inner.shared = true; + return inner; + }; + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.replacedWith; + linkedDocs(doc, function(doc) { + if (widget) options.replacedWith = widget.cloneNode(true); + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + if (doc.linked[i].isParent) return; + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary); + } + + // TEXTMARKER SPANS + + function getMarkedSpanFor(spans, marker) { + if (spans) for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) return span; + } + } + function removeMarkedSpan(spans, span) { + for (var r, i = 0; i < spans.length; ++i) + if (spans[i] != span) (r || (r = [])).push(spans[i]); + return r; + } + function addMarkedSpan(line, span) { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + span.marker.attachLine(line); + } + + function markedSpansBefore(old, startCh, isInsert) { + if (old) for (var i = 0, nw; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || marker.type == "bookmark" && span.from == startCh && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); + (nw || (nw = [])).push({from: span.from, + to: endsAfter ? null : span.to, + marker: marker}); + } + } + return nw; + } + + function markedSpansAfter(old, endCh, isInsert) { + if (old) for (var i = 0, nw; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || marker.type == "bookmark" && span.from == endCh && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); + (nw || (nw = [])).push({from: startsBefore ? null : span.from - endCh, + to: span.to == null ? null : span.to - endCh, + marker: marker}); + } + } + return nw; + } + + function stretchSpansOverChange(doc, change) { + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) return null; + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = posEq(change.from, change.to); + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) span.to = startCh; + else if (sameLine) span.to = found.to == null ? null : found.to + offset; + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i = 0; i < last.length; ++i) { + var span = last[i]; + if (span.to != null) span.to += offset; + if (span.from == null) { + var found = getMarkedSpanFor(first, span.marker); + if (!found) { + span.from = offset; + if (sameLine) (first || (first = [])).push(span); + } + } else { + span.from += offset; + if (sameLine) (first || (first = [])).push(span); + } + } + } + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + for (var i = 0; i < first.length; ++i) + if (first[i].to == null) + (gapMarkers || (gapMarkers = [])).push({from: null, to: null, marker: first[i].marker}); + for (var i = 0; i < gap; ++i) + newMarkers.push(gapMarkers); + newMarkers.push(last); + } + return newMarkers; + } + + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) return stretched; + if (!stretched) return old; + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + if (oldCur[k].marker == span.marker) continue spans; + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old; + } + + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function(line) { + if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + (markers || (markers = [])).push(mark); + } + }); + if (!markers) return null; + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (posLess(p.to, m.from) || posLess(m.to, p.from)) continue; + var newParts = [j, 1]; + if (posLess(p.from, m.from) || !mk.inclusiveLeft && posEq(p.from, m.from)) + newParts.push({from: p.from, to: m.from}); + if (posLess(m.to, p.to) || !mk.inclusiveRight && posEq(p.to, m.to)) + newParts.push({from: m.to, to: p.to}); + parts.splice.apply(parts, newParts); + j += newParts.length - 1; + } + } + return parts; + } + + function collapsedSpanAt(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) for (var sp, i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) continue; + if ((sp.from == null || sp.from < ch) && + (sp.to == null || sp.to > ch) && + (!found || found.width < sp.marker.width)) + found = sp.marker; + } + return found; + } + function collapsedSpanAtStart(line) { return collapsedSpanAt(line, -1); } + function collapsedSpanAtEnd(line) { return collapsedSpanAt(line, line.text.length + 1); } + + function visualLine(doc, line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + line = getLine(doc, merged.find().from.line); + return line; + } + + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) for (var sp, i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) continue; + if (sp.from == null) return true; + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + return true; + } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find().to, endLine = getLine(doc, end.line); + return lineIsHiddenInner(doc, endLine, getMarkedSpanFor(endLine.markedSpans, span.marker)); + } + if (span.marker.inclusiveRight && span.to == line.text.length) + return true; + for (var sp, i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && sp.from == span.to && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) return true; + } + } + + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) return; + for (var i = 0; i < spans.length; ++i) + spans[i].marker.detachLine(line); + line.markedSpans = null; + } + + function attachMarkedSpans(line, spans) { + if (!spans) return; + for (var i = 0; i < spans.length; ++i) + spans[i].marker.attachLine(line); + line.markedSpans = spans; + } + + // LINE WIDGETS + + var LineWidget = CodeMirror.LineWidget = function(cm, node, options) { + for (var opt in options) if (options.hasOwnProperty(opt)) + this[opt] = options[opt]; + this.cm = cm; + this.node = node; + }; + function widgetOperation(f) { + return function() { + var withOp = !this.cm.curOp; + if (withOp) startOperation(this.cm); + try {var result = f.apply(this, arguments);} + finally {if (withOp) endOperation(this.cm);} + return result; + }; + } + LineWidget.prototype.clear = widgetOperation(function() { + var ws = this.line.widgets, no = lineNo(this.line); + if (no == null || !ws) return; + for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1); + if (!ws.length) this.line.widgets = null; + updateLineHeight(this.line, Math.max(0, this.line.height - widgetHeight(this))); + regChange(this.cm, no, no + 1); + }); + LineWidget.prototype.changed = widgetOperation(function() { + var oldH = this.height; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) return; + updateLineHeight(this.line, this.line.height + diff); + var no = lineNo(this.line); + regChange(this.cm, no, no + 1); + }); + + function widgetHeight(widget) { + if (widget.height != null) return widget.height; + if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1) + removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, "position: relative")); + return widget.height = widget.node.offsetHeight; + } + + function addLineWidget(cm, handle, node, options) { + var widget = new LineWidget(cm, node, options); + if (widget.noHScroll) cm.display.alignWidgets = true; + changeLine(cm, handle, function(line) { + (line.widgets || (line.widgets = [])).push(widget); + widget.line = line; + if (!lineIsHidden(cm.doc, line) || widget.showIfHidden) { + var aboveVisible = heightAtLine(cm, line) < cm.display.scroller.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) addToScrollPos(cm, 0, widget.height); + } + return true; + }); + return widget; + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + function makeLine(text, markedSpans, estimateHeight) { + var line = {text: text}; + attachMarkedSpans(line, markedSpans); + line.height = estimateHeight ? estimateHeight(line) : 1; + return line; + } + + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) line.stateAfter = null; + if (line.styles) line.styles = null; + if (line.order != null) line.order = null; + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) updateLineHeight(line, estHeight); + } + + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Run the given mode's parser over a line, update the styles + // array, which contains alternating fragments of text and CSS + // classes. + function runMode(cm, text, mode, state, f) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) flattenSpans = cm.options.flattenSpans; + var curText = "", curStyle = null; + var stream = new StringStream(text, cm.options.tabSize); + if (text == "" && mode.blankLine) mode.blankLine(state); + while (!stream.eol()) { + var style = mode.token(stream, state); + if (stream.pos > 5000) { + flattenSpans = false; + // Webkit seems to refuse to render text nodes longer than 57444 characters + stream.pos = Math.min(text.length, stream.start + 50000); + style = null; + } + var substr = stream.current(); + stream.start = stream.pos; + if (!flattenSpans || curStyle != style) { + if (curText) f(curText, curStyle); + curText = substr; curStyle = style; + } else curText = curText + substr; + } + if (curText) f(curText, curStyle); + } + + function highlightLine(cm, line, state) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen]; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, state, function(txt, style) {st.push(txt, style);}); + + // Run overlays, adjust style array. + for (var o = 0; o < cm.state.overlays.length; ++o) { + var overlay = cm.state.overlays[o], i = 1; + runMode(cm, line.text, overlay.mode, true, function(txt, style) { + var start = i, len = txt.length; + // Ensure there's a token end at the current position, and that i points at it + while (len) { + var cur = st[i], len_ = cur.length; + if (len_ <= len) { + len -= len_; + } else { + st.splice(i, 1, cur.slice(0, len), st[i+1], cur.slice(len)); + len = 0; + } + i += 2; + } + if (!style) return; + if (overlay.opaque) { + st.splice(start, i - start, txt, style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = cur ? cur + " " + style : style; + } + } + }); + } + + return st; + } + + function getLineStyles(cm, line) { + if (!line.styles || line.styles[0] != cm.state.modeGen) + line.styles = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line))); + return line.styles; + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. + function processLine(cm, line, state) { + var mode = cm.doc.mode; + var stream = new StringStream(line.text, cm.options.tabSize); + if (line.text == "" && mode.blankLine) mode.blankLine(state); + while (!stream.eol() && stream.pos <= 5000) { + mode.token(stream, state); + stream.start = stream.pos; + } + } + + var styleToClassCache = {}; + function styleToClass(style) { + if (!style) return null; + return styleToClassCache[style] || + (styleToClassCache[style] = "cm-" + style.replace(/ +/g, " cm-")); + } + + function lineContent(cm, realLine, measure) { + var merged, line = realLine, lineBefore, sawBefore, simple = true; + while (merged = collapsedSpanAtStart(line)) { + simple = false; + line = getLine(cm.doc, merged.find().from.line); + if (!lineBefore) lineBefore = line; + } + + var builder = {pre: elt("pre"), col: 0, pos: 0, display: !measure, + measure: null, addedOne: false, cm: cm}; + if (line.textClass) builder.pre.className = line.textClass; + + do { + builder.measure = line == realLine && measure; + builder.pos = 0; + builder.addToken = builder.measure ? buildTokenMeasure : buildToken; + if ((ie || webkit) && cm.getOption("lineWrapping")) + builder.addToken = buildTokenSplitSpaces(builder.addToken); + if (measure && sawBefore && line != realLine && !builder.addedOne) { + measure[0] = builder.pre.appendChild(zeroWidthElement(cm.display.measure)); + builder.addedOne = true; + } + var next = insertLineContent(line, builder, getLineStyles(cm, line)); + sawBefore = line == lineBefore; + if (next) { + line = getLine(cm.doc, next.to.line); + simple = false; + } + } while (next); + + if (measure && !builder.addedOne) + measure[0] = builder.pre.appendChild(simple ? elt("span", "\u00a0") : zeroWidthElement(cm.display.measure)); + if (!builder.pre.firstChild && !lineIsHidden(cm.doc, realLine)) + builder.pre.appendChild(document.createTextNode("\u00a0")); + + var order; + // Work around problem with the reported dimensions of single-char + // direction spans on IE (issue #1129). See also the comment in + // cursorCoords. + if (measure && ie && (order = getOrder(line))) { + var l = order.length - 1; + if (order[l].from == order[l].to) --l; + var last = order[l], prev = order[l - 1]; + if (last.from + 1 == last.to && prev && last.level < prev.level) { + var span = measure[builder.pos - 1]; + if (span) span.parentNode.insertBefore(span.measureRight = zeroWidthElement(cm.display.measure), + span.nextSibling); + } + } + + signal(cm, "renderLine", cm, realLine, builder.pre); + return builder.pre; + } + + var tokenSpecialChars = /[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g; + function buildToken(builder, text, style, startStyle, endStyle) { + if (!text) return; + if (!tokenSpecialChars.test(text)) { + builder.col += text.length; + var content = document.createTextNode(text); + } else { + var content = document.createDocumentFragment(), pos = 0; + while (true) { + tokenSpecialChars.lastIndex = pos; + var m = tokenSpecialChars.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + content.appendChild(document.createTextNode(text.slice(pos, pos + skipped))); + builder.col += skipped; + } + if (!m) break; + pos += skipped + 1; + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + builder.col += tabWidth; + } else { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + m[0].charCodeAt(0).toString(16); + content.appendChild(token); + builder.col += 1; + } + } + } + if (style || startStyle || endStyle || builder.measure) { + var fullStyle = style || ""; + if (startStyle) fullStyle += startStyle; + if (endStyle) fullStyle += endStyle; + return builder.pre.appendChild(elt("span", [content], fullStyle)); + } + builder.pre.appendChild(content); + } + + function buildTokenMeasure(builder, text, style, startStyle, endStyle) { + var wrapping = builder.cm.options.lineWrapping; + for (var i = 0; i < text.length; ++i) { + var ch = text.charAt(i), start = i == 0; + if (ch >= "\ud800" && ch < "\udbff" && i < text.length - 1) { + ch = text.slice(i, i + 2); + ++i; + } else if (i && wrapping && + spanAffectsWrapping.test(text.slice(i - 1, i + 1))) { + builder.pre.appendChild(elt("wbr")); + } + var span = builder.measure[builder.pos] = + buildToken(builder, ch, style, + start && startStyle, i == text.length - 1 && endStyle); + // In IE single-space nodes wrap differently than spaces + // embedded in larger text nodes, except when set to + // white-space: normal (issue #1268). + if (ie && wrapping && ch == " " && i && !/\s/.test(text.charAt(i - 1)) && + i < text.length - 1 && !/\s/.test(text.charAt(i + 1))) + span.style.whiteSpace = "normal"; + builder.pos += ch.length; + } + if (text.length) builder.addedOne = true; + } + + function buildTokenSplitSpaces(inner) { + function split(old) { + var out = " "; + for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? " " : "\u00a0"; + out += " "; + return out; + } + return function(builder, text, style, startStyle, endStyle) { + return inner(builder, text.replace(/ {3,}/, split), style, startStyle, endStyle); + }; + } + + function buildCollapsedSpan(builder, size, widget) { + if (widget) { + if (!builder.display) widget = widget.cloneNode(true); + builder.pre.appendChild(widget); + if (builder.measure && size) { + builder.measure[builder.pos] = widget; + builder.addedOne = true; + } + } + builder.pos += size; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans; + if (!spans) { + for (var i = 1; i < styles.length; i+=2) + builder.addToken(builder, styles[i], styleToClass(styles[i+1])); + return; + } + + var allText = line.text, len = allText.length; + var pos = 0, i = 1, text = "", style; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = ""; + collapsed = null; nextChange = Infinity; + var foundBookmark = null; + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (sp.from <= pos && (sp.to == null || sp.to > pos)) { + if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; } + if (m.className) spanStyle += " " + m.className; + if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle; + if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle; + if (m.collapsed && (!collapsed || collapsed.marker.width < m.width)) + collapsed = sp; + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + if (m.type == "bookmark" && sp.from == pos && m.replacedWith) + foundBookmark = m.replacedWith; + } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len : collapsed.to) - pos, + collapsed.from != null && collapsed.marker.replacedWith); + if (collapsed.to == null) return collapsed.marker.find(); + } + if (foundBookmark && !collapsed) buildCollapsedSpan(builder, 0, foundBookmark); + } + if (pos >= len) break; + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : ""); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} + pos = end; + spanStartStyle = ""; + } + text = styles[i++]; style = styleToClass(styles[i++]); + } + } + } + + // DOCUMENT DATA STRUCTURE + + function updateDoc(doc, change, markedSpans, selAfter, estimateHeight) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null;} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight); + signalLater(line, "change", line, change); + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // First adjust the line structure + if (from.ch == 0 && to.ch == 0 && lastText == "") { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + for (var i = 0, e = text.length - 1, added = []; i < e; ++i) + added.push(makeLine(text[i], spansFor(i), estimateHeight)); + update(lastLine, lastLine.text, lastSpans); + if (nlines) doc.remove(from.line, nlines); + if (added.length) doc.insert(from.line, added); + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + for (var added = [], i = 1, e = text.length - 1; i < e; ++i) + added.push(makeLine(text[i], spansFor(i), estimateHeight)); + added.push(makeLine(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + for (var i = 1, e = text.length - 1, added = []; i < e; ++i) + added.push(makeLine(text[i], spansFor(i), estimateHeight)); + if (nlines > 1) doc.remove(from.line + 1, nlines - 1); + doc.insert(from.line + 1, added); + } + + signalLater(doc, "change", doc, change); + setSelection(doc, selAfter.anchor, selAfter.head, null, true); + } + + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + for (var i = 0, e = lines.length, height = 0; i < e; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length; }, + removeInner: function(at, n) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + collapse: function(lines) { + lines.splice.apply(lines, [lines.length, 0].concat(this.lines)); + }, + insertInner: function(at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this; + }, + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + if (op(this.lines[at])) return true; + } + }; + + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0, e = children.length; i < e; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size; }, + removeInner: function(at, n) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) break; + at = 0; + } else at -= sz; + } + if (this.size - n < 25) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + collapse: function(lines) { + for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines); + }, + insertInner: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + while (child.lines.length > 50) { + var spilled = child.lines.splice(child.lines.length - 25, 25); + var newleaf = new LeafChunk(spilled); + child.height -= newleaf.height; + this.children.splice(i + 1, 0, newleaf); + newleaf.parent = this; + } + this.maybeSpill(); + } + break; + } + at -= sz; + } + }, + maybeSpill: function() { + if (this.children.length <= 10) return; + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10); + me.parent.maybeSpill(); + }, + iterN: function(at, n, op) { + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) return true; + if ((n -= used) == 0) break; + at = 0; + } else at -= sz; + } + } + }; + + var nextDocId = 0; + var Doc = CodeMirror.Doc = function(text, mode, firstLine) { + if (!(this instanceof Doc)) return new Doc(text, mode, firstLine); + if (firstLine == null) firstLine = 0; + + BranchChunk.call(this, [new LeafChunk([makeLine("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.history = makeHistory(); + this.frontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = {from: start, to: start, head: start, anchor: start, shift: false, extend: false, goalColumn: null}; + this.id = ++nextDocId; + this.modeOption = mode; + + if (typeof text == "string") text = splitLines(text); + updateDoc(this, {from: start, to: start, text: text}, null, {head: start, anchor: start}); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + iter: function(from, to, op) { + if (op) this.iterN(from - this.first, to - from, op); + else this.iterN(this.first, this.first + this.size, from); + }, + + insert: function(at, lines) { + var height = 0; + for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height; + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) return lines; + return lines.join(lineSep || "\n"); + }, + setValue: function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: splitLines(code), origin: "setValue"}, + {head: top, anchor: top}, true); + }, + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) return lines; + return lines.join(lineSep || "\n"); + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;}, + setLine: function(line, text) { + if (isLine(this, line)) + replaceRange(this, text, Pos(line, 0), clipPos(this, Pos(line))); + }, + removeLine: function(line) { + if (isLine(this, line)) + replaceRange(this, "", Pos(line, 0), clipPos(this, Pos(line + 1, 0))); + }, + + getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);}, + getLineNumber: function(line) {return lineNo(line);}, + + lineCount: function() {return this.size;}, + firstLine: function() {return this.first;}, + lastLine: function() {return this.first + this.size - 1;}, + + clipPos: function(pos) {return clipPos(this, pos);}, + + getCursor: function(start) { + var sel = this.sel, pos; + if (start == null || start == "head") pos = sel.head; + else if (start == "anchor") pos = sel.anchor; + else if (start == "end" || start === false) pos = sel.to; + else pos = sel.from; + return copyPos(pos); + }, + somethingSelected: function() {return !posEq(this.sel.head, this.sel.anchor);}, + + setCursor: docOperation(function(line, ch, extend) { + var pos = clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line); + if (extend) extendSelection(this, pos); + else setSelection(this, pos, pos); + }), + setSelection: docOperation(function(anchor, head) { + setSelection(this, clipPos(this, anchor), clipPos(this, head || anchor)); + }), + extendSelection: docOperation(function(from, to) { + extendSelection(this, clipPos(this, from), to && clipPos(this, to)); + }), + + getSelection: function(lineSep) {return this.getRange(this.sel.from, this.sel.to, lineSep);}, + replaceSelection: function(code, collapse, origin) { + makeChange(this, {from: this.sel.from, to: this.sel.to, text: splitLines(code), origin: origin}, collapse || "around"); + }, + undo: docOperation(function() {makeChangeFromHistory(this, "undo");}), + redo: docOperation(function() {makeChangeFromHistory(this, "redo");}), + + setExtending: function(val) {this.sel.extend = val;}, + + historySize: function() { + var hist = this.history; + return {undo: hist.done.length, redo: hist.undone.length}; + }, + clearHistory: function() {this.history = makeHistory();}, + + markClean: function() { + this.history.dirtyCounter = 0; + this.history.lastOp = this.history.lastOrigin = null; + }, + isClean: function () {return this.history.dirtyCounter == 0;}, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)}; + }, + setHistory: function(histData) { + var hist = this.history = makeHistory(); + hist.done = histData.done.slice(0); + hist.undone = histData.undone.slice(0); + }, + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, "range"); + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark"); + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + markers.push(span.marker.parent || span.marker); + } + return markers; + }, + getAllMarks: function() { + var markers = []; + this.iter(function(line) { + var sps = line.markedSpans; + if (sps) for (var i = 0; i < sps.length; ++i) + if (sps[i].from != null) markers.push(sps[i].marker); + }); + return markers; + }, + + posFromIndex: function(off) { + var ch, lineNo = this.first; + this.iter(function(line) { + var sz = line.text.length + 1; + if (sz > off) { ch = off; return true; } + off -= sz; + ++lineNo; + }); + return clipPos(this, Pos(lineNo, ch)); + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) return 0; + this.iter(this.first, coords.line, function (line) { + index += line.text.length + 1; + }); + return index; + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = {from: this.sel.from, to: this.sel.to, head: this.sel.head, anchor: this.sel.anchor, + shift: this.sel.shift, extend: false, goalColumn: this.sel.goalColumn}; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc; + }, + + linkedDoc: function(options) { + if (!options) options = {}; + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) from = options.from; + if (options.to != null && options.to < to) to = options.to; + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from); + if (options.sharedHist) copy.history = this.history; + (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + return copy; + }, + unlinkDoc: function(other) { + if (other instanceof CodeMirror) other = other.doc; + if (this.linked) for (var i = 0; i < this.linked.length; ++i) { + var link = this.linked[i]; + if (link.doc != other) continue; + this.linked.splice(i, 1); + other.unlinkDoc(this); + break; + } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true); + other.history = makeHistory(); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode;}, + getEditor: function() {return this.cm;} + }); + + Doc.prototype.eachLine = Doc.prototype.iter; + + // The Doc methods that should be available on CodeMirror instances + var dontDelegate = "iter insert remove copy getEditor".split(" "); + for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments);}; + })(Doc.prototype[prop]); + + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) continue; + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) continue; + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } + } + propagate(doc, null, true); + } + + function attachDoc(cm, doc) { + if (doc.cm) throw new Error("This document is already in use."); + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + if (!cm.options.lineWrapping) computeMaxLength(cm); + cm.options.mode = doc.modeOption; + regChange(cm); + } + + // LINE UTILITIES + + function getLine(chunk, n) { + n -= chunk.first; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break; } + n -= sz; + } + } + return chunk.lines[n]; + } + + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function(line) { + var text = line.text; + if (n == end.line) text = text.slice(0, end.ch); + if (n == start.line) text = text.slice(start.ch); + out.push(text); + ++n; + }); + return out; + } + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function(line) { out.push(line.text); }); + return out; + } + + function updateLineHeight(line, height) { + var diff = height - line.height; + for (var n = line; n; n = n.parent) n.height += diff; + } + + function lineNo(line) { + if (line.parent == null) return null; + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) break; + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first; + } + + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], ch = child.height; + if (h < ch) { chunk = child; continue outer; } + h -= ch; + n += child.chunkSize(); + } + return n; + } while (!chunk.lines); + for (var i = 0, e = chunk.lines.length; i < e; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) break; + h -= lh; + } + return n + i; + } + + function heightAtLine(cm, lineObj) { + lineObj = visualLine(cm.doc, lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) break; + else h += line.height; + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i = 0; i < p.children.length; ++i) { + var cur = p.children[i]; + if (cur == chunk) break; + else h += cur.height; + } + } + return h; + } + + function getOrder(line) { + var order = line.order; + if (order == null) order = line.order = bidiOrdering(line.text); + return order; + } + + // HISTORY + + function makeHistory() { + return { + // Arrays of history events. Doing something adds an event to + // done and clears undo. Undoing moves events from done to + // undone, redoing moves them in the other direction. + done: [], undone: [], undoDepth: Infinity, + // Used to track when changes can be merged into a single undo + // event + lastTime: 0, lastOp: null, lastOrigin: null, + // Used by the isClean() method + dirtyCounter: 0 + }; + } + + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) { + if (line.markedSpans) + (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; + ++n; + }); + } + + function historyChangeFromChange(doc, change) { + var histChange = {from: change.from, to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true); + return histChange; + } + + function addToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur = lst(hist.done); + + if (cur && + (hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && hist.lastTime > time - 600) || change.origin.charAt(0) == "*"))) { + // Merge this change into the last event + var last = lst(cur.changes); + if (posEq(change.from, change.to) && posEq(change.from, last.to)) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + cur.anchorAfter = selAfter.anchor; cur.headAfter = selAfter.head; + } else { + // Can not be merged, start a new event. + cur = {changes: [historyChangeFromChange(doc, change)], + anchorBefore: doc.sel.anchor, headBefore: doc.sel.head, + anchorAfter: selAfter.anchor, headAfter: selAfter.head}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) + hist.done.shift(); + if (hist.dirtyCounter < 0) + // The user has made a change after undoing past the last clean state. + // We can never get back to a clean state now until markClean() is called. + hist.dirtyCounter = NaN; + else + hist.dirtyCounter++; + } + hist.lastTime = time; + hist.lastOp = opId; + hist.lastOrigin = change.origin; + } + + function removeClearedSpans(spans) { + if (!spans) return null; + for (var i = 0, out; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); } + else if (out) out.push(spans[i]); + } + return !out ? spans : out.length ? out : null; + } + + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) return null; + for (var i = 0, nw = []; i < change.text.length; ++i) + nw.push(removeClearedSpans(found[i])); + return nw; + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup) { + for (var i = 0, copy = []; i < events.length; ++i) { + var event = events[i], changes = event.changes, newChanges = []; + copy.push({changes: newChanges, anchorBefore: event.anchorBefore, headBefore: event.headBefore, + anchorAfter: event.anchorAfter, headAfter: event.headAfter}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m; + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } + } + } + return copy; + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSel(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + for (var j = 0; j < sub.changes.length; ++j) { + var cur = sub.changes[j]; + if (!sub.copied) { cur.from = copyPos(cur.from); cur.to = copyPos(cur.to); } + if (to < cur.from.line) { + cur.from.line += diff; + cur.to.line += diff; + } else if (from <= cur.to.line) { + ok = false; + break; + } + } + if (!sub.copied) { + sub.anchorBefore = copyPos(sub.anchorBefore); sub.headBefore = copyPos(sub.headBefore); + sub.anchorAfter = copyPos(sub.anchorAfter); sub.readAfter = copyPos(sub.headAfter); + sub.copied = true; + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } else { + rebaseHistSel(sub.anchorBefore); rebaseHistSel(sub.headBefore); + rebaseHistSel(sub.anchorAfter); rebaseHistSel(sub.headAfter); + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // EVENT OPERATORS + + function stopMethod() {e_stop(this);} + // Ensure an event has a stop method. + function addStop(event) { + if (!event.stop) event.stop = stopMethod; + return event; + } + + function e_preventDefault(e) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + function e_stopPropagation(e) { + if (e.stopPropagation) e.stopPropagation(); + else e.cancelBubble = true; + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + CodeMirror.e_stop = e_stop; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + + function e_target(e) {return e.target || e.srcElement;} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) b = 1; + else if (e.button & 2) b = 3; + else if (e.button & 4) b = 2; + } + if (mac && e.ctrlKey && b == 1) b = 3; + return b; + } + + // EVENT HANDLING + + function on(emitter, type, f) { + if (emitter.addEventListener) + emitter.addEventListener(type, f, false); + else if (emitter.attachEvent) + emitter.attachEvent("on" + type, f); + else { + var map = emitter._handlers || (emitter._handlers = {}); + var arr = map[type] || (map[type] = []); + arr.push(f); + } + } + + function off(emitter, type, f) { + if (emitter.removeEventListener) + emitter.removeEventListener(type, f, false); + else if (emitter.detachEvent) + emitter.detachEvent("on" + type, f); + else { + var arr = emitter._handlers && emitter._handlers[type]; + if (!arr) return; + for (var i = 0; i < arr.length; ++i) + if (arr[i] == f) { arr.splice(i, 1); break; } + } + } + + function signal(emitter, type /*, values...*/) { + var arr = emitter._handlers && emitter._handlers[type]; + if (!arr) return; + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args); + } + + var delayedCallbacks, delayedCallbackDepth = 0; + function signalLater(emitter, type /*, values...*/) { + var arr = emitter._handlers && emitter._handlers[type]; + if (!arr) return; + var args = Array.prototype.slice.call(arguments, 2); + if (!delayedCallbacks) { + ++delayedCallbackDepth; + delayedCallbacks = []; + setTimeout(fireDelayed, 0); + } + function bnd(f) {return function(){f.apply(null, args);};}; + for (var i = 0; i < arr.length; ++i) + delayedCallbacks.push(bnd(arr[i])); + } + + function fireDelayed() { + --delayedCallbackDepth; + var delayed = delayedCallbacks; + delayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) delayed[i](); + } + + function hasHandler(emitter, type) { + var arr = emitter._handlers && emitter._handlers[type]; + return arr && arr.length > 0; + } + + CodeMirror.on = on; CodeMirror.off = off; CodeMirror.signal = signal; + + // MISC UTILITIES + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerCutOff = 30; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; + + function Delayed() {this.id = null;} + Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) end = string.length; + } + for (var i = startIndex || 0, n = startValue || 0; i < end; ++i) { + if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); + else ++n; + } + return n; + } + CodeMirror.countColumn = countColumn; + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + spaceStrs.push(lst(spaceStrs) + " "); + return spaceStrs[n]; + } + + function lst(arr) { return arr[arr.length-1]; } + + function selectInput(node) { + if (ios) { // Mobile Safari apparently has a bug where select() is broken. + node.selectionStart = 0; + node.selectionEnd = node.value.length; + } else node.select(); + } + + function indexOf(collection, elt) { + if (collection.indexOf) return collection.indexOf(elt); + for (var i = 0, e = collection.length; i < e; ++i) + if (collection[i] == elt) return i; + return -1; + } + + function createObj(base, props) { + function Obj() {} + Obj.prototype = base; + var inst = new Obj(); + if (props) copyObj(props, inst); + return inst; + } + + function copyObj(obj, target) { + if (!target) target = {}; + for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop]; + return target; + } + + function emptyArray(size) { + for (var a = [], i = 0; i < size; ++i) a.push(undefined); + return a; + } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args);}; + } + + var nonASCIISingleCaseWordChar = /[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc]/; + function isWordChar(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); + } + + function isEmpty(obj) { + for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false; + return true; + } + + var isExtendingChar = /[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/; + + // DOM UTILITIES + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) e.className = className; + if (style) e.style.cssText = style; + if (typeof content == "string") setTextContent(e, content); + else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); + return e; + } + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + e.removeChild(e.firstChild); + return e; + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e); + } + + function setTextContent(e, str) { + if (ie_lt9) { + e.innerHTML = ""; + e.appendChild(document.createTextNode(str)); + } else e.textContent = str; + } + + function getRect(node) { + return node.getBoundingClientRect(); + } + CodeMirror.replaceGetRect = function(f) { getRect = f; }; + + // FEATURE DETECTION + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie_lt9) return false; + var div = elt('div'); + return "draggable" in div || "dragDrop" in div; + }(); + + // For a reason I have yet to figure out, some browsers disallow + // word wrapping between certain characters *only* if a new inline + // element is started between them. This makes it hard to reliably + // measure the position of things, since that requires inserting an + // extra span. This terribly fragile set of regexps matches the + // character combinations that suffer from this phenomenon on the + // various browsers. + var spanAffectsWrapping = /^$/; // Won't match any two-character string + if (gecko) spanAffectsWrapping = /$'/; + else if (safari && !/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent)) spanAffectsWrapping = /\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/; + else if (webkit) spanAffectsWrapping = /[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.]|\?[\w~`@#$%\^&*(_=+{[|><]/; + + var knownScrollbarWidth; + function scrollbarWidth(measure) { + if (knownScrollbarWidth != null) return knownScrollbarWidth; + var test = elt("div", null, null, "width: 50px; height: 50px; overflow-x: scroll"); + removeChildrenAndAdd(measure, test); + if (test.offsetWidth) + knownScrollbarWidth = test.offsetHeight - test.clientHeight; + return knownScrollbarWidth || 0; + } + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !ie_lt8; + } + if (zwspSupported) return elt("span", "\u200b"); + else return elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) nl = string.length; + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result; + } : function(string){return string.split(/\r\n?|\n/);}; + CodeMirror.splitLines = splitLines; + + var hasSelection = window.getSelection ? function(te) { + try { return te.selectionStart != te.selectionEnd; } + catch(e) { return false; } + } : function(te) { + try {var range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) return false; + return range.compareEndPoints("StartToEnd", range) != 0; + }; + + var hasCopyEvent = (function() { + var e = elt("div"); + if ("oncopy" in e) return true; + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == 'function'; + })(); + + // KEY NAMING + + var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 109: "-", 107: "=", 127: "Delete", + 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63276: "PageUp", 63277: "PageDown", 63275: "End", 63273: "Home", + 63234: "Left", 63232: "Up", 63235: "Right", 63233: "Down", 63302: "Insert", 63272: "Delete"}; + CodeMirror.keyNames = keyNames; + (function() { + // Number keys + for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i); + // Alphabetic keys + for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); + // Function keys + for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; + })(); + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) return f(from, to, "ltr"); + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr"); + } + } + + function bidiLeft(part) { return part.level % 2 ? part.to : part.from; } + function bidiRight(part) { return part.level % 2 ? part.from : part.to; } + + function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; } + function lineRight(line) { + var order = getOrder(line); + if (!order) return line.text.length; + return bidiRight(lst(order)); + } + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(cm.doc, line); + if (visual != line) lineN = lineNo(visual); + var order = getOrder(visual); + var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); + return Pos(lineN, ch); + } + function lineEnd(cm, lineN) { + var merged, line; + while (merged = collapsedSpanAtEnd(line = getLine(cm.doc, lineN))) + lineN = merged.find().to.line; + var order = getOrder(line); + var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line); + return Pos(lineN, ch); + } + + // This is somewhat involved. It is needed in order to move + // 'visually' through bi-directional text -- i.e., pressing left + // should make the cursor go left, even when in RTL text. The + // tricky part is the 'jumps', where RTL and LTR text touch each + // other. This often requires the cursor offset to move more than + // one unit, in order to visually move one unit. + function moveVisually(line, start, dir, byUnit) { + var bidi = getOrder(line); + if (!bidi) return moveLogically(line, start, dir, byUnit); + var moveOneUnit = byUnit ? function(pos, dir) { + do pos += dir; + while (pos > 0 && isExtendingChar.test(line.text.charAt(pos))); + return pos; + } : function(pos, dir) { return pos + dir; }; + var linedir = bidi[0].level; + for (var i = 0; i < bidi.length; ++i) { + var part = bidi[i], sticky = part.level % 2 == linedir; + if ((part.from < start && part.to > start) || + (sticky && (part.from == start || part.to == start))) break; + } + var target = moveOneUnit(start, part.level % 2 ? -dir : dir); + + while (target != null) { + if (part.level % 2 == linedir) { + if (target < part.from || target > part.to) { + part = bidi[i += dir]; + target = part && (dir > 0 == part.level % 2 ? moveOneUnit(part.to, -1) : moveOneUnit(part.from, 1)); + } else break; + } else { + if (target == bidiLeft(part)) { + part = bidi[--i]; + target = part && bidiRight(part); + } else if (target == bidiRight(part)) { + part = bidi[++i]; + target = part && bidiLeft(part); + } else break; + } + } + + return target < 0 || target > line.text.length ? null : target; + } + + function moveLogically(line, start, dir, byUnit) { + var target = start + dir; + if (byUnit) while (target > 0 && isExtendingChar.test(line.text.charAt(target))) target += dir; + return target < 0 || target > line.text.length ? null : target; + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL"; + // Character types for codepoints 0x600 to 0x6ff + var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr"; + function charType(code) { + if (code <= 0xff) return lowTypes.charAt(code); + else if (0x590 <= code && code <= 0x5f4) return "R"; + else if (0x600 <= code && code <= 0x6ff) return arabicTypes.charAt(code - 0x600); + else if (0x700 <= code && code <= 0x8ac) return "r"; + else return "L"; + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + // Browsers seem to always treat the boundaries of block elements as being L. + var outerType = "L"; + + return function(str) { + if (!bidiRE.test(str)) return false; + var len = str.length, types = []; + for (var i = 0, type; i < len; ++i) + types.push(type = charType(str.charCodeAt(i))); + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i = 0, prev = outerType; i < len; ++i) { + var type = types[i]; + if (type == "m") types[i] = prev; + else prev = type; + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i = 0, cur = outerType; i < len; ++i) { + var type = types[i]; + if (type == "1" && cur == "r") types[i] = "n"; + else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i = 1, prev = types[0]; i < len - 1; ++i) { + var type = types[i]; + if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"; + else if (type == "," && prev == types[i+1] && + (prev == "1" || prev == "n")) types[i] = prev; + prev = type; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i = 0; i < len; ++i) { + var type = types[i]; + if (type == ",") types[i] = "N"; + else if (type == "%") { + for (var end = i + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i && types[i-1] == "!") || (end < len - 1 && types[end] == "1") ? "1" : "N"; + for (var j = i; j < end; ++j) types[j] = replace; + i = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i = 0, cur = outerType; i < len; ++i) { + var type = types[i]; + if (cur == "L" && type == "1") types[i] = "L"; + else if (isStrong.test(type)) cur = type; + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i = 0; i < len; ++i) { + if (isNeutral.test(types[i])) { + for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {} + var before = (i ? types[i-1] : outerType) == "L"; + var after = (end < len - 1 ? types[end] : outerType) == "L"; + var replace = before || after ? "L" : "R"; + for (var j = i; j < end; ++j) types[j] = replace; + i = end - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i = 0; i < len;) { + if (countsAsLeft.test(types[i])) { + var start = i; + for (++i; i < len && countsAsLeft.test(types[i]); ++i) {} + order.push({from: start, to: i, level: 0}); + } else { + var pos = i, at = order.length; + for (++i; i < len && types[i] != "L"; ++i) {} + for (var j = pos; j < i;) { + if (countsAsNum.test(types[j])) { + if (pos < j) order.splice(at, 0, {from: pos, to: j, level: 1}); + var nstart = j; + for (++j; j < i && countsAsNum.test(types[j]); ++j) {} + order.splice(at, 0, {from: nstart, to: j, level: 2}); + pos = j; + } else ++j; + } + if (pos < i) order.splice(at, 0, {from: pos, to: i, level: 1}); + } + } + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift({from: 0, to: m[0].length, level: 0}); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push({from: len - m[0].length, to: len, level: 0}); + } + if (order[0].level != lst(order).level) + order.push({from: len, to: len, level: order[0].level}); + + return order; + }; + })(); + + // THE END + + CodeMirror.version = "3.11"; + + return CodeMirror; +})(); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/css.js b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/css.js index 1ef72b517..4badaf821 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/css.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/css.js @@ -1,567 +1,567 @@ -CodeMirror.defineMode("css", function(config) { - return CodeMirror.getMode(config, "text/css"); -}); - -CodeMirror.defineMode("css-base", function(config, parserConfig) { - "use strict"; - - var indentUnit = config.indentUnit, - hooks = parserConfig.hooks || {}, - atMediaTypes = parserConfig.atMediaTypes || {}, - atMediaFeatures = parserConfig.atMediaFeatures || {}, - propertyKeywords = parserConfig.propertyKeywords || {}, - colorKeywords = parserConfig.colorKeywords || {}, - valueKeywords = parserConfig.valueKeywords || {}, - allowNested = !!parserConfig.allowNested, - type = null; - - function ret(style, tp) { type = tp; return style; } - - function tokenBase(stream, state) { - var ch = stream.next(); - if (hooks[ch]) { - // result[0] is style and result[1] is type - var result = hooks[ch](stream, state); - if (result !== false) return result; - } - if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("def", stream.current());} - else if (ch == "=") ret(null, "compare"); - else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); - else if (ch == "\"" || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - else if (ch == "#") { - stream.eatWhile(/[\w\\\-]/); - return ret("atom", "hash"); - } - else if (ch == "!") { - stream.match(/^\s*\w*/); - return ret("keyword", "important"); - } - else if (/\d/.test(ch)) { - stream.eatWhile(/[\w.%]/); - return ret("number", "unit"); - } - else if (ch === "-") { - if (/\d/.test(stream.peek())) { - stream.eatWhile(/[\w.%]/); - return ret("number", "unit"); - } else if (stream.match(/^[^-]+-/)) { - return ret("meta", "meta"); - } - } - else if (/[,+>*\/]/.test(ch)) { - return ret(null, "select-op"); - } - else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) { - return ret("qualifier", "qualifier"); - } - else if (ch == ":") { - return ret("operator", ch); - } - else if (/[;{}\[\]\(\)]/.test(ch)) { - return ret(null, ch); - } - else if (ch == "u" && stream.match("rl(")) { - stream.backUp(1); - state.tokenize = tokenParenthesized; - return ret("property", "variable"); - } - else { - stream.eatWhile(/[\w\\\-]/); - return ret("property", "variable"); - } - } - - function tokenString(quote, nonInclusive) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) - break; - escaped = !escaped && ch == "\\"; - } - if (!escaped) { - if (nonInclusive) stream.backUp(1); - state.tokenize = tokenBase; - } - return ret("string", "string"); - }; - } - - function tokenParenthesized(stream, state) { - stream.next(); // Must be '(' - if (!stream.match(/\s*[\"\']/, false)) - state.tokenize = tokenString(")", true); - else - state.tokenize = tokenBase; - return ret(null, "("); - } - - return { - startState: function(base) { - return {tokenize: tokenBase, - baseIndent: base || 0, - stack: []}; - }, - - token: function(stream, state) { - - // Use these terms when applicable (see http://www.xanthir.com/blog/b4E50) - // - // rule** or **ruleset: - // A selector + braces combo, or an at-rule. - // - // declaration block: - // A sequence of declarations. - // - // declaration: - // A property + colon + value combo. - // - // property value: - // The entire value of a property. - // - // component value: - // A single piece of a property value. Like the 5px in - // text-shadow: 0 0 5px blue;. Can also refer to things that are - // multiple terms, like the 1-4 terms that make up the background-size - // portion of the background shorthand. - // - // term: - // The basic unit of author-facing CSS, like a single number (5), - // dimension (5px), string ("foo"), or function. Officially defined - // by the CSS 2.1 grammar (look for the 'term' production) - // - // - // simple selector: - // A single atomic selector, like a type selector, an attr selector, a - // class selector, etc. - // - // compound selector: - // One or more simple selectors without a combinator. div.example is - // compound, div > .example is not. - // - // complex selector: - // One or more compound selectors chained with combinators. - // - // combinator: - // The parts of selectors that express relationships. There are four - // currently - the space (descendant combinator), the greater-than - // bracket (child combinator), the plus sign (next sibling combinator), - // and the tilda (following sibling combinator). - // - // sequence of selectors: - // One or more of the named type of selector chained with commas. - - state.tokenize = state.tokenize || tokenBase; - if (state.tokenize == tokenBase && stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (style && typeof style != "string") style = ret(style[0], style[1]); - - // Changing style returned based on context - var context = state.stack[state.stack.length-1]; - if (style == "variable") { - if (type == "variable-definition") state.stack.push("propertyValue"); - return "variable-2"; - } else if (style == "property") { - if (context == "propertyValue"){ - if (valueKeywords[stream.current()]) { - style = "string-2"; - } else if (colorKeywords[stream.current()]) { - style = "keyword"; - } else { - style = "variable-2"; - } - } else if (context == "rule") { - if (!propertyKeywords[stream.current()]) { - style += " error"; - } - } else if (context == "block") { - // if a value is present in both property, value, or color, the order - // of preference is property -> color -> value - if (propertyKeywords[stream.current()]) { - style = "property"; - } else if (colorKeywords[stream.current()]) { - style = "keyword"; - } else if (valueKeywords[stream.current()]) { - style = "string-2"; - } else { - style = "tag"; - } - } else if (!context || context == "@media{") { - style = "tag"; - } else if (context == "@media") { - if (atMediaTypes[stream.current()]) { - style = "attribute"; // Known attribute - } else if (/^(only|not)$/i.test(stream.current())) { - style = "keyword"; - } else if (stream.current().toLowerCase() == "and") { - style = "error"; // "and" is only allowed in @mediaType - } else if (atMediaFeatures[stream.current()]) { - style = "error"; // Known property, should be in @mediaType( - } else { - // Unknown, expecting keyword or attribute, assuming attribute - style = "attribute error"; - } - } else if (context == "@mediaType") { - if (atMediaTypes[stream.current()]) { - style = "attribute"; - } else if (stream.current().toLowerCase() == "and") { - style = "operator"; - } else if (/^(only|not)$/i.test(stream.current())) { - style = "error"; // Only allowed in @media - } else if (atMediaFeatures[stream.current()]) { - style = "error"; // Known property, should be in parentheses - } else { - // Unknown attribute or property, but expecting property (preceded - // by "and"). Should be in parentheses - style = "error"; - } - } else if (context == "@mediaType(") { - if (propertyKeywords[stream.current()]) { - // do nothing, remains "property" - } else if (atMediaTypes[stream.current()]) { - style = "error"; // Known property, should be in parentheses - } else if (stream.current().toLowerCase() == "and") { - style = "operator"; - } else if (/^(only|not)$/i.test(stream.current())) { - style = "error"; // Only allowed in @media - } else { - style += " error"; - } - } else { - style = "error"; - } - } else if (style == "atom") { - if(!context || context == "@media{" || context == "block") { - style = "builtin"; - } else if (context == "propertyValue") { - if (!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) { - style += " error"; - } - } else { - style = "error"; - } - } else if (context == "@media" && type == "{") { - style = "error"; - } - - // Push/pop context stack - if (type == "{") { - if (context == "@media" || context == "@mediaType") { - state.stack.pop(); - state.stack[state.stack.length-1] = "@media{"; - } - else { - var newContext = allowNested ? "block" : "rule"; - state.stack.push(newContext); - } - } - else if (type == "}") { - var lastState = state.stack[state.stack.length - 1]; - if (lastState == "interpolation") style = "operator"; - state.stack.pop(); - if (context == "propertyValue") state.stack.pop(); - } - else if (type == "interpolation") state.stack.push("interpolation"); - else if (type == "@media") state.stack.push("@media"); - else if (context == "@media" && /\b(keyword|attribute)\b/.test(style)) - state.stack.push("@mediaType"); - else if (context == "@mediaType" && stream.current() == ",") state.stack.pop(); - else if (context == "@mediaType" && type == "(") state.stack.push("@mediaType("); - else if (context == "@mediaType(" && type == ")") state.stack.pop(); - else if ((context == "rule" || context == "block") && type == ":") state.stack.push("propertyValue"); - else if (context == "propertyValue" && type == ";") state.stack.pop(); - return style; - }, - - indent: function(state, textAfter) { - var n = state.stack.length; - if (/^\}/.test(textAfter)) - n -= state.stack[state.stack.length-1] == "propertyValue" ? 2 : 1; - return state.baseIndent + n * indentUnit; - }, - - electricChars: "}" - }; -}); - -(function() { - function keySet(array) { - var keys = {}; - for (var i = 0; i < array.length; ++i) { - keys[array[i]] = true; - } - return keys; - } - - var atMediaTypes = keySet([ - "all", "aural", "braille", "handheld", "print", "projection", "screen", - "tty", "tv", "embossed" - ]); - - var atMediaFeatures = keySet([ - "width", "min-width", "max-width", "height", "min-height", "max-height", - "device-width", "min-device-width", "max-device-width", "device-height", - "min-device-height", "max-device-height", "aspect-ratio", - "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", - "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", - "max-color", "color-index", "min-color-index", "max-color-index", - "monochrome", "min-monochrome", "max-monochrome", "resolution", - "min-resolution", "max-resolution", "scan", "grid" - ]); - - var propertyKeywords = keySet([ - "align-content", "align-items", "align-self", "alignment-adjust", - "alignment-baseline", "anchor-point", "animation", "animation-delay", - "animation-direction", "animation-duration", "animation-iteration-count", - "animation-name", "animation-play-state", "animation-timing-function", - "appearance", "azimuth", "backface-visibility", "background", - "background-attachment", "background-clip", "background-color", - "background-image", "background-origin", "background-position", - "background-repeat", "background-size", "baseline-shift", "binding", - "bleed", "bookmark-label", "bookmark-level", "bookmark-state", - "bookmark-target", "border", "border-bottom", "border-bottom-color", - "border-bottom-left-radius", "border-bottom-right-radius", - "border-bottom-style", "border-bottom-width", "border-collapse", - "border-color", "border-image", "border-image-outset", - "border-image-repeat", "border-image-slice", "border-image-source", - "border-image-width", "border-left", "border-left-color", - "border-left-style", "border-left-width", "border-radius", "border-right", - "border-right-color", "border-right-style", "border-right-width", - "border-spacing", "border-style", "border-top", "border-top-color", - "border-top-left-radius", "border-top-right-radius", "border-top-style", - "border-top-width", "border-width", "bottom", "box-decoration-break", - "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", - "caption-side", "clear", "clip", "color", "color-profile", "column-count", - "column-fill", "column-gap", "column-rule", "column-rule-color", - "column-rule-style", "column-rule-width", "column-span", "column-width", - "columns", "content", "counter-increment", "counter-reset", "crop", "cue", - "cue-after", "cue-before", "cursor", "direction", "display", - "dominant-baseline", "drop-initial-after-adjust", - "drop-initial-after-align", "drop-initial-before-adjust", - "drop-initial-before-align", "drop-initial-size", "drop-initial-value", - "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", - "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", - "float", "float-offset", "font", "font-feature-settings", "font-family", - "font-kerning", "font-language-override", "font-size", "font-size-adjust", - "font-stretch", "font-style", "font-synthesis", "font-variant", - "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", - "font-variant-ligatures", "font-variant-numeric", "font-variant-position", - "font-weight", "grid-cell", "grid-column", "grid-column-align", - "grid-column-sizing", "grid-column-span", "grid-columns", "grid-flow", - "grid-row", "grid-row-align", "grid-row-sizing", "grid-row-span", - "grid-rows", "grid-template", "hanging-punctuation", "height", "hyphens", - "icon", "image-orientation", "image-rendering", "image-resolution", - "inline-box-align", "justify-content", "left", "letter-spacing", - "line-break", "line-height", "line-stacking", "line-stacking-ruby", - "line-stacking-shift", "line-stacking-strategy", "list-style", - "list-style-image", "list-style-position", "list-style-type", "margin", - "margin-bottom", "margin-left", "margin-right", "margin-top", - "marker-offset", "marks", "marquee-direction", "marquee-loop", - "marquee-play-count", "marquee-speed", "marquee-style", "max-height", - "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", - "nav-left", "nav-right", "nav-up", "opacity", "order", "orphans", "outline", - "outline-color", "outline-offset", "outline-style", "outline-width", - "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", - "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", - "page", "page-break-after", "page-break-before", "page-break-inside", - "page-policy", "pause", "pause-after", "pause-before", "perspective", - "perspective-origin", "pitch", "pitch-range", "play-during", "position", - "presentation-level", "punctuation-trim", "quotes", "rendering-intent", - "resize", "rest", "rest-after", "rest-before", "richness", "right", - "rotation", "rotation-point", "ruby-align", "ruby-overhang", - "ruby-position", "ruby-span", "size", "speak", "speak-as", "speak-header", - "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", - "tab-size", "table-layout", "target", "target-name", "target-new", - "target-position", "text-align", "text-align-last", "text-decoration", - "text-decoration-color", "text-decoration-line", "text-decoration-skip", - "text-decoration-style", "text-emphasis", "text-emphasis-color", - "text-emphasis-position", "text-emphasis-style", "text-height", - "text-indent", "text-justify", "text-outline", "text-shadow", - "text-space-collapse", "text-transform", "text-underline-position", - "text-wrap", "top", "transform", "transform-origin", "transform-style", - "transition", "transition-delay", "transition-duration", - "transition-property", "transition-timing-function", "unicode-bidi", - "vertical-align", "visibility", "voice-balance", "voice-duration", - "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", - "voice-volume", "volume", "white-space", "widows", "width", "word-break", - "word-spacing", "word-wrap", "z-index" - ]); - - var colorKeywords = keySet([ - "black", "silver", "gray", "white", "maroon", "red", "purple", "fuchsia", - "green", "lime", "olive", "yellow", "navy", "blue", "teal", "aqua" - ]); - - var valueKeywords = keySet([ - "above", "absolute", "activeborder", "activecaption", "afar", - "after-white-space", "ahead", "alias", "all", "all-scroll", "alternate", - "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", - "arabic-indic", "armenian", "asterisks", "auto", "avoid", "background", - "backwards", "baseline", "below", "bidi-override", "binary", "bengali", - "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", - "both", "bottom", "break-all", "break-word", "button", "button-bevel", - "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "cambodian", - "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", - "cell", "center", "checkbox", "circle", "cjk-earthly-branch", - "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", - "col-resize", "collapse", "compact", "condensed", "contain", "content", - "content-box", "context-menu", "continuous", "copy", "cover", "crop", - "cross", "crosshair", "currentcolor", "cursive", "dashed", "decimal", - "decimal-leading-zero", "default", "default-button", "destination-atop", - "destination-in", "destination-out", "destination-over", "devanagari", - "disc", "discard", "document", "dot-dash", "dot-dot-dash", "dotted", - "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", - "element", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", - "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", - "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", - "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", - "ethiopic-halehame-gez", "ethiopic-halehame-om-et", - "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", - "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", - "ethiopic-halehame-tig", "ew-resize", "expanded", "extra-condensed", - "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "footnotes", - "forwards", "from", "geometricPrecision", "georgian", "graytext", "groove", - "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew", - "help", "hidden", "hide", "higher", "highlight", "highlighttext", - "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore", - "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", - "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", - "inline-block", "inline-table", "inset", "inside", "intrinsic", "invert", - "italic", "justify", "kannada", "katakana", "katakana-iroha", "khmer", - "landscape", "lao", "large", "larger", "left", "level", "lighter", - "line-through", "linear", "lines", "list-item", "listbox", "listitem", - "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", - "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", - "lower-roman", "lowercase", "ltr", "malayalam", "match", - "media-controls-background", "media-current-time-display", - "media-fullscreen-button", "media-mute-button", "media-play-button", - "media-return-to-realtime-button", "media-rewind-button", - "media-seek-back-button", "media-seek-forward-button", "media-slider", - "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", - "media-volume-slider-container", "media-volume-sliderthumb", "medium", - "menu", "menulist", "menulist-button", "menulist-text", - "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", - "mix", "mongolian", "monospace", "move", "multiple", "myanmar", "n-resize", - "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", - "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", - "ns-resize", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", - "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", - "outside", "overlay", "overline", "padding", "padding-box", "painted", - "paused", "persian", "plus-darker", "plus-lighter", "pointer", "portrait", - "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", - "radio", "read-only", "read-write", "read-write-plaintext-only", "relative", - "repeat", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", - "ridge", "right", "round", "row-resize", "rtl", "run-in", "running", - "s-resize", "sans-serif", "scroll", "scrollbar", "se-resize", "searchfield", - "searchfield-cancel-button", "searchfield-decoration", - "searchfield-results-button", "searchfield-results-decoration", - "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", - "single", "skip-white-space", "slide", "slider-horizontal", - "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", - "small", "small-caps", "small-caption", "smaller", "solid", "somali", - "source-atop", "source-in", "source-out", "source-over", "space", "square", - "square-button", "start", "static", "status-bar", "stretch", "stroke", - "sub", "subpixel-antialiased", "super", "sw-resize", "table", - "table-caption", "table-cell", "table-column", "table-column-group", - "table-footer-group", "table-header-group", "table-row", "table-row-group", - "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", - "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", - "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", - "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", - "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", - "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", - "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", - "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", - "visibleStroke", "visual", "w-resize", "wait", "wave", "white", "wider", - "window", "windowframe", "windowtext", "x-large", "x-small", "xor", - "xx-large", "xx-small" - ]); - - function tokenCComment(stream, state) { - var maybeEnd = false, ch; - while ((ch = stream.next()) != null) { - if (maybeEnd && ch == "/") { - state.tokenize = null; - break; - } - maybeEnd = (ch == "*"); - } - return ["comment", "comment"]; - } - - CodeMirror.defineMIME("text/css", { - atMediaTypes: atMediaTypes, - atMediaFeatures: atMediaFeatures, - propertyKeywords: propertyKeywords, - colorKeywords: colorKeywords, - valueKeywords: valueKeywords, - hooks: { - "<": function(stream, state) { - function tokenSGMLComment(stream, state) { - var dashes = 0, ch; - while ((ch = stream.next()) != null) { - if (dashes >= 2 && ch == ">") { - state.tokenize = null; - break; - } - dashes = (ch == "-") ? dashes + 1 : 0; - } - return ["comment", "comment"]; - } - if (stream.eat("!")) { - state.tokenize = tokenSGMLComment; - return tokenSGMLComment(stream, state); - } - }, - "/": function(stream, state) { - if (stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } - return false; - } - }, - name: "css-base" - }); - - CodeMirror.defineMIME("text/x-scss", { - atMediaTypes: atMediaTypes, - atMediaFeatures: atMediaFeatures, - propertyKeywords: propertyKeywords, - colorKeywords: colorKeywords, - valueKeywords: valueKeywords, - allowNested: true, - hooks: { - "$": function(stream) { - stream.match(/^[\w-]+/); - if (stream.peek() == ":") { - return ["variable", "variable-definition"]; - } - return ["variable", "variable"]; - }, - "/": function(stream, state) { - if (stream.eat("/")) { - stream.skipToEnd(); - return ["comment", "comment"]; - } else if (stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } else { - return ["operator", "operator"]; - } - }, - "#": function(stream) { - if (stream.eat("{")) { - return ["operator", "interpolation"]; - } else { - stream.eatWhile(/[\w\\\-]/); - return ["atom", "hash"]; - } - } - }, - name: "css-base" - }); -})(); +CodeMirror.defineMode("css", function(config) { + return CodeMirror.getMode(config, "text/css"); +}); + +CodeMirror.defineMode("css-base", function(config, parserConfig) { + "use strict"; + + var indentUnit = config.indentUnit, + hooks = parserConfig.hooks || {}, + atMediaTypes = parserConfig.atMediaTypes || {}, + atMediaFeatures = parserConfig.atMediaFeatures || {}, + propertyKeywords = parserConfig.propertyKeywords || {}, + colorKeywords = parserConfig.colorKeywords || {}, + valueKeywords = parserConfig.valueKeywords || {}, + allowNested = !!parserConfig.allowNested, + type = null; + + function ret(style, tp) { type = tp; return style; } + + function tokenBase(stream, state) { + var ch = stream.next(); + if (hooks[ch]) { + // result[0] is style and result[1] is type + var result = hooks[ch](stream, state); + if (result !== false) return result; + } + if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("def", stream.current());} + else if (ch == "=") ret(null, "compare"); + else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); + else if (ch == "\"" || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + else if (ch == "#") { + stream.eatWhile(/[\w\\\-]/); + return ret("atom", "hash"); + } + else if (ch == "!") { + stream.match(/^\s*\w*/); + return ret("keyword", "important"); + } + else if (/\d/.test(ch)) { + stream.eatWhile(/[\w.%]/); + return ret("number", "unit"); + } + else if (ch === "-") { + if (/\d/.test(stream.peek())) { + stream.eatWhile(/[\w.%]/); + return ret("number", "unit"); + } else if (stream.match(/^[^-]+-/)) { + return ret("meta", "meta"); + } + } + else if (/[,+>*\/]/.test(ch)) { + return ret(null, "select-op"); + } + else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) { + return ret("qualifier", "qualifier"); + } + else if (ch == ":") { + return ret("operator", ch); + } + else if (/[;{}\[\]\(\)]/.test(ch)) { + return ret(null, ch); + } + else if (ch == "u" && stream.match("rl(")) { + stream.backUp(1); + state.tokenize = tokenParenthesized; + return ret("property", "variable"); + } + else { + stream.eatWhile(/[\w\\\-]/); + return ret("property", "variable"); + } + } + + function tokenString(quote, nonInclusive) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) + break; + escaped = !escaped && ch == "\\"; + } + if (!escaped) { + if (nonInclusive) stream.backUp(1); + state.tokenize = tokenBase; + } + return ret("string", "string"); + }; + } + + function tokenParenthesized(stream, state) { + stream.next(); // Must be '(' + if (!stream.match(/\s*[\"\']/, false)) + state.tokenize = tokenString(")", true); + else + state.tokenize = tokenBase; + return ret(null, "("); + } + + return { + startState: function(base) { + return {tokenize: tokenBase, + baseIndent: base || 0, + stack: []}; + }, + + token: function(stream, state) { + + // Use these terms when applicable (see http://www.xanthir.com/blog/b4E50) + // + // rule** or **ruleset: + // A selector + braces combo, or an at-rule. + // + // declaration block: + // A sequence of declarations. + // + // declaration: + // A property + colon + value combo. + // + // property value: + // The entire value of a property. + // + // component value: + // A single piece of a property value. Like the 5px in + // text-shadow: 0 0 5px blue;. Can also refer to things that are + // multiple terms, like the 1-4 terms that make up the background-size + // portion of the background shorthand. + // + // term: + // The basic unit of author-facing CSS, like a single number (5), + // dimension (5px), string ("foo"), or function. Officially defined + // by the CSS 2.1 grammar (look for the 'term' production) + // + // + // simple selector: + // A single atomic selector, like a type selector, an attr selector, a + // class selector, etc. + // + // compound selector: + // One or more simple selectors without a combinator. div.example is + // compound, div > .example is not. + // + // complex selector: + // One or more compound selectors chained with combinators. + // + // combinator: + // The parts of selectors that express relationships. There are four + // currently - the space (descendant combinator), the greater-than + // bracket (child combinator), the plus sign (next sibling combinator), + // and the tilda (following sibling combinator). + // + // sequence of selectors: + // One or more of the named type of selector chained with commas. + + state.tokenize = state.tokenize || tokenBase; + if (state.tokenize == tokenBase && stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (style && typeof style != "string") style = ret(style[0], style[1]); + + // Changing style returned based on context + var context = state.stack[state.stack.length-1]; + if (style == "variable") { + if (type == "variable-definition") state.stack.push("propertyValue"); + return "variable-2"; + } else if (style == "property") { + if (context == "propertyValue"){ + if (valueKeywords[stream.current()]) { + style = "string-2"; + } else if (colorKeywords[stream.current()]) { + style = "keyword"; + } else { + style = "variable-2"; + } + } else if (context == "rule") { + if (!propertyKeywords[stream.current()]) { + style += " error"; + } + } else if (context == "block") { + // if a value is present in both property, value, or color, the order + // of preference is property -> color -> value + if (propertyKeywords[stream.current()]) { + style = "property"; + } else if (colorKeywords[stream.current()]) { + style = "keyword"; + } else if (valueKeywords[stream.current()]) { + style = "string-2"; + } else { + style = "tag"; + } + } else if (!context || context == "@media{") { + style = "tag"; + } else if (context == "@media") { + if (atMediaTypes[stream.current()]) { + style = "attribute"; // Known attribute + } else if (/^(only|not)$/i.test(stream.current())) { + style = "keyword"; + } else if (stream.current().toLowerCase() == "and") { + style = "error"; // "and" is only allowed in @mediaType + } else if (atMediaFeatures[stream.current()]) { + style = "error"; // Known property, should be in @mediaType( + } else { + // Unknown, expecting keyword or attribute, assuming attribute + style = "attribute error"; + } + } else if (context == "@mediaType") { + if (atMediaTypes[stream.current()]) { + style = "attribute"; + } else if (stream.current().toLowerCase() == "and") { + style = "operator"; + } else if (/^(only|not)$/i.test(stream.current())) { + style = "error"; // Only allowed in @media + } else if (atMediaFeatures[stream.current()]) { + style = "error"; // Known property, should be in parentheses + } else { + // Unknown attribute or property, but expecting property (preceded + // by "and"). Should be in parentheses + style = "error"; + } + } else if (context == "@mediaType(") { + if (propertyKeywords[stream.current()]) { + // do nothing, remains "property" + } else if (atMediaTypes[stream.current()]) { + style = "error"; // Known property, should be in parentheses + } else if (stream.current().toLowerCase() == "and") { + style = "operator"; + } else if (/^(only|not)$/i.test(stream.current())) { + style = "error"; // Only allowed in @media + } else { + style += " error"; + } + } else { + style = "error"; + } + } else if (style == "atom") { + if(!context || context == "@media{" || context == "block") { + style = "builtin"; + } else if (context == "propertyValue") { + if (!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) { + style += " error"; + } + } else { + style = "error"; + } + } else if (context == "@media" && type == "{") { + style = "error"; + } + + // Push/pop context stack + if (type == "{") { + if (context == "@media" || context == "@mediaType") { + state.stack.pop(); + state.stack[state.stack.length-1] = "@media{"; + } + else { + var newContext = allowNested ? "block" : "rule"; + state.stack.push(newContext); + } + } + else if (type == "}") { + var lastState = state.stack[state.stack.length - 1]; + if (lastState == "interpolation") style = "operator"; + state.stack.pop(); + if (context == "propertyValue") state.stack.pop(); + } + else if (type == "interpolation") state.stack.push("interpolation"); + else if (type == "@media") state.stack.push("@media"); + else if (context == "@media" && /\b(keyword|attribute)\b/.test(style)) + state.stack.push("@mediaType"); + else if (context == "@mediaType" && stream.current() == ",") state.stack.pop(); + else if (context == "@mediaType" && type == "(") state.stack.push("@mediaType("); + else if (context == "@mediaType(" && type == ")") state.stack.pop(); + else if ((context == "rule" || context == "block") && type == ":") state.stack.push("propertyValue"); + else if (context == "propertyValue" && type == ";") state.stack.pop(); + return style; + }, + + indent: function(state, textAfter) { + var n = state.stack.length; + if (/^\}/.test(textAfter)) + n -= state.stack[state.stack.length-1] == "propertyValue" ? 2 : 1; + return state.baseIndent + n * indentUnit; + }, + + electricChars: "}" + }; +}); + +(function() { + function keySet(array) { + var keys = {}; + for (var i = 0; i < array.length; ++i) { + keys[array[i]] = true; + } + return keys; + } + + var atMediaTypes = keySet([ + "all", "aural", "braille", "handheld", "print", "projection", "screen", + "tty", "tv", "embossed" + ]); + + var atMediaFeatures = keySet([ + "width", "min-width", "max-width", "height", "min-height", "max-height", + "device-width", "min-device-width", "max-device-width", "device-height", + "min-device-height", "max-device-height", "aspect-ratio", + "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", + "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", + "max-color", "color-index", "min-color-index", "max-color-index", + "monochrome", "min-monochrome", "max-monochrome", "resolution", + "min-resolution", "max-resolution", "scan", "grid" + ]); + + var propertyKeywords = keySet([ + "align-content", "align-items", "align-self", "alignment-adjust", + "alignment-baseline", "anchor-point", "animation", "animation-delay", + "animation-direction", "animation-duration", "animation-iteration-count", + "animation-name", "animation-play-state", "animation-timing-function", + "appearance", "azimuth", "backface-visibility", "background", + "background-attachment", "background-clip", "background-color", + "background-image", "background-origin", "background-position", + "background-repeat", "background-size", "baseline-shift", "binding", + "bleed", "bookmark-label", "bookmark-level", "bookmark-state", + "bookmark-target", "border", "border-bottom", "border-bottom-color", + "border-bottom-left-radius", "border-bottom-right-radius", + "border-bottom-style", "border-bottom-width", "border-collapse", + "border-color", "border-image", "border-image-outset", + "border-image-repeat", "border-image-slice", "border-image-source", + "border-image-width", "border-left", "border-left-color", + "border-left-style", "border-left-width", "border-radius", "border-right", + "border-right-color", "border-right-style", "border-right-width", + "border-spacing", "border-style", "border-top", "border-top-color", + "border-top-left-radius", "border-top-right-radius", "border-top-style", + "border-top-width", "border-width", "bottom", "box-decoration-break", + "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", + "caption-side", "clear", "clip", "color", "color-profile", "column-count", + "column-fill", "column-gap", "column-rule", "column-rule-color", + "column-rule-style", "column-rule-width", "column-span", "column-width", + "columns", "content", "counter-increment", "counter-reset", "crop", "cue", + "cue-after", "cue-before", "cursor", "direction", "display", + "dominant-baseline", "drop-initial-after-adjust", + "drop-initial-after-align", "drop-initial-before-adjust", + "drop-initial-before-align", "drop-initial-size", "drop-initial-value", + "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", + "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", + "float", "float-offset", "font", "font-feature-settings", "font-family", + "font-kerning", "font-language-override", "font-size", "font-size-adjust", + "font-stretch", "font-style", "font-synthesis", "font-variant", + "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", + "font-variant-ligatures", "font-variant-numeric", "font-variant-position", + "font-weight", "grid-cell", "grid-column", "grid-column-align", + "grid-column-sizing", "grid-column-span", "grid-columns", "grid-flow", + "grid-row", "grid-row-align", "grid-row-sizing", "grid-row-span", + "grid-rows", "grid-template", "hanging-punctuation", "height", "hyphens", + "icon", "image-orientation", "image-rendering", "image-resolution", + "inline-box-align", "justify-content", "left", "letter-spacing", + "line-break", "line-height", "line-stacking", "line-stacking-ruby", + "line-stacking-shift", "line-stacking-strategy", "list-style", + "list-style-image", "list-style-position", "list-style-type", "margin", + "margin-bottom", "margin-left", "margin-right", "margin-top", + "marker-offset", "marks", "marquee-direction", "marquee-loop", + "marquee-play-count", "marquee-speed", "marquee-style", "max-height", + "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", + "nav-left", "nav-right", "nav-up", "opacity", "order", "orphans", "outline", + "outline-color", "outline-offset", "outline-style", "outline-width", + "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", + "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", + "page", "page-break-after", "page-break-before", "page-break-inside", + "page-policy", "pause", "pause-after", "pause-before", "perspective", + "perspective-origin", "pitch", "pitch-range", "play-during", "position", + "presentation-level", "punctuation-trim", "quotes", "rendering-intent", + "resize", "rest", "rest-after", "rest-before", "richness", "right", + "rotation", "rotation-point", "ruby-align", "ruby-overhang", + "ruby-position", "ruby-span", "size", "speak", "speak-as", "speak-header", + "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", + "tab-size", "table-layout", "target", "target-name", "target-new", + "target-position", "text-align", "text-align-last", "text-decoration", + "text-decoration-color", "text-decoration-line", "text-decoration-skip", + "text-decoration-style", "text-emphasis", "text-emphasis-color", + "text-emphasis-position", "text-emphasis-style", "text-height", + "text-indent", "text-justify", "text-outline", "text-shadow", + "text-space-collapse", "text-transform", "text-underline-position", + "text-wrap", "top", "transform", "transform-origin", "transform-style", + "transition", "transition-delay", "transition-duration", + "transition-property", "transition-timing-function", "unicode-bidi", + "vertical-align", "visibility", "voice-balance", "voice-duration", + "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", + "voice-volume", "volume", "white-space", "widows", "width", "word-break", + "word-spacing", "word-wrap", "z-index" + ]); + + var colorKeywords = keySet([ + "black", "silver", "gray", "white", "maroon", "red", "purple", "fuchsia", + "green", "lime", "olive", "yellow", "navy", "blue", "teal", "aqua" + ]); + + var valueKeywords = keySet([ + "above", "absolute", "activeborder", "activecaption", "afar", + "after-white-space", "ahead", "alias", "all", "all-scroll", "alternate", + "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", + "arabic-indic", "armenian", "asterisks", "auto", "avoid", "background", + "backwards", "baseline", "below", "bidi-override", "binary", "bengali", + "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", + "both", "bottom", "break-all", "break-word", "button", "button-bevel", + "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "cambodian", + "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", + "cell", "center", "checkbox", "circle", "cjk-earthly-branch", + "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", + "col-resize", "collapse", "compact", "condensed", "contain", "content", + "content-box", "context-menu", "continuous", "copy", "cover", "crop", + "cross", "crosshair", "currentcolor", "cursive", "dashed", "decimal", + "decimal-leading-zero", "default", "default-button", "destination-atop", + "destination-in", "destination-out", "destination-over", "devanagari", + "disc", "discard", "document", "dot-dash", "dot-dot-dash", "dotted", + "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", + "element", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", + "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", + "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", + "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", + "ethiopic-halehame-gez", "ethiopic-halehame-om-et", + "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", + "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", + "ethiopic-halehame-tig", "ew-resize", "expanded", "extra-condensed", + "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "footnotes", + "forwards", "from", "geometricPrecision", "georgian", "graytext", "groove", + "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew", + "help", "hidden", "hide", "higher", "highlight", "highlighttext", + "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore", + "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", + "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", + "inline-block", "inline-table", "inset", "inside", "intrinsic", "invert", + "italic", "justify", "kannada", "katakana", "katakana-iroha", "khmer", + "landscape", "lao", "large", "larger", "left", "level", "lighter", + "line-through", "linear", "lines", "list-item", "listbox", "listitem", + "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", + "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", + "lower-roman", "lowercase", "ltr", "malayalam", "match", + "media-controls-background", "media-current-time-display", + "media-fullscreen-button", "media-mute-button", "media-play-button", + "media-return-to-realtime-button", "media-rewind-button", + "media-seek-back-button", "media-seek-forward-button", "media-slider", + "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", + "media-volume-slider-container", "media-volume-sliderthumb", "medium", + "menu", "menulist", "menulist-button", "menulist-text", + "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", + "mix", "mongolian", "monospace", "move", "multiple", "myanmar", "n-resize", + "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", + "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", + "ns-resize", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", + "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", + "outside", "overlay", "overline", "padding", "padding-box", "painted", + "paused", "persian", "plus-darker", "plus-lighter", "pointer", "portrait", + "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", + "radio", "read-only", "read-write", "read-write-plaintext-only", "relative", + "repeat", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", + "ridge", "right", "round", "row-resize", "rtl", "run-in", "running", + "s-resize", "sans-serif", "scroll", "scrollbar", "se-resize", "searchfield", + "searchfield-cancel-button", "searchfield-decoration", + "searchfield-results-button", "searchfield-results-decoration", + "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", + "single", "skip-white-space", "slide", "slider-horizontal", + "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", + "small", "small-caps", "small-caption", "smaller", "solid", "somali", + "source-atop", "source-in", "source-out", "source-over", "space", "square", + "square-button", "start", "static", "status-bar", "stretch", "stroke", + "sub", "subpixel-antialiased", "super", "sw-resize", "table", + "table-caption", "table-cell", "table-column", "table-column-group", + "table-footer-group", "table-header-group", "table-row", "table-row-group", + "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", + "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", + "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", + "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", + "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", + "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", + "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", + "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", + "visibleStroke", "visual", "w-resize", "wait", "wave", "white", "wider", + "window", "windowframe", "windowtext", "x-large", "x-small", "xor", + "xx-large", "xx-small" + ]); + + function tokenCComment(stream, state) { + var maybeEnd = false, ch; + while ((ch = stream.next()) != null) { + if (maybeEnd && ch == "/") { + state.tokenize = null; + break; + } + maybeEnd = (ch == "*"); + } + return ["comment", "comment"]; + } + + CodeMirror.defineMIME("text/css", { + atMediaTypes: atMediaTypes, + atMediaFeatures: atMediaFeatures, + propertyKeywords: propertyKeywords, + colorKeywords: colorKeywords, + valueKeywords: valueKeywords, + hooks: { + "<": function(stream, state) { + function tokenSGMLComment(stream, state) { + var dashes = 0, ch; + while ((ch = stream.next()) != null) { + if (dashes >= 2 && ch == ">") { + state.tokenize = null; + break; + } + dashes = (ch == "-") ? dashes + 1 : 0; + } + return ["comment", "comment"]; + } + if (stream.eat("!")) { + state.tokenize = tokenSGMLComment; + return tokenSGMLComment(stream, state); + } + }, + "/": function(stream, state) { + if (stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } + return false; + } + }, + name: "css-base" + }); + + CodeMirror.defineMIME("text/x-scss", { + atMediaTypes: atMediaTypes, + atMediaFeatures: atMediaFeatures, + propertyKeywords: propertyKeywords, + colorKeywords: colorKeywords, + valueKeywords: valueKeywords, + allowNested: true, + hooks: { + "$": function(stream) { + stream.match(/^[\w-]+/); + if (stream.peek() == ":") { + return ["variable", "variable-definition"]; + } + return ["variable", "variable"]; + }, + "/": function(stream, state) { + if (stream.eat("/")) { + stream.skipToEnd(); + return ["comment", "comment"]; + } else if (stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } else { + return ["operator", "operator"]; + } + }, + "#": function(stream) { + if (stream.eat("{")) { + return ["operator", "interpolation"]; + } else { + stream.eatWhile(/[\w\\\-]/); + return ["atom", "hash"]; + } + } + }, + name: "css-base" + }); +})(); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/htmlmixed.js b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/htmlmixed.js index ec0c21d24..f458532da 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/htmlmixed.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/htmlmixed.js @@ -1,104 +1,104 @@ -CodeMirror.defineMode("htmlmixed", function(config, parserConfig) { - var htmlMode = CodeMirror.getMode(config, {name: "xml", htmlMode: true}); - var cssMode = CodeMirror.getMode(config, "css"); - - var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes; - scriptTypes.push({matches: /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i, - mode: CodeMirror.getMode(config, "javascript")}); - if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) { - var conf = scriptTypesConf[i]; - scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)}); - } - scriptTypes.push({matches: /./, - mode: CodeMirror.getMode(config, "text/plain")}); - - function html(stream, state) { - var tagName = state.htmlState.tagName; - var style = htmlMode.token(stream, state.htmlState); - if (tagName == "script" && /\btag\b/.test(style) && stream.current() == ">") { - // Script block: mode to change to depends on type attribute - var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i); - scriptType = scriptType ? scriptType[1] : ""; - if (scriptType && /[\"\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1); - for (var i = 0; i < scriptTypes.length; ++i) { - var tp = scriptTypes[i]; - if (typeof tp.matches == "string" ? scriptType == tp.matches : tp.matches.test(scriptType)) { - if (tp.mode) { - state.token = script; - state.localMode = tp.mode; - state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, "")); - } - break; - } - } - } else if (tagName == "style" && /\btag\b/.test(style) && stream.current() == ">") { - state.token = css; - state.localMode = cssMode; - state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); - } - return style; - } - function maybeBackup(stream, pat, style) { - var cur = stream.current(); - var close = cur.search(pat), m; - if (close > -1) stream.backUp(cur.length - close); - else if (m = cur.match(/<\/?$/)) { - stream.backUp(cur.length); - if (!stream.match(pat, false)) stream.match(cur[0]); - } - return style; - } - function script(stream, state) { - if (stream.match(/^<\/\s*script\s*>/i, false)) { - state.token = html; - state.localState = state.localMode = null; - return html(stream, state); - } - return maybeBackup(stream, /<\/\s*script\s*>/, - state.localMode.token(stream, state.localState)); - } - function css(stream, state) { - if (stream.match(/^<\/\s*style\s*>/i, false)) { - state.token = html; - state.localState = state.localMode = null; - return html(stream, state); - } - return maybeBackup(stream, /<\/\s*style\s*>/, - cssMode.token(stream, state.localState)); - } - - return { - startState: function() { - var state = htmlMode.startState(); - return {token: html, localMode: null, localState: null, htmlState: state}; - }, - - copyState: function(state) { - if (state.localState) - var local = CodeMirror.copyState(state.localMode, state.localState); - return {token: state.token, localMode: state.localMode, localState: local, - htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; - }, - - token: function(stream, state) { - return state.token(stream, state); - }, - - indent: function(state, textAfter) { - if (!state.localMode || /^\s*<\//.test(textAfter)) - return htmlMode.indent(state.htmlState, textAfter); - else if (state.localMode.indent) - return state.localMode.indent(state.localState, textAfter); - else - return CodeMirror.Pass; - }, - - electricChars: "/{}:", - - innerMode: function(state) { - return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode}; - } - }; -}, "xml", "javascript", "css"); - -CodeMirror.defineMIME("text/html", "htmlmixed"); +CodeMirror.defineMode("htmlmixed", function(config, parserConfig) { + var htmlMode = CodeMirror.getMode(config, {name: "xml", htmlMode: true}); + var cssMode = CodeMirror.getMode(config, "css"); + + var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes; + scriptTypes.push({matches: /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i, + mode: CodeMirror.getMode(config, "javascript")}); + if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) { + var conf = scriptTypesConf[i]; + scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)}); + } + scriptTypes.push({matches: /./, + mode: CodeMirror.getMode(config, "text/plain")}); + + function html(stream, state) { + var tagName = state.htmlState.tagName; + var style = htmlMode.token(stream, state.htmlState); + if (tagName == "script" && /\btag\b/.test(style) && stream.current() == ">") { + // Script block: mode to change to depends on type attribute + var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i); + scriptType = scriptType ? scriptType[1] : ""; + if (scriptType && /[\"\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1); + for (var i = 0; i < scriptTypes.length; ++i) { + var tp = scriptTypes[i]; + if (typeof tp.matches == "string" ? scriptType == tp.matches : tp.matches.test(scriptType)) { + if (tp.mode) { + state.token = script; + state.localMode = tp.mode; + state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, "")); + } + break; + } + } + } else if (tagName == "style" && /\btag\b/.test(style) && stream.current() == ">") { + state.token = css; + state.localMode = cssMode; + state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); + } + return style; + } + function maybeBackup(stream, pat, style) { + var cur = stream.current(); + var close = cur.search(pat), m; + if (close > -1) stream.backUp(cur.length - close); + else if (m = cur.match(/<\/?$/)) { + stream.backUp(cur.length); + if (!stream.match(pat, false)) stream.match(cur[0]); + } + return style; + } + function script(stream, state) { + if (stream.match(/^<\/\s*script\s*>/i, false)) { + state.token = html; + state.localState = state.localMode = null; + return html(stream, state); + } + return maybeBackup(stream, /<\/\s*script\s*>/, + state.localMode.token(stream, state.localState)); + } + function css(stream, state) { + if (stream.match(/^<\/\s*style\s*>/i, false)) { + state.token = html; + state.localState = state.localMode = null; + return html(stream, state); + } + return maybeBackup(stream, /<\/\s*style\s*>/, + cssMode.token(stream, state.localState)); + } + + return { + startState: function() { + var state = htmlMode.startState(); + return {token: html, localMode: null, localState: null, htmlState: state}; + }, + + copyState: function(state) { + if (state.localState) + var local = CodeMirror.copyState(state.localMode, state.localState); + return {token: state.token, localMode: state.localMode, localState: local, + htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; + }, + + token: function(stream, state) { + return state.token(stream, state); + }, + + indent: function(state, textAfter) { + if (!state.localMode || /^\s*<\//.test(textAfter)) + return htmlMode.indent(state.htmlState, textAfter); + else if (state.localMode.indent) + return state.localMode.indent(state.localState, textAfter); + else + return CodeMirror.Pass; + }, + + electricChars: "/{}:", + + innerMode: function(state) { + return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode}; + } + }; +}, "xml", "javascript", "css"); + +CodeMirror.defineMIME("text/html", "htmlmixed"); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/javascript.js b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/javascript.js index ff6bb5d80..baebbbcba 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/javascript.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/javascript.js @@ -1,437 +1,437 @@ -// TODO actually recognize syntax of TypeScript constructs - -CodeMirror.defineMode("javascript", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var jsonMode = parserConfig.json; - var isTS = parserConfig.typescript; - - // Tokenizer - - var keywords = function(){ - function kw(type) {return {type: type, style: "keyword"};} - var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); - var operator = kw("operator"), atom = {type: "atom", style: "atom"}; - - var jsKeywords = { - "if": A, "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, - "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, - "var": kw("var"), "const": kw("var"), "let": kw("var"), - "function": kw("function"), "catch": kw("catch"), - "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), - "in": operator, "typeof": operator, "instanceof": operator, - "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom, - "this": kw("this") - }; - - // Extend the 'normal' keywords with the TypeScript language extensions - if (isTS) { - var type = {type: "variable", style: "variable-3"}; - var tsKeywords = { - // object-like things - "interface": kw("interface"), - "class": kw("class"), - "extends": kw("extends"), - "constructor": kw("constructor"), - - // scope modifiers - "public": kw("public"), - "private": kw("private"), - "protected": kw("protected"), - "static": kw("static"), - - "super": kw("super"), - - // types - "string": type, "number": type, "bool": type, "any": type - }; - - for (var attr in tsKeywords) { - jsKeywords[attr] = tsKeywords[attr]; - } - } - - return jsKeywords; - }(); - - var isOperatorChar = /[+\-*&%=<>!?|~^]/; - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - - function nextUntilUnescaped(stream, end) { - var escaped = false, next; - while ((next = stream.next()) != null) { - if (next == end && !escaped) - return false; - escaped = !escaped && next == "\\"; - } - return escaped; - } - - // Used as scratch variables to communicate multiple values without - // consing up tons of objects. - var type, content; - function ret(tp, style, cont) { - type = tp; content = cont; - return style; - } - - function jsTokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"' || ch == "'") - return chain(stream, state, jsTokenString(ch)); - else if (/[\[\]{}\(\),;\:\.]/.test(ch)) - return ret(ch); - else if (ch == "0" && stream.eat(/x/i)) { - stream.eatWhile(/[\da-f]/i); - return ret("number", "number"); - } - else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) { - stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); - return ret("number", "number"); - } - else if (ch == "/") { - if (stream.eat("*")) { - return chain(stream, state, jsTokenComment); - } - else if (stream.eat("/")) { - stream.skipToEnd(); - return ret("comment", "comment"); - } - else if (state.lastType == "operator" || state.lastType == "keyword c" || - /^[\[{}\(,;:]$/.test(state.lastType)) { - nextUntilUnescaped(stream, "/"); - stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla - return ret("regexp", "string-2"); - } - else { - stream.eatWhile(isOperatorChar); - return ret("operator", null, stream.current()); - } - } - else if (ch == "#") { - stream.skipToEnd(); - return ret("error", "error"); - } - else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return ret("operator", null, stream.current()); - } - else { - stream.eatWhile(/[\w\$_]/); - var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; - return (known && state.lastType != ".") ? ret(known.type, known.style, word) : - ret("variable", "variable", word); - } - } - - function jsTokenString(quote) { - return function(stream, state) { - if (!nextUntilUnescaped(stream, quote)) - state.tokenize = jsTokenBase; - return ret("string", "string"); - }; - } - - function jsTokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return ret("comment", "comment"); - } - - // Parser - - var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true}; - - function JSLexical(indented, column, type, align, prev, info) { - this.indented = indented; - this.column = column; - this.type = type; - this.prev = prev; - this.info = info; - if (align != null) this.align = align; - } - - function inScope(state, varname) { - for (var v = state.localVars; v; v = v.next) - if (v.name == varname) return true; - } - - function parseJS(state, style, type, content, stream) { - var cc = state.cc; - // Communicate our context to the combinators. - // (Less wasteful than consing up a hundred closures on every call.) - cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; - - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = true; - - while(true) { - var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; - if (combinator(type, content)) { - while(cc.length && cc[cc.length - 1].lex) - cc.pop()(); - if (cx.marked) return cx.marked; - if (type == "variable" && inScope(state, content)) return "variable-2"; - return style; - } - } - } - - // Combinator utils - - var cx = {state: null, column: null, marked: null, cc: null}; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - function register(varname) { - function inList(list) { - for (var v = list; v; v = v.next) - if (v.name == varname) return true; - return false; - } - var state = cx.state; - if (state.context) { - cx.marked = "def"; - if (inList(state.localVars)) return; - state.localVars = {name: varname, next: state.localVars}; - } else { - if (inList(state.globalVars)) return; - state.globalVars = {name: varname, next: state.globalVars}; - } - } - - // Combinators - - var defaultVars = {name: "this", next: {name: "arguments"}}; - function pushcontext() { - cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; - cx.state.localVars = defaultVars; - } - function popcontext() { - cx.state.localVars = cx.state.context.vars; - cx.state.context = cx.state.context.prev; - } - function pushlex(type, info) { - var result = function() { - var state = cx.state; - state.lexical = new JSLexical(state.indented, cx.stream.column(), type, null, state.lexical, info); - }; - result.lex = true; - return result; - } - function poplex() { - var state = cx.state; - if (state.lexical.prev) { - if (state.lexical.type == ")") - state.indented = state.lexical.indented; - state.lexical = state.lexical.prev; - } - } - poplex.lex = true; - - function expect(wanted) { - return function(type) { - if (type == wanted) return cont(); - else if (wanted == ";") return pass(); - else return cont(arguments.callee); - }; - } - - function statement(type) { - if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); - if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); - if (type == "keyword b") return cont(pushlex("form"), statement, poplex); - if (type == "{") return cont(pushlex("}"), block, poplex); - if (type == ";") return cont(); - if (type == "function") return cont(functiondef); - if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), - poplex, statement, poplex); - if (type == "variable") return cont(pushlex("stat"), maybelabel); - if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), - block, poplex, poplex); - if (type == "case") return cont(expression, expect(":")); - if (type == "default") return cont(expect(":")); - if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), - statement, poplex, popcontext); - return pass(pushlex("stat"), expression, expect(";"), poplex); - } - function expression(type) { - if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); - if (type == "function") return cont(functiondef); - if (type == "keyword c") return cont(maybeexpression); - if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); - if (type == "operator") return cont(expression); - if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); - if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); - return cont(); - } - function maybeexpression(type) { - if (type.match(/[;\}\)\],]/)) return pass(); - return pass(expression); - } - - function maybeoperator(type, value) { - if (type == "operator") { - if (/\+\+|--/.test(value)) return cont(maybeoperator); - if (value == "?") return cont(expression, expect(":"), expression); - return cont(expression); - } - if (type == ";") return; - if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); - if (type == ".") return cont(property, maybeoperator); - if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); - } - function maybelabel(type) { - if (type == ":") return cont(poplex, statement); - return pass(maybeoperator, expect(";"), poplex); - } - function property(type) { - if (type == "variable") {cx.marked = "property"; return cont();} - } - function objprop(type, value) { - if (type == "variable") { - cx.marked = "property"; - if (value == "get" || value == "set") return cont(getterSetter); - } else if (type == "number" || type == "string") { - cx.marked = type + " property"; - } - if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); - } - function getterSetter(type) { - if (type == ":") return cont(expression); - if (type != "variable") return cont(expect(":"), expression); - cx.marked = "property"; - return cont(functiondef); - } - function commasep(what, end) { - function proceed(type) { - if (type == ",") return cont(what, proceed); - if (type == end) return cont(); - return cont(expect(end)); - } - return function(type) { - if (type == end) return cont(); - else return pass(what, proceed); - }; - } - function block(type) { - if (type == "}") return cont(); - return pass(statement, block); - } - function maybetype(type) { - if (type == ":") return cont(typedef); - return pass(); - } - function typedef(type) { - if (type == "variable"){cx.marked = "variable-3"; return cont();} - return pass(); - } - function vardef1(type, value) { - if (type == "variable") { - register(value); - return isTS ? cont(maybetype, vardef2) : cont(vardef2); - } - return pass(); - } - function vardef2(type, value) { - if (value == "=") return cont(expression, vardef2); - if (type == ",") return cont(vardef1); - } - function forspec1(type) { - if (type == "var") return cont(vardef1, expect(";"), forspec2); - if (type == ";") return cont(forspec2); - if (type == "variable") return cont(formaybein); - return cont(forspec2); - } - function formaybein(_type, value) { - if (value == "in") return cont(expression); - return cont(maybeoperator, forspec2); - } - function forspec2(type, value) { - if (type == ";") return cont(forspec3); - if (value == "in") return cont(expression); - return cont(expression, expect(";"), forspec3); - } - function forspec3(type) { - if (type != ")") cont(expression); - } - function functiondef(type, value) { - if (type == "variable") {register(value); return cont(functiondef);} - if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, statement, popcontext); - } - function funarg(type, value) { - if (type == "variable") {register(value); return isTS ? cont(maybetype) : cont();} - } - - // Interface - - return { - startState: function(basecolumn) { - return { - tokenize: jsTokenBase, - lastType: null, - cc: [], - lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), - localVars: parserConfig.localVars, - globalVars: parserConfig.globalVars, - context: parserConfig.localVars && {vars: parserConfig.localVars}, - indented: 0 - }; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = false; - state.indented = stream.indentation(); - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (type == "comment") return style; - state.lastType = type; - return parseJS(state, style, type, content, stream); - }, - - indent: function(state, textAfter) { - if (state.tokenize == jsTokenComment) return CodeMirror.Pass; - if (state.tokenize != jsTokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; - if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; - var type = lexical.type, closing = firstChar == type; - if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? 4 : 0); - else if (type == "form" && firstChar == "{") return lexical.indented; - else if (type == "form") return lexical.indented + indentUnit; - else if (type == "stat") - return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? indentUnit : 0); - else if (lexical.info == "switch" && !closing) - return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); - else if (lexical.align) return lexical.column + (closing ? 0 : 1); - else return lexical.indented + (closing ? 0 : indentUnit); - }, - - electricChars: ":{}", - - jsonMode: jsonMode - }; -}); - -CodeMirror.defineMIME("text/javascript", "javascript"); -CodeMirror.defineMIME("text/ecmascript", "javascript"); -CodeMirror.defineMIME("application/javascript", "javascript"); -CodeMirror.defineMIME("application/ecmascript", "javascript"); -CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); -CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); -CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true }); +// TODO actually recognize syntax of TypeScript constructs + +CodeMirror.defineMode("javascript", function(config, parserConfig) { + var indentUnit = config.indentUnit; + var jsonMode = parserConfig.json; + var isTS = parserConfig.typescript; + + // Tokenizer + + var keywords = function(){ + function kw(type) {return {type: type, style: "keyword"};} + var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); + var operator = kw("operator"), atom = {type: "atom", style: "atom"}; + + var jsKeywords = { + "if": A, "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, + "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, + "var": kw("var"), "const": kw("var"), "let": kw("var"), + "function": kw("function"), "catch": kw("catch"), + "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), + "in": operator, "typeof": operator, "instanceof": operator, + "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom, + "this": kw("this") + }; + + // Extend the 'normal' keywords with the TypeScript language extensions + if (isTS) { + var type = {type: "variable", style: "variable-3"}; + var tsKeywords = { + // object-like things + "interface": kw("interface"), + "class": kw("class"), + "extends": kw("extends"), + "constructor": kw("constructor"), + + // scope modifiers + "public": kw("public"), + "private": kw("private"), + "protected": kw("protected"), + "static": kw("static"), + + "super": kw("super"), + + // types + "string": type, "number": type, "bool": type, "any": type + }; + + for (var attr in tsKeywords) { + jsKeywords[attr] = tsKeywords[attr]; + } + } + + return jsKeywords; + }(); + + var isOperatorChar = /[+\-*&%=<>!?|~^]/; + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + function nextUntilUnescaped(stream, end) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (next == end && !escaped) + return false; + escaped = !escaped && next == "\\"; + } + return escaped; + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + function ret(tp, style, cont) { + type = tp; content = cont; + return style; + } + + function jsTokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") + return chain(stream, state, jsTokenString(ch)); + else if (/[\[\]{}\(\),;\:\.]/.test(ch)) + return ret(ch); + else if (ch == "0" && stream.eat(/x/i)) { + stream.eatWhile(/[\da-f]/i); + return ret("number", "number"); + } + else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) { + stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); + return ret("number", "number"); + } + else if (ch == "/") { + if (stream.eat("*")) { + return chain(stream, state, jsTokenComment); + } + else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } + else if (state.lastType == "operator" || state.lastType == "keyword c" || + /^[\[{}\(,;:]$/.test(state.lastType)) { + nextUntilUnescaped(stream, "/"); + stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla + return ret("regexp", "string-2"); + } + else { + stream.eatWhile(isOperatorChar); + return ret("operator", null, stream.current()); + } + } + else if (ch == "#") { + stream.skipToEnd(); + return ret("error", "error"); + } + else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return ret("operator", null, stream.current()); + } + else { + stream.eatWhile(/[\w\$_]/); + var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; + return (known && state.lastType != ".") ? ret(known.type, known.style, word) : + ret("variable", "variable", word); + } + } + + function jsTokenString(quote) { + return function(stream, state) { + if (!nextUntilUnescaped(stream, quote)) + state.tokenize = jsTokenBase; + return ret("string", "string"); + }; + } + + function jsTokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + // Parser + + var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true}; + + function JSLexical(indented, column, type, align, prev, info) { + this.indented = indented; + this.column = column; + this.type = type; + this.prev = prev; + this.info = info; + if (align != null) this.align = align; + } + + function inScope(state, varname) { + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return true; + } + + function parseJS(state, style, type, content, stream) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; + + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = true; + + while(true) { + var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; + if (combinator(type, content)) { + while(cc.length && cc[cc.length - 1].lex) + cc.pop()(); + if (cx.marked) return cx.marked; + if (type == "variable" && inScope(state, content)) return "variable-2"; + return style; + } + } + } + + // Combinator utils + + var cx = {state: null, column: null, marked: null, cc: null}; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + function register(varname) { + function inList(list) { + for (var v = list; v; v = v.next) + if (v.name == varname) return true; + return false; + } + var state = cx.state; + if (state.context) { + cx.marked = "def"; + if (inList(state.localVars)) return; + state.localVars = {name: varname, next: state.localVars}; + } else { + if (inList(state.globalVars)) return; + state.globalVars = {name: varname, next: state.globalVars}; + } + } + + // Combinators + + var defaultVars = {name: "this", next: {name: "arguments"}}; + function pushcontext() { + cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; + cx.state.localVars = defaultVars; + } + function popcontext() { + cx.state.localVars = cx.state.context.vars; + cx.state.context = cx.state.context.prev; + } + function pushlex(type, info) { + var result = function() { + var state = cx.state; + state.lexical = new JSLexical(state.indented, cx.stream.column(), type, null, state.lexical, info); + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") + state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + poplex.lex = true; + + function expect(wanted) { + return function(type) { + if (type == wanted) return cont(); + else if (wanted == ";") return pass(); + else return cont(arguments.callee); + }; + } + + function statement(type) { + if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); + if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); + if (type == "keyword b") return cont(pushlex("form"), statement, poplex); + if (type == "{") return cont(pushlex("}"), block, poplex); + if (type == ";") return cont(); + if (type == "function") return cont(functiondef); + if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), + poplex, statement, poplex); + if (type == "variable") return cont(pushlex("stat"), maybelabel); + if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), + block, poplex, poplex); + if (type == "case") return cont(expression, expect(":")); + if (type == "default") return cont(expect(":")); + if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), + statement, poplex, popcontext); + return pass(pushlex("stat"), expression, expect(";"), poplex); + } + function expression(type) { + if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); + if (type == "function") return cont(functiondef); + if (type == "keyword c") return cont(maybeexpression); + if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); + if (type == "operator") return cont(expression); + if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); + if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); + return cont(); + } + function maybeexpression(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expression); + } + + function maybeoperator(type, value) { + if (type == "operator") { + if (/\+\+|--/.test(value)) return cont(maybeoperator); + if (value == "?") return cont(expression, expect(":"), expression); + return cont(expression); + } + if (type == ";") return; + if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); + if (type == ".") return cont(property, maybeoperator); + if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); + } + function maybelabel(type) { + if (type == ":") return cont(poplex, statement); + return pass(maybeoperator, expect(";"), poplex); + } + function property(type) { + if (type == "variable") {cx.marked = "property"; return cont();} + } + function objprop(type, value) { + if (type == "variable") { + cx.marked = "property"; + if (value == "get" || value == "set") return cont(getterSetter); + } else if (type == "number" || type == "string") { + cx.marked = type + " property"; + } + if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); + } + function getterSetter(type) { + if (type == ":") return cont(expression); + if (type != "variable") return cont(expect(":"), expression); + cx.marked = "property"; + return cont(functiondef); + } + function commasep(what, end) { + function proceed(type) { + if (type == ",") return cont(what, proceed); + if (type == end) return cont(); + return cont(expect(end)); + } + return function(type) { + if (type == end) return cont(); + else return pass(what, proceed); + }; + } + function block(type) { + if (type == "}") return cont(); + return pass(statement, block); + } + function maybetype(type) { + if (type == ":") return cont(typedef); + return pass(); + } + function typedef(type) { + if (type == "variable"){cx.marked = "variable-3"; return cont();} + return pass(); + } + function vardef1(type, value) { + if (type == "variable") { + register(value); + return isTS ? cont(maybetype, vardef2) : cont(vardef2); + } + return pass(); + } + function vardef2(type, value) { + if (value == "=") return cont(expression, vardef2); + if (type == ",") return cont(vardef1); + } + function forspec1(type) { + if (type == "var") return cont(vardef1, expect(";"), forspec2); + if (type == ";") return cont(forspec2); + if (type == "variable") return cont(formaybein); + return cont(forspec2); + } + function formaybein(_type, value) { + if (value == "in") return cont(expression); + return cont(maybeoperator, forspec2); + } + function forspec2(type, value) { + if (type == ";") return cont(forspec3); + if (value == "in") return cont(expression); + return cont(expression, expect(";"), forspec3); + } + function forspec3(type) { + if (type != ")") cont(expression); + } + function functiondef(type, value) { + if (type == "variable") {register(value); return cont(functiondef);} + if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, statement, popcontext); + } + function funarg(type, value) { + if (type == "variable") {register(value); return isTS ? cont(maybetype) : cont();} + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: jsTokenBase, + lastType: null, + cc: [], + lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), + localVars: parserConfig.localVars, + globalVars: parserConfig.globalVars, + context: parserConfig.localVars && {vars: parserConfig.localVars}, + indented: 0 + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = false; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (type == "comment") return style; + state.lastType = type; + return parseJS(state, style, type, content, stream); + }, + + indent: function(state, textAfter) { + if (state.tokenize == jsTokenComment) return CodeMirror.Pass; + if (state.tokenize != jsTokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; + if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; + var type = lexical.type, closing = firstChar == type; + if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? 4 : 0); + else if (type == "form" && firstChar == "{") return lexical.indented; + else if (type == "form") return lexical.indented + indentUnit; + else if (type == "stat") + return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? indentUnit : 0); + else if (lexical.info == "switch" && !closing) + return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); + else if (lexical.align) return lexical.column + (closing ? 0 : 1); + else return lexical.indented + (closing ? 0 : indentUnit); + }, + + electricChars: ":{}", + + jsonMode: jsonMode + }; +}); + +CodeMirror.defineMIME("text/javascript", "javascript"); +CodeMirror.defineMIME("text/ecmascript", "javascript"); +CodeMirror.defineMIME("application/javascript", "javascript"); +CodeMirror.defineMIME("application/ecmascript", "javascript"); +CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); +CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); +CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true }); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/xml.js b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/xml.js index a68b03384..caddfd430 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/xml.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor-contrib/plugins/codemirror/js/mode/xml.js @@ -1,328 +1,328 @@ -CodeMirror.defineMode("xml", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1; - - var Kludges = parserConfig.htmlMode ? { - autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, - 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, - 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, - 'track': true, 'wbr': true}, - implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, - 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, - 'th': true, 'tr': true}, - contextGrabbers: { - 'dd': {'dd': true, 'dt': true}, - 'dt': {'dd': true, 'dt': true}, - 'li': {'li': true}, - 'option': {'option': true, 'optgroup': true}, - 'optgroup': {'optgroup': true}, - 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, - 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, - 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, - 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, - 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, - 'rp': {'rp': true, 'rt': true}, - 'rt': {'rp': true, 'rt': true}, - 'tbody': {'tbody': true, 'tfoot': true}, - 'td': {'td': true, 'th': true}, - 'tfoot': {'tbody': true}, - 'th': {'td': true, 'th': true}, - 'thead': {'tbody': true, 'tfoot': true}, - 'tr': {'tr': true} - }, - doNotIndent: {"pre": true}, - allowUnquoted: true, - allowMissing: true - } : { - autoSelfClosers: {}, - implicitlyClosed: {}, - contextGrabbers: {}, - doNotIndent: {}, - allowUnquoted: false, - allowMissing: false - }; - var alignCDATA = parserConfig.alignCDATA; - - // Return variables for tokenizers - var tagName, type; - - function inText(stream, state) { - function chain(parser) { - state.tokenize = parser; - return parser(stream, state); - } - - var ch = stream.next(); - if (ch == "<") { - if (stream.eat("!")) { - if (stream.eat("[")) { - if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); - else return null; - } - else if (stream.match("--")) return chain(inBlock("comment", "-->")); - else if (stream.match("DOCTYPE", true, true)) { - stream.eatWhile(/[\w\._\-]/); - return chain(doctype(1)); - } - else return null; - } - else if (stream.eat("?")) { - stream.eatWhile(/[\w\._\-]/); - state.tokenize = inBlock("meta", "?>"); - return "meta"; - } - else { - var isClose = stream.eat("/"); - tagName = ""; - var c; - while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; - if (!tagName) return "error"; - type = isClose ? "closeTag" : "openTag"; - state.tokenize = inTag; - return "tag"; - } - } - else if (ch == "&") { - var ok; - if (stream.eat("#")) { - if (stream.eat("x")) { - ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); - } else { - ok = stream.eatWhile(/[\d]/) && stream.eat(";"); - } - } else { - ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); - } - return ok ? "atom" : "error"; - } - else { - stream.eatWhile(/[^&<]/); - return null; - } - } - - function inTag(stream, state) { - var ch = stream.next(); - if (ch == ">" || (ch == "/" && stream.eat(">"))) { - state.tokenize = inText; - type = ch == ">" ? "endTag" : "selfcloseTag"; - return "tag"; - } - else if (ch == "=") { - type = "equals"; - return null; - } - else if (/[\'\"]/.test(ch)) { - state.tokenize = inAttribute(ch); - return state.tokenize(stream, state); - } - else { - stream.eatWhile(/[^\s\u00a0=<>\"\']/); - return "word"; - } - } - - function inAttribute(quote) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.next() == quote) { - state.tokenize = inTag; - break; - } - } - return "string"; - }; - } - - function inBlock(style, terminator) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.match(terminator)) { - state.tokenize = inText; - break; - } - stream.next(); - } - return style; - }; - } - function doctype(depth) { - return function(stream, state) { - var ch; - while ((ch = stream.next()) != null) { - if (ch == "<") { - state.tokenize = doctype(depth + 1); - return state.tokenize(stream, state); - } else if (ch == ">") { - if (depth == 1) { - state.tokenize = inText; - break; - } else { - state.tokenize = doctype(depth - 1); - return state.tokenize(stream, state); - } - } - } - return "meta"; - }; - } - - var curState, curStream, setStyle; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - - function pushContext(tagName, startOfLine) { - var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent); - curState.context = { - prev: curState.context, - tagName: tagName, - indent: curState.indented, - startOfLine: startOfLine, - noIndent: noIndent - }; - } - function popContext() { - if (curState.context) curState.context = curState.context.prev; - } - - function element(type) { - if (type == "openTag") { - curState.tagName = tagName; - curState.tagStart = curStream.column(); - return cont(attributes, endtag(curState.startOfLine)); - } else if (type == "closeTag") { - var err = false; - if (curState.context) { - if (curState.context.tagName != tagName) { - if (Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())) { - popContext(); - } - err = !curState.context || curState.context.tagName != tagName; - } - } else { - err = true; - } - if (err) setStyle = "error"; - return cont(endclosetag(err)); - } - return cont(); - } - function endtag(startOfLine) { - return function(type) { - var tagName = curState.tagName; - curState.tagName = curState.tagStart = null; - if (type == "selfcloseTag" || - (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(tagName.toLowerCase()))) { - maybePopContext(tagName.toLowerCase()); - return cont(); - } - if (type == "endTag") { - maybePopContext(tagName.toLowerCase()); - pushContext(tagName, startOfLine); - return cont(); - } - return cont(); - }; - } - function endclosetag(err) { - return function(type) { - if (err) setStyle = "error"; - if (type == "endTag") { popContext(); return cont(); } - setStyle = "error"; - return cont(arguments.callee); - }; - } - function maybePopContext(nextTagName) { - var parentTagName; - while (true) { - if (!curState.context) { - return; - } - parentTagName = curState.context.tagName.toLowerCase(); - if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) || - !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { - return; - } - popContext(); - } - } - - function attributes(type) { - if (type == "word") {setStyle = "attribute"; return cont(attribute, attributes);} - if (type == "endTag" || type == "selfcloseTag") return pass(); - setStyle = "error"; - return cont(attributes); - } - function attribute(type) { - if (type == "equals") return cont(attvalue, attributes); - if (!Kludges.allowMissing) setStyle = "error"; - else if (type == "word") setStyle = "attribute"; - return (type == "endTag" || type == "selfcloseTag") ? pass() : cont(); - } - function attvalue(type) { - if (type == "string") return cont(attvaluemaybe); - if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return cont();} - setStyle = "error"; - return (type == "endTag" || type == "selfCloseTag") ? pass() : cont(); - } - function attvaluemaybe(type) { - if (type == "string") return cont(attvaluemaybe); - else return pass(); - } - - return { - startState: function() { - return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, tagStart: null, context: null}; - }, - - token: function(stream, state) { - if (!state.tagName && stream.sol()) { - state.startOfLine = true; - state.indented = stream.indentation(); - } - if (stream.eatSpace()) return null; - - setStyle = type = tagName = null; - var style = state.tokenize(stream, state); - state.type = type; - if ((style || type) && style != "comment") { - curState = state; curStream = stream; - while (true) { - var comb = state.cc.pop() || element; - if (comb(type || style)) break; - } - } - state.startOfLine = false; - return setStyle || style; - }, - - indent: function(state, textAfter, fullLine) { - var context = state.context; - if ((state.tokenize != inTag && state.tokenize != inText) || - context && context.noIndent) - return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; - if (state.tagName) return state.tagStart + indentUnit * multilineTagIndentFactor; - if (alignCDATA && /")); + else return null; + } + else if (stream.match("--")) return chain(inBlock("comment", "-->")); + else if (stream.match("DOCTYPE", true, true)) { + stream.eatWhile(/[\w\._\-]/); + return chain(doctype(1)); + } + else return null; + } + else if (stream.eat("?")) { + stream.eatWhile(/[\w\._\-]/); + state.tokenize = inBlock("meta", "?>"); + return "meta"; + } + else { + var isClose = stream.eat("/"); + tagName = ""; + var c; + while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; + if (!tagName) return "error"; + type = isClose ? "closeTag" : "openTag"; + state.tokenize = inTag; + return "tag"; + } + } + else if (ch == "&") { + var ok; + if (stream.eat("#")) { + if (stream.eat("x")) { + ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); + } else { + ok = stream.eatWhile(/[\d]/) && stream.eat(";"); + } + } else { + ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); + } + return ok ? "atom" : "error"; + } + else { + stream.eatWhile(/[^&<]/); + return null; + } + } + + function inTag(stream, state) { + var ch = stream.next(); + if (ch == ">" || (ch == "/" && stream.eat(">"))) { + state.tokenize = inText; + type = ch == ">" ? "endTag" : "selfcloseTag"; + return "tag"; + } + else if (ch == "=") { + type = "equals"; + return null; + } + else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + return state.tokenize(stream, state); + } + else { + stream.eatWhile(/[^\s\u00a0=<>\"\']/); + return "word"; + } + } + + function inAttribute(quote) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inTag; + break; + } + } + return "string"; + }; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + return style; + }; + } + function doctype(depth) { + return function(stream, state) { + var ch; + while ((ch = stream.next()) != null) { + if (ch == "<") { + state.tokenize = doctype(depth + 1); + return state.tokenize(stream, state); + } else if (ch == ">") { + if (depth == 1) { + state.tokenize = inText; + break; + } else { + state.tokenize = doctype(depth - 1); + return state.tokenize(stream, state); + } + } + } + return "meta"; + }; + } + + var curState, curStream, setStyle; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + + function pushContext(tagName, startOfLine) { + var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent); + curState.context = { + prev: curState.context, + tagName: tagName, + indent: curState.indented, + startOfLine: startOfLine, + noIndent: noIndent + }; + } + function popContext() { + if (curState.context) curState.context = curState.context.prev; + } + + function element(type) { + if (type == "openTag") { + curState.tagName = tagName; + curState.tagStart = curStream.column(); + return cont(attributes, endtag(curState.startOfLine)); + } else if (type == "closeTag") { + var err = false; + if (curState.context) { + if (curState.context.tagName != tagName) { + if (Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())) { + popContext(); + } + err = !curState.context || curState.context.tagName != tagName; + } + } else { + err = true; + } + if (err) setStyle = "error"; + return cont(endclosetag(err)); + } + return cont(); + } + function endtag(startOfLine) { + return function(type) { + var tagName = curState.tagName; + curState.tagName = curState.tagStart = null; + if (type == "selfcloseTag" || + (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(tagName.toLowerCase()))) { + maybePopContext(tagName.toLowerCase()); + return cont(); + } + if (type == "endTag") { + maybePopContext(tagName.toLowerCase()); + pushContext(tagName, startOfLine); + return cont(); + } + return cont(); + }; + } + function endclosetag(err) { + return function(type) { + if (err) setStyle = "error"; + if (type == "endTag") { popContext(); return cont(); } + setStyle = "error"; + return cont(arguments.callee); + }; + } + function maybePopContext(nextTagName) { + var parentTagName; + while (true) { + if (!curState.context) { + return; + } + parentTagName = curState.context.tagName.toLowerCase(); + if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) || + !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { + return; + } + popContext(); + } + } + + function attributes(type) { + if (type == "word") {setStyle = "attribute"; return cont(attribute, attributes);} + if (type == "endTag" || type == "selfcloseTag") return pass(); + setStyle = "error"; + return cont(attributes); + } + function attribute(type) { + if (type == "equals") return cont(attvalue, attributes); + if (!Kludges.allowMissing) setStyle = "error"; + else if (type == "word") setStyle = "attribute"; + return (type == "endTag" || type == "selfcloseTag") ? pass() : cont(); + } + function attvalue(type) { + if (type == "string") return cont(attvaluemaybe); + if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return cont();} + setStyle = "error"; + return (type == "endTag" || type == "selfCloseTag") ? pass() : cont(); + } + function attvaluemaybe(type) { + if (type == "string") return cont(attvaluemaybe); + else return pass(); + } + + return { + startState: function() { + return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, tagStart: null, context: null}; + }, + + token: function(stream, state) { + if (!state.tagName && stream.sol()) { + state.startOfLine = true; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + + setStyle = type = tagName = null; + var style = state.tokenize(stream, state); + state.type = type; + if ((style || type) && style != "comment") { + curState = state; curStream = stream; + while (true) { + var comb = state.cc.pop() || element; + if (comb(type || style)) break; + } + } + state.startOfLine = false; + return setStyle || style; + }, + + indent: function(state, textAfter, fullLine) { + var context = state.context; + if ((state.tokenize != inTag && state.tokenize != inText) || + context && context.noIndent) + return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; + if (state.tagName) return state.tagStart + indentUnit * multilineTagIndentFactor; + if (alignCDATA && / from wrapping table cell. - width: CKEDITOR.env.ie7Compat ? '99%' : '100%', - height: '100%', - resize: 'none', - outline: 'none', - 'text-align': 'left' - }, - CKEDITOR.tools.cssVendorPrefix('tab-size', editor.config.sourceAreaTabSize || 4))); - var ariaLabel = [editor.lang.editor, editor.name].join(','); - textarea.setAttributes({ - dir: 'ltr', - tabIndex: CKEDITOR.env.webkit ? -1 : editor.tabIndex, - 'role': 'textbox', - 'aria-label': ariaLabel - }); - textarea.addClass('cke_source cke_reset cke_enable_context_menu'); - editor.ui.space('contents').append(textarea); - window["editable_" + editor.id] = editor.editable(new sourceEditable(editor, textarea)); - // Fill the textarea with the current editor data. - window["editable_" + editor.id].setData(editor.getData(1)); - window["editable_" + editor.id].editorID = editor.id; - editor.fire('ariaWidget', this); - var delay; - var sourceAreaElement = window["editable_" + editor.id], - holderElement = sourceAreaElement.getParent(); - - codemirror = editor.id; - - /*CodeMirror.commands.autocomplete = function(cm) { - CodeMirror.showHint(cm, CodeMirror.htmlHint); - };*/ - - // Enable Code Folding (Requires 'lineNumbers' to be set to 'true') - if (config.lineNumbers && config.enableCodeFolding) { - window["foldFunc_" + editor.id] = CodeMirror.newFoldFunction(CodeMirror.tagRangeFinder); - } - - window["codemirror_" + editor.id] = CodeMirror.fromTextArea(sourceAreaElement.$, { - mode: 'text/html', - matchBrackets: config.matchBrackets, - workDelay: 300, - workTime: 35, - lineNumbers: config.lineNumbers, - lineWrapping: config.lineWrapping, - autoCloseTags: config.autoCloseTags, - autoCloseBrackets: config.autoCloseBrackets, - highlightSelectionMatches: config.highlightMatches, - continueComments: config.continueComments, - theme: config.theme, - //extraKeys: {"Ctrl-Space": "autocomplete"}, - extraKeys: { "Ctrl-Q": function(codeMirror_Editor) { window["foldFunc_" + editor.id](codeMirror_Editor, codeMirror_Editor.getCursor().line); } }, - onKeyEvent: function(codeMirror_Editor, evt) { - if (config.enableCodeFormatting) { - var range = getSelectedRange(); - if (evt.type === "keydown" && evt.ctrlKey && evt.keyCode === 75 && !evt.shiftKey && !evt.altKey) { - window["codemirror_" + editor.id].commentRange(true, range.from, range.to); - } else if (evt.type === "keydown" && evt.ctrlKey && evt.keyCode === 75 && evt.shiftKey && !evt.altKey) { - window["codemirror_" + editor.id].commentRange(false, range.from, range.to); - if (config.autoFormatOnUncomment) { - window["codemirror_" + editor.id].autoFormatRange(range.from, range.to); - } - } else if (evt.type === "keydown" && evt.ctrlKey && evt.keyCode === 75 && !evt.shiftKey && evt.altKey) { - window["codemirror_" + editor.id].autoFormatRange(range.from, range.to); - } - } - } - }); - - var holderHeight = holderElement.$.clientHeight + 'px'; - var holderWidth = holderElement.$.clientWidth + 'px'; - - // Store config so we can access it within commands etc. - window["codemirror_" + editor.id].config = config; - if (config.autoFormatOnStart) { - window["codemirror_" + editor.id].autoFormatAll({ - line: 0, - ch: 0 - }, { - line: window["codemirror_" + editor.id].lineCount(), - ch: 0 - }); - } - - function getSelectedRange() { - return { - from: window["codemirror_" + editor.id].getCursor(true), - to: window["codemirror_" + editor.id].getCursor(false) - }; - } - - window["codemirror_" + editor.id].on("change", function(cm, change) { - clearTimeout(delay); - delay = setTimeout(function() { - window["codemirror_" + editor.id].save(); - }, 300); - }); - window["codemirror_" + editor.id].setSize(holderWidth, holderHeight); - - // Enable Code Folding (Requires 'lineNumbers' to be set to 'true') - if (config.lineNumbers && config.enableCodeFolding) { - window["codemirror_" + editor.id].on("gutterClick", window["foldFunc_" + editor.id]); - } - // Highlight Active Line - if (config.highlightActiveLine) { - window["codemirror_" + editor.id].hlLine = window["codemirror_" + editor.id].addLineClass(0, "background", "activeline"); - window["codemirror_" + editor.id].on("cursorActivity", function() { - var cur = window["codemirror_" + editor.id].getLineHandle(window["codemirror_" + editor.id].getCursor().line); - if (cur != window["codemirror_" + editor.id].hlLine) { - window["codemirror_" + editor.id].removeLineClass(window["codemirror_" + editor.id].hlLine, "background", "activeline"); - window["codemirror_" + editor.id].hlLine = window["codemirror_" + editor.id].addLineClass(cur, "background", "activeline"); - } - }); - } - - // Run config.onLoad callback, if present. - if (typeof config.onLoad === 'function') { - config.onLoad(window["codemirror_" + editor.id], editor); - } - } - - editor.addCommand('source', sourcearea.commands.source); - if (editor.ui.addButton) { - editor.ui.addButton('Source', { - label: editor.lang.codemirror.toolbar, - command: 'source', - toolbar: 'mode,10' - }); - } - if (config.enableCodeFormatting) { - editor.addCommand('searchCode', sourcearea.commands.searchCode); - editor.addCommand('autoFormat', sourcearea.commands.autoFormat); - editor.addCommand('commentSelectedRange', sourcearea.commands.commentSelectedRange); - editor.addCommand('uncommentSelectedRange', sourcearea.commands.uncommentSelectedRange); - editor.addCommand('autoCompleteToggle', sourcearea.commands.autoCompleteToggle); - - if (editor.ui.addButton) { - if (config.showFormatButton || config.showCommentButton || config.showUncommentButton || config.showSearchButton) { - editor.ui.add('-', CKEDITOR.UI_SEPARATOR, { toolbar: 'mode,30' }); - } - if (config.showSearchButton && config.enableSearchTools) { - editor.ui.addButton('searchCode', { - label: lang.searchCode, - command: 'searchCode', - toolbar: 'mode,40' - }); - } - if (config.showFormatButton) { - editor.ui.addButton('autoFormat', { - label: lang.autoFormat, - command: 'autoFormat', - toolbar: 'mode,50' - }); - } - if (config.showCommentButton) { - editor.ui.addButton('CommentSelectedRange', { - label: lang.commentSelectedRange, - command: 'commentSelectedRange', - toolbar: 'mode,60' - }); - } - if (config.showUncommentButton) { - editor.ui.addButton('UncommentSelectedRange', { - label: lang.uncommentSelectedRange, - command: 'uncommentSelectedRange', - toolbar: 'mode,70' - }); - } - if (config.showAutoCompleteButton) { - editor.ui.addButton('AutoComplete', { - label: lang.autoCompleteToggle, - command: 'autoCompleteToggle', - toolbar: 'mode,80' - }); - } - } - } - editor.on('mode', function () { - editor.getCommand('source').setState(editor.mode === 'source' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF); - - if (editor.mode === 'source') { - editor.getCommand('autoCompleteToggle').setState(window["codemirror_" + editor.id].config.autoCloseTags ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF); - } - - }); - editor.on('resize', function() { - if (window["editable_" + editor.id] && editor.mode === 'source') { - var holderElement = window["editable_" + editor.id].getParent(); - var holderHeight = holderElement.$.clientHeight + 'px'; - var holderWidth = holderElement.$.clientWidth + 'px'; - window["codemirror_" + editor.id].setSize(holderWidth, holderHeight); - } - }); - - var selectAllCommand = editor.commands.selectAll; - - if (selectAllCommand != null) { - selectAllCommand.on('exec', function () { - if (editor.mode === 'source') { - window["codemirror_" + editor.id].setSelection({ - line: 0, - ch: 0 - }, { - line: window["codemirror_" + editor.id].lineCount(), - ch: 0 - }); - } - }); - } - } - }); - var sourceEditable = CKEDITOR.tools.createClass({ - base: CKEDITOR.editable, - proto: { - setData: function(data) { - - this.setValue(data); - - if (this.codeMirror != null) { - this.codeMirror.setValue(data); - } - - this.editor.fire('dataReady'); - }, - getData: function() { - return this.getValue(); - }, - // Insertions are not supported in source editable. - insertHtml: function() { - }, - insertElement: function() { - }, - insertText: function() { - }, - // Read-only support for textarea. - setReadOnly: function(isReadOnly) { - this[(isReadOnly ? 'set' : 'remove') + 'Attribute']('readOnly', 'readonly'); - }, - editorID: null, - detach: function() { - window["codemirror_" + this.editorID].toTextArea(); - - // Free Memory on destroy - window["editable_" + this.editorID] = null; - window["codemirror_" + this.editorID] = null; - - sourceEditable.baseProto.detach.call(this); - - this.clearCustomData(); - this.remove(); - } - } - }); -})(); -CKEDITOR.plugins.sourcearea = { - commands: { - source: { - modes: { - wysiwyg: 1, - source: 1 - }, - editorFocus: false, - readOnly: 1, - exec: function(editor) { - if (editor.mode === 'wysiwyg') { - editor.fire('saveSnapshot'); - } - editor.getCommand('source').setState(CKEDITOR.TRISTATE_DISABLED); - editor.setMode(editor.mode === 'source' ? 'wysiwyg' : 'source'); - }, - canUndo: false - }, - searchCode: { - modes: { - wysiwyg: 0, - source: 1 - }, - editorFocus: false, - readOnly: 1, - exec: function(editor) { - CodeMirror.commands.find(window["codemirror_" + editor.id]); - }, - canUndo: true - }, - autoFormat: { - modes: { - wysiwyg: 0, - source: 1 - }, - editorFocus: false, - readOnly: 1, - exec: function(editor) { - var range = { - from: window["codemirror_" + editor.id].getCursor(true), - to: window["codemirror_" + editor.id].getCursor(false) - }; - window["codemirror_" + editor.id].autoFormatRange(range.from, range.to); - }, - canUndo: true - }, - commentSelectedRange: { - modes: { - wysiwyg: 0, - source: 1 - }, - editorFocus: false, - readOnly: 1, - exec: function(editor) { - var range = { - from: window["codemirror_" + editor.id].getCursor(true), - to: window["codemirror_" + editor.id].getCursor(false) - }; - window["codemirror_" + editor.id].commentRange(true, range.from, range.to); - }, - canUndo: true - }, - uncommentSelectedRange: { - modes: { - wysiwyg: 0, - source: 1 - }, - editorFocus: false, - readOnly: 1, - exec: function(editor) { - var range = { - from: window["codemirror_" + editor.id].getCursor(true), - to: window["codemirror_" + editor.id].getCursor(false) - }; - window["codemirror_" + editor.id].commentRange(false, range.from, range.to); - if (window["codemirror_" + editor.id].config.autoFormatOnUncomment) { - window["codemirror_" + editor.id].autoFormatRange(range.from, range.to); - } - }, - canUndo: true - }, - autoCompleteToggle: { - modes: { - wysiwyg: 0, - source: 1 - }, - editorFocus: false, - readOnly: 1, - exec: function (editor) { - if (this.state == CKEDITOR.TRISTATE_ON) { - window["codemirror_" + editor.id].setOption("autoCloseTags", false); - } else if (this.state == CKEDITOR.TRISTATE_OFF) { - window["codemirror_" + editor.id].setOption("autoCloseTags", true); - } - - this.toggleState(); - }, - canUndo: true - } - } +/* +* The "codemirror" plugin. It's indented to enhance the +* "sourcearea" editing mode, which displays the xhtml source code with +* syntax highlight and line numbers. +* Licensed under the MIT license +* CodeMirror Plugin: http://codemirror.net/ (MIT License) +*/ + +(function() { + CKEDITOR.plugins.add('codemirror', { + icons: 'SearchCode,AutoFormat,CommentSelectedRange,UncommentSelectedRange,AutoComplete', + lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', + init: function(editor) { + var rootPath = this.path; + // Default Config + var defaultConfig = { + theme: 'default', + matchBrackets: true, + lineNumbers: true, + lineWrapping: true, + autoCloseTags: true, + autoCloseBrackets: true, + continueComments: true, + enableSearchTools: true, + enableCodeFolding: true, + enableCodeFormatting: true, + autoFormatOnStart: false, + autoFormatOnModeChange: true, + autoFormatOnUncomment: true, + highlightActiveLine: true, + highlightMatches: true, + showFormatButton: true, + showCommentButton: true, + showSearchButton: true, + showUncommentButton: true, + showAutoCompleteButton: true + }; + // Get Config & Lang + var config = CKEDITOR.tools.extend(defaultConfig, editor.config.codemirror || {}, true); + var lang = editor.lang.codemirror; + // check for old config settings for legacy support + if (editor.config.codemirror_theme) { + config.theme = editor.config.codemirror_theme; + } + if (editor.config.codemirror_autoFormatOnStart) { + config.autoFormatOnStart = editor.config.codemirror_autoFormatOnStart; + } + + // Source mode isn't available in inline mode yet. + if (editor.elementMode === CKEDITOR.ELEMENT_MODE_INLINE) { + return; + } + + var sourcearea = CKEDITOR.plugins.sourcearea; + editor.addMode('source', function(callback) { + if (typeof (CodeMirror) == 'undefined') { + + CKEDITOR.document.appendStyleSheet(rootPath + 'css/codemirror.min.css'); + + if (config.theme.length && config.theme != 'default') { + CKEDITOR.document.appendStyleSheet(rootPath + 'theme/' + config.theme + '.css'); + } + + CKEDITOR.scriptLoader.load(rootPath + 'js/codemirror.js', function() { + + CKEDITOR.scriptLoader.load(getCodeMirrorScripts(), function() { + loadCodeMirror(editor); + callback(); + }); + }); + + + } else { + loadCodeMirror(editor); + callback(); + } + }); + + function getCodeMirrorScripts() { + var scriptFiles = [rootPath + 'js/codemirror.modes.min.js', rootPath + 'js/codemirror.addons.min.js']; + + if (config.enableSearchTools) { + scriptFiles.push(rootPath + 'js/codemirror.search-addons.min.js'); + } + return scriptFiles; + } + + function loadCodeMirror(editor) { + var contentsSpace = editor.ui.space('contents'), + textarea = contentsSpace.getDocument().createElement('textarea'); + + textarea.setStyles( + CKEDITOR.tools.extend({ + // IE7 has overflow the "); - return"" + encodeURIComponent(a) + "" - }) - } - - function r(a) { - return a.replace(I, function (a, b) { - return decodeURIComponent(b) - }) - } - - function o(a) { - return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g, function (a) { - return"<\!--" + l + "{C}" + encodeURIComponent(a).replace(/--/g, "%2D%2D") + "--\>" - }) - } - - function u(a) { - return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g, function (a, b) { - return decodeURIComponent(b) - }) - } - - function f(a, b) { - var c = b._.dataStore; - return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function (a, b) { - return decodeURIComponent(b) - }).replace(/\{cke_protected_(\d+)\}/g, function (a, b) { - return c && c[b] || "" - }) - } - - function s(a, b) { - for (var c = [], d = b.config.protectedSource, e = b._.dataStore || (b._.dataStore = {id: 1}), f = /<\!--\{cke_temp(comment)?\}(\d*?)--\>/g, d = [//gi, //gi].concat(d), a = a.replace(/<\!--[\s\S]*?--\>/g, function (a) { - return"<\!--{cke_tempcomment}" + (c.push(a) - 1) + "--\>" - }), k = 0; k < d.length; k++)a = a.replace(d[k], function (a) { - a = a.replace(f, function (a, b, d) { - return c[d] - }); - return/cke_temp(comment)?/.test(a) ? a : "<\!--{cke_temp}" + (c.push(a) - 1) + "--\>" - }); - a = a.replace(f, function (a, b, d) { - return"<\!--" + - l + (b ? "{C}" : "") + encodeURIComponent(c[d]).replace(/--/g, "%2D%2D") + "--\>" - }); - return a.replace(/(['"]).*?\1/g, function (a) { - return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g, function (a, b) { - e[e.id] = decodeURIComponent(b); - return"{cke_protected_" + e.id++ + "}" - }) - }) - } - - CKEDITOR.htmlDataProcessor = function (b) { - var c, d, k = this; - this.editor = b; - this.dataFilter = c = new CKEDITOR.htmlParser.filter; - this.htmlFilter = d = new CKEDITOR.htmlParser.filter; - this.writer = new CKEDITOR.htmlParser.basicWriter; - c.addRules(z); - c.addRules(t, {applyToAll: true}); - c.addRules(a(b, "data"), {applyToAll: true}); - d.addRules(J); - d.addRules(H, {applyToAll: true}); - d.addRules(a(b, "html"), {applyToAll: true}); - b.on("toHtml", function (a) { - var a = a.data, c = a.dataValue, c = s(c, b), c = n(c, O), c = i(c), c = n(c, C), c = c.replace(v, "$1cke:$2"), c = c.replace(G, ""), c = CKEDITOR.env.opera ? c : c.replace(/(]*>)(\r\n|\n)/g, "$1$2$2"), d = a.context || b.editable().getName(), f; - if (CKEDITOR.env.ie && CKEDITOR.env.version < 9 && d == "pre") { - d = "div"; - c = "
    " + c + "
    "; - f = 1 - } - d = b.document.createElement(d); - d.setHtml("a" + c); - c = d.getHtml().substr(1); - c = c.replace(RegExp(" data-cke-" + CKEDITOR.rnd + "-", "ig"), " "); - f && (c = c.replace(/^
    |<\/pre>$/gi, ""));
    -                c = c.replace(x, "$1$2");
    -                c = r(c);
    -                c = u(c);
    -                a.dataValue = CKEDITOR.htmlParser.fragment.fromHtml(c, a.context, a.fixForBody === false ? false : e(a.enterMode, b.config.autoParagraph))
    -            }, null, null, 5);
    -            b.on("toHtml", function (a) {
    -                a.data.filter.applyTo(a.data.dataValue, true, a.data.dontFilter, a.data.enterMode) && b.fire("dataFiltered")
    -            }, null, null, 6);
    -            b.on("toHtml", function (a) {
    -                a.data.dataValue.filterChildren(k.dataFilter,
    -                    true)
    -            }, null, null, 10);
    -            b.on("toHtml", function (a) {
    -                var a = a.data, b = a.dataValue, c = new CKEDITOR.htmlParser.basicWriter;
    -                b.writeChildrenHtml(c);
    -                b = c.getHtml(true);
    -                a.dataValue = o(b)
    -            }, null, null, 15);
    -            b.on("toDataFormat", function (a) {
    -                var c = a.data.dataValue;
    -                a.data.enterMode != CKEDITOR.ENTER_BR && (c = c.replace(/^
    /i, "")); - a.data.dataValue = CKEDITOR.htmlParser.fragment.fromHtml(c, a.data.context, e(a.data.enterMode, b.config.autoParagraph)) - }, null, null, 5); - b.on("toDataFormat", function (a) { - a.data.dataValue.filterChildren(k.htmlFilter, - true) - }, null, null, 10); - b.on("toDataFormat", function (a) { - a.data.filter.applyTo(a.data.dataValue, false, true) - }, null, null, 11); - b.on("toDataFormat", function (a) { - var c = a.data.dataValue, d = k.writer; - d.reset(); - c.writeChildrenHtml(d); - c = d.getHtml(true); - c = u(c); - c = f(c, b); - a.data.dataValue = c - }, null, null, 15) - }; - CKEDITOR.htmlDataProcessor.prototype = {toHtml: function (a, b, c, d) { - var e = this.editor, f, k, l; - if (b && typeof b == "object") { - f = b.context; - c = b.fixForBody; - d = b.dontFilter; - k = b.filter; - l = b.enterMode - } else f = b; - !f && f !== null && (f = e.editable().getName()); - return e.fire("toHtml", {dataValue: a, context: f, fixForBody: c, dontFilter: d, filter: k || e.filter, enterMode: l || e.enterMode}).dataValue - }, toDataFormat: function (a, b) { - var c, d, e; - if (b) { - c = b.context; - d = b.filter; - e = b.enterMode - } - !c && c !== null && (c = this.editor.editable().getName()); - return this.editor.fire("toDataFormat", {dataValue: a, filter: d || this.editor.filter, context: c, enterMode: e || this.editor.enterMode}).dataValue - }}; - var y = /(?: |\xa0)$/, l = "{cke_protected}", p = CKEDITOR.dtd, k = ["caption", "colgroup", "col", "thead", "tfoot", - "tbody"], q = CKEDITOR.tools.extend({}, p.$blockLimit, p.$block), z = {elements: {input: m, textarea: m}}, t = {attributeNames: [ - [/^on/, "data-cke-pa-on"], - [/^data-cke-expando$/, ""] - ]}, J = {elements: {embed: function (a) { - var b = a.parent; - if (b && b.name == "object") { - var c = b.attributes.width, b = b.attributes.height; - if (c)a.attributes.width = c; - if (b)a.attributes.height = b - } - }, a: function (a) { - if (!a.children.length && !a.attributes.name && !a.attributes["data-cke-saved-name"])return false - }}}, H = {elementNames: [ - [/^cke:/, ""], - [/^\?xml:namespace$/, ""] - ], - attributeNames: [ - [/^data-cke-(saved|pa)-/, ""], - [/^data-cke-.*/, ""], - ["hidefocus", ""] - ], elements: {$: function (a) { - var b = a.attributes; - if (b) { - if (b["data-cke-temp"])return false; - for (var c = ["name", "href", "src"], d, e = 0; e < c.length; e++) { - d = "data-cke-saved-" + c[e]; - d in b && delete b[c[e]] - } - } - return a - }, table: function (a) { - a.children.slice(0).sort(function (a, b) { - var c, d; - if (a.type == CKEDITOR.NODE_ELEMENT && b.type == a.type) { - c = CKEDITOR.tools.indexOf(k, a.name); - d = CKEDITOR.tools.indexOf(k, b.name) - } - if (!(c > -1 && d > -1 && c != d)) { - c = a.parent ? a.getIndex() : - -1; - d = b.parent ? b.getIndex() : -1 - } - return c > d ? 1 : -1 - }) - }, param: function (a) { - a.children = []; - a.isEmpty = true; - return a - }, span: function (a) { - a.attributes["class"] == "Apple-style-span" && delete a.name - }, html: function (a) { - delete a.attributes.contenteditable; - delete a.attributes["class"] - }, body: function (a) { - delete a.attributes.spellcheck; - delete a.attributes.contenteditable - }, style: function (a) { - var b = a.children[0]; - if (b && b.value)b.value = CKEDITOR.tools.trim(b.value); - if (!a.attributes.type)a.attributes.type = "text/css" - }, title: function (a) { - var b = - a.children[0]; - !b && h(a, b = new CKEDITOR.htmlParser.text); - b.value = a.attributes["data-cke-title"] || "" - }, input: j, textarea: j}, attributes: {"class": function (a) { - return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g, "")) || false - }}}; - if (CKEDITOR.env.ie)H.attributes.style = function (a) { - return a.replace(/(^|;)([^\:]+)/g, function (a) { - return a.toLowerCase() - }) - }; - var w = /<(a|area|img|input|source)\b([^>]*)>/gi, K = /\s(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi, C = /(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi, - O = /(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi, I = /([^<]*)<\/cke:encoded>/gi, v = /(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi, x = /(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi, G = /]*?)\/?>(?!\s*<\/cke:\1)/gi - })(); - "use strict"; - CKEDITOR.htmlParser.element = function (a, e) { - this.name = a; - this.attributes = e || {}; - this.children = []; - var b = a || "", c = b.match(/^cke:(.*)/); - c && (b = c[1]); - b = !(!CKEDITOR.dtd.$nonBodyContent[b] && !CKEDITOR.dtd.$block[b] && !CKEDITOR.dtd.$listItem[b] && !CKEDITOR.dtd.$tableContent[b] && !(CKEDITOR.dtd.$nonEditable[b] || b == "br")); - this.isEmpty = !!CKEDITOR.dtd.$empty[a]; - this.isUnknown = !CKEDITOR.dtd[a]; - this._ = {isBlockLike: b, hasInlineStarted: this.isEmpty || !b} - }; - CKEDITOR.htmlParser.cssStyle = function (a) { - var e = {}; - ((a instanceof CKEDITOR.htmlParser.element ? a.attributes.style : a) || "").replace(/"/g, '"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function (a, c, d) { - c == "font-family" && (d = d.replace(/["']/g, "")); - e[c.toLowerCase()] = d - }); - return{rules: e, populate: function (a) { - var c = this.toString(); - if (c)a instanceof CKEDITOR.dom.element ? a.setAttribute("style", c) : a instanceof CKEDITOR.htmlParser.element ? a.attributes.style = c : a.style = c - }, toString: function () { - var a = [], c; - for (c in e)e[c] && a.push(c, ":", e[c], ";"); - return a.join("") - }} - }; - (function () { - function a(a) { - return function (b) { - return b.type == CKEDITOR.NODE_ELEMENT && (typeof a == "string" ? b.name == a : b.name in a) - } - } - - var e = function (a, b) { - a = a[0]; - b = b[0]; - return a < b ? -1 : a > b ? 1 : 0 - }, b = CKEDITOR.htmlParser.fragment.prototype; - CKEDITOR.htmlParser.element.prototype = CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node, {type: CKEDITOR.NODE_ELEMENT, add: b.add, clone: function () { - return new CKEDITOR.htmlParser.element(this.name, this.attributes) - }, filter: function (a, b) { - var e = this, h, m, b = e.getFilterContext(b); - if (b.off)return true; - if (!e.parent)a.onRoot(b, e); - for (; ;) { - h = e.name; - if (!(m = a.onElementName(b, h))) { - this.remove(); - return false - } - e.name = m; - if (!(e = a.onElement(b, e))) { - this.remove(); - return false - } - if (e !== this) { - this.replaceWith(e); - return false - } - if (e.name == h)break; - if (e.type != CKEDITOR.NODE_ELEMENT) { - this.replaceWith(e); - return false - } - if (!e.name) { - this.replaceWithChildren(); - return false - } - } - h = e.attributes; - var j, i; - for (j in h) { - i = j; - for (m = h[j]; ;)if (i = a.onAttributeName(b, j))if (i != j) { - delete h[j]; - j = i - } else break; else { - delete h[j]; - break - } - i && ((m = a.onAttribute(b, - e, i, m)) === false ? delete h[i] : h[i] = m) - } - e.isEmpty || this.filterChildren(a, false, b); - return true - }, filterChildren: b.filterChildren, writeHtml: function (a, b) { - b && this.filter(b); - var g = this.name, h = [], m = this.attributes, j, i; - a.openTag(g, m); - for (j in m)h.push([j, m[j]]); - a.sortAttributes && h.sort(e); - j = 0; - for (i = h.length; j < i; j++) { - m = h[j]; - a.attribute(m[0], m[1]) - } - a.openTagClose(g, this.isEmpty); - this.writeChildrenHtml(a); - this.isEmpty || a.closeTag(g) - }, writeChildrenHtml: b.writeChildrenHtml, replaceWithChildren: function () { - for (var a = - this.children, b = a.length; b;)a[--b].insertAfter(this); - this.remove() - }, forEach: b.forEach, getFirst: function (b) { - if (!b)return this.children.length ? this.children[0] : null; - typeof b != "function" && (b = a(b)); - for (var d = 0, e = this.children.length; d < e; ++d)if (b(this.children[d]))return this.children[d]; - return null - }, getHtml: function () { - var a = new CKEDITOR.htmlParser.basicWriter; - this.writeChildrenHtml(a); - return a.getHtml() - }, setHtml: function (a) { - for (var a = this.children = CKEDITOR.htmlParser.fragment.fromHtml(a).children, b = 0, - e = a.length; b < e; ++b)a[b].parent = this - }, getOuterHtml: function () { - var a = new CKEDITOR.htmlParser.basicWriter; - this.writeHtml(a); - return a.getHtml() - }, split: function (a) { - for (var b = this.children.splice(a, this.children.length - a), e = this.clone(), h = 0; h < b.length; ++h)b[h].parent = e; - e.children = b; - if (b[0])b[0].previous = null; - if (a > 0)this.children[a - 1].next = null; - this.parent.add(e, this.getIndex() + 1); - return e - }, removeClass: function (a) { - var b = this.attributes["class"]; - if (b)(b = CKEDITOR.tools.trim(b.replace(RegExp("(?:\\s+|^)" + a + - "(?:\\s+|$)"), " "))) ? this.attributes["class"] = b : delete this.attributes["class"] - }, hasClass: function (a) { - var b = this.attributes["class"]; - return!b ? false : RegExp("(?:^|\\s)" + a + "(?=\\s|$)").test(b) - }, getFilterContext: function (a) { - var b = []; - a || (a = {off: false, nonEditable: false, nestedEditable: false}); - !a.off && this.attributes["data-cke-processor"] == "off" && b.push("off", true); - !a.nonEditable && this.attributes.contenteditable == "false" ? b.push("nonEditable", true) : !a.nestedEditable && this.attributes.contenteditable == "true" && - b.push("nestedEditable", true); - if (b.length)for (var a = CKEDITOR.tools.copy(a), e = 0; e < b.length; e = e + 2)a[b[e]] = b[e + 1]; - return a - }}, true) - })(); - (function () { - var a = {}, e = /{([^}]+)}/g, b = /([\\'])/g, c = /\n/g, d = /\r/g; - CKEDITOR.template = function (g) { - if (a[g])this.output = a[g]; else { - var h = g.replace(b, "\\$1").replace(c, "\\n").replace(d, "\\r").replace(e, function (a, b) { - return"',data['" + b + "']==undefined?'{" + b + "}':data['" + b + "'],'" - }); - this.output = a[g] = Function("data", "buffer", "return buffer?buffer.push('" + h + "'):['" + h + "'].join('');") - } - } - })(); - delete CKEDITOR.loadFullCore; - CKEDITOR.instances = {}; - CKEDITOR.document = new CKEDITOR.dom.document(document); - CKEDITOR.add = function (a) { - CKEDITOR.instances[a.name] = a; - a.on("focus", function () { - if (CKEDITOR.currentInstance != a) { - CKEDITOR.currentInstance = a; - CKEDITOR.fire("currentInstance") - } - }); - a.on("blur", function () { - if (CKEDITOR.currentInstance == a) { - CKEDITOR.currentInstance = null; - CKEDITOR.fire("currentInstance") - } - }); - CKEDITOR.fire("instance", null, a) - }; - CKEDITOR.remove = function (a) { - delete CKEDITOR.instances[a.name] - }; - (function () { - var a = {}; - CKEDITOR.addTemplate = function (e, b) { - var c = a[e]; - if (c)return c; - c = {name: e, source: b}; - CKEDITOR.fire("template", c); - return a[e] = new CKEDITOR.template(c.source) - }; - CKEDITOR.getTemplate = function (e) { - return a[e] - } - })(); - (function () { - var a = []; - CKEDITOR.addCss = function (e) { - a.push(e) - }; - CKEDITOR.getCss = function () { - return a.join("\n") - } - })(); - CKEDITOR.on("instanceDestroyed", function () { - CKEDITOR.tools.isEmpty(this.instances) && CKEDITOR.fire("reset") - }); - CKEDITOR.TRISTATE_ON = 1; - CKEDITOR.TRISTATE_OFF = 2; - CKEDITOR.TRISTATE_DISABLED = 0; - (function () { - CKEDITOR.inline = function (a, e) { - if (!CKEDITOR.env.isCompatible)return null; - a = CKEDITOR.dom.element.get(a); - if (a.getEditor())throw'The editor instance "' + a.getEditor().name + '" is already attached to the provided element.'; - var b = new CKEDITOR.editor(e, a, CKEDITOR.ELEMENT_MODE_INLINE), c = a.is("textarea") ? a : null; - if (c) { - b.setData(c.getValue(), null, true); - a = CKEDITOR.dom.element.createFromHtml('
    ' + c.getValue() + "
    ", CKEDITOR.document); - a.insertAfter(c); - c.hide(); - c.$.form && b._attachToForm() - } else b.setData(a.getHtml(), null, true); - b.on("loaded", function () { - b.fire("uiReady"); - b.editable(a); - b.container = a; - b.setData(b.getData(1)); - b.resetDirty(); - b.fire("contentDom"); - b.mode = "wysiwyg"; - b.fire("mode"); - b.status = "ready"; - b.fireOnce("instanceReady"); - CKEDITOR.fire("instanceReady", null, b) - }, null, null, 1E4); - b.on("destroy", function () { - if (c) { - b.container.clearCustomData(); - b.container.remove(); - c.show() - } - b.element.clearCustomData(); - delete b.element - }); - return b - }; - CKEDITOR.inlineAll = function () { - var a, e, b; - for (b in CKEDITOR.dtd.$editable)for (var c = CKEDITOR.document.getElementsByTag(b), d = 0, g = c.count(); d < g; d++) { - a = c.getItem(d); - if (a.getAttribute("contenteditable") == "true") { - e = {element: a, config: {}}; - CKEDITOR.fire("inline", e) !== false && CKEDITOR.inline(a, e.config) - } - } - }; - CKEDITOR.domReady(function () { - !CKEDITOR.disableAutoInline && CKEDITOR.inlineAll() - }) - })(); - CKEDITOR.replaceClass = "ckeditor"; - (function () { - function a(a, c, h, m) { - if (!CKEDITOR.env.isCompatible)return null; - a = CKEDITOR.dom.element.get(a); - if (a.getEditor())throw'The editor instance "' + a.getEditor().name + '" is already attached to the provided element.'; - var j = new CKEDITOR.editor(c, a, m); - if (m == CKEDITOR.ELEMENT_MODE_REPLACE) { - a.setStyle("visibility", "hidden"); - j._.required = a.hasAttribute("required"); - a.removeAttribute("required") - } - h && j.setData(h, null, true); - j.on("loaded", function () { - b(j); - m == CKEDITOR.ELEMENT_MODE_REPLACE && (j.config.autoUpdateElement && - a.$.form) && j._attachToForm(); - j.setMode(j.config.startupMode, function () { - j.resetDirty(); - j.status = "ready"; - j.fireOnce("instanceReady"); - CKEDITOR.fire("instanceReady", null, j) - }) - }); - j.on("destroy", e); - return j - } - - function e() { - var a = this.container, b = this.element; - if (a) { - a.clearCustomData(); - a.remove() - } - if (b) { - b.clearCustomData(); - if (this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE) { - b.show(); - this._.required && b.setAttribute("required", "required") - } - delete this.element - } - } - - function b(a) { - var b = a.name, e = a.element, m = a.elementMode, - j = a.fire("uiSpace", {space: "top", html: ""}).html, i = a.fire("uiSpace", {space: "bottom", html: ""}).html; - c || (c = CKEDITOR.addTemplate("maincontainer", '<{outerEl} id="cke_{name}" class="{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} ' + CKEDITOR.env.cssClass + '" dir="{langDir}" lang="{langCode}" role="application" aria-labelledby="cke_{name}_arialbl">{voiceLabel}<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}')); - b = CKEDITOR.dom.element.createFromHtml(c.output({id: a.id, name: b, langDir: a.lang.dir, langCode: a.langCode, voiceLabel: [a.lang.editor, a.name].join(", "), topHtml: j ? '' + j + "" : "", contentId: a.ui.spaceId("contents"), bottomHtml: i ? '' + i + "" : "", outerEl: CKEDITOR.env.ie ? "span" : "div"})); - if (m == CKEDITOR.ELEMENT_MODE_REPLACE) { - e.hide(); - b.insertAfter(e) - } else e.append(b); - a.container = b; - j && a.ui.space("top").unselectable(); - i && a.ui.space("bottom").unselectable(); - e = a.config.width; - m = a.config.height; - e && b.setStyle("width", CKEDITOR.tools.cssLength(e)); - m && a.ui.space("contents").setStyle("height", CKEDITOR.tools.cssLength(m)); - b.disableContextMenu(); - CKEDITOR.env.webkit && b.on("focus", function () { - a.focus() - }); - a.fireOnce("uiReady") - } - - CKEDITOR.replace = function (b, c) { - return a(b, c, null, CKEDITOR.ELEMENT_MODE_REPLACE) - }; - CKEDITOR.appendTo = function (b, c, e) { - return a(b, - c, e, CKEDITOR.ELEMENT_MODE_APPENDTO) - }; - CKEDITOR.replaceAll = function () { - for (var a = document.getElementsByTagName("textarea"), b = 0; b < a.length; b++) { - var c = null, e = a[b]; - if (e.name || e.id) { - if (typeof arguments[0] == "string") { - if (!RegExp("(?:^|\\s)" + arguments[0] + "(?:$|\\s)").test(e.className))continue - } else if (typeof arguments[0] == "function") { - c = {}; - if (arguments[0](e, c) === false)continue - } - this.replace(e, c) - } - } - }; - CKEDITOR.editor.prototype.addMode = function (a, b) { - (this._.modes || (this._.modes = {}))[a] = b - }; - CKEDITOR.editor.prototype.setMode = - function (a, b) { - var c = this, e = this._.modes; - if (!(a == c.mode || !e || !e[a])) { - c.fire("beforeSetMode", a); - if (c.mode) { - var j = c.checkDirty(); - c._.previousMode = c.mode; - c.fire("beforeModeUnload"); - c.editable(0); - c.ui.space("contents").setHtml(""); - c.mode = "" - } - this._.modes[a](function () { - c.mode = a; - j !== void 0 && !j && c.resetDirty(); - setTimeout(function () { - c.fire("mode"); - b && b.call(c) - }, 0) - }) - } - }; - CKEDITOR.editor.prototype.resize = function (a, b, c, e) { - var j = this.container, i = this.ui.space("contents"), n = CKEDITOR.env.webkit && this.document && this.document.getWindow().$.frameElement, - e = e ? j.getChild(1) : j; - e.setSize("width", a, true); - n && (n.style.width = "1%"); - i.setStyle("height", Math.max(b - (c ? 0 : (e.$.offsetHeight || 0) - (i.$.clientHeight || 0)), 0) + "px"); - n && (n.style.width = "100%"); - this.fire("resize") - }; - CKEDITOR.editor.prototype.getResizable = function (a) { - return a ? this.ui.space("contents") : this.container - }; - var c; - CKEDITOR.domReady(function () { - CKEDITOR.replaceClass && CKEDITOR.replaceAll(CKEDITOR.replaceClass) - }) - })(); - CKEDITOR.config.startupMode = "wysiwyg"; - (function () { - function a(a) { - var b = a.editor, d = a.data.path, l = d.blockLimit, p = a.data.selection, k = p.getRanges()[0], g; - if (CKEDITOR.env.gecko || CKEDITOR.env.ie && CKEDITOR.env.needsBrFiller)if (p = e(p, d)) { - p.appendBogus(); - g = CKEDITOR.env.ie - } - if (b.config.autoParagraph !== false && b.activeEnterMode != CKEDITOR.ENTER_BR && b.editable().equals(l) && !d.block && k.collapsed && !k.getCommonAncestor().isReadOnly()) { - d = k.clone(); - d.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS); - l = new CKEDITOR.dom.walker(d); - l.guard = function (a) { - return!c(a) || a.type == - CKEDITOR.NODE_COMMENT || a.isReadOnly() - }; - if (!l.checkForward() || d.checkStartOfBlock() && d.checkEndOfBlock()) { - b = k.fixBlock(true, b.activeEnterMode == CKEDITOR.ENTER_DIV ? "div" : "p"); - if (!CKEDITOR.env.needsBrFiller)(b = b.getFirst(c)) && (b.type == CKEDITOR.NODE_TEXT && CKEDITOR.tools.trim(b.getText()).match(/^(?: |\xa0)$/)) && b.remove(); - g = 1; - a.cancel() - } - } - g && k.select() - } - - function e(a, b) { - if (a.isFake)return 0; - var e = b.block || b.blockLimit, d = e && e.getLast(c); - if (e && e.isBlockBoundary() && (!d || !(d.type == CKEDITOR.NODE_ELEMENT && - d.isBlockBoundary())) && !e.is("pre") && !e.getBogus())return e - } - - function b(a) { - var b = a.data.getTarget(); - if (b.is("input")) { - b = b.getAttribute("type"); - (b == "submit" || b == "reset") && a.data.preventDefault() - } - } - - function c(a) { - return n(a) && r(a) - } - - function d(a, b) { - return function (c) { - var e = CKEDITOR.dom.element.get(c.data.$.toElement || c.data.$.fromElement || c.data.$.relatedTarget); - (!e || !b.equals(e) && !b.contains(e)) && a.call(this, c) - } - } - - function g(a) { - var b, e = a.getRanges()[0], d = a.root, p = {table: 1, ul: 1, ol: 1, dl: 1}; - if (e.startPath().contains(p)) { - var a = - function (a) { - return function (e, d) { - d && (e.type == CKEDITOR.NODE_ELEMENT && e.is(p)) && (b = e); - if (!d && c(e) && (!a || !j(e)))return false - } - }, k = e.clone(); - k.collapse(1); - k.setStartAt(d, CKEDITOR.POSITION_AFTER_START); - d = new CKEDITOR.dom.walker(k); - d.guard = a(); - d.checkBackward(); - if (b) { - k = e.clone(); - k.collapse(); - k.setEndAt(b, CKEDITOR.POSITION_AFTER_END); - d = new CKEDITOR.dom.walker(k); - d.guard = a(true); - b = false; - d.checkForward(); - return b - } - } - return null - } - - function h(a) { - a.editor.focus(); - a.editor.fire("saveSnapshot") - } - - function m(a, b) { - var c = - a.editor; - !b && c.getSelection().scrollIntoView(); - setTimeout(function () { - c.fire("saveSnapshot") - }, 0) - } - - CKEDITOR.editable = CKEDITOR.tools.createClass({base: CKEDITOR.dom.element, $: function (a, b) { - this.base(b.$ || b); - this.editor = a; - this.hasFocus = false; - this.setup() - }, proto: {focus: function () { - var a; - if (CKEDITOR.env.webkit && !this.hasFocus) { - a = this.editor._.previousActive || this.getDocument().getActive(); - if (this.contains(a)) { - a.focus(); - return - } - } - try { - this.$[CKEDITOR.env.ie && this.getDocument().equals(CKEDITOR.document) ? "setActive" : - "focus"]() - } catch (b) { - if (!CKEDITOR.env.ie)throw b; - } - if (CKEDITOR.env.safari && !this.isInline()) { - a = CKEDITOR.document.getActive(); - a.equals(this.getWindow().getFrame()) || this.getWindow().focus() - } - }, on: function (a, b) { - var c = Array.prototype.slice.call(arguments, 0); - if (CKEDITOR.env.ie && /^focus|blur$/.exec(a)) { - a = a == "focus" ? "focusin" : "focusout"; - b = d(b, this); - c[0] = a; - c[1] = b - } - return CKEDITOR.dom.element.prototype.on.apply(this, c) - }, attachListener: function (a, b, c, e, d, k) { - !this._.listeners && (this._.listeners = []); - var g = Array.prototype.slice.call(arguments, - 1), g = a.on.apply(a, g); - this._.listeners.push(g); - return g - }, clearListeners: function () { - var a = this._.listeners; - try { - for (; a.length;)a.pop().removeListener() - } catch (b) { - } - }, restoreAttrs: function () { - var a = this._.attrChanges, b, c; - for (c in a)if (a.hasOwnProperty(c)) { - b = a[c]; - b !== null ? this.setAttribute(c, b) : this.removeAttribute(c) - } - }, attachClass: function (a) { - var b = this.getCustomData("classes"); - if (!this.hasClass(a)) { - !b && (b = []); - b.push(a); - this.setCustomData("classes", b); - this.addClass(a) - } - }, changeAttr: function (a, b) { - var c = this.getAttribute(a); - if (b !== c) { - !this._.attrChanges && (this._.attrChanges = {}); - a in this._.attrChanges || (this._.attrChanges[a] = c); - this.setAttribute(a, b) - } - }, insertHtml: function (a, b) { - h(this); - o(this, b || "html", a) - }, insertText: function (a) { - h(this); - var b = this.editor, c = b.getSelection().getStartElement().hasAscendant("pre", true) ? CKEDITOR.ENTER_BR : b.activeEnterMode, b = c == CKEDITOR.ENTER_BR, e = CKEDITOR.tools, a = e.htmlEncode(a.replace(/\r\n/g, "\n")), a = a.replace(/\t/g, "    "), c = c == CKEDITOR.ENTER_P ? "p" : "div"; - if (!b) { - var d = /\n{2}/g; - if (d.test(a))var k = "<" + c + ">", g = "", a = k + a.replace(d, function () { - return g + k - }) + g - } - a = a.replace(/\n/g, "
    "); - b || (a = a.replace(RegExp("
    (?=)"), function (a) { - return e.repeat(a, 2) - })); - a = a.replace(/^ | $/g, " "); - a = a.replace(/(>|\s) /g,function (a, b) { - return b + " " - }).replace(/ (?=<)/g, " "); - o(this, "text", a) - }, insertElement: function (a, b) { - b ? this.insertElementIntoRange(a, b) : this.insertElementIntoSelection(a) - }, insertElementIntoRange: function (a, b) { - var c = this.editor, e = c.config.enterMode, d = a.getName(), - k = CKEDITOR.dtd.$block[d]; - if (b.checkReadOnly())return false; - b.deleteContents(1); - b.startContainer.type == CKEDITOR.NODE_ELEMENT && b.startContainer.is({tr: 1, table: 1, tbody: 1, thead: 1, tfoot: 1}) && u(b); - var g, h; - if (k)for (; (g = b.getCommonAncestor(0, 1)) && (h = CKEDITOR.dtd[g.getName()]) && (!h || !h[d]);)if (g.getName()in CKEDITOR.dtd.span)b.splitElement(g); else if (b.checkStartOfBlock() && b.checkEndOfBlock()) { - b.setStartBefore(g); - b.collapse(true); - g.remove() - } else b.splitBlock(e == CKEDITOR.ENTER_DIV ? "div" : "p", c.editable()); - b.insertNode(a); - return true - }, insertElementIntoSelection: function (a) { - var b = this.editor, e = b.activeEnterMode, b = b.getSelection(), d = b.getRanges()[0], g = a.getName(), g = CKEDITOR.dtd.$block[g]; - h(this); - if (this.insertElementIntoRange(a, d)) { - d.moveToPosition(a, CKEDITOR.POSITION_AFTER_END); - if (g)if ((g = a.getNext(function (a) { - return c(a) && !j(a) - })) && g.type == CKEDITOR.NODE_ELEMENT && g.is(CKEDITOR.dtd.$block))g.getDtd()["#"] ? d.moveToElementEditStart(g) : d.moveToElementEditEnd(a); else if (!g && e != CKEDITOR.ENTER_BR) { - g = d.fixBlock(true, e == CKEDITOR.ENTER_DIV ? - "div" : "p"); - d.moveToElementEditStart(g) - } - } - b.selectRanges([d]); - m(this, CKEDITOR.env.opera) - }, setData: function (a, b) { - b || (a = this.editor.dataProcessor.toHtml(a)); - this.setHtml(a); - this.editor.fire("dataReady") - }, getData: function (a) { - var b = this.getHtml(); - a || (b = this.editor.dataProcessor.toDataFormat(b)); - return b - }, setReadOnly: function (a) { - this.setAttribute("contenteditable", !a) - }, detach: function () { - this.removeClass("cke_editable"); - var a = this.editor; - this._.detach(); - delete a.document; - delete a.window - }, isInline: function () { - return this.getDocument().equals(CKEDITOR.document) - }, - setup: function () { - var a = this.editor; - this.attachListener(a, "beforeGetData", function () { - var b = this.getData(); - this.is("textarea") || a.config.ignoreEmptyParagraph !== false && (b = b.replace(i, function (a, b) { - return b - })); - a.setData(b, null, 1) - }, this); - this.attachListener(a, "getSnapshot", function (a) { - a.data = this.getData(1) - }, this); - this.attachListener(a, "afterSetData", function () { - this.setData(a.getData(1)) - }, this); - this.attachListener(a, "loadSnapshot", function (a) { - this.setData(a.data, 1) - }, this); - this.attachListener(a, "beforeFocus", - function () { - var b = a.getSelection(); - (b = b && b.getNative()) && b.type == "Control" || this.focus() - }, this); - this.attachListener(a, "insertHtml", function (a) { - this.insertHtml(a.data.dataValue, a.data.mode) - }, this); - this.attachListener(a, "insertElement", function (a) { - this.insertElement(a.data) - }, this); - this.attachListener(a, "insertText", function (a) { - this.insertText(a.data) - }, this); - this.setReadOnly(a.readOnly); - this.attachClass("cke_editable"); - this.attachClass(a.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? "cke_editable_inline" : - a.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE || a.elementMode == CKEDITOR.ELEMENT_MODE_APPENDTO ? "cke_editable_themed" : ""); - this.attachClass("cke_contents_" + a.config.contentsLangDirection); - a.keystrokeHandler.blockedKeystrokes[8] = +a.readOnly; - a.keystrokeHandler.attach(this); - this.on("blur", function (a) { - CKEDITOR.env.opera && CKEDITOR.document.getActive().equals(this.isInline() ? this : this.getWindow().getFrame()) ? a.cancel() : this.hasFocus = false - }, null, null, -1); - this.on("focus", function () { - this.hasFocus = true - }, null, null, - -1); - a.focusManager.add(this); - if (this.equals(CKEDITOR.document.getActive())) { - this.hasFocus = true; - a.once("contentDom", function () { - a.focusManager.focus() - }) - } - this.isInline() && this.changeAttr("tabindex", a.tabIndex); - if (!this.is("textarea")) { - a.document = this.getDocument(); - a.window = this.getWindow(); - var e = a.document; - this.changeAttr("spellcheck", !a.config.disableNativeSpellChecker); - var d = a.config.contentsLangDirection; - this.getDirection(1) != d && this.changeAttr("dir", d); - var l = CKEDITOR.getCss(); - if (l) { - d = e.getHead(); - if (!d.getCustomData("stylesheet")) { - l = e.appendStyleText(l); - l = new CKEDITOR.dom.element(l.ownerNode || l.owningElement); - d.setCustomData("stylesheet", l); - l.data("cke-temp", 1) - } - } - d = e.getCustomData("stylesheet_ref") || 0; - e.setCustomData("stylesheet_ref", d + 1); - this.setCustomData("cke_includeReadonly", !a.config.disableReadonlyStyling); - this.attachListener(this, "click", function (a) { - var a = a.data, b = (new CKEDITOR.dom.elementPath(a.getTarget(), this)).contains("a"); - b && (a.$.button != 2 && b.isReadOnly()) && a.preventDefault() - }); - var p = {8: 1, 46: 1}; - this.attachListener(a, "key", function (b) { - if (a.readOnly)return true; - var c = b.data.keyCode, e; - if (c in p) { - var b = a.getSelection(), d, l = b.getRanges()[0], h = l.startPath(), i, j, m, c = c == 8; - if (CKEDITOR.env.ie && CKEDITOR.env.version < 11 && (d = b.getSelectedElement()) || (d = g(b))) { - a.fire("saveSnapshot"); - l.moveToPosition(d, CKEDITOR.POSITION_BEFORE_START); - d.remove(); - l.select(); - a.fire("saveSnapshot"); - e = 1 - } else if (l.collapsed)if ((i = h.block) && (m = i[c ? "getPrevious" : "getNext"](n)) && m.type == CKEDITOR.NODE_ELEMENT && m.is("table") && - l[c ? "checkStartOfBlock" : "checkEndOfBlock"]()) { - a.fire("saveSnapshot"); - l[c ? "checkEndOfBlock" : "checkStartOfBlock"]() && i.remove(); - l["moveToElementEdit" + (c ? "End" : "Start")](m); - l.select(); - a.fire("saveSnapshot"); - e = 1 - } else if (h.blockLimit && h.blockLimit.is("td") && (j = h.blockLimit.getAscendant("table")) && l.checkBoundaryOfElement(j, c ? CKEDITOR.START : CKEDITOR.END) && (m = j[c ? "getPrevious" : "getNext"](n))) { - a.fire("saveSnapshot"); - l["moveToElementEdit" + (c ? "End" : "Start")](m); - l.checkStartOfBlock() && l.checkEndOfBlock() ? m.remove() : - l.select(); - a.fire("saveSnapshot"); - e = 1 - } else if ((j = h.contains(["td", "th", "caption"])) && l.checkBoundaryOfElement(j, c ? CKEDITOR.START : CKEDITOR.END))e = 1 - } - return!e - }); - a.blockless && (CKEDITOR.env.ie && CKEDITOR.env.needsBrFiller) && this.attachListener(this, "keyup", function (b) { - if (b.data.getKeystroke()in p && !this.getFirst(c)) { - this.appendBogus(); - b = a.createRange(); - b.moveToPosition(this, CKEDITOR.POSITION_AFTER_START); - b.select() - } - }); - this.attachListener(this, "dblclick", function (b) { - if (a.readOnly)return false; - b = {element: b.data.getTarget()}; - a.fire("doubleclick", b) - }); - CKEDITOR.env.ie && this.attachListener(this, "click", b); - !CKEDITOR.env.ie && !CKEDITOR.env.opera && this.attachListener(this, "mousedown", function (b) { - var c = b.data.getTarget(); - if (c.is("img", "hr", "input", "textarea", "select")) { - a.getSelection().selectElement(c); - c.is("input", "textarea", "select") && b.data.preventDefault() - } - }); - CKEDITOR.env.gecko && this.attachListener(this, "mouseup", function (b) { - if (b.data.$.button == 2) { - b = b.data.getTarget(); - if (!b.getOuterHtml().replace(i, "")) { - var c = a.createRange(); - c.moveToElementEditStart(b); - c.select(true) - } - } - }); - if (CKEDITOR.env.webkit) { - this.attachListener(this, "click", function (a) { - a.data.getTarget().is("input", "select") && a.data.preventDefault() - }); - this.attachListener(this, "mouseup", function (a) { - a.data.getTarget().is("input", "textarea") && a.data.preventDefault() - }) - } - } - }}, _: {detach: function () { - this.editor.setData(this.editor.getData(), 0, 1); - this.clearListeners(); - this.restoreAttrs(); - var a; - if (a = this.removeCustomData("classes"))for (; a.length;)this.removeClass(a.pop()); - a = this.getDocument(); - var b = a.getHead(); - if (b.getCustomData("stylesheet")) { - var c = a.getCustomData("stylesheet_ref"); - if (--c)a.setCustomData("stylesheet_ref", c); else { - a.removeCustomData("stylesheet_ref"); - b.removeCustomData("stylesheet").remove() - } - } - this.editor.fire("contentDomUnload"); - delete this.editor - }}}); - CKEDITOR.editor.prototype.editable = function (a) { - var b = this._.editable; - if (b && a)return 0; - if (arguments.length)b = this._.editable = a ? a instanceof CKEDITOR.editable ? a : new CKEDITOR.editable(this, a) : (b && b.detach(), null); - return b - }; - var j = - CKEDITOR.dom.walker.bogus(), i = /(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi, n = CKEDITOR.dom.walker.whitespaces(true), r = CKEDITOR.dom.walker.bookmark(false, true); - CKEDITOR.on("instanceLoaded", function (b) { - var c = b.editor; - c.on("insertElement", function (a) { - a = a.data; - if (a.type == CKEDITOR.NODE_ELEMENT && (a.is("input") || a.is("textarea"))) { - a.getAttribute("contentEditable") != "false" && a.data("cke-editable", a.hasAttribute("contenteditable") ? - "true" : "1"); - a.setAttribute("contentEditable", false) - } - }); - c.on("selectionChange", function (b) { - if (!c.readOnly) { - var e = c.getSelection(); - if (e && !e.isLocked) { - e = c.checkDirty(); - c.fire("lockSnapshot"); - a(b); - c.fire("unlockSnapshot"); - !e && c.resetDirty() - } - } - }) - }); - CKEDITOR.on("instanceCreated", function (a) { - var b = a.editor; - b.on("mode", function () { - var a = b.editable(); - if (a && a.isInline()) { - var c = b.title; - a.changeAttr("role", "textbox"); - a.changeAttr("aria-label", c); - c && a.changeAttr("title", c); - if (c = this.ui.space(this.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? - "top" : "contents")) { - var e = CKEDITOR.tools.getNextId(), d = CKEDITOR.dom.element.createFromHtml('' + this.lang.common.editorHelp + ""); - c.append(d); - a.changeAttr("aria-describedby", e) - } - } - }) - }); - CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}"); - var o = function () { - function a(b) { - return b.type == CKEDITOR.NODE_ELEMENT - } - - function b(c, e) { - var d, k, l, g, p = [], t = e.range.startContainer; - d = e.range.startPath(); - for (var t = - h[t.getName()], i = 0, j = c.getChildren(), m = j.count(), n = -1, J = -1, r = 0, o = d.contains(h.$list); i < m; ++i) { - d = j.getItem(i); - if (a(d)) { - l = d.getName(); - if (o && l in CKEDITOR.dtd.$list)p = p.concat(b(d, e)); else { - g = !!t[l]; - if (l == "br" && d.data("cke-eol") && (!i || i == m - 1)) { - r = (k = i ? p[i - 1].node : j.getItem(i + 1)) && (!a(k) || !k.is("br")); - k = k && a(k) && h.$block[k.getName()] - } - n == -1 && !g && (n = i); - g || (J = i); - p.push({isElement: 1, isLineBreak: r, isBlock: d.isBlockBoundary(), hasBlockSibling: k, node: d, name: l, allowed: g}); - k = r = 0 - } - } else p.push({isElement: 0, node: d, - allowed: 1}) - } - if (n > -1)p[n].firstNotAllowed = 1; - if (J > -1)p[J].lastNotAllowed = 1; - return p - } - - function e(b, c) { - var d = [], k = b.getChildren(), l = k.count(), g, p = 0, i = h[c], t = !b.is(h.$inline) || b.is("br"); - for (t && d.push(" "); p < l; p++) { - g = k.getItem(p); - a(g) && !g.is(i) ? d = d.concat(e(g, c)) : d.push(g) - } - t && d.push(" "); - return d - } - - function d(b) { - return b && a(b) && (b.is(h.$removeEmpty) || b.is("a") && !b.isBlockBoundary()) - } - - function g(b, c, e, d) { - var k = b.clone(), l, h; - k.setEndAt(c, CKEDITOR.POSITION_BEFORE_END); - if ((l = (new CKEDITOR.dom.walker(k)).next()) && - a(l) && i[l.getName()] && (h = l.getPrevious()) && a(h) && !h.getParent().equals(b.startContainer) && e.contains(h) && d.contains(l) && l.isIdentical(h)) { - l.moveChildren(h); - l.remove(); - g(b, c, e, d) - } - } - - function k(b, c) { - function e(b, c) { - if (c.isBlock && c.isElement && !c.node.is("br") && a(b) && b.is("br")) { - b.remove(); - return 1 - } - } - - var d = c.endContainer.getChild(c.endOffset), k = c.endContainer.getChild(c.endOffset - 1); - d && e(d, b[b.length - 1]); - if (k && e(k, b[0])) { - c.setEnd(c.endContainer, c.endOffset - 1); - c.collapse() - } - } - - var h = CKEDITOR.dtd, i = {p: 1, div: 1, - h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, ul: 1, ol: 1, li: 1, pre: 1, dl: 1, blockquote: 1}, t = {p: 1, div: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1}, j = CKEDITOR.tools.extend({}, h.$inline); - delete j.br; - return function (i, n, r) { - var o = i.editor; - i.getDocument(); - var z = o.getSelection().getRanges()[0], u = false; - if (n == "unfiltered_html") { - n = "html"; - u = true - } - if (!z.checkReadOnly()) { - var v = (new CKEDITOR.dom.elementPath(z.startContainer, z.root)).blockLimit || z.root, n = {type: n, dontFilter: u, editable: i, editor: o, range: z, blockLimit: v, mergeCandidates: [], zombies: []}, - o = n.range, u = n.mergeCandidates, x, G, B, D; - if (n.type == "text" && o.shrink(CKEDITOR.SHRINK_ELEMENT, true, false)) { - x = CKEDITOR.dom.element.createFromHtml(" ", o.document); - o.insertNode(x); - o.setStartAfter(x) - } - G = new CKEDITOR.dom.elementPath(o.startContainer); - n.endPath = B = new CKEDITOR.dom.elementPath(o.endContainer); - if (!o.collapsed) { - var v = B.block || B.blockLimit, V = o.getCommonAncestor(); - v && (!v.equals(V) && !v.contains(V) && o.checkEndOfBlock()) && n.zombies.push(v); - o.deleteContents() - } - for (; (D = a(o.startContainer) && - o.startContainer.getChild(o.startOffset - 1)) && a(D) && D.isBlockBoundary() && G.contains(D);)o.moveToPosition(D, CKEDITOR.POSITION_BEFORE_END); - g(o, n.blockLimit, G, B); - if (x) { - o.setEndBefore(x); - o.collapse(); - x.remove() - } - x = o.startPath(); - if (v = x.contains(d, false, 1)) { - o.splitElement(v); - n.inlineStylesRoot = v; - n.inlineStylesPeak = x.lastElement - } - x = o.createBookmark(); - (v = x.startNode.getPrevious(c)) && a(v) && d(v) && u.push(v); - (v = x.startNode.getNext(c)) && a(v) && d(v) && u.push(v); - for (v = x.startNode; (v = v.getParent()) && d(v);)u.push(v); - o.moveToBookmark(x); - if (x = r) { - x = n.range; - if (n.type == "text" && n.inlineStylesRoot) { - D = n.inlineStylesPeak; - o = D.getDocument().createText("{cke-peak}"); - for (u = n.inlineStylesRoot.getParent(); !D.equals(u);) { - o = o.appendTo(D.clone()); - D = D.getParent() - } - r = o.getOuterHtml().split("{cke-peak}").join(r) - } - D = n.blockLimit.getName(); - if (/^\s+|\s+$/.test(r) && "span"in CKEDITOR.dtd[D])var P = ' ', r = P + r + P; - r = n.editor.dataProcessor.toHtml(r, {context: null, fixForBody: false, dontFilter: n.dontFilter, filter: n.editor.activeFilter, - enterMode: n.editor.activeEnterMode}); - D = x.document.createElement("body"); - D.setHtml(r); - if (P) { - D.getFirst().remove(); - D.getLast().remove() - } - if ((P = x.startPath().block) && !(P.getChildCount() == 1 && P.getBogus()))a:{ - var E; - if (D.getChildCount() == 1 && a(E = D.getFirst()) && E.is(t)) { - P = E.getElementsByTag("*"); - x = 0; - for (u = P.count(); x < u; x++) { - o = P.getItem(x); - if (!o.is(j))break a - } - E.moveChildren(E.getParent(1)); - E.remove() - } - } - n.dataWrapper = D; - x = r - } - if (x) { - E = n.range; - var P = E.document, A, r = n.blockLimit; - x = 0; - var L; - D = []; - var F, Q, u = o = 0, M, S; - G = E.startContainer; - var v = n.endPath.elements[0], T; - B = v.getPosition(G); - V = !!v.getCommonAncestor(G) && B != CKEDITOR.POSITION_IDENTICAL && !(B & CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_IS_CONTAINED); - G = b(n.dataWrapper, n); - for (k(G, E); x < G.length; x++) { - B = G[x]; - if (A = B.isLineBreak) { - A = E; - M = r; - var N = void 0, W = void 0; - if (B.hasBlockSibling)A = 1; else { - N = A.startContainer.getAscendant(h.$block, 1); - if (!N || !N.is({div: 1, p: 1}))A = 0; else { - W = N.getPosition(M); - if (W == CKEDITOR.POSITION_IDENTICAL || W == CKEDITOR.POSITION_CONTAINS)A = 0; else { - M = A.splitElement(N); - A.moveToPosition(M, - CKEDITOR.POSITION_AFTER_START); - A = 1 - } - } - } - } - if (A)u = x > 0; else { - A = E.startPath(); - if (!B.isBlock && n.editor.config.autoParagraph !== false && (n.editor.activeEnterMode != CKEDITOR.ENTER_BR && n.editor.editable().equals(A.blockLimit) && !A.block) && (Q = n.editor.activeEnterMode != CKEDITOR.ENTER_BR && n.editor.config.autoParagraph !== false ? n.editor.activeEnterMode == CKEDITOR.ENTER_DIV ? "div" : "p" : false)) { - Q = P.createElement(Q); - Q.appendBogus(); - E.insertNode(Q); - CKEDITOR.env.needsBrFiller && (L = Q.getBogus()) && L.remove(); - E.moveToPosition(Q, - CKEDITOR.POSITION_BEFORE_END) - } - if ((A = E.startPath().block) && !A.equals(F)) { - if (L = A.getBogus()) { - L.remove(); - D.push(A) - } - F = A - } - B.firstNotAllowed && (o = 1); - if (o && B.isElement) { - A = E.startContainer; - for (M = null; A && !h[A.getName()][B.name];) { - if (A.equals(r)) { - A = null; - break - } - M = A; - A = A.getParent() - } - if (A) { - if (M) { - S = E.splitElement(M); - n.zombies.push(S); - n.zombies.push(M) - } - } else { - M = r.getName(); - T = !x; - A = x == G.length - 1; - M = e(B.node, M); - for (var N = [], W = M.length, Z = 0, aa = void 0, ba = 0, ca = -1; Z < W; Z++) { - aa = M[Z]; - if (aa == " ") { - if (!ba && (!T || Z)) { - N.push(new CKEDITOR.dom.text(" ")); - ca = N.length - } - ba = 1 - } else { - N.push(aa); - ba = 0 - } - } - A && ca == N.length && N.pop(); - T = N - } - } - if (T) { - for (; A = T.pop();)E.insertNode(A); - T = 0 - } else E.insertNode(B.node); - if (B.lastNotAllowed && x < G.length - 1) { - (S = V ? v : S) && E.setEndAt(S, CKEDITOR.POSITION_AFTER_START); - o = 0 - } - E.collapse() - } - } - n.dontMoveCaret = u; - n.bogusNeededBlocks = D - } - L = n.range; - var X; - S = n.bogusNeededBlocks; - for (T = L.createBookmark(); F = n.zombies.pop();)if (F.getParent()) { - Q = L.clone(); - Q.moveToElementEditStart(F); - Q.removeEmptyBlocksAtEnd() - } - if (S)for (; F = S.pop();)CKEDITOR.env.needsBrFiller ? F.appendBogus() : - F.append(L.document.createText(" ")); - for (; F = n.mergeCandidates.pop();)F.mergeSiblings(); - L.moveToBookmark(T); - if (!n.dontMoveCaret) { - for (F = a(L.startContainer) && L.startContainer.getChild(L.startOffset - 1); F && a(F) && !F.is(h.$empty);) { - if (F.isBlockBoundary())L.moveToPosition(F, CKEDITOR.POSITION_BEFORE_END); else { - if (d(F) && F.getHtml().match(/(\s| )$/g)) { - X = null; - break - } - X = L.clone(); - X.moveToPosition(F, CKEDITOR.POSITION_BEFORE_END) - } - F = F.getLast(c) - } - X && L.moveToRange(X) - } - z.select(); - m(i) - } - } - }(), u = function () { - function a(b) { - b = - new CKEDITOR.dom.walker(b); - b.guard = function (a, b) { - if (b)return false; - if (a.type == CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent) - }; - b.evaluator = function (a) { - return a.type == CKEDITOR.NODE_ELEMENT - }; - return b - } - - function b(a, c, e) { - c = a.getDocument().createElement(c); - a.append(c, e); - return c - } - - function c(a) { - var b = a.count(), e; - for (b; b-- > 0;) { - e = a.getItem(b); - if (!CKEDITOR.tools.trim(e.getHtml())) { - e.appendBogus(); - CKEDITOR.env.ie && (CKEDITOR.env.version < 9 && e.getChildCount()) && e.getFirst().remove() - } - } - } - - return function (e) { - var d = - e.startContainer, k = d.getAscendant("table", 1), g = false; - c(k.getElementsByTag("td")); - c(k.getElementsByTag("th")); - k = e.clone(); - k.setStart(d, 0); - k = a(k).lastBackward(); - if (!k) { - k = e.clone(); - k.setEndAt(d, CKEDITOR.POSITION_BEFORE_END); - k = a(k).lastForward(); - g = true - } - k || (k = d); - if (k.is("table")) { - e.setStartAt(k, CKEDITOR.POSITION_BEFORE_START); - e.collapse(true); - k.remove() - } else { - k.is({tbody: 1, thead: 1, tfoot: 1}) && (k = b(k, "tr", g)); - k.is("tr") && (k = b(k, k.getParent().is("thead") ? "th" : "td", g)); - (d = k.getBogus()) && d.remove(); - e.moveToPosition(k, - g ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_END) - } - } - }() - })(); - (function () { - function a() { - var a = this._.fakeSelection, b; - if (a) { - b = this.getSelection(1); - if (!b || !b.isHidden()) { - a.reset(); - a = 0 - } - } - if (!a) { - a = b || this.getSelection(1); - if (!a || a.getType() == CKEDITOR.SELECTION_NONE)return - } - this.fire("selectionCheck", a); - b = this.elementPath(); - if (!b.compare(this._.selectionPreviousPath)) { - if (CKEDITOR.env.webkit)this._.previousActive = this.document.getActive(); - this._.selectionPreviousPath = b; - this.fire("selectionChange", {selection: a, path: b}) - } - } - - function e() { - r = true; - if (!n) { - b.call(this); - n = CKEDITOR.tools.setTimeout(b, - 200, this) - } - } - - function b() { - n = null; - if (r) { - CKEDITOR.tools.setTimeout(a, 0, this); - r = false - } - } - - function c(a) { - function b(c, e) { - return!c || c.type == CKEDITOR.NODE_TEXT ? false : a.clone()["moveToElementEdit" + (e ? "End" : "Start")](c) - } - - if (!(a.root instanceof CKEDITOR.editable))return false; - var c = a.startContainer, e = a.getPreviousNode(o, null, c), d = a.getNextNode(o, null, c); - return b(e) || b(d, 1) || !e && !d && !(c.type == CKEDITOR.NODE_ELEMENT && c.isBlockBoundary() && c.getBogus()) ? true : false - } - - function d(a) { - return a.getCustomData("cke-fillingChar") - } - - function g(a, b) { - var c = a && a.removeCustomData("cke-fillingChar"); - if (c) { - if (b !== false) { - var e, d = a.getDocument().getSelection().getNative(), f = d && d.type != "None" && d.getRangeAt(0); - if (c.getLength() > 1 && f && f.intersectsNode(c.$)) { - e = [d.anchorOffset, d.focusOffset]; - f = d.focusNode == c.$ && d.focusOffset > 0; - d.anchorNode == c.$ && d.anchorOffset > 0 && e[0]--; - f && e[1]--; - var g; - f = d; - if (!f.isCollapsed) { - g = f.getRangeAt(0); - g.setStart(f.anchorNode, f.anchorOffset); - g.setEnd(f.focusNode, f.focusOffset); - g = g.collapsed - } - g && e.unshift(e.pop()) - } - } - c.setText(h(c.getText())); - if (e) { - c = d.getRangeAt(0); - c.setStart(c.startContainer, e[0]); - c.setEnd(c.startContainer, e[1]); - d.removeAllRanges(); - d.addRange(c) - } - } - } - - function h(a) { - return a.replace(/\u200B( )?/g, function (a) { - return a[1] ? " " : "" - }) - } - - function m(a, b, c) { - var e = a.on("focus", function (a) { - a.cancel() - }, null, null, -100); - if (CKEDITOR.env.ie)var d = a.getDocument().on("selectionchange", function (a) { - a.cancel() - }, null, null, -100); else { - var f = new CKEDITOR.dom.range(a); - f.moveToElementEditStart(a); - var g = a.getDocument().$.createRange(); - g.setStart(f.startContainer.$, - f.startOffset); - g.collapse(1); - b.removeAllRanges(); - b.addRange(g) - } - c && a.focus(); - e.removeListener(); - d && d.removeListener() - } - - function j(a) { - var b = CKEDITOR.dom.element.createFromHtml('
     
    ', a.document); - a.fire("lockSnapshot"); - a.editable().append(b); - var c = a.getSelection(), e = a.createRange(), d = c.root.on("selectionchange", function (a) { - a.cancel() - }, null, null, 0); - e.setStartAt(b, CKEDITOR.POSITION_AFTER_START); - e.setEndAt(b, CKEDITOR.POSITION_BEFORE_END); - c.selectRanges([e]); - d.removeListener(); - a.fire("unlockSnapshot"); - a._.hiddenSelectionContainer = b - } - - function i(a) { - var b = {37: 1, 39: 1, 8: 1, 46: 1}; - return function (c) { - var e = c.data.getKeystroke(); - if (b[e]) { - var d = a.getSelection().getRanges(), f = d[0]; - if (d.length == 1 && f.collapsed)if ((e = f[e < 38 ? "getPreviousEditableNode" : "getNextEditableNode"]()) && e.type == CKEDITOR.NODE_ELEMENT && e.getAttribute("contenteditable") == "false") { - a.getSelection().fake(e); - c.data.preventDefault(); - c.cancel() - } - } - } - } - - var n, r, o = CKEDITOR.dom.walker.invisible(1), u = function () { - function a(b) { - return function (a) { - var c = a.editor.createRange(); - c.moveToClosestEditablePosition(a.selected, b) && a.editor.getSelection().selectRanges([c]); - return false - } - } - - function b(a) { - return function (b) { - var c = b.editor, e = c.createRange(), d; - if (!(d = e.moveToClosestEditablePosition(b.selected, a)))d = e.moveToClosestEditablePosition(b.selected, !a); - d && c.getSelection().selectRanges([e]); - c.fire("saveSnapshot"); - b.selected.remove(); - if (!d) { - e.moveToElementEditablePosition(c.editable()); - c.getSelection().selectRanges([e]) - } - c.fire("saveSnapshot"); - return false - } - } - - var c = a(), e = a(1); - return{37: c, 38: c, 39: e, 40: e, 8: b(), 46: b(1)} - }(); - CKEDITOR.on("instanceCreated", function (b) { - function c() { - var a = d.getSelection(); - a && a.removeAllRanges() - } - - var d = b.editor; - d.on("contentDom", function () { - var b = d.document, c = CKEDITOR.document, l = d.editable(), h = b.getBody(), p = b.getDocumentElement(), j = l.isInline(), n, m; - CKEDITOR.env.gecko && l.attachListener(l, "focus", function (a) { - a.removeListener(); - if (n !== 0)if ((a = d.getSelection().getNative()) && - a.isCollapsed && a.anchorNode == l.$) { - a = d.createRange(); - a.moveToElementEditStart(l); - a.select() - } - }, null, null, -2); - l.attachListener(l, CKEDITOR.env.webkit ? "DOMFocusIn" : "focus", function () { - n && CKEDITOR.env.webkit && (n = d._.previousActive && d._.previousActive.equals(b.getActive())); - d.unlockSelection(n); - n = 0 - }, null, null, -1); - l.attachListener(l, "mousedown", function () { - n = 0 - }); - if (CKEDITOR.env.ie || CKEDITOR.env.opera || j) { - var o = function () { - m = new CKEDITOR.dom.selection(d.getSelection()); - m.lock() - }; - f ? l.attachListener(l, "beforedeactivate", - o, null, null, -1) : l.attachListener(d, "selectionCheck", o, null, null, -1); - l.attachListener(l, CKEDITOR.env.webkit ? "DOMFocusOut" : "blur", function () { - d.lockSelection(m); - n = 1 - }, null, null, -1); - l.attachListener(l, "mousedown", function () { - n = 0 - }) - } - if (CKEDITOR.env.ie && !j) { - var r; - l.attachListener(l, "mousedown", function (a) { - if (a.data.$.button == 2) { - a = d.document.getSelection(); - if (!a || a.getType() == CKEDITOR.SELECTION_NONE)r = d.window.getScrollPosition() - } - }); - l.attachListener(l, "mouseup", function (a) { - if (a.data.$.button == 2 && r) { - d.document.$.documentElement.scrollLeft = - r.x; - d.document.$.documentElement.scrollTop = r.y - } - r = null - }); - if (b.$.compatMode != "BackCompat") { - if (CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat)p.on("mousedown", function (a) { - function b(a) { - a = a.data.$; - if (e) { - var c = h.$.createTextRange(); - try { - c.moveToPoint(a.x, a.y) - } catch (d) { - } - e.setEndPoint(g.compareEndPoints("StartToStart", c) < 0 ? "EndToEnd" : "StartToStart", c); - e.select() - } - } - - function d() { - p.removeListener("mousemove", b); - c.removeListener("mouseup", d); - p.removeListener("mouseup", d); - e.select() - } - - a = a.data; - if (a.getTarget().is("html") && - a.$.y < p.$.clientHeight && a.$.x < p.$.clientWidth) { - var e = h.$.createTextRange(); - try { - e.moveToPoint(a.$.x, a.$.y) - } catch (f) { - } - var g = e.duplicate(); - p.on("mousemove", b); - c.on("mouseup", d); - p.on("mouseup", d) - } - }); - if (CKEDITOR.env.version > 7 && CKEDITOR.env.version < 11) { - p.on("mousedown", function (a) { - if (a.data.getTarget().is("html")) { - c.on("mouseup", v); - p.on("mouseup", v) - } - }); - var v = function () { - c.removeListener("mouseup", v); - p.removeListener("mouseup", v); - var a = CKEDITOR.document.$.selection, d = a.createRange(); - a.type != "None" && d.parentElement().ownerDocument == - b.$ && d.select() - } - } - } - } - l.attachListener(l, "selectionchange", a, d); - l.attachListener(l, "keyup", e, d); - l.attachListener(l, CKEDITOR.env.webkit ? "DOMFocusIn" : "focus", function () { - d.forceNextSelectionCheck(); - d.selectionChange(1) - }); - if (j ? CKEDITOR.env.webkit || CKEDITOR.env.gecko : CKEDITOR.env.opera) { - var x; - l.attachListener(l, "mousedown", function () { - x = 1 - }); - l.attachListener(b.getDocumentElement(), "mouseup", function () { - x && e.call(d); - x = 0 - }) - } else l.attachListener(CKEDITOR.env.ie ? l : b.getDocumentElement(), "mouseup", e, d); - CKEDITOR.env.webkit && - l.attachListener(b, "keydown", function (a) { - switch (a.data.getKey()) { - case 13: - case 33: - case 34: - case 35: - case 36: - case 37: - case 39: - case 8: - case 45: - case 46: - g(l) - } - }, null, null, -1); - l.attachListener(l, "keydown", i(d), null, null, -1) - }); - d.on("contentDomUnload", d.forceNextSelectionCheck, d); - d.on("dataReady", function () { - delete d._.fakeSelection; - delete d._.hiddenSelectionContainer; - d.selectionChange(1) - }); - d.on("loadSnapshot", function () { - var a = d.editable().getLast(function (a) { - return a.type == CKEDITOR.NODE_ELEMENT - }); - a && a.hasAttribute("data-cke-hidden-sel") && - a.remove() - }, null, null, 100); - CKEDITOR.env.ie9Compat && d.on("beforeDestroy", c, null, null, 9); - CKEDITOR.env.webkit && d.on("setData", c); - d.on("contentDomUnload", function () { - d.unlockSelection() - }); - d.on("key", function (a) { - if (d.mode == "wysiwyg") { - var b = d.getSelection(); - if (b.isFake) { - var c = u[a.data.keyCode]; - if (c)return c({editor: d, selected: b.getSelectedElement(), selection: b, keyEvent: a}) - } - } - }) - }); - CKEDITOR.on("instanceReady", function (a) { - var b = a.editor; - if (CKEDITOR.env.webkit) { - b.on("selectionChange", function () { - var a = b.editable(), - c = d(a); - c && (c.getCustomData("ready") ? g(a) : c.setCustomData("ready", 1)) - }, null, null, -1); - b.on("beforeSetMode", function () { - g(b.editable()) - }, null, null, -1); - var c, e, a = function () { - var a = b.editable(); - if (a)if (a = d(a)) { - var f = b.document.$.defaultView.getSelection(); - f.type == "Caret" && f.anchorNode == a.$ && (e = 1); - c = a.getText(); - a.setText(h(c)) - } - }, f = function () { - var a = b.editable(); - if (a)if (a = d(a)) { - a.setText(c); - if (e) { - b.document.$.defaultView.getSelection().setPosition(a.$, a.getLength()); - e = 0 - } - } - }; - b.on("beforeUndoImage", a); - b.on("afterUndoImage", - f); - b.on("beforeGetData", a, null, null, 0); - b.on("getData", f) - } - }); - CKEDITOR.editor.prototype.selectionChange = function (b) { - (b ? a : e).call(this) - }; - CKEDITOR.editor.prototype.getSelection = function (a) { - if ((this._.savedSelection || this._.fakeSelection) && !a)return this._.savedSelection || this._.fakeSelection; - return(a = this.editable()) && this.mode == "wysiwyg" ? new CKEDITOR.dom.selection(a) : null - }; - CKEDITOR.editor.prototype.lockSelection = function (a) { - a = a || this.getSelection(1); - if (a.getType() != CKEDITOR.SELECTION_NONE) { - !a.isLocked && - a.lock(); - this._.savedSelection = a; - return true - } - return false - }; - CKEDITOR.editor.prototype.unlockSelection = function (a) { - var b = this._.savedSelection; - if (b) { - b.unlock(a); - delete this._.savedSelection; - return true - } - return false - }; - CKEDITOR.editor.prototype.forceNextSelectionCheck = function () { - delete this._.selectionPreviousPath - }; - CKEDITOR.dom.document.prototype.getSelection = function () { - return new CKEDITOR.dom.selection(this) - }; - CKEDITOR.dom.range.prototype.select = function () { - var a = this.root instanceof CKEDITOR.editable ? - this.root.editor.getSelection() : new CKEDITOR.dom.selection(this.root); - a.selectRanges([this]); - return a - }; - CKEDITOR.SELECTION_NONE = 1; - CKEDITOR.SELECTION_TEXT = 2; - CKEDITOR.SELECTION_ELEMENT = 3; - var f = typeof window.getSelection != "function", s = 1; - CKEDITOR.dom.selection = function (a) { - if (a instanceof CKEDITOR.dom.selection)var b = a, a = a.root; - var c = a instanceof CKEDITOR.dom.element; - this.rev = b ? b.rev : s++; - this.document = a instanceof CKEDITOR.dom.document ? a : a.getDocument(); - this.root = a = c ? a : this.document.getBody(); - this.isLocked = - 0; - this._ = {cache: {}}; - if (b) { - CKEDITOR.tools.extend(this._.cache, b._.cache); - this.isFake = b.isFake; - this.isLocked = b.isLocked; - return this - } - b = f ? this.document.$.selection : this.document.getWindow().$.getSelection(); - if (CKEDITOR.env.webkit)(b.type == "None" && this.document.getActive().equals(a) || b.type == "Caret" && b.anchorNode.nodeType == CKEDITOR.NODE_DOCUMENT) && m(a, b); else if (CKEDITOR.env.gecko)b && (this.document.getActive().equals(a) && b.anchorNode && b.anchorNode.nodeType == CKEDITOR.NODE_DOCUMENT) && m(a, b, true); else if (CKEDITOR.env.ie) { - var d; - try { - d = this.document.getActive() - } catch (e) { - } - if (f)b.type == "None" && (d && d.equals(this.document.getDocumentElement())) && m(a, null, true); else { - (b = b && b.anchorNode) && (b = new CKEDITOR.dom.node(b)); - d && (d.equals(this.document.getDocumentElement()) && b && (a.equals(b) || a.contains(b))) && m(a, null, true) - } - } - d = this.getNative(); - var g, h; - if (d)if (d.getRangeAt)g = (h = d.rangeCount && d.getRangeAt(0)) && new CKEDITOR.dom.node(h.commonAncestorContainer); else { - try { - h = d.createRange() - } catch (i) { - } - g = h && CKEDITOR.dom.element.get(h.item && h.item(0) || - h.parentElement()) - } - if (!g || !(g.type == CKEDITOR.NODE_ELEMENT || g.type == CKEDITOR.NODE_TEXT) || !this.root.equals(g) && !this.root.contains(g)) { - this._.cache.type = CKEDITOR.SELECTION_NONE; - this._.cache.startElement = null; - this._.cache.selectedElement = null; - this._.cache.selectedText = ""; - this._.cache.ranges = new CKEDITOR.dom.rangeList - } - return this - }; - var y = {img: 1, hr: 1, li: 1, table: 1, tr: 1, td: 1, th: 1, embed: 1, object: 1, ol: 1, ul: 1, a: 1, input: 1, form: 1, select: 1, textarea: 1, button: 1, fieldset: 1, thead: 1, tfoot: 1}; - CKEDITOR.dom.selection.prototype = - {getNative: function () { - return this._.cache.nativeSel !== void 0 ? this._.cache.nativeSel : this._.cache.nativeSel = f ? this.document.$.selection : this.document.getWindow().$.getSelection() - }, getType: f ? function () { - var a = this._.cache; - if (a.type)return a.type; - var b = CKEDITOR.SELECTION_NONE; - try { - var c = this.getNative(), d = c.type; - if (d == "Text")b = CKEDITOR.SELECTION_TEXT; - if (d == "Control")b = CKEDITOR.SELECTION_ELEMENT; - if (c.createRange().parentElement())b = CKEDITOR.SELECTION_TEXT - } catch (e) { - } - return a.type = b - } : function () { - var a = this._.cache; - if (a.type)return a.type; - var b = CKEDITOR.SELECTION_TEXT, c = this.getNative(); - if (!c || !c.rangeCount)b = CKEDITOR.SELECTION_NONE; else if (c.rangeCount == 1) { - var c = c.getRangeAt(0), d = c.startContainer; - if (d == c.endContainer && d.nodeType == 1 && c.endOffset - c.startOffset == 1 && y[d.childNodes[c.startOffset].nodeName.toLowerCase()])b = CKEDITOR.SELECTION_ELEMENT - } - return a.type = b - }, getRanges: function () { - var a = f ? function () { - function a(b) { - return(new CKEDITOR.dom.node(b)).getIndex() - } - - var b = function (b, c) { - b = b.duplicate(); - b.collapse(c); - var d = b.parentElement(); - if (!d.hasChildNodes())return{container: d, offset: 0}; - for (var e = d.children, f, g, k = b.duplicate(), l = 0, h = e.length - 1, i = -1, j, n; l <= h;) { - i = Math.floor((l + h) / 2); - f = e[i]; - k.moveToElementText(f); - j = k.compareEndPoints("StartToStart", b); - if (j > 0)h = i - 1; else if (j < 0)l = i + 1; else return{container: d, offset: a(f)} - } - if (i == -1 || i == e.length - 1 && j < 0) { - k.moveToElementText(d); - k.setEndPoint("StartToStart", b); - k = k.text.replace(/(\r\n|\r)/g, "\n").length; - e = d.childNodes; - if (!k) { - f = e[e.length - 1]; - return f.nodeType != CKEDITOR.NODE_TEXT ? - {container: d, offset: e.length} : {container: f, offset: f.nodeValue.length} - } - for (d = e.length; k > 0 && d > 0;) { - g = e[--d]; - if (g.nodeType == CKEDITOR.NODE_TEXT) { - n = g; - k = k - g.nodeValue.length - } - } - return{container: n, offset: -k} - } - k.collapse(j > 0 ? true : false); - k.setEndPoint(j > 0 ? "StartToStart" : "EndToStart", b); - k = k.text.replace(/(\r\n|\r)/g, "\n").length; - if (!k)return{container: d, offset: a(f) + (j > 0 ? 0 : 1)}; - for (; k > 0;)try { - g = f[j > 0 ? "previousSibling" : "nextSibling"]; - if (g.nodeType == CKEDITOR.NODE_TEXT) { - k = k - g.nodeValue.length; - n = g - } - f = g - } catch (m) { - return{container: d, - offset: a(f)} - } - return{container: n, offset: j > 0 ? -k : n.nodeValue.length + k} - }; - return function () { - var a = this.getNative(), c = a && a.createRange(), d = this.getType(); - if (!a)return[]; - if (d == CKEDITOR.SELECTION_TEXT) { - a = new CKEDITOR.dom.range(this.root); - d = b(c, true); - a.setStart(new CKEDITOR.dom.node(d.container), d.offset); - d = b(c); - a.setEnd(new CKEDITOR.dom.node(d.container), d.offset); - a.endContainer.getPosition(a.startContainer) & CKEDITOR.POSITION_PRECEDING && a.endOffset <= a.startContainer.getIndex() && a.collapse(); - return[a] - } - if (d == - CKEDITOR.SELECTION_ELEMENT) { - for (var d = [], e = 0; e < c.length; e++) { - for (var f = c.item(e), g = f.parentNode, l = 0, a = new CKEDITOR.dom.range(this.root); l < g.childNodes.length && g.childNodes[l] != f; l++); - a.setStart(new CKEDITOR.dom.node(g), l); - a.setEnd(new CKEDITOR.dom.node(g), l + 1); - d.push(a) - } - return d - } - return[] - } - }() : function () { - var a = [], b, c = this.getNative(); - if (!c)return a; - for (var d = 0; d < c.rangeCount; d++) { - var e = c.getRangeAt(d); - b = new CKEDITOR.dom.range(this.root); - b.setStart(new CKEDITOR.dom.node(e.startContainer), e.startOffset); - b.setEnd(new CKEDITOR.dom.node(e.endContainer), e.endOffset); - a.push(b) - } - return a - }; - return function (b) { - var c = this._.cache; - if (c.ranges && !b)return c.ranges; - if (!c.ranges)c.ranges = new CKEDITOR.dom.rangeList(a.call(this)); - if (b)for (var d = c.ranges, e = 0; e < d.length; e++) { - var f = d[e]; - f.getCommonAncestor().isReadOnly() && d.splice(e, 1); - if (!f.collapsed) { - if (f.startContainer.isReadOnly())for (var b = f.startContainer, g; b;) { - if ((g = b.type == CKEDITOR.NODE_ELEMENT) && b.is("body") || !b.isReadOnly())break; - g && b.getAttribute("contentEditable") == - "false" && f.setStartAfter(b); - b = b.getParent() - } - b = f.startContainer; - g = f.endContainer; - var h = f.startOffset, i = f.endOffset, j = f.clone(); - b && b.type == CKEDITOR.NODE_TEXT && (h >= b.getLength() ? j.setStartAfter(b) : j.setStartBefore(b)); - g && g.type == CKEDITOR.NODE_TEXT && (i ? j.setEndAfter(g) : j.setEndBefore(g)); - b = new CKEDITOR.dom.walker(j); - b.evaluator = function (a) { - if (a.type == CKEDITOR.NODE_ELEMENT && a.isReadOnly()) { - var b = f.clone(); - f.setEndBefore(a); - f.collapsed && d.splice(e--, 1); - if (!(a.getPosition(j.endContainer) & CKEDITOR.POSITION_CONTAINS)) { - b.setStartAfter(a); - b.collapsed || d.splice(e + 1, 0, b) - } - return true - } - return false - }; - b.next() - } - } - return c.ranges - } - }(), getStartElement: function () { - var a = this._.cache; - if (a.startElement !== void 0)return a.startElement; - var b; - switch (this.getType()) { - case CKEDITOR.SELECTION_ELEMENT: - return this.getSelectedElement(); - case CKEDITOR.SELECTION_TEXT: - var c = this.getRanges()[0]; - if (c) { - if (c.collapsed) { - b = c.startContainer; - b.type != CKEDITOR.NODE_ELEMENT && (b = b.getParent()) - } else { - for (c.optimize(); ;) { - b = c.startContainer; - if (c.startOffset == (b.getChildCount ? b.getChildCount() : - b.getLength()) && !b.isBlockBoundary())c.setStartAfter(b); else break - } - b = c.startContainer; - if (b.type != CKEDITOR.NODE_ELEMENT)return b.getParent(); - b = b.getChild(c.startOffset); - if (!b || b.type != CKEDITOR.NODE_ELEMENT)b = c.startContainer; else for (c = b.getFirst(); c && c.type == CKEDITOR.NODE_ELEMENT;) { - b = c; - c = c.getFirst() - } - } - b = b.$ - } - } - return a.startElement = b ? new CKEDITOR.dom.element(b) : null - }, getSelectedElement: function () { - var a = this._.cache; - if (a.selectedElement !== void 0)return a.selectedElement; - var b = this, c = CKEDITOR.tools.tryThese(function () { - return b.getNative().createRange().item(0) - }, - function () { - for (var a = b.getRanges()[0].clone(), c, d, e = 2; e && (!(c = a.getEnclosedNode()) || !(c.type == CKEDITOR.NODE_ELEMENT && y[c.getName()] && (d = c))); e--)a.shrink(CKEDITOR.SHRINK_ELEMENT); - return d && d.$ - }); - return a.selectedElement = c ? new CKEDITOR.dom.element(c) : null - }, getSelectedText: function () { - var a = this._.cache; - if (a.selectedText !== void 0)return a.selectedText; - var b = this.getNative(), b = f ? b.type == "Control" ? "" : b.createRange().text : b.toString(); - return a.selectedText = b - }, lock: function () { - this.getRanges(); - this.getStartElement(); - this.getSelectedElement(); - this.getSelectedText(); - this._.cache.nativeSel = null; - this.isLocked = 1 - }, unlock: function (a) { - if (this.isLocked) { - if (a)var b = this.getSelectedElement(), c = !b && this.getRanges(), d = this.isFake; - this.isLocked = 0; - this.reset(); - if (a)(a = b || c[0] && c[0].getCommonAncestor()) && a.getAscendant("body", 1) && (d ? this.fake(b) : b ? this.selectElement(b) : this.selectRanges(c)) - } - }, reset: function () { - this._.cache = {}; - this.isFake = 0; - var a = this.root.editor; - if (a && a._.fakeSelection && this.rev == a._.fakeSelection.rev) { - delete a._.fakeSelection; - var b = a._.hiddenSelectionContainer; - if (b) { - a.fire("lockSnapshot"); - b.remove(); - a.fire("unlockSnapshot") - } - delete a._.hiddenSelectionContainer - } - this.rev = s++ - }, selectElement: function (a) { - var b = new CKEDITOR.dom.range(this.root); - b.setStartBefore(a); - b.setEndAfter(a); - this.selectRanges([b]) - }, selectRanges: function (a) { - var b = this.root.editor, b = b && b._.hiddenSelectionContainer; - this.reset(); - if (b)for (var b = this.root, d, e = 0; e < a.length; ++e) { - d = a[e]; - if (d.endContainer.equals(b))d.endOffset = Math.min(d.endOffset, b.getChildCount()) - } - if (a.length)if (this.isLocked) { - var h = - CKEDITOR.document.getActive(); - this.unlock(); - this.selectRanges(a); - this.lock(); - !h.equals(this.root) && h.focus() - } else { - var i; - a:{ - var j, n; - if (a.length == 1 && !(n = a[0]).collapsed && (i = n.getEnclosedNode()) && i.type == CKEDITOR.NODE_ELEMENT) { - n = n.clone(); - n.shrink(CKEDITOR.SHRINK_ELEMENT, true); - if ((j = n.getEnclosedNode()) && j.type == CKEDITOR.NODE_ELEMENT)i = j; - if (i.getAttribute("contenteditable") == "false")break a - } - i = void 0 - } - if (i)this.fake(i); else { - if (f) { - n = CKEDITOR.dom.walker.whitespaces(true); - j = /\ufeff|\u00a0/; - b = {table: 1, tbody: 1, - tr: 1}; - if (a.length > 1) { - i = a[a.length - 1]; - a[0].setEnd(i.endContainer, i.endOffset) - } - i = a[0]; - var a = i.collapsed, m, o, r; - if ((d = i.getEnclosedNode()) && d.type == CKEDITOR.NODE_ELEMENT && d.getName()in y && (!d.is("a") || !d.getText()))try { - r = d.$.createControlRange(); - r.addElement(d.$); - r.select(); - return - } catch (s) { - } - (i.startContainer.type == CKEDITOR.NODE_ELEMENT && i.startContainer.getName()in b || i.endContainer.type == CKEDITOR.NODE_ELEMENT && i.endContainer.getName()in b) && i.shrink(CKEDITOR.NODE_ELEMENT, true); - r = i.createBookmark(); - b = - r.startNode; - if (!a)h = r.endNode; - r = i.document.$.body.createTextRange(); - r.moveToElementText(b.$); - r.moveStart("character", 1); - if (h) { - j = i.document.$.body.createTextRange(); - j.moveToElementText(h.$); - r.setEndPoint("EndToEnd", j); - r.moveEnd("character", -1) - } else { - m = b.getNext(n); - o = b.hasAscendant("pre"); - m = !(m && m.getText && m.getText().match(j)) && (o || !b.hasPrevious() || b.getPrevious().is && b.getPrevious().is("br")); - o = i.document.createElement("span"); - o.setHtml(""); - o.insertBefore(b); - m && i.document.createText("").insertBefore(b) - } - i.setStartBefore(b); - b.remove(); - if (a) { - if (m) { - r.moveStart("character", -1); - r.select(); - i.document.$.selection.clear() - } else r.select(); - i.moveToPosition(o, CKEDITOR.POSITION_BEFORE_START); - o.remove() - } else { - i.setEndBefore(h); - h.remove(); - r.select() - } - } else { - h = this.getNative(); - if (!h)return; - if (CKEDITOR.env.opera) { - r = this.document.$.createRange(); - r.selectNodeContents(this.root.$); - h.addRange(r) - } - this.removeAllRanges(); - for (r = 0; r < a.length; r++) { - if (r < a.length - 1) { - i = a[r]; - m = a[r + 1]; - j = i.clone(); - j.setStart(i.endContainer, i.endOffset); - j.setEnd(m.startContainer, - m.startOffset); - if (!j.collapsed) { - j.shrink(CKEDITOR.NODE_ELEMENT, true); - o = j.getCommonAncestor(); - j = j.getEnclosedNode(); - if (o.isReadOnly() || j && j.isReadOnly()) { - m.setStart(i.startContainer, i.startOffset); - a.splice(r--, 1); - continue - } - } - } - i = a[r]; - o = this.document.$.createRange(); - m = i.startContainer; - if (CKEDITOR.env.opera && i.collapsed && m.type == CKEDITOR.NODE_ELEMENT) { - j = m.getChild(i.startOffset - 1); - n = m.getChild(i.startOffset); - if (!j && !n && m.is(CKEDITOR.dtd.$removeEmpty) || j && j.type == CKEDITOR.NODE_ELEMENT || n && n.type == CKEDITOR.NODE_ELEMENT) { - i.insertNode(this.document.createText("")); - i.collapse(1) - } - } - if (i.collapsed && CKEDITOR.env.webkit && c(i)) { - m = this.root; - g(m, false); - j = m.getDocument().createText("​"); - m.setCustomData("cke-fillingChar", j); - i.insertNode(j); - if ((m = j.getNext()) && !j.getPrevious() && m.type == CKEDITOR.NODE_ELEMENT && m.getName() == "br") { - g(this.root); - i.moveToPosition(m, CKEDITOR.POSITION_BEFORE_START) - } else i.moveToPosition(j, CKEDITOR.POSITION_AFTER_END) - } - o.setStart(i.startContainer.$, i.startOffset); - try { - o.setEnd(i.endContainer.$, i.endOffset) - } catch (u) { - if (u.toString().indexOf("NS_ERROR_ILLEGAL_VALUE") >= - 0) { - i.collapse(1); - o.setEnd(i.endContainer.$, i.endOffset) - } else throw u; - } - h.addRange(o) - } - } - this.reset(); - this.root.fire("selectionchange") - } - } - }, fake: function (a) { - var b = this.root.editor; - this.reset(); - j(b); - var c = this._.cache, d = new CKEDITOR.dom.range(this.root); - d.setStartBefore(a); - d.setEndAfter(a); - c.ranges = new CKEDITOR.dom.rangeList(d); - c.selectedElement = c.startElement = a; - c.type = CKEDITOR.SELECTION_ELEMENT; - c.selectedText = c.nativeSel = null; - this.isFake = 1; - this.rev = s++; - b._.fakeSelection = this; - this.root.fire("selectionchange") - }, - isHidden: function () { - var a = this.getCommonAncestor(); - a && a.type == CKEDITOR.NODE_TEXT && (a = a.getParent()); - return!(!a || !a.data("cke-hidden-sel")) - }, createBookmarks: function (a) { - a = this.getRanges().createBookmarks(a); - this.isFake && (a.isFake = 1); - return a - }, createBookmarks2: function (a) { - a = this.getRanges().createBookmarks2(a); - this.isFake && (a.isFake = 1); - return a - }, selectBookmarks: function (a) { - for (var b = [], c = 0; c < a.length; c++) { - var d = new CKEDITOR.dom.range(this.root); - d.moveToBookmark(a[c]); - b.push(d) - } - a.isFake ? this.fake(b[0].getEnclosedNode()) : - this.selectRanges(b); - return this - }, getCommonAncestor: function () { - var a = this.getRanges(); - return!a.length ? null : a[0].startContainer.getCommonAncestor(a[a.length - 1].endContainer) - }, scrollIntoView: function () { - this.type != CKEDITOR.SELECTION_NONE && this.getRanges()[0].scrollIntoView() - }, removeAllRanges: function () { - var a = this.getNative(); - try { - a && a[f ? "empty" : "removeAllRanges"]() - } catch (b) { - } - this.reset() - }} - })(); - "use strict"; - CKEDITOR.editor.prototype.attachStyleStateChange = function (a, e) { - var b = this._.styleStateChangeCallbacks; - if (!b) { - b = this._.styleStateChangeCallbacks = []; - this.on("selectionChange", function (a) { - for (var d = 0; d < b.length; d++) { - var e = b[d], h = e.style.checkActive(a.data.path) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF; - e.fn.call(this, h) - } - }) - } - b.push({style: a, fn: e}) - }; - CKEDITOR.STYLE_BLOCK = 1; - CKEDITOR.STYLE_INLINE = 2; - CKEDITOR.STYLE_OBJECT = 3; - (function () { - function a(a, b) { - for (var c, d; a = a.getParent();) { - if (a.equals(b))break; - if (a.getAttribute("data-nostyle"))c = a; else if (!d) { - var e = a.getAttribute("contentEditable"); - e == "false" ? c = a : e == "true" && (d = 1) - } - } - return c - } - - function e(b) { - var d = b.document; - if (b.collapsed) { - d = y(this, d); - b.insertNode(d); - b.moveToPosition(d, CKEDITOR.POSITION_BEFORE_END) - } else { - var f = this.element, g = this._.definition, i, h = g.ignoreReadonly, j = h || g.includeReadonly; - j == void 0 && (j = b.root.getCustomData("cke_includeReadonly")); - var k = CKEDITOR.dtd[f]; - if (!k) { - i = true; - k = CKEDITOR.dtd.span - } - b.enlarge(CKEDITOR.ENLARGE_INLINE, 1); - b.trim(); - var l = b.createBookmark(), n = l.startNode, m = l.endNode, o = n, r; - if (!h) { - var p = b.getCommonAncestor(), h = a(n, p), p = a(m, p); - h && (o = h.getNextSourceNode(true)); - p && (m = p) - } - for (o.getPosition(m) == CKEDITOR.POSITION_FOLLOWING && (o = 0); o;) { - h = false; - if (o.equals(m)) { - o = null; - h = true - } else { - var q = o.type == CKEDITOR.NODE_ELEMENT ? o.getName() : null, p = q && o.getAttribute("contentEditable") == "false", s = q && o.getAttribute("data-nostyle"); - if (q && o.data("cke-bookmark")) { - o = - o.getNextSourceNode(true); - continue - } - if (p && j && CKEDITOR.dtd.$block[q])for (var t = o, w = c(t), z = void 0, C = w.length, H = 0, t = C && new CKEDITOR.dom.range(t.getDocument()); H < C; ++H) { - var z = w[H], J = CKEDITOR.filter.instances[z.data("cke-filter")]; - if (J ? J.check(this) : 1) { - t.selectNodeContents(z); - e.call(this, t) - } - } - w = q ? !k[q] || s ? 0 : p && !j ? 0 : (o.getPosition(m) | O) == O && (!g.childRule || g.childRule(o)) : 1; - if (w)if ((w = o.getParent()) && ((w.getDtd() || CKEDITOR.dtd.span)[f] || i) && (!g.parentRule || g.parentRule(w))) { - if (!r && (!q || !CKEDITOR.dtd.$removeEmpty[q] || - (o.getPosition(m) | O) == O)) { - r = b.clone(); - r.setStartBefore(o) - } - q = o.type; - if (q == CKEDITOR.NODE_TEXT || p || q == CKEDITOR.NODE_ELEMENT && !o.getChildCount()) { - for (var q = o, Y; (h = !q.getNext(K)) && (Y = q.getParent(), k[Y.getName()]) && (Y.getPosition(n) | I) == I && (!g.childRule || g.childRule(Y));)q = Y; - r.setEndAfter(q) - } - } else h = true; else h = true; - o = o.getNextSourceNode(s || p) - } - if (h && r && !r.collapsed) { - for (var h = y(this, d), p = h.hasAttributes(), s = r.getCommonAncestor(), q = {}, w = {}, z = {}, C = {}, U, R, $; h && s;) { - if (s.getName() == f) { - for (U in g.attributes)if (!C[U] && - ($ = s.getAttribute(R)))h.getAttribute(U) == $ ? w[U] = 1 : C[U] = 1; - for (R in g.styles)if (!z[R] && ($ = s.getStyle(R)))h.getStyle(R) == $ ? q[R] = 1 : z[R] = 1 - } - s = s.getParent() - } - for (U in w)h.removeAttribute(U); - for (R in q)h.removeStyle(R); - p && !h.hasAttributes() && (h = null); - if (h) { - r.extractContents().appendTo(h); - r.insertNode(h); - u.call(this, h); - h.mergeSiblings(); - CKEDITOR.env.ie || h.$.normalize() - } else { - h = new CKEDITOR.dom.element("span"); - r.extractContents().appendTo(h); - r.insertNode(h); - u.call(this, h); - h.remove(true) - } - r = null - } - } - b.moveToBookmark(l); - b.shrink(CKEDITOR.SHRINK_TEXT); - b.shrink(CKEDITOR.NODE_ELEMENT, true) - } - } - - function b(a) { - function b() { - for (var a = new CKEDITOR.dom.elementPath(d.getParent()), c = new CKEDITOR.dom.elementPath(l.getParent()), e = null, f = null, g = 0; g < a.elements.length; g++) { - var h = a.elements[g]; - if (h == a.block || h == a.blockLimit)break; - n.checkElementRemovable(h) && (e = h) - } - for (g = 0; g < c.elements.length; g++) { - h = c.elements[g]; - if (h == c.block || h == c.blockLimit)break; - n.checkElementRemovable(h) && (f = h) - } - f && l.breakParent(f); - e && d.breakParent(e) - } - - a.enlarge(CKEDITOR.ENLARGE_INLINE, - 1); - var c = a.createBookmark(), d = c.startNode; - if (a.collapsed) { - for (var e = new CKEDITOR.dom.elementPath(d.getParent(), a.root), g, h = 0, i; h < e.elements.length && (i = e.elements[h]); h++) { - if (i == e.block || i == e.blockLimit)break; - if (this.checkElementRemovable(i)) { - var j; - if (a.collapsed && (a.checkBoundaryOfElement(i, CKEDITOR.END) || (j = a.checkBoundaryOfElement(i, CKEDITOR.START)))) { - g = i; - g.match = j ? "start" : "end" - } else { - i.mergeSiblings(); - i.is(this.element) ? o.call(this, i) : f(i, k(this)[i.getName()]) - } - } - } - if (g) { - i = d; - for (h = 0; ; h++) { - j = e.elements[h]; - if (j.equals(g))break; else if (j.match)continue; else j = j.clone(); - j.append(i); - i = j - } - i[g.match == "start" ? "insertBefore" : "insertAfter"](g) - } - } else { - var l = c.endNode, n = this; - b(); - for (e = d; !e.equals(l);) { - g = e.getNextSourceNode(); - if (e.type == CKEDITOR.NODE_ELEMENT && this.checkElementRemovable(e)) { - e.getName() == this.element ? o.call(this, e) : f(e, k(this)[e.getName()]); - if (g.type == CKEDITOR.NODE_ELEMENT && g.contains(d)) { - b(); - g = d.getNext() - } - } - e = g - } - } - a.moveToBookmark(c); - a.shrink(CKEDITOR.NODE_ELEMENT, true) - } - - function c(a) { - var b = []; - a.forEach(function (a) { - if (a.getAttribute("contenteditable") == - "true") { - b.push(a); - return false - } - }, CKEDITOR.NODE_ELEMENT, true); - return b - } - - function d(a) { - var b = a.getEnclosedNode() || a.getCommonAncestor(false, true); - (a = (new CKEDITOR.dom.elementPath(b, a.root)).contains(this.element, 1)) && !a.isReadOnly() && l(a, this) - } - - function g(a) { - var b = a.getCommonAncestor(true, true); - if (a = (new CKEDITOR.dom.elementPath(b, a.root)).contains(this.element, 1)) { - var b = this._.definition, c = b.attributes; - if (c)for (var d in c)a.removeAttribute(d, c[d]); - if (b.styles)for (var e in b.styles)b.styles.hasOwnProperty(e) && - a.removeStyle(e) - } - } - - function h(a) { - var b = a.createBookmark(true), c = a.createIterator(); - c.enforceRealBlocks = true; - if (this._.enterMode)c.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR; - for (var d, e = a.document, f; d = c.getNextParagraph();)if (!d.isReadOnly() && (c.activeFilter ? c.activeFilter.check(this) : 1)) { - f = y(this, e, d); - j(d, f) - } - a.moveToBookmark(b) - } - - function m(a) { - var b = a.createBookmark(1), c = a.createIterator(); - c.enforceRealBlocks = true; - c.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR; - for (var d, e; d = c.getNextParagraph();)if (this.checkElementRemovable(d))if (d.is("pre")) { - (e = - this._.enterMode == CKEDITOR.ENTER_BR ? null : a.document.createElement(this._.enterMode == CKEDITOR.ENTER_P ? "p" : "div")) && d.copyAttributes(e); - j(d, e) - } else o.call(this, d); - a.moveToBookmark(b) - } - - function j(a, b) { - var c = !b; - if (c) { - b = a.getDocument().createElement("div"); - a.copyAttributes(b) - } - var d = b && b.is("pre"), e = a.is("pre"), f = !d && e; - if (d && !e) { - e = b; - (f = a.getBogus()) && f.remove(); - f = a.getHtml(); - f = n(f, /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, ""); - f = f.replace(/[ \t\r\n]*(]*>)[ \t\r\n]*/gi, "$1"); - f = f.replace(/([ \t\n\r]+| )/g, - " "); - f = f.replace(/]*>/gi, "\n"); - if (CKEDITOR.env.ie) { - var g = a.getDocument().createElement("div"); - g.append(e); - e.$.outerHTML = "
    " + f + "
    "; - e.copyAttributes(g.getFirst()); - e = g.getFirst().remove() - } else e.setHtml(f); - b = e - } else f ? b = r(c ? [a.getHtml()] : i(a), b) : a.moveChildren(b); - b.replace(a); - if (d) { - var c = b, h; - if ((h = c.getPrevious(C)) && h.type == CKEDITOR.NODE_ELEMENT && h.is("pre")) { - d = n(h.getHtml(), /\n$/, "") + "\n\n" + n(c.getHtml(), /^\n/, ""); - CKEDITOR.env.ie ? c.$.outerHTML = "
    " + d + "
    " : c.setHtml(d); - h.remove() - } - } else c && - s(b) - } - - function i(a) { - a.getName(); - var b = []; - n(a.getOuterHtml(), /(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function (a, b, c) { - return b + "
    " + c + "
    "
    -            }).replace(/([\s\S]*?)<\/pre>/gi, function (a, c) {
    -                b.push(c)
    -            });
    -            return b
    -        }
    -
    -        function n(a, b, c) {
    -            var d = "", e = "", a = a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi, function (a, b, c) {
    -                b && (d = b);
    -                c && (e = c);
    -                return""
    -            });
    -            return d + a.replace(b, c) + e
    -        }
    -
    -        function r(a, b) {
    -            var c;
    -            a.length > 1 && (c = new CKEDITOR.dom.documentFragment(b.getDocument()));
    -            for (var d = 0; d < a.length; d++) {
    -                var e = a[d], e = e.replace(/(\r\n|\r)/g, "\n"), e = n(e, /^[ \t]*\n/, ""), e = n(e, /\n$/, ""), e = n(e, /^[ \t]+|[ \t]+$/g, function (a, b) {
    -                    return a.length == 1 ? " " : b ? " " + CKEDITOR.tools.repeat(" ", a.length - 1) : CKEDITOR.tools.repeat(" ", a.length - 1) + " "
    -                }), e = e.replace(/\n/g, "
    "), e = e.replace(/[ \t]{2,}/g, function (a) { - return CKEDITOR.tools.repeat(" ", a.length - 1) + " " - }); - if (c) { - var f = b.clone(); - f.setHtml(e); - c.append(f) - } else b.setHtml(e) - } - return c || b - } - - function o(a, b) { - var c = this._.definition, - d = c.attributes, c = c.styles, e = k(this)[a.getName()], g = CKEDITOR.tools.isEmpty(d) && CKEDITOR.tools.isEmpty(c), h; - for (h in d)if (!((h == "class" || this._.definition.fullMatch) && a.getAttribute(h) != q(h, d[h])) && !(b && h.slice(0, 5) == "data-")) { - g = a.hasAttribute(h); - a.removeAttribute(h) - } - for (var i in c)if (!(this._.definition.fullMatch && a.getStyle(i) != q(i, c[i], true))) { - g = g || !!a.getStyle(i); - a.removeStyle(i) - } - f(a, e, t[a.getName()]); - g && (this._.definition.alwaysRemoveElement ? s(a, 1) : !CKEDITOR.dtd.$block[a.getName()] || this._.enterMode == - CKEDITOR.ENTER_BR && !a.hasAttributes() ? s(a) : a.renameNode(this._.enterMode == CKEDITOR.ENTER_P ? "p" : "div")) - } - - function u(a) { - for (var b = k(this), c = a.getElementsByTag(this.element), d, e = c.count(); --e >= 0;) { - d = c.getItem(e); - d.isReadOnly() || o.call(this, d, true) - } - for (var g in b)if (g != this.element) { - c = a.getElementsByTag(g); - for (e = c.count() - 1; e >= 0; e--) { - d = c.getItem(e); - d.isReadOnly() || f(d, b[g]) - } - } - } - - function f(a, b, c) { - if (b = b && b.attributes)for (var d = 0; d < b.length; d++) { - var e = b[d][0], f; - if (f = a.getAttribute(e)) { - var g = b[d][1]; - (g === null || - g.test && g.test(f) || typeof g == "string" && f == g) && a.removeAttribute(e) - } - } - c || s(a) - } - - function s(a, b) { - if (!a.hasAttributes() || b)if (CKEDITOR.dtd.$block[a.getName()]) { - var c = a.getPrevious(C), d = a.getNext(C); - c && (c.type == CKEDITOR.NODE_TEXT || !c.isBlockBoundary({br: 1})) && a.append("br", 1); - d && (d.type == CKEDITOR.NODE_TEXT || !d.isBlockBoundary({br: 1})) && a.append("br"); - a.remove(true) - } else { - c = a.getFirst(); - d = a.getLast(); - a.remove(true); - if (c) { - c.type == CKEDITOR.NODE_ELEMENT && c.mergeSiblings(); - d && (!c.equals(d) && d.type == CKEDITOR.NODE_ELEMENT) && - d.mergeSiblings() - } - } - } - - function y(a, b, c) { - var d; - d = a.element; - d == "*" && (d = "span"); - d = new CKEDITOR.dom.element(d, b); - c && c.copyAttributes(d); - d = l(d, a); - b.getCustomData("doc_processing_style") && d.hasAttribute("id") ? d.removeAttribute("id") : b.setCustomData("doc_processing_style", 1); - return d - } - - function l(a, b) { - var c = b._.definition, d = c.attributes, c = CKEDITOR.style.getStyleText(c); - if (d)for (var e in d)a.setAttribute(e, d[e]); - c && a.setAttribute("style", c); - return a - } - - function p(a, b) { - for (var c in a)a[c] = a[c].replace(w, function (a, c) { - return b[c] - }) - } - - function k(a) { - if (a._.overrides)return a._.overrides; - var b = a._.overrides = {}, c = a._.definition.overrides; - if (c) { - CKEDITOR.tools.isArray(c) || (c = [c]); - for (var d = 0; d < c.length; d++) { - var e = c[d], f, g; - if (typeof e == "string")f = e.toLowerCase(); else { - f = e.element ? e.element.toLowerCase() : a.element; - g = e.attributes - } - e = b[f] || (b[f] = {}); - if (g) { - var e = e.attributes = e.attributes || [], h; - for (h in g)e.push([h.toLowerCase(), g[h]]) - } - } - } - return b - } - - function q(a, b, c) { - var d = new CKEDITOR.dom.element("span"); - d[c ? "setStyle" : "setAttribute"](a, - b); - return d[c ? "getStyle" : "getAttribute"](a) - } - - function z(a, b) { - for (var c = a.document, d = a.getRanges(), e = b ? this.removeFromRange : this.applyToRange, f, g = d.createIterator(); f = g.getNextRange();)e.call(this, f); - a.selectRanges(d); - c.removeCustomData("doc_processing_style") - } - - var t = {address: 1, div: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, p: 1, pre: 1, section: 1, header: 1, footer: 1, nav: 1, article: 1, aside: 1, figure: 1, dialog: 1, hgroup: 1, time: 1, meter: 1, menu: 1, command: 1, keygen: 1, output: 1, progress: 1, details: 1, datagrid: 1, datalist: 1}, J = {a: 1, - embed: 1, hr: 1, img: 1, li: 1, object: 1, ol: 1, table: 1, td: 1, tr: 1, th: 1, ul: 1, dl: 1, dt: 1, dd: 1, form: 1, audio: 1, video: 1}, H = /\s*(?:;\s*|$)/, w = /#\((.+?)\)/g, K = CKEDITOR.dom.walker.bookmark(0, 1), C = CKEDITOR.dom.walker.whitespaces(1); - CKEDITOR.style = function (a, b) { - var c = a.attributes; - if (c && c.style) { - a.styles = CKEDITOR.tools.extend({}, a.styles, CKEDITOR.tools.parseCssText(c.style)); - delete c.style - } - if (b) { - a = CKEDITOR.tools.clone(a); - p(a.attributes, b); - p(a.styles, b) - } - c = this.element = a.element ? typeof a.element == "string" ? a.element.toLowerCase() : - a.element : "*"; - this.type = a.type || (t[c] ? CKEDITOR.STYLE_BLOCK : J[c] ? CKEDITOR.STYLE_OBJECT : CKEDITOR.STYLE_INLINE); - if (typeof this.element == "object")this.type = CKEDITOR.STYLE_OBJECT; - this._ = {definition: a} - }; - CKEDITOR.editor.prototype.applyStyle = function (a) { - a.checkApplicable(this.elementPath()) && z.call(a, this.getSelection()) - }; - CKEDITOR.editor.prototype.removeStyle = function (a) { - a.checkApplicable(this.elementPath()) && z.call(a, this.getSelection(), 1) - }; - CKEDITOR.style.prototype = {apply: function (a) { - z.call(this, a.getSelection()) - }, - remove: function (a) { - z.call(this, a.getSelection(), 1) - }, applyToRange: function (a) { - return(this.applyToRange = this.type == CKEDITOR.STYLE_INLINE ? e : this.type == CKEDITOR.STYLE_BLOCK ? h : this.type == CKEDITOR.STYLE_OBJECT ? d : null).call(this, a) - }, removeFromRange: function (a) { - return(this.removeFromRange = this.type == CKEDITOR.STYLE_INLINE ? b : this.type == CKEDITOR.STYLE_BLOCK ? m : this.type == CKEDITOR.STYLE_OBJECT ? g : null).call(this, a) - }, applyToObject: function (a) { - l(a, this) - }, checkActive: function (a) { - switch (this.type) { - case CKEDITOR.STYLE_BLOCK: - return this.checkElementRemovable(a.block || - a.blockLimit, true); - case CKEDITOR.STYLE_OBJECT: - case CKEDITOR.STYLE_INLINE: - for (var b = a.elements, c = 0, d; c < b.length; c++) { - d = b[c]; - if (!(this.type == CKEDITOR.STYLE_INLINE && (d == a.block || d == a.blockLimit))) { - if (this.type == CKEDITOR.STYLE_OBJECT) { - var e = d.getName(); - if (!(typeof this.element == "string" ? e == this.element : e in this.element))continue - } - if (this.checkElementRemovable(d, true))return true - } - } - } - return false - }, checkApplicable: function (a, b) { - if (b && !b.check(this))return false; - switch (this.type) { - case CKEDITOR.STYLE_OBJECT: - return!!a.contains(this.element); - case CKEDITOR.STYLE_BLOCK: - return!!a.blockLimit.getDtd()[this.element] - } - return true - }, checkElementMatch: function (a, b) { - var c = this._.definition; - if (!a || !c.ignoreReadonly && a.isReadOnly())return false; - var d = a.getName(); - if (typeof this.element == "string" ? d == this.element : d in this.element) { - if (!b && !a.hasAttributes())return true; - if (d = c._AC)c = d; else { - var d = {}, e = 0, f = c.attributes; - if (f)for (var g in f) { - e++; - d[g] = f[g] - } - if (g = CKEDITOR.style.getStyleText(c)) { - d.style || e++; - d.style = g - } - d._length = e; - c = c._AC = d - } - if (c._length) { - for (var h in c)if (h != - "_length") { - e = a.getAttribute(h) || ""; - if (h == "style")a:{ - d = c[h]; - typeof d == "string" && (d = CKEDITOR.tools.parseCssText(d)); - typeof e == "string" && (e = CKEDITOR.tools.parseCssText(e, true)); - g = void 0; - for (g in d)if (!(g in e && (e[g] == d[g] || d[g] == "inherit" || e[g] == "inherit"))) { - d = false; - break a - } - d = true - } else d = c[h] == e; - if (d) { - if (!b)return true - } else if (b)return false - } - if (b)return true - } else return true - } - return false - }, checkElementRemovable: function (a, b) { - if (this.checkElementMatch(a, b))return true; - var c = k(this)[a.getName()]; - if (c) { - var d; - if (!(c = c.attributes))return true; - for (var e = 0; e < c.length; e++) { - d = c[e][0]; - if (d = a.getAttribute(d)) { - var f = c[e][1]; - if (f === null || typeof f == "string" && d == f || f.test(d))return true - } - } - } - return false - }, buildPreview: function (a) { - var b = this._.definition, c = [], d = b.element; - d == "bdo" && (d = "span"); - var c = ["<", d], e = b.attributes; - if (e)for (var f in e)c.push(" ", f, '="', e[f], '"'); - (e = CKEDITOR.style.getStyleText(b)) && c.push(' style="', e, '"'); - c.push(">", a || b.name, ""); - return c.join("") - }, getDefinition: function () { - return this._.definition - }}; - CKEDITOR.style.getStyleText = function (a) { - var b = a._ST; - if (b)return b; - var b = a.styles, c = a.attributes && a.attributes.style || "", d = ""; - c.length && (c = c.replace(H, ";")); - for (var e in b) { - var f = b[e], g = (e + ":" + f).replace(H, ";"); - f == "inherit" ? d = d + g : c = c + g - } - c.length && (c = CKEDITOR.tools.normalizeCssText(c, true)); - return a._ST = c + d - }; - var O = CKEDITOR.POSITION_PRECEDING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED, I = CKEDITOR.POSITION_FOLLOWING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED - })(); - CKEDITOR.styleCommand = function (a, e) { - this.requiredContent = this.allowedContent = this.style = a; - CKEDITOR.tools.extend(this, e, true) - }; - CKEDITOR.styleCommand.prototype.exec = function (a) { - a.focus(); - this.state == CKEDITOR.TRISTATE_OFF ? a.applyStyle(this.style) : this.state == CKEDITOR.TRISTATE_ON && a.removeStyle(this.style) - }; - CKEDITOR.stylesSet = new CKEDITOR.resourceManager("", "stylesSet"); - CKEDITOR.addStylesSet = CKEDITOR.tools.bind(CKEDITOR.stylesSet.add, CKEDITOR.stylesSet); - CKEDITOR.loadStylesSet = function (a, e, b) { - CKEDITOR.stylesSet.addExternal(a, e, ""); - CKEDITOR.stylesSet.load(a, b) - }; - CKEDITOR.editor.prototype.getStylesSet = function (a) { - if (this._.stylesDefinitions)a(this._.stylesDefinitions); else { - var e = this, b = e.config.stylesCombo_stylesSet || e.config.stylesSet; - if (b === false)a(null); else if (b instanceof Array) { - e._.stylesDefinitions = b; - a(b) - } else { - b || (b = "default"); - var b = b.split(":"), c = b[0]; - CKEDITOR.stylesSet.addExternal(c, b[1] ? b.slice(1).join(":") : CKEDITOR.getUrl("styles.js"), ""); - CKEDITOR.stylesSet.load(c, function (b) { - e._.stylesDefinitions = b[c]; - a(e._.stylesDefinitions) - }) - } - } - }; - CKEDITOR.dom.comment = function (a, e) { - typeof a == "string" && (a = (e ? e.$ : document).createComment(a)); - CKEDITOR.dom.domObject.call(this, a) - }; - CKEDITOR.dom.comment.prototype = new CKEDITOR.dom.node; - CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype, {type: CKEDITOR.NODE_COMMENT, getOuterHtml: function () { - return"<\!--" + this.$.nodeValue + "--\>" - }}); - "use strict"; - (function () { - var a = {}, e = {}, b; - for (b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list || (a[b] = 1); - for (b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit || b in CKEDITOR.dtd.$empty || (e[b] = 1); - CKEDITOR.dom.elementPath = function (b, d) { - var g = null, h = null, m = [], j = b, i, d = d || b.getDocument().getBody(); - do if (j.type == CKEDITOR.NODE_ELEMENT) { - m.push(j); - if (!this.lastElement) { - this.lastElement = j; - if (j.is(CKEDITOR.dtd.$object) || j.getAttribute("contenteditable") == "false")continue - } - if (j.equals(d))break; - if (!h) { - i = j.getName(); - j.getAttribute("contenteditable") == "true" ? h = j : !g && e[i] && (g = j); - if (a[i]) { - var n; - if (n = !g) { - if (i = i == "div") { - a:{ - i = j.getChildren(); - n = 0; - for (var r = i.count(); n < r; n++) { - var o = i.getItem(n); - if (o.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$block[o.getName()]) { - i = true; - break a - } - } - i = false - } - i = !i - } - n = i - } - n ? g = j : h = j - } - } - } while (j = j.getParent()); - h || (h = d); - this.block = g; - this.blockLimit = h; - this.root = d; - this.elements = m - } - })(); - CKEDITOR.dom.elementPath.prototype = {compare: function (a) { - var e = this.elements, a = a && a.elements; - if (!a || e.length != a.length)return false; - for (var b = 0; b < e.length; b++)if (!e[b].equals(a[b]))return false; - return true - }, contains: function (a, e, b) { - var c; - typeof a == "string" && (c = function (b) { - return b.getName() == a - }); - a instanceof CKEDITOR.dom.element ? c = function (b) { - return b.equals(a) - } : CKEDITOR.tools.isArray(a) ? c = function (b) { - return CKEDITOR.tools.indexOf(a, b.getName()) > -1 - } : typeof a == "function" ? c = a : typeof a == "object" && (c = - function (b) { - return b.getName()in a - }); - var d = this.elements, g = d.length; - e && g--; - if (b) { - d = Array.prototype.slice.call(d, 0); - d.reverse() - } - for (e = 0; e < g; e++)if (c(d[e]))return d[e]; - return null - }, isContextFor: function (a) { - var e; - if (a in CKEDITOR.dtd.$block) { - e = this.contains(CKEDITOR.dtd.$intermediate) || this.root.equals(this.block) && this.block || this.blockLimit; - return!!e.getDtd()[a] - } - return true - }, direction: function () { - return(this.block || this.blockLimit || this.root).getDirection(1) - }}; - CKEDITOR.dom.text = function (a, e) { - typeof a == "string" && (a = (e ? e.$ : document).createTextNode(a)); - this.$ = a - }; - CKEDITOR.dom.text.prototype = new CKEDITOR.dom.node; - CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype, {type: CKEDITOR.NODE_TEXT, getLength: function () { - return this.$.nodeValue.length - }, getText: function () { - return this.$.nodeValue - }, setText: function (a) { - this.$.nodeValue = a - }, split: function (a) { - var e = this.$.parentNode, b = e.childNodes.length, c = this.getLength(), d = this.getDocument(), g = new CKEDITOR.dom.text(this.$.splitText(a), d); - if (e.childNodes.length == b)if (a >= c) { - g = d.createText(""); - g.insertAfter(this) - } else { - a = d.createText(""); - a.insertAfter(g); - a.remove() - } - return g - }, substring: function (a, e) { - return typeof e != "number" ? this.$.nodeValue.substr(a) : this.$.nodeValue.substring(a, e) - }}); - (function () { - function a(a, c, d) { - var e = a.serializable, h = c[d ? "endContainer" : "startContainer"], m = d ? "endOffset" : "startOffset", j = e ? c.document.getById(a.startNode) : a.startNode, a = e ? c.document.getById(a.endNode) : a.endNode; - if (h.equals(j.getPrevious())) { - c.startOffset = c.startOffset - h.getLength() - a.getPrevious().getLength(); - h = a.getNext() - } else if (h.equals(a.getPrevious())) { - c.startOffset = c.startOffset - h.getLength(); - h = a.getNext() - } - h.equals(j.getParent()) && c[m]++; - h.equals(a.getParent()) && c[m]++; - c[d ? "endContainer" : "startContainer"] = - h; - return c - } - - CKEDITOR.dom.rangeList = function (a) { - if (a instanceof CKEDITOR.dom.rangeList)return a; - a ? a instanceof CKEDITOR.dom.range && (a = [a]) : a = []; - return CKEDITOR.tools.extend(a, e) - }; - var e = {createIterator: function () { - var a = this, c = CKEDITOR.dom.walker.bookmark(), d = [], e; - return{getNextRange: function (h) { - e = e == void 0 ? 0 : e + 1; - var m = a[e]; - if (m && a.length > 1) { - if (!e)for (var j = a.length - 1; j >= 0; j--)d.unshift(a[j].createBookmark(true)); - if (h)for (var i = 0; a[e + i + 1];) { - for (var n = m.document, h = 0, j = n.getById(d[i].endNode), n = n.getById(d[i + - 1].startNode); ;) { - j = j.getNextSourceNode(false); - if (n.equals(j))h = 1; else if (c(j) || j.type == CKEDITOR.NODE_ELEMENT && j.isBlockBoundary())continue; - break - } - if (!h)break; - i++ - } - for (m.moveToBookmark(d.shift()); i--;) { - j = a[++e]; - j.moveToBookmark(d.shift()); - m.setEnd(j.endContainer, j.endOffset) - } - } - return m - }} - }, createBookmarks: function (b) { - for (var c = [], d, e = 0; e < this.length; e++) { - c.push(d = this[e].createBookmark(b, true)); - for (var h = e + 1; h < this.length; h++) { - this[h] = a(d, this[h]); - this[h] = a(d, this[h], true) - } - } - return c - }, createBookmarks2: function (a) { - for (var c = - [], d = 0; d < this.length; d++)c.push(this[d].createBookmark2(a)); - return c - }, moveToBookmarks: function (a) { - for (var c = 0; c < this.length; c++)this[c].moveToBookmark(a[c]) - }} - })(); - (function () { - function a() { - return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1] || "skins/" + CKEDITOR.skinName.split(",")[0] + "/") - } - - function e(b) { - var c = CKEDITOR.skin["ua_" + b], d = CKEDITOR.env; - if (c)for (var c = c.split(",").sort(function (a, b) { - return a > b ? -1 : 1 - }), e = 0, g; e < c.length; e++) { - g = c[e]; - if (d.ie && (g.replace(/^ie/, "") == d.version || d.quirks && g == "iequirks"))g = "ie"; - if (d[g]) { - b = b + ("_" + c[e]); - break - } - } - return CKEDITOR.getUrl(a() + b + ".css") - } - - function b(a, b) { - if (!g[a]) { - CKEDITOR.document.appendStyleSheet(e(a)); - g[a] = 1 - } - b && b() - } - - function c(a) { - var b = a.getById(h); - if (!b) { - b = a.getHead().append("style"); - b.setAttribute("id", h); - b.setAttribute("type", "text/css") - } - return b - } - - function d(a, b, c) { - var d, e, f; - if (CKEDITOR.env.webkit) { - b = b.split("}").slice(0, -1); - for (e = 0; e < b.length; e++)b[e] = b[e].split("{") - } - for (var g = 0; g < a.length; g++)if (CKEDITOR.env.webkit)for (e = 0; e < b.length; e++) { - f = b[e][1]; - for (d = 0; d < c.length; d++)f = f.replace(c[d][0], c[d][1]); - a[g].$.sheet.addRule(b[e][0], f) - } else { - f = b; - for (d = 0; d < c.length; d++)f = f.replace(c[d][0], c[d][1]); - CKEDITOR.env.ie && - CKEDITOR.env.version < 11 ? a[g].$.styleSheet.cssText = a[g].$.styleSheet.cssText + f : a[g].$.innerHTML = a[g].$.innerHTML + f - } - } - - var g = {}; - CKEDITOR.skin = {path: a, loadPart: function (c, d) { - CKEDITOR.skin.name != CKEDITOR.skinName.split(",")[0] ? CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a() + "skin.js"), function () { - b(c, d) - }) : b(c, d) - }, getPath: function (a) { - return CKEDITOR.getUrl(e(a)) - }, icons: {}, addIcon: function (a, b, c, d) { - a = a.toLowerCase(); - this.icons[a] || (this.icons[a] = {path: b, offset: c || 0, bgsize: d || "16px"}) - }, getIconStyle: function (a, b, c, d, e) { - var f; - if (a) { - a = a.toLowerCase(); - b && (f = this.icons[a + "-rtl"]); - f || (f = this.icons[a]) - } - a = c || f && f.path || ""; - d = d || f && f.offset; - e = e || f && f.bgsize || "16px"; - return a && "background-image:url(" + CKEDITOR.getUrl(a) + ");background-position:0 " + d + "px;background-size:" + e + ";" - }}; - CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {getUiColor: function () { - return this.uiColor - }, setUiColor: function (a) { - var b = c(CKEDITOR.document); - return(this.setUiColor = function (a) { - var c = CKEDITOR.skin.chameleon, e = [ - [j, a] - ]; - this.uiColor = a; - d([b], c(this, - "editor"), e); - d(m, c(this, "panel"), e) - }).call(this, a) - }}); - var h = "cke_ui_color", m = [], j = /\$color/g; - CKEDITOR.on("instanceLoaded", function (a) { - if (!CKEDITOR.env.ie || !CKEDITOR.env.quirks) { - var b = a.editor, a = function (a) { - a = (a.data[0] || a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument(); - if (!a.getById("cke_ui_color")) { - a = c(a); - m.push(a); - var e = b.getUiColor(); - e && d([a], CKEDITOR.skin.chameleon(b, "panel"), [ - [j, e] - ]) - } - }; - b.on("panelShow", a); - b.on("menuShow", a); - b.config.uiColor && b.setUiColor(b.config.uiColor) - } - }) - })(); - (function () { - if (CKEDITOR.env.webkit)CKEDITOR.env.hc = false; else { - var a = CKEDITOR.dom.element.createFromHtml('
    ', CKEDITOR.document); - a.appendTo(CKEDITOR.document.getHead()); - try { - var e = a.getComputedStyle("border-top-color"), b = a.getComputedStyle("border-right-color"); - CKEDITOR.env.hc = !!(e && e == b) - } catch (c) { - CKEDITOR.env.hc = false - } - a.remove() - } - if (CKEDITOR.env.hc)CKEDITOR.env.cssClass = CKEDITOR.env.cssClass + " cke_hc"; - CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}"); - CKEDITOR.status = "loaded"; - CKEDITOR.fireOnce("loaded"); - if (a = CKEDITOR._.pending) { - delete CKEDITOR._.pending; - for (e = 0; e < a.length; e++) { - CKEDITOR.editor.prototype.constructor.apply(a[e][0], a[e][1]); - CKEDITOR.add(a[e][0]) - } - } - })(); - /* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license - */ - CKEDITOR.skin.name = "moono"; - CKEDITOR.skin.ua_editor = "ie,iequirks,ie7,ie8,gecko"; - CKEDITOR.skin.ua_dialog = "ie,iequirks,ie7,ie8,opera"; - CKEDITOR.skin.chameleon = function () { - var b = function () { - return function (b, e) { - for (var a = b.match(/[^#]./g), c = 0; 3 > c; c++) { - var f = a, h = c, d; - d = parseInt(a[c], 16); - d = ("0" + (0 > e ? 0 | d * (1 + e) : 0 | d + (255 - d) * e).toString(16)).slice(-2); - f[h] = d - } - return"#" + a.join("") - } - }(), c = function () { - var b = new CKEDITOR.template("background:#{to};background-image:-webkit-gradient(linear,lefttop,leftbottom,from({from}),to({to}));background-image:-moz-linear-gradient(top,{from},{to});background-image:-webkit-linear-gradient(top,{from},{to});background-image:-o-linear-gradient(top,{from},{to});background-image:-ms-linear-gradient(top,{from},{to});background-image:linear-gradient(top,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='{from}',endColorstr='{to}');"); - return function (c, a) { - return b.output({from: c, to: a}) - } - }(), f = {editor: new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "), - panel: new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")}; - return function (g, e) { - var a = g.uiColor, a = {id: "." + g.id, defaultBorder: b(a, -0.1), defaultGradient: c(b(a, 0.9), a), lightGradient: c(b(a, 1), b(a, 0.7)), mediumGradient: c(b(a, 0.8), b(a, 0.5)), ckeButtonOn: c(b(a, 0.6), b(a, 0.7)), ckeResizer: b(a, -0.4), ckeToolbarSeparator: b(a, 0.5), ckeColorauto: b(a, 0.8), dialogBody: b(a, 0.7), dialogTabSelected: c("#FFFFFF", "#FFFFFF"), dialogTabSelectedBorder: "#FFF", elementsPathColor: b(a, -0.6), elementsPathBg: a, menubuttonIcon: b(a, 0.5), menubuttonIconHover: b(a, 0.3)}; - return f[e].output(a).replace(/\[/g, - "{").replace(/\]/g, "}") - } - }(); - CKEDITOR.plugins.add("dialogui", {onLoad: function () { - var i = function (b) { - this._ || (this._ = {}); - this._["default"] = this._.initValue = b["default"] || ""; - this._.required = b.required || !1; - for (var a = [this._], d = 1; d < arguments.length; d++)a.push(arguments[d]); - a.push(!0); - CKEDITOR.tools.extend.apply(CKEDITOR.tools, a); - return this._ - }, r = {build: function (b, a, d) { - return new CKEDITOR.ui.dialog.textInput(b, a, d) - }}, l = {build: function (b, a, d) { - return new CKEDITOR.ui.dialog[a.type](b, a, d) - }}, n = {isChanged: function () { - return this.getValue() != - this.getInitValue() - }, reset: function (b) { - this.setValue(this.getInitValue(), b) - }, setInitValue: function () { - this._.initValue = this.getValue() - }, resetInitValue: function () { - this._.initValue = this._["default"] - }, getInitValue: function () { - return this._.initValue - }}, o = CKEDITOR.tools.extend({}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, {onChange: function (b, a) { - this._.domOnChangeRegistered || (b.on("load", function () { - this.getInputElement().on("change", function () { - b.parts.dialog.isVisible() && this.fire("change", {value: this.getValue()}) - }, - this) - }, this), this._.domOnChangeRegistered = !0); - this.on("change", a) - }}, !0), s = /^on([A-Z]\w+)/, p = function (b) { - for (var a in b)(s.test(a) || "title" == a || "type" == a) && delete b[a]; - return b - }; - CKEDITOR.tools.extend(CKEDITOR.ui.dialog, {labeledElement: function (b, a, d, e) { - if (!(4 > arguments.length)) { - var c = i.call(this, a); - c.labelId = CKEDITOR.tools.getNextId() + "_label"; - this._.children = []; - CKEDITOR.ui.dialog.uiElement.call(this, b, a, d, "div", null, {role: "presentation"}, function () { - var f = [], d = a.required ? " cke_required" : ""; - "horizontal" != - a.labelLayout ? f.push('", '
    ', e.call(this, b, a), "
    ") : (d = {type: "hbox", widths: a.widths, padding: 0, children: [ - {type: "html", html: '
    '}]},{id:"about", -label:g.aboutTab,elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
    '}]}],B={title:g.title,minWidth:360,minHeight:220,onShow:function(){var a=this;a.data=j.fire("scaytDialog",{});a.options=a.data.scayt_control.option();a.chosed_lang=a.sLang=a.data.scayt_control.sLang;if(!a.data||!a.data.scayt||!a.data.scayt_control)alert("Error loading application service"),a.hide();else{var b=0;s?a.data.scayt.getCaption(j.langCode||"en",function(e){0'+h["button_"+d[c]]+"");f.getById("dic_info_"+ -b).setHtml(h.dic_info)}if(1==l[0])for(c in v)d="label_"+v[c],g=f.getById(d+"_"+b),"undefined"!=typeof g&&("undefined"!=typeof h[d]&&"undefined"!=typeof k.options[v[c]])&&(g.setHtml(h[d]),g.getParent().$.style.display="block");d='

    '+h.version+window.scayt.getAboutInfo().version.toString()+"

    "+h.about_throwt_copy+"

    ";f.getById("scayt_about_"+b).setHtml(d);d=function(a,b){var c=f.createElement("label");c.setAttribute("for","cke_option"+ -a);c.setStyle("display","inline");c.setHtml(b[a]);k.sLang==a&&(k.chosed_lang=a);var d=f.createElement("div"),e=CKEDITOR.dom.element.createFromHtml('');e.on("click",function(){this.$.checked=true;k.chosed_lang=a});d.append(e);d.append(c);return{lang:b[a],code:a,radio:d}};if(1==l[1]){for(c in e.rtl)i[i.length]=d(c,e.ltr);for(c in e.ltr)i[i.length]=d(c, -e.ltr);i.sort(function(a,b){return b.lang>a.lang?-1:1});e=f.getById("scayt_lcol_"+b);d=f.getById("scayt_rcol_"+b);for(c=0;c'+a+"")}function o(a){f.getById("dic_message_"+b).setHtml(''+a+"")} +function p(a){for(var a=(""+a).split(","),b=0,e=a.length;b
    \t
    \t
    \t\t\t\t\t
    \t
    \t\t\t\t\t
    \t
    \t\t\t\t
    \t
    \t\t\t\t\t
    '}]},{id:"langs",label:g.languagesTab,elements:[{type:"html",id:"langs", +html:'
    \t
    \t
    '}]},{id:"dictionaries",label:g.dictionariesTab,elements:[{type:"html",style:"",id:"dictionaries",html:'
    \t
    \t
    Dictionary name
    \t\t\t\t\t
    \t\t\t\t\t\t
    \t\t
    \t\t\t\t\t\t\t\t\t\t\t\t\t\t
    \t
    '}]},{id:"about", +label:g.aboutTab,elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'
    '}]}],B={title:g.title,minWidth:360,minHeight:220,onShow:function(){var a=this;a.data=j.fire("scaytDialog",{});a.options=a.data.scayt_control.option();a.chosed_lang=a.sLang=a.data.scayt_control.sLang;if(!a.data||!a.data.scayt||!a.data.scayt_control)alert("Error loading application service"),a.hide();else{var b=0;s?a.data.scayt.getCaption(j.langCode||"en",function(e){0'+h["button_"+d[c]]+"");f.getById("dic_info_"+ +b).setHtml(h.dic_info)}if(1==l[0])for(c in v)d="label_"+v[c],g=f.getById(d+"_"+b),"undefined"!=typeof g&&("undefined"!=typeof h[d]&&"undefined"!=typeof k.options[v[c]])&&(g.setHtml(h[d]),g.getParent().$.style.display="block");d='

    '+h.version+window.scayt.getAboutInfo().version.toString()+"

    "+h.about_throwt_copy+"

    ";f.getById("scayt_about_"+b).setHtml(d);d=function(a,b){var c=f.createElement("label");c.setAttribute("for","cke_option"+ +a);c.setStyle("display","inline");c.setHtml(b[a]);k.sLang==a&&(k.chosed_lang=a);var d=f.createElement("div"),e=CKEDITOR.dom.element.createFromHtml('');e.on("click",function(){this.$.checked=true;k.chosed_lang=a});d.append(e);d.append(c);return{lang:b[a],code:a,radio:d}};if(1==l[1]){for(c in e.rtl)i[i.length]=d(c,e.ltr);for(c in e.ltr)i[i.length]=d(c, +e.ltr);i.sort(function(a,b){return b.lang>a.lang?-1:1});e=f.getById("scayt_lcol_"+b);d=f.getById("scayt_rcol_"+b);for(c=0;c'+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
    "); +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,i,k=function(j){var c=j.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);i.hide();j.data.preventDefault()},n=CKEDITOR.tools.addFunction(function(a,c){var a= +new CKEDITOR.dom.event(a),c=new CKEDITOR.dom.element(c),b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:if(b=c.getParent().getParent().getNext())(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:k({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0); +else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['
    '+a.options+"",'"],l=h.length,a=0;a');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('");a%g==g-1&&d.push("")}if(a");d.push("")}d.push("
    "); e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt index 8a4ef1f6e..baadd2b7d 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt @@ -1,20 +1,20 @@ -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license - -cs.js Found: 118 Missing: 0 -cy.js Found: 118 Missing: 0 -de.js Found: 118 Missing: 0 -el.js Found: 16 Missing: 102 -eo.js Found: 118 Missing: 0 -et.js Found: 31 Missing: 87 -fa.js Found: 24 Missing: 94 -fi.js Found: 23 Missing: 95 -fr.js Found: 118 Missing: 0 -hr.js Found: 23 Missing: 95 -it.js Found: 118 Missing: 0 -nb.js Found: 118 Missing: 0 -nl.js Found: 118 Missing: 0 -no.js Found: 118 Missing: 0 -tr.js Found: 118 Missing: 0 -ug.js Found: 39 Missing: 79 -zh-cn.js Found: 118 Missing: 0 +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license + +cs.js Found: 118 Missing: 0 +cy.js Found: 118 Missing: 0 +de.js Found: 118 Missing: 0 +el.js Found: 16 Missing: 102 +eo.js Found: 118 Missing: 0 +et.js Found: 31 Missing: 87 +fa.js Found: 24 Missing: 94 +fi.js Found: 23 Missing: 95 +fr.js Found: 118 Missing: 0 +hr.js Found: 23 Missing: 95 +it.js Found: 118 Missing: 0 +nb.js Found: 118 Missing: 0 +nl.js Found: 118 Missing: 0 +no.js Found: 118 Missing: 0 +tr.js Found: 118 Missing: 0 +ug.js Found: 39 Missing: 79 +zh-cn.js Found: 118 Missing: 0 diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js index feca26774..6f2ce49f5 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ar.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص علي اليسار",rsquo:"علامة تنصيص علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash –",mdash:"Em dash —",iexcl:"علامة تعجب مقلوبة",cent:"رمز سنتيم",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين الياباني",brvbar:"خط عمودي مكسور",sect:"رمز الفصيلة",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ar",{euro:"رمز اليورو",lsquo:"علامة تنصيص علي اليسار",rsquo:"علامة تنصيص علي اليمين",ldquo:"علامة تنصيص مزدوجة علي اليسار",rdquo:"علامة تنصيص مزدوجة علي اليمين",ndash:"En dash –",mdash:"Em dash —",iexcl:"علامة تعجب مقلوبة",cent:"رمز سنتيم",pound:"رمز الاسترليني",curren:"رمز العملة",yen:"رمز الين الياباني",brvbar:"خط عمودي مكسور",sect:"رمز الفصيلة",uml:"Diaeresis",copy:"علامة حقوق الطبع",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"ليست علامة",reg:"علامة مسجّلة",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"علامة الإستفهام غير صحيحة",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js index 0bf8749ea..ec0f878d5 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/bg.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","bg",{euro:"Евро знак",lsquo:"Лява маркировка за цитат",rsquo:"Дясна маркировка за цитат",ldquo:"Лява двойна кавичка за цитат",rdquo:"Дясна двойна кавичка за цитат",ndash:"\\\\",mdash:"/",iexcl:"Обърната питанка",cent:"Знак за цент",pound:"Знак за паунд",curren:"Валутен знак",yen:"Знак за йена",brvbar:"Прекъсната линия",sect:"Знак за секция",uml:"Diaeresis",copy:"Знак за Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js index e6504372b..e5e1720f6 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ca.js @@ -1,14 +1,14 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", -laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", -Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", -Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", -Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", -aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", -igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", -divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", -374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ca",{euro:"Símbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"Símbol de percentatge",pound:"Símbol de lliura",curren:"Símbol de moneda",yen:"Símbol de Yen",brvbar:"Barra trencada",sect:"Símbol de secció",uml:"Dièresi",copy:"Símbol de Copyright",ordf:"Indicador ordinal femení", +laquo:"Signe de cometes angulars esquerra",not:"Símbol de negació",reg:"Símbol registrat",macr:"Macron",deg:"Símbol de grau",sup2:"Superíndex dos",sup3:"Superíndex tres",acute:"Accent agut",micro:"Símbol de micro",para:"Símbol de calderó",middot:"Punt volat",cedil:"Ce trencada",sup1:"Superíndex u",ordm:"Indicador ordinal masculí",raquo:"Signe de cometes angulars dreta",frac14:"Fracció vulgar un quart",frac12:"Fracció vulgar una meitat",frac34:"Fracció vulgar tres quarts",iquest:"Símbol d'interrogació invertit", +Agrave:"Lletra majúscula llatina A amb accent greu",Aacute:"Lletra majúscula llatina A amb accent agut",Acirc:"Lletra majúscula llatina A amb circumflex",Atilde:"Lletra majúscula llatina A amb titlla",Auml:"Lletra majúscula llatina A amb dièresi",Aring:"Lletra majúscula llatina A amb anell superior",AElig:"Lletra majúscula llatina Æ",Ccedil:"Lletra majúscula llatina C amb ce trencada",Egrave:"Lletra majúscula llatina E amb accent greu",Eacute:"Lletra majúscula llatina E amb accent agut",Ecirc:"Lletra majúscula llatina E amb circumflex", +Euml:"Lletra majúscula llatina E amb dièresi",Igrave:"Lletra majúscula llatina I amb accent greu",Iacute:"Lletra majúscula llatina I amb accent agut",Icirc:"Lletra majúscula llatina I amb circumflex",Iuml:"Lletra majúscula llatina I amb dièresi",ETH:"Lletra majúscula llatina Eth",Ntilde:"Lletra majúscula llatina N amb titlla",Ograve:"Lletra majúscula llatina O amb accent greu",Oacute:"Lletra majúscula llatina O amb accent agut",Ocirc:"Lletra majúscula llatina O amb circumflex",Otilde:"Lletra majúscula llatina O amb titlla", +Ouml:"Lletra majúscula llatina O amb dièresi",times:"Símbol de multiplicació",Oslash:"Lletra majúscula llatina O amb barra",Ugrave:"Lletra majúscula llatina U amb accent greu",Uacute:"Lletra majúscula llatina U amb accent agut",Ucirc:"Lletra majúscula llatina U amb circumflex",Uuml:"Lletra majúscula llatina U amb dièresi",Yacute:"Lletra majúscula llatina Y amb accent agut",THORN:"Lletra majúscula llatina Thorn",szlig:"Lletra minúscula llatina sharp s",agrave:"Lletra minúscula llatina a amb accent greu", +aacute:"Lletra minúscula llatina a amb accent agut",acirc:"Lletra minúscula llatina a amb circumflex",atilde:"Lletra minúscula llatina a amb titlla",auml:"Lletra minúscula llatina a amb dièresi",aring:"Lletra minúscula llatina a amb anell superior",aelig:"Lletra minúscula llatina æ",ccedil:"Lletra minúscula llatina c amb ce trencada",egrave:"Lletra minúscula llatina e amb accent greu",eacute:"Lletra minúscula llatina e amb accent agut",ecirc:"Lletra minúscula llatina e amb circumflex",euml:"Lletra minúscula llatina e amb dièresi", +igrave:"Lletra minúscula llatina i amb accent greu",iacute:"Lletra minúscula llatina i amb accent agut",icirc:"Lletra minúscula llatina i amb circumflex",iuml:"Lletra minúscula llatina i amb dièresi",eth:"Lletra minúscula llatina eth",ntilde:"Lletra minúscula llatina n amb titlla",ograve:"Lletra minúscula llatina o amb accent greu",oacute:"Lletra minúscula llatina o amb accent agut",ocirc:"Lletra minúscula llatina o amb circumflex",otilde:"Lletra minúscula llatina o amb titlla",ouml:"Lletra minúscula llatina o amb dièresi", +divide:"Símbol de divisió",oslash:"Lletra minúscula llatina o amb barra",ugrave:"Lletra minúscula llatina u amb accent greu",uacute:"Lletra minúscula llatina u amb accent agut",ucirc:"Lletra minúscula llatina u amb circumflex",uuml:"Lletra minúscula llatina u amb dièresi",yacute:"Lletra minúscula llatina y amb accent agut",thorn:"Lletra minúscula llatina thorn",yuml:"Lletra minúscula llatina y amb dièresi",OElig:"Lligadura majúscula llatina OE",oelig:"Lligadura minúscula llatina oe",372:"Lletra majúscula llatina W amb circumflex", +374:"Lletra majúscula llatina Y amb circumflex",373:"Lletra minúscula llatina w amb circumflex",375:"Lletra minúscula llatina y amb circumflex",sbquo:"Signe de cita simple baixa-9",8219:"Signe de cita simple alta-invertida-9",bdquo:"Signe de cita doble baixa-9",hellip:"Punts suspensius",trade:"Símbol de marca registrada",9658:"Punter negre apuntant cap a la dreta",bull:"Vinyeta",rarr:"Fletxa cap a la dreta",rArr:"Doble fletxa cap a la dreta",hArr:"Doble fletxa esquerra dreta",diams:"Vestit negre diamant", asymp:"Gairebé igual a"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js index c2b38f0fc..314999e6d 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cs.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", -not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", -Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", -Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", -Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", -acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", -icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", -uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"Počáteční uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"Počáteční uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrácený vykřičník",cent:"Znak centu",pound:"Znak libry",curren:"Znak měny",yen:"Znak jenu",brvbar:"Přerušená svislá čára",sect:"Znak oddílu",uml:"Přehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo", +not:"Logistický zápor",reg:"Znak registrace",macr:"Pomlčka nad",deg:"Znak stupně",sup2:"Dvojka jako horní index",sup3:"Trojka jako horní index",acute:"Čárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"Tečka uprostřed",cedil:"Ocásek vlevo",sup1:"Jednička jako horní index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"Obyčejný zlomek jedna čtvrtina",frac12:"Obyčejný zlomek jedna polovina",frac34:"Obyčejný zlomek tři čtvrtiny",iquest:"Znak obráceného otazníku", +Agrave:"Velké písmeno latinky A s čárkou nad vlevo",Aacute:"Velké písmeno latinky A s čárkou nad vpravo",Acirc:"Velké písmeno latinky A s vokáněm",Atilde:"Velké písmeno latinky A s tildou",Auml:"Velké písmeno latinky A s dvěma tečkami",Aring:"Velké písmeno latinky A s kroužkem nad",AElig:"Velké písmeno latinky Ae",Ccedil:"Velké písmeno latinky C s ocáskem vlevo",Egrave:"Velké písmeno latinky E s čárkou nad vlevo",Eacute:"Velké písmeno latinky E s čárkou nad vpravo",Ecirc:"Velké písmeno latinky E s vokáněm", +Euml:"Velké písmeno latinky E s dvěma tečkami",Igrave:"Velké písmeno latinky I s čárkou nad vlevo",Iacute:"Velké písmeno latinky I s čárkou nad vpravo",Icirc:"Velké písmeno latinky I s vokáněm",Iuml:"Velké písmeno latinky I s dvěma tečkami",ETH:"Velké písmeno latinky Eth",Ntilde:"Velké písmeno latinky N s tildou",Ograve:"Velké písmeno latinky O s čárkou nad vlevo",Oacute:"Velké písmeno latinky O s čárkou nad vpravo",Ocirc:"Velké písmeno latinky O s vokáněm",Otilde:"Velké písmeno latinky O s tildou", +Ouml:"Velké písmeno latinky O s dvěma tečkami",times:"Znak násobení",Oslash:"Velké písmeno latinky O přeškrtnuté",Ugrave:"Velké písmeno latinky U s čárkou nad vlevo",Uacute:"Velké písmeno latinky U s čárkou nad vpravo",Ucirc:"Velké písmeno latinky U s vokáněm",Uuml:"Velké písmeno latinky U s dvěma tečkami",Yacute:"Velké písmeno latinky Y s čárkou nad vpravo",THORN:"Velké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s čárkou nad vlevo",aacute:"Malé písmeno latinky a s čárkou nad vpravo", +acirc:"Malé písmeno latinky a s vokáněm",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvěma tečkami",aring:"Malé písmeno latinky a s kroužkem nad",aelig:"Malé písmeno latinky ae",ccedil:"Malé písmeno latinky c s ocáskem vlevo",egrave:"Malé písmeno latinky e s čárkou nad vlevo",eacute:"Malé písmeno latinky e s čárkou nad vpravo",ecirc:"Malé písmeno latinky e s vokáněm",euml:"Malé písmeno latinky e s dvěma tečkami",igrave:"Malé písmeno latinky i s čárkou nad vlevo",iacute:"Malé písmeno latinky i s čárkou nad vpravo", +icirc:"Malé písmeno latinky i s vokáněm",iuml:"Malé písmeno latinky i s dvěma tečkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s čárkou nad vlevo",oacute:"Malé písmeno latinky o s čárkou nad vpravo",ocirc:"Malé písmeno latinky o s vokáněm",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvěma tečkami",divide:"Znak dělení",oslash:"Malé písmeno latinky o přeškrtnuté",ugrave:"Malé písmeno latinky u s čárkou nad vlevo", +uacute:"Malé písmeno latinky u s čárkou nad vpravo",ucirc:"Malé písmeno latinky u s vokáněm",uuml:"Malé písmeno latinky u s dvěma tečkami",yacute:"Malé písmeno latinky y s čárkou nad vpravo",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvěma tečkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké písmeno latinky W s vokáněm",374:"Velké písmeno latinky Y s vokáněm",373:"Malé písmeno latinky w s vokáněm",375:"Malé písmeno latinky y s vokáněm",sbquo:"Dolní 9 uvozovka jednoduchá", 8219:"Horní obrácená 9 uvozovka jednoduchá",bdquo:"Dolní 9 uvozovka dvojitá",hellip:"Trojtečkový úvod",trade:"Obchodní značka",9658:"Černý ukazatel směřující vpravo",bull:"Kolečko",rarr:"Šipka vpravo",rArr:"Dvojitá šipka vpravo",hArr:"Dvojitá šipka vlevo a vpravo",diams:"Černé piky",asymp:"Téměř se rovná"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js index 77f59f61f..6dde4b115 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/cy.js @@ -1,14 +1,14 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", -reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", -Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", -Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", -Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", -aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", -euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", -otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", -OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid", +reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig", +Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren Æ Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom", +Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild", +Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig", +aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom", +euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom", +otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llythyren o fach Lladinaidd gyda strôc",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod", +OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith", diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js index 6b3ce87ec..f6c0b9c5b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/de.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", -reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", -Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", -Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", -Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", -aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", -eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", -ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen", +reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex", +Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Æ",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex", +Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent", +Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben", +aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema", +eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut", +ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex", sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js index e7c2a2195..f9102e638 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/el.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", -ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", -iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", -Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", -Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", -acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", -icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", -uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","el",{euro:"Σύμβολο Ευρώ",lsquo:"Αριστερός χαρακτήρας μονού εισαγωγικού",rsquo:"Δεξιός χαρακτήρας μονού εισαγωγικού",ldquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",rdquo:"Δεξιός χαρακτήρας διπλού εισαγωγικού",ndash:"Παύλα en",mdash:"Παύλα em",iexcl:"Ανάποδο θαυμαστικό",cent:"Σύμβολο σεντ",pound:"Σύμβολο λίρας",curren:"Σύμβολο συναλλαγματικής μονάδας",yen:"Σύμβολο Γιεν",brvbar:"Σπασμένη μπάρα",sect:"Σύμβολο τμήματος",uml:"Διαίρεση",copy:"Σύμβολο πνευματικών δικαιωμάτων", +ordf:"Feminine ordinal indicator",laquo:"Αριστερός χαρακτήρας διπλού εισαγωγικού",not:"Not sign",reg:"Σύμβολο σημάτων κατατεθέν",macr:"Μακρόν",deg:"Σύμβολο βαθμού",sup2:"Εκτεθειμένο δύο",sup3:"Εκτεθειμένο τρία",acute:"Οξεία",micro:"Σύμβολο μικρού",para:"Σύμβολο παραγράφου",middot:"Μέση τελεία",cedil:"Υπογεγραμμένη",sup1:"Εκτεθειμένο ένα",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Γνήσιο κλάσμα ενός τετάρτου",frac12:"Γνήσιο κλάσμα ενός δεύτερου",frac34:"Γνήσιο κλάσμα τριών τετάρτων", +iquest:"Ανάποδο θαυμαστικό",Agrave:"Λατινικό κεφαλαίο γράμμα A με βαρεία",Aacute:"Λατινικό κεφαλαίο γράμμα A με οξεία",Acirc:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Atilde:"Λατινικό κεφαλαίο γράμμα A με περισπωμένη",Auml:"Λατινικό κεφαλαίο γράμμα A με διαλυτικά",Aring:"Λατινικό κεφαλαίο γράμμα A με δακτύλιο επάνω",AElig:"Λατινικό κεφαλαίο γράμμα Æ",Ccedil:"Λατινικό κεφαλαίο γράμμα C με υπογεγραμμένη",Egrave:"Λατινικό κεφαλαίο γράμμα E με βαρεία",Eacute:"Λατινικό κεφαλαίο γράμμα E με οξεία",Ecirc:"Λατινικό κεφαλαίο γράμμα Ε με περισπωμένη ", +Euml:"Λατινικό κεφαλαίο γράμμα Ε με διαλυτικά",Igrave:"Λατινικό κεφαλαίο γράμμα I με βαρεία",Iacute:"Λατινικό κεφαλαίο γράμμα I με οξεία",Icirc:"Λατινικό κεφαλαίο γράμμα I με περισπωμένη",Iuml:"Λατινικό κεφαλαίο γράμμα I με διαλυτικά ",ETH:"Λατινικό κεφαλαίο γράμμα Eth",Ntilde:"Λατινικό κεφαλαίο γράμμα N με περισπωμένη",Ograve:"Λατινικό κεφαλαίο γράμμα O με βαρεία",Oacute:"Λατινικό κεφαλαίο γράμμα O με οξεία",Ocirc:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη ",Otilde:"Λατινικό κεφαλαίο γράμμα O με περισπωμένη", +Ouml:"Λατινικό κεφαλαίο γράμμα O με διαλυτικά",times:"Σύμβολο πολλαπλασιασμού",Oslash:"Λατινικό κεφαλαίο γράμμα O με μολυβιά",Ugrave:"Λατινικό κεφαλαίο γράμμα U με βαρεία",Uacute:"Λατινικό κεφαλαίο γράμμα U με οξεία",Ucirc:"Λατινικό κεφαλαίο γράμμα U με περισπωμένη",Uuml:"Λατινικό κεφαλαίο γράμμα U με διαλυτικά",Yacute:"Λατινικό κεφαλαίο γράμμα Y με οξεία",THORN:"Λατινικό κεφαλαίο γράμμα Thorn",szlig:"Λατινικό μικρό γράμμα απότομο s",agrave:"Λατινικό μικρό γράμμα a με βαρεία",aacute:"Λατινικό μικρό γράμμα a με οξεία", +acirc:"Λατινικό μικρό γράμμα a με περισπωμένη",atilde:"Λατινικό μικρό γράμμα a με περισπωμένη",auml:"Λατινικό μικρό γράμμα a με διαλυτικά",aring:"Λατινικό μικρό γράμμα a με δακτύλιο πάνω",aelig:"Λατινικό μικρό γράμμα æ",ccedil:"Λατινικό μικρό γράμμα c με υπογεγραμμένη",egrave:"Λατινικό μικρό γράμμα ε με βαρεία",eacute:"Λατινικό μικρό γράμμα e με οξεία",ecirc:"Λατινικό μικρό γράμμα e με περισπωμένη",euml:"Λατινικό μικρό γράμμα e με διαλυτικά",igrave:"Λατινικό μικρό γράμμα i με βαρεία",iacute:"Λατινικό μικρό γράμμα i με οξεία", +icirc:"Λατινικό μικρό γράμμα i με περισπωμένη",iuml:"Λατινικό μικρό γράμμα i με διαλυτικά",eth:"Λατινικό μικρό γράμμα eth",ntilde:"Λατινικό μικρό γράμμα n με περισπωμένη",ograve:"Λατινικό μικρό γράμμα o με βαρεία",oacute:"Λατινικό μικρό γράμμα o με οξεία ",ocirc:"Λατινικό πεζό γράμμα o με περισπωμένη",otilde:"Λατινικό μικρό γράμμα o με περισπωμένη ",ouml:"Λατινικό μικρό γράμμα o με διαλυτικά",divide:"Σύμβολο διαίρεσης",oslash:"Λατινικό μικρό γράμμα o με περισπωμένη",ugrave:"Λατινικό μικρό γράμμα u με βαρεία", +uacute:"Λατινικό μικρό γράμμα u με οξεία",ucirc:"Λατινικό μικρό γράμμα u με περισπωμένη",uuml:"Λατινικό μικρό γράμμα u με διαλυτικά",yacute:"Λατινικό μικρό γράμμα y με οξεία",thorn:"Λατινικό μικρό γράμμα thorn",yuml:"Λατινικό μικρό γράμμα y με διαλυτικά",OElig:"Λατινικό κεφαλαίο σύμπλεγμα ΟΕ",oelig:"Λατινικό μικρό σύμπλεγμα oe",372:"Λατινικό κεφαλαίο γράμμα W με περισπωμένη",374:"Λατινικό κεφαλαίο γράμμα Y με περισπωμένη",373:"Λατινικό μικρό γράμμα w με περισπωμένη",375:"Λατινικό μικρό γράμμα y με περισπωμένη", sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Οριζόντια αποσιωπητικά",trade:"Σύμβολο εμπορικού κατατεθέν",9658:"Μαύρος δείκτης που δείχνει προς τα δεξιά",bull:"Κουκκίδα",rarr:"Δεξί βελάκι",rArr:"Διπλό δεξί βελάκι",hArr:"Διπλό βελάκι αριστερά-δεξιά",diams:"Μαύρο διαμάντι",asymp:"Σχεδόν ίσο με"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js index 26f61c2e2..bdec2bd56 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/en.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js index d44b0d2eb..246f4b115 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/eo.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", -sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", -Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", -Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", -szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", -igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", -uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","eo",{euro:"Eŭrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno", +sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina ĉeflitero A kun liva korno",Aacute:"Latina ĉeflitero A kun dekstra korno",Acirc:"Latina ĉeflitero A kun ĉapelo",Atilde:"Latina ĉeflitero A kun tildo",Auml:"Latina ĉeflitero A kun tremao", +Aring:"Latina ĉeflitero A kun superringo",AElig:"Latina ĉeflitera ligaturo Æ",Ccedil:"Latina ĉeflitero C kun zoeto",Egrave:"Latina ĉeflitero E kun liva korno",Eacute:"Latina ĉeflitero E kun dekstra korno",Ecirc:"Latina ĉeflitero E kun ĉapelo",Euml:"Latina ĉeflitero E kun tremao",Igrave:"Latina ĉeflitero I kun liva korno",Iacute:"Latina ĉeflitero I kun dekstra korno",Icirc:"Latina ĉeflitero I kun ĉapelo",Iuml:"Latina ĉeflitero I kun tremao",ETH:"Latina ĉeflitero islanda edo",Ntilde:"Latina ĉeflitero N kun tildo", +Ograve:"Latina ĉeflitero O kun liva korno",Oacute:"Latina ĉeflitero O kun dekstra korno",Ocirc:"Latina ĉeflitero O kun ĉapelo",Otilde:"Latina ĉeflitero O kun tildo",Ouml:"Latina ĉeflitero O kun tremao",times:"Multipliko",Oslash:"Latina ĉeflitero O trastrekita",Ugrave:"Latina ĉeflitero U kun liva korno",Uacute:"Latina ĉeflitero U kun dekstra korno",Ucirc:"Latina ĉeflitero U kun ĉapelo",Uuml:"Latina ĉeflitero U kun tremao",Yacute:"Latina ĉeflitero Y kun dekstra korno",THORN:"Latina ĉeflitero islanda dorno", +szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun ĉapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun ĉapelo",euml:"Latina etlitero e kun tremao", +igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun ĉapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun ĉapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno", +uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun ĉapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina ĉeflitera ligaturo Œ",oelig:"Latina etlitera ligaturo œ",372:"Latina ĉeflitero W kun ĉapelo",374:"Latina ĉeflitero Y kun ĉapelo",373:"Latina etlitero w kun ĉapelo",375:"Latina etlitero y kun ĉapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo", bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"Preskaŭ egala"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js index 79d437f97..11a96862d 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/es.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", -not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", -Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", -Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", -times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", -acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", -iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", -ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","es",{euro:"Símbolo de euro",lsquo:"Comilla simple izquierda",rsquo:"Comilla simple derecha",ldquo:"Comilla doble izquierda",rdquo:"Comilla doble derecha",ndash:"Guión corto",mdash:"Guión medio largo",iexcl:"Signo de admiración invertido",cent:"Símbolo centavo",pound:"Símbolo libra",curren:"Símbolo moneda",yen:"Símbolo yen",brvbar:"Barra vertical rota",sect:"Símbolo sección",uml:"Diéresis",copy:"Signo de derechos de autor",ordf:"Indicador ordinal femenino",laquo:"Abre comillas angulares", +not:"Signo negación",reg:"Signo de marca registrada",macr:"Guión alto",deg:"Signo de grado",sup2:"Superíndice dos",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice uno",ordm:"Indicador orginal masculino",raquo:"Cierra comillas angulares",frac14:"Fracción ordinaria de un quarto",frac12:"Fracción ordinaria de una mitad",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina mayúscula con acento grave", +Aacute:"Letra A latina mayúscula con acento agudo",Acirc:"Letra A latina mayúscula con acento circunflejo",Atilde:"Letra A latina mayúscula con tilde",Auml:"Letra A latina mayúscula con diéresis",Aring:"Letra A latina mayúscula con aro arriba",AElig:"Letra Æ latina mayúscula",Ccedil:"Letra C latina mayúscula con cedilla",Egrave:"Letra E latina mayúscula con acento grave",Eacute:"Letra E latina mayúscula con acento agudo",Ecirc:"Letra E latina mayúscula con acento circunflejo",Euml:"Letra E latina mayúscula con diéresis", +Igrave:"Letra I latina mayúscula con acento grave",Iacute:"Letra I latina mayúscula con acento agudo",Icirc:"Letra I latina mayúscula con acento circunflejo",Iuml:"Letra I latina mayúscula con diéresis",ETH:"Letra Eth latina mayúscula",Ntilde:"Letra N latina mayúscula con tilde",Ograve:"Letra O latina mayúscula con acento grave",Oacute:"Letra O latina mayúscula con acento agudo",Ocirc:"Letra O latina mayúscula con acento circunflejo",Otilde:"Letra O latina mayúscula con tilde",Ouml:"Letra O latina mayúscula con diéresis", +times:"Signo de multiplicación",Oslash:"Letra O latina mayúscula con barra inclinada",Ugrave:"Letra U latina mayúscula con acento grave",Uacute:"Letra U latina mayúscula con acento agudo",Ucirc:"Letra U latina mayúscula con acento circunflejo",Uuml:"Letra U latina mayúscula con diéresis",Yacute:"Letra Y latina mayúscula con acento agudo",THORN:"Letra Thorn latina mayúscula",szlig:"Letra s latina fuerte pequeña",agrave:"Letra a latina pequeña con acento grave",aacute:"Letra a latina pequeña con acento agudo", +acirc:"Letra a latina pequeña con acento circunflejo",atilde:"Letra a latina pequeña con tilde",auml:"Letra a latina pequeña con diéresis",aring:"Letra a latina pequeña con aro arriba",aelig:"Letra æ latina pequeña",ccedil:"Letra c latina pequeña con cedilla",egrave:"Letra e latina pequeña con acento grave",eacute:"Letra e latina pequeña con acento agudo",ecirc:"Letra e latina pequeña con acento circunflejo",euml:"Letra e latina pequeña con diéresis",igrave:"Letra i latina pequeña con acento grave", +iacute:"Letra i latina pequeña con acento agudo",icirc:"Letra i latina pequeña con acento circunflejo",iuml:"Letra i latina pequeña con diéresis",eth:"Letra eth latina pequeña",ntilde:"Letra n latina pequeña con tilde",ograve:"Letra o latina pequeña con acento grave",oacute:"Letra o latina pequeña con acento agudo",ocirc:"Letra o latina pequeña con acento circunflejo",otilde:"Letra o latina pequeña con tilde",ouml:"Letra o latina pequeña con diéresis",divide:"Signo de división",oslash:"Letra o latina minúscula con barra inclinada", +ugrave:"Letra u latina pequeña con acento grave",uacute:"Letra u latina pequeña con acento agudo",ucirc:"Letra u latina pequeña con acento circunflejo",uuml:"Letra u latina pequeña con diéresis",yacute:"Letra u latina pequeña con acento agudo",thorn:"Letra thorn latina minúscula",yuml:"Letra y latina pequeña con diéresis",OElig:"Diptongo OE latino en mayúscula",oelig:"Diptongo oe latino en minúscula",372:"Letra W latina mayúscula con acento circunflejo",374:"Letra Y latina mayúscula con acento circunflejo", 373:"Letra w latina pequeña con acento circunflejo",375:"Letra y latina pequeña con acento circunflejo",sbquo:"Comilla simple baja-9",8219:"Comilla simple alta invertida-9",bdquo:"Comillas dobles bajas-9",hellip:"Puntos suspensivos horizontales",trade:"Signo de marca registrada",9658:"Apuntador negro apuntando a la derecha",bull:"Viñeta",rarr:"Flecha a la derecha",rArr:"Flecha doble a la derecha",hArr:"Flecha izquierda derecha doble",diams:"Diamante negro",asymp:"Casi igual a"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js index 22c90561d..6cf0fe980 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/et.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", -aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", -ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", -thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ülaindeks kaks",sup3:"Ülaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ülaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jagamismärk",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Kaubamärgi märk",9658:"Black right-pointing pointer", bull:"Kuul",rarr:"Nool paremale",rArr:"Topeltnool paremale",hArr:"Topeltnool vasakule",diams:"Black diamond suit",asymp:"Ligikaudu võrdne"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js index e0b27c59d..f396fb277 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fa.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", -macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", -Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", -Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", -aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", -iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", -thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fa",{euro:"نشان یورو",lsquo:"علامت نقل قول تکی چپ",rsquo:"علامت نقل قول تکی راست",ldquo:"علامت نقل قول دوتایی چپ",rdquo:"علامت نقل قول دوتایی راست",ndash:"خط تیره En",mdash:"خط تیره Em",iexcl:"علامت تعجب وارونه",cent:"نشان سنت",pound:"نشان پوند",curren:"نشان ارز",yen:"نشان ین",brvbar:"نوار شکسته",sect:"نشان بخش",uml:"نشان سواگیری",copy:"نشان کپی رایت",ordf:"شاخص ترتیبی مونث",laquo:"اشاره چپ مکرر برای زاویه علامت نقل قول",not:"نشان ثبت نشده",reg:"نشان ثبت شده", +macr:"نشان خط بالای حرف",deg:"نشان درجه",sup2:"بالانویس دو",sup3:"بالانویس سه",acute:"لهجه غلیظ",micro:"نشان مایکرو",para:"نشان محل بند",middot:"نقطه میانی",cedil:"سدیل",sup1:"بالانویس 1",ordm:"شاخص ترتیبی مذکر",raquo:"نشان زاویه‌دار دوتایی نقل قول راست چین",frac14:"واحد عامیانه 1/4",frac12:"واحد عامینه نصف",frac34:"واحد عامیانه 3/4",iquest:"علامت سوال معکوس",Agrave:"حرف A بزرگ لاتین با تلفظ غلیظ",Aacute:"حرف A بزرگ لاتین با تلفظ شدید",Acirc:"حرف A بزرگ لاتین با دور",Atilde:"حرف A بزرگ لاتین با صدای کامی", +Auml:"حرف A بزرگ لاتین با نشان سواگیری",Aring:"حرف A بزرگ لاتین با حلقه بالا",AElig:"حرف Æ بزرگ لاتین",Ccedil:"حرف C بزرگ لاتین با نشان سواگیری",Egrave:"حرف E بزرگ لاتین با تلفظ درشت",Eacute:"حرف E بزرگ لاتین با تلفظ زیر",Ecirc:"حرف E بزرگ لاتین با خمان",Euml:"حرف E بزرگ لاتین با نشان سواگیری",Igrave:"حرف I بزرگ لاتین با تلفظ درشت",Iacute:"حرف I بزرگ لاتین با تلفظ ریز",Icirc:"حرف I بزرگ لاتین با خمان",Iuml:"حرف I بزرگ لاتین با نشان سواگیری",ETH:"حرف لاتین بزرگ واکه ترتیبی",Ntilde:"حرف N بزرگ لاتین با مد", +Ograve:"حرف O بزرگ لاتین با تلفظ درشت",Oacute:"حرف O بزرگ لاتین با تلفظ ریز",Ocirc:"حرف O بزرگ لاتین با خمان",Otilde:"حرف O بزرگ لاتین با مد",Ouml:"حرف O بزرگ لاتین با نشان سواگیری",times:"نشان ضربدر",Oslash:"حرف O بزرگ لاتین با میان خط",Ugrave:"حرف U بزرگ لاتین با تلفظ درشت",Uacute:"حرف U بزرگ لاتین با تلفظ ریز",Ucirc:"حرف U بزرگ لاتین با خمان",Uuml:"حرف U بزرگ لاتین با نشان سواگیری",Yacute:"حرف Y بزرگ لاتین با تلفظ ریز",THORN:"حرف بزرگ لاتین خاردار",szlig:"حرف کوچک لاتین شارپ s",agrave:"حرف a کوچک لاتین با تلفظ درشت", +aacute:"حرف a کوچک لاتین با تلفظ ریز",acirc:"حرف a کوچک لاتین با خمان",atilde:"حرف a کوچک لاتین با صدای کامی",auml:"حرف a کوچک لاتین با نشان سواگیری",aring:"حرف a کوچک لاتین گوشواره دار",aelig:"حرف کوچک لاتین æ",ccedil:"حرف c کوچک لاتین با نشان سدیل",egrave:"حرف e کوچک لاتین با تلفظ درشت",eacute:"حرف e کوچک لاتین با تلفظ ریز",ecirc:"حرف e کوچک لاتین با خمان",euml:"حرف e کوچک لاتین با نشان سواگیری",igrave:"حرف i کوچک لاتین با تلفظ درشت",iacute:"حرف i کوچک لاتین با تلفظ ریز",icirc:"حرف i کوچک لاتین با خمان", +iuml:"حرف i کوچک لاتین با نشان سواگیری",eth:"حرف کوچک لاتین eth",ntilde:"حرف n کوچک لاتین با صدای کامی",ograve:"حرف o کوچک لاتین با تلفظ درشت",oacute:"حرف o کوچک لاتین با تلفظ زیر",ocirc:"حرف o کوچک لاتین با خمان",otilde:"حرف o کوچک لاتین با صدای کامی",ouml:"حرف o کوچک لاتین با نشان سواگیری",divide:"نشان بخش",oslash:"حرف o کوچک لاتین با میان خط",ugrave:"حرف u کوچک لاتین با تلفظ درشت",uacute:"حرف u کوچک لاتین با تلفظ ریز",ucirc:"حرف u کوچک لاتین با خمان",uuml:"حرف u کوچک لاتین با نشان سواگیری",yacute:"حرف y کوچک لاتین با تلفظ ریز", +thorn:"حرف کوچک لاتین خاردار",yuml:"حرف y کوچک لاتین با نشان سواگیری",OElig:"بند بزرگ لاتین OE",oelig:"بند کوچک لاتین oe",372:"حرف W بزرگ لاتین با خمان",374:"حرف Y بزرگ لاتین با خمان",373:"حرف w کوچک لاتین با خمان",375:"حرف y کوچک لاتین با خمان",sbquo:"نشان نقل قول تکی زیر-9",8219:"نشان نقل قول تکی high-reversed-9",bdquo:"نقل قول دوتایی پایین-9",hellip:"حذف افقی",trade:"نشان تجاری",9658:"نشانگر سیاه جهت راست",bull:"گلوله",rarr:"فلش راست",rArr:"فلش دوتایی راست",hArr:"فلش دوتایی چپ راست",diams:"نشان الماس سیاه", asymp:"تقریبا برابر با"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js index 6d701e3c9..f9c7060f5 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fi.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js index d19e2e42d..a99070264 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js @@ -1,10 +1,10 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", -not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", -Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", -Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", -eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr-ca",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret",iexcl:"Point d'exclamation inversé",cent:"Symbole de cent",pound:"Symbole de Livre Sterling",curren:"Symbole monétaire",yen:"Symbole du Yen",brvbar:"Barre scindée",sect:"Symbole de section",uml:"Tréma",copy:"Symbole de copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Indicateur de négation",reg:"Symbole de marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"Exposant 3",acute:"Accent aigüe",micro:"Symbole micro",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"Exposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Une demi",frac34:"Trois quart",iquest:"Point d'interrogation inversé",Agrave:"A accent grave",Aacute:"A accent aigüe",Acirc:"A circonflexe",Atilde:"A tilde",Auml:"A tréma", +Aring:"A avec un rond au dessus",AElig:"Æ majuscule",Ccedil:"C cédille",Egrave:"E accent grave",Eacute:"E accent aigüe",Ecirc:"E accent circonflexe",Euml:"E tréma",Igrave:"I accent grave",Iacute:"I accent aigüe",Icirc:"I accent circonflexe",Iuml:"I tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N tilde",Ograve:"O accent grave",Oacute:"O accent aigüe",Ocirc:"O accent circonflexe",Otilde:"O tilde",Ouml:"O tréma",times:"Symbole de multiplication",Oslash:"O barré",Ugrave:"U accent grave",Uacute:"U accent aigüe", +Ucirc:"U accent circonflexe",Uuml:"U tréma",Yacute:"Y accent aigüe",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a accent grave",aacute:"a accent aigüe",acirc:"a accent circonflexe",atilde:"a tilde",auml:"a tréma",aring:"a avec un cercle au dessus",aelig:"æ",ccedil:"c cédille",egrave:"e accent grave",eacute:"e accent aigüe",ecirc:"e accent circonflexe",euml:"e tréma",igrave:"i accent grave",iacute:"i accent aigüe",icirc:"i accent circonflexe",iuml:"i tréma", +eth:"Lettre minuscule islandaise ED",ntilde:"n tilde",ograve:"o accent grave",oacute:"o accent aigüe",ocirc:"O accent circonflexe",otilde:"O tilde",ouml:"O tréma",divide:"Symbole de division",oslash:"o barré",ugrave:"u accent grave",uacute:"u accent aigüe",ucirc:"u accent circonflexe",uuml:"u tréma",yacute:"y accent aigüe",thorn:"Lettre islandaise thorn minuscule",yuml:"y tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W accent circonflexe",374:"Y accent circonflexe", 373:"w accent circonflexe",375:"y accent circonflexe",sbquo:"Guillemet simple fermant",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Symbole de marque déposée",9658:"Flèche noire pointant vers la droite",bull:"Puce",rarr:"Flèche vers la droite",rArr:"Flèche double vers la droite",hArr:"Flèche double vers la gauche",diams:"Carreau",asymp:"Presque égal"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js index 2d1ad0966..04f4dbcd0 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/fr.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", -not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", -Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", -Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", -auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", -ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret cadratin",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant", +not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron", +Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"Æ majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu", +Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron", +auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu", +ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Œ",oelig:"ligature minuscule latine œ",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe", 373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js index f16d36672..295b21b5c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/gl.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", -not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", -Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", -Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", -times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", -acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", -iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", -ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","gl",{euro:"Símbolo do euro",lsquo:"Comiña simple esquerda",rsquo:"Comiña simple dereita",ldquo:"Comiñas dobres esquerda",rdquo:"Comiñas dobres dereita",ndash:"Guión",mdash:"Raia",iexcl:"Signo de admiración invertido",cent:"Símbolo do centavo",pound:"Símbolo da libra",curren:"Símbolo de moeda",yen:"Símbolo do yen",brvbar:"Barra vertical rota",sect:"Símbolo de sección",uml:"Diérese",copy:"Símbolo de dereitos de autoría",ordf:"Indicador ordinal feminino",laquo:"Comiñas latinas, apertura", +not:"Signo negación",reg:"Símbolo de marca rexistrada",macr:"Guión alto",deg:"Signo de grao",sup2:"Superíndice dous",sup3:"Superíndice tres",acute:"Acento agudo",micro:"Signo de micro",para:"Signo de pi",middot:"Punto medio",cedil:"Cedilla",sup1:"Superíndice un",ordm:"Indicador ordinal masculino",raquo:"Comiñas latinas, peche",frac14:"Fracción ordinaria de un cuarto",frac12:"Fracción ordinaria de un medio",frac34:"Fracción ordinaria de tres cuartos",iquest:"Signo de interrogación invertido",Agrave:"Letra A latina maiúscula con acento grave", +Aacute:"Letra A latina maiúscula con acento agudo",Acirc:"Letra A latina maiúscula con acento circunflexo",Atilde:"Letra A latina maiúscula con til",Auml:"Letra A latina maiúscula con diérese",Aring:"Letra A latina maiúscula con aro enriba",AElig:"Letra Æ latina maiúscula",Ccedil:"Letra C latina maiúscula con cedilla",Egrave:"Letra E latina maiúscula con acento grave",Eacute:"Letra E latina maiúscula con acento agudo",Ecirc:"Letra E latina maiúscula con acento circunflexo",Euml:"Letra E latina maiúscula con diérese", +Igrave:"Letra I latina maiúscula con acento grave",Iacute:"Letra I latina maiúscula con acento agudo",Icirc:"Letra I latina maiúscula con acento circunflexo",Iuml:"Letra I latina maiúscula con diérese",ETH:"Letra Ed latina maiúscula",Ntilde:"Letra N latina maiúscula con til",Ograve:"Letra O latina maiúscula con acento grave",Oacute:"Letra O latina maiúscula con acento agudo",Ocirc:"Letra O latina maiúscula con acento circunflexo",Otilde:"Letra O latina maiúscula con til",Ouml:"Letra O latina maiúscula con diérese", +times:"Signo de multiplicación",Oslash:"Letra O latina maiúscula con barra transversal",Ugrave:"Letra U latina maiúscula con acento grave",Uacute:"Letra U latina maiúscula con acento agudo",Ucirc:"Letra U latina maiúscula con acento circunflexo",Uuml:"Letra U latina maiúscula con diérese",Yacute:"Letra Y latina maiúscula con acento agudo",THORN:"Letra Thorn latina maiúscula",szlig:"Letra s latina forte minúscula",agrave:"Letra a latina minúscula con acento grave",aacute:"Letra a latina minúscula con acento agudo", +acirc:"Letra a latina minúscula con acento circunflexo",atilde:"Letra a latina minúscula con til",auml:"Letra a latina minúscula con diérese",aring:"Letra a latina minúscula con aro enriba",aelig:"Letra æ latina minúscula",ccedil:"Letra c latina minúscula con cedilla",egrave:"Letra e latina minúscula con acento grave",eacute:"Letra e latina minúscula con acento agudo",ecirc:"Letra e latina minúscula con acento circunflexo",euml:"Letra e latina minúscula con diérese",igrave:"Letra i latina minúscula con acento grave", +iacute:"Letra i latina minúscula con acento agudo",icirc:"Letra i latina minúscula con acento circunflexo",iuml:"Letra i latina minúscula con diérese",eth:"Letra ed latina minúscula",ntilde:"Letra n latina minúscula con til",ograve:"Letra o latina minúscula con acento grave",oacute:"Letra o latina minúscula con acento agudo",ocirc:"Letra o latina minúscula con acento circunflexo",otilde:"Letra o latina minúscula con til",ouml:"Letra o latina minúscula con diérese",divide:"Signo de división",oslash:"Letra o latina minúscula con barra transversal", +ugrave:"Letra u latina minúscula con acento grave",uacute:"Letra u latina minúscula con acento agudo",ucirc:"Letra u latina minúscula con acento circunflexo",uuml:"Letra u latina minúscula con diérese",yacute:"Letra y latina minúscula con acento agudo",thorn:"Letra Thorn latina minúscula",yuml:"Letra y latina minúscula con diérese",OElig:"Ligadura OE latina maiúscula",oelig:"Ligadura oe latina minúscula",372:"Letra W latina maiúscula con acento circunflexo",374:"Letra Y latina maiúscula con acento circunflexo", 373:"Letra w latina minúscula con acento circunflexo",375:"Letra y latina minúscula con acento circunflexo",sbquo:"Comiña simple baixa, de apertura",8219:"Comiña simple alta, de peche",bdquo:"Comiñas dobres baixas, de apertura",hellip:"Elipse, puntos suspensivos",trade:"Signo de marca rexistrada",9658:"Apuntador negro apuntando á dereita",bull:"Viñeta",rarr:"Frecha á dereita",rArr:"Frecha dobre á dereita",hArr:"Frecha dobre da esquerda á dereita",diams:"Diamante negro",asymp:"Case igual a"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js index dcfc50f09..865d42b0b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/he.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", -macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", -Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", -ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", -Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", -ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", -divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","he",{euro:"יורו",lsquo:"סימן ציטוט יחיד שמאלי",rsquo:"סימן ציטוט יחיד ימני",ldquo:"סימן ציטוט כפול שמאלי",rdquo:"סימן ציטוט כפול ימני",ndash:"קו מפריד קצר",mdash:"קו מפריד ארוך",iexcl:"סימן קריאה הפוך",cent:"סנט",pound:"פאונד",curren:"מטבע",yen:"ין",brvbar:"קו שבור",sect:"סימן מקטע",uml:"שתי נקודות אופקיות (Diaeresis)",copy:"סימן זכויות יוצרים (Copyright)",ordf:"סימן אורדינאלי נקבי",laquo:"סימן ציטוט זווית כפולה לשמאל",not:"סימן שלילה מתמטי",reg:"סימן רשום", +macr:"מקרון (הגיה ארוכה)",deg:"מעלות",sup2:"2 בכתיב עילי",sup3:"3 בכתיב עילי",acute:"סימן דגוש (Acute)",micro:"מיקרו",para:"סימון פסקה",middot:"נקודה אמצעית",cedil:"סדיליה",sup1:"1 בכתיב עילי",ordm:"סימן אורדינאלי זכרי",raquo:"סימן ציטוט זווית כפולה לימין",frac14:"רבע בשבר פשוט",frac12:"חצי בשבר פשוט",frac34:"שלושה רבעים בשבר פשוט",iquest:"סימן שאלה הפוך",Agrave:"אות לטינית A עם גרש (Grave)",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde", +Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"אות לטינית Æ גדולה",Ccedil:"Latin capital letter C with cedilla",Egrave:"אות לטינית E עם גרש (Grave)",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"אות לטינית I עם גרש (Grave)",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis", +ETH:"אות לטינית Eth גדולה",Ntilde:"Latin capital letter N with tilde",Ograve:"אות לטינית O עם גרש (Grave)",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"סימן כפל",Oslash:"Latin capital letter O with stroke",Ugrave:"אות לטינית U עם גרש (Grave)",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis", +Yacute:"Latin capital letter Y with acute accent",THORN:"אות לטינית Thorn גדולה",szlig:"אות לטינית s חדה קטנה",agrave:"אות לטינית a עם גרש (Grave)",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"אות לטינית æ קטנה",ccedil:"Latin small letter c with cedilla",egrave:"אות לטינית e עם גרש (Grave)",eacute:"Latin small letter e with acute accent", +ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"אות לטינית i עם גרש (Grave)",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"אות לטינית eth קטנה",ntilde:"Latin small letter n with tilde",ograve:"אות לטינית o עם גרש (Grave)",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis", +divide:"סימן חלוקה",oslash:"Latin small letter o with stroke",ugrave:"אות לטינית u עם גרש (Grave)",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"אות לטינית thorn קטנה",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex", 373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"סימן ציטוט נמוך יחיד",8219:"סימן ציטוט",bdquo:"סימן ציטוט נמוך כפול",hellip:"שלוש נקודות",trade:"סימן טריידמארק",9658:"סמן שחור לצד ימין",bull:"תבליט (רשימה)",rarr:"חץ לימין",rArr:"חץ כפול לימין",hArr:"חץ כפול לימין ושמאל",diams:"יהלום מלא",asymp:"כמעט שווה"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js index 1b070a397..b6e45ac2c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hr.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", -reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latin capital letter A with acute accent", -Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", -Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", -Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", -aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", -ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", -thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskličnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana prečka",sect:"Znak odjeljka",uml:"Prijeglasi",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak", +reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Mikro znak",para:"Pilcrow sign",middot:"Srednja točka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js index 79483051f..9951ea918 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/hu.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", -reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", -Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", -Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", -agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", -icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", -uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","hu",{euro:"Euró jel",lsquo:"Bal szimpla idézőjel",rsquo:"Jobb szimpla idézőjel",ldquo:"Bal dupla idézőjel",rdquo:"Jobb dupla idézőjel",ndash:"Rövid gondolatjel",mdash:"Hosszú gondolatjel",iexcl:"Fordított felkiáltójel",cent:"Cent jel",pound:"Font jel",curren:"Valuta jel",yen:"Yen jel",brvbar:"Hosszú kettőspont",sect:"Paragrafus jel",uml:"Kettős hangzó jel",copy:"Szerzői jog jel",ordf:"Női sorrend mutatója",laquo:"Balra mutató duplanyíl",not:"Feltételes kötőjel", +reg:"Bejegyzett védjegy jele",macr:"Hosszúsági jel",deg:"Fok jel",sup2:"Négyzeten jel",sup3:"Köbön jel",acute:"Éles ékezet",micro:"Mikro-jel",para:"Bekezdés jel",middot:"Közép pont",cedil:"Cédille",sup1:"Elsőn jel",ordm:"Férfi sorrend mutatója",raquo:"Jobbra mutató duplanyíl",frac14:"Egy negyed jel",frac12:"Egy ketted jel",frac34:"Három negyed jel",iquest:"Fordított kérdőjel",Agrave:"Latin nagy A fordított ékezettel",Aacute:"Latin nagy A normál ékezettel",Acirc:"Latin nagy A hajtott ékezettel",Atilde:"Latin nagy A hullámjellel", +Auml:"Latin nagy A kettőspont ékezettel",Aring:"Latin nagy A gyűrű ékezettel",AElig:"Latin nagy Æ betű",Ccedil:"Latin nagy C cedillával",Egrave:"Latin nagy E fordított ékezettel",Eacute:"Latin nagy E normál ékezettel",Ecirc:"Latin nagy E hajtott ékezettel",Euml:"Latin nagy E dupla kettőspont ékezettel",Igrave:"Latin nagy I fordított ékezettel",Iacute:"Latin nagy I normál ékezettel",Icirc:"Latin nagy I hajtott ékezettel",Iuml:"Latin nagy I kettőspont ékezettel",ETH:"Latin nagy Eth betű",Ntilde:"Latin nagy N hullámjellel", +Ograve:"Latin nagy O fordított ékezettel",Oacute:"Latin nagy O normál ékezettel",Ocirc:"Latin nagy O hajtott ékezettel",Otilde:"Latin nagy O hullámjellel",Ouml:"Latin nagy O kettőspont ékezettel",times:"Szorzás jel",Oslash:"Latin O betű áthúzással",Ugrave:"Latin nagy U fordított ékezettel",Uacute:"Latin nagy U normál ékezettel",Ucirc:"Latin nagy U hajtott ékezettel",Uuml:"Latin nagy U kettőspont ékezettel",Yacute:"Latin nagy Y normál ékezettel",THORN:"Latin nagy Thorn betű",szlig:"Latin kis s betű", +agrave:"Latin kis a fordított ékezettel",aacute:"Latin kis a normál ékezettel",acirc:"Latin kis a hajtott ékezettel",atilde:"Latin kis a hullámjellel",auml:"Latin kis a kettőspont ékezettel",aring:"Latin kis a gyűrű ékezettel",aelig:"Latin kis æ betű",ccedil:"Latin kis c cedillával",egrave:"Latin kis e fordított ékezettel",eacute:"Latin kis e normál ékezettel",ecirc:"Latin kis e hajtott ékezettel",euml:"Latin kis e dupla kettőspont ékezettel",igrave:"Latin kis i fordított ékezettel",iacute:"Latin kis i normál ékezettel", +icirc:"Latin kis i hajtott ékezettel",iuml:"Latin kis i kettőspont ékezettel",eth:"Latin kis eth betű",ntilde:"Latin kis n hullámjellel",ograve:"Latin kis o fordított ékezettel",oacute:"Latin kis o normál ékezettel",ocirc:"Latin kis o hajtott ékezettel",otilde:"Latin kis o hullámjellel",ouml:"Latin kis o kettőspont ékezettel",divide:"Osztásjel",oslash:"Latin kis o betű áthúzással",ugrave:"Latin kis u fordított ékezettel",uacute:"Latin kis u normál ékezettel",ucirc:"Latin kis u hajtott ékezettel", +uuml:"Latin kis u kettőspont ékezettel",yacute:"Latin kis y normál ékezettel",thorn:"Latin kis thorn jel",yuml:"Latin kis y kettőspont ékezettel",OElig:"Latin nagy OE-jel",oelig:"Latin kis oe-jel",372:"Latin nagy W hajtott ékezettel",374:"Latin nagy Y hajtott ékezettel",373:"Latin kis w hajtott ékezettel",375:"Latin kis y hajtott ékezettel",sbquo:"Nyitó nyomdai szimpla idézőjel",8219:"Záró nyomdai záró idézőjel",bdquo:"Nyitó nyomdai dupla idézőjel",hellip:"Három pont",trade:"Kereskedelmi védjegy jele", 9658:"Jobbra mutató fekete mutató",bull:"Golyó",rarr:"Jobbra mutató nyíl",rArr:"Jobbra mutató duplanyíl",hArr:"Bal-jobb duplanyíl",diams:"Fekete gyémánt jel",asymp:"Majdnem egyenlő jel"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js index 4928f4004..eb453704c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/id.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","id",{euro:"Tanda Euro",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Tanda Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Tanda Hak Cipta",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Tanda Telah Terdaftar",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js index 894b56ce8..6abbc17f4 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/it.js @@ -1,14 +1,14 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", -not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", -Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", -Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", -Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", -agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", -ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", -ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", -yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte", +not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave", +Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso", +Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso", +Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S", +agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto", +ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto", +ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn", +yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale", trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js index 84fb8fa2e..37c17684b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ja.js @@ -1,9 +1,9 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", -frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", -times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", -ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", +frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", +times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", +ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js index 65a7518df..e837f3511 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/km.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","km",{euro:"សញ្ញា​អឺរ៉ូ",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"សញ្ញា​សេន",pound:"សញ្ញា​ផោន",curren:"សញ្ញា​រូបិយបណ្ណ",yen:"សញ្ញា​យ៉េន",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"សញ្ញា​រក្សា​សិទ្ធិ",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"សញ្ញា​ដឺក្រេ",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"សញ្ញា​មីក្រូ",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js index 4917d4ade..b9edf7fea 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ku.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", -ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", -Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", -Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", -times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", -atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", -icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", -uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ku",{euro:"نیشانەی یۆرۆ",lsquo:"نیشانەی فاریزەی سەرووژێری تاکی چەپ",rsquo:"نیشانەی فاریزەی سەرووژێری تاکی ڕاست",ldquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی چه‌پ",rdquo:"نیشانەی فاریزەی سەرووژێری دووهێندەی ڕاست",ndash:"تەقەڵی کورت",mdash:"تەقەڵی درێژ",iexcl:"نیشانەی هەڵەوگێڕی سەرسوڕهێنەر",cent:"نیشانەی سەنت",pound:"نیشانەی پاوەند",curren:"نیشانەی دراو",yen:"نیشانەی یەنی ژاپۆنی",brvbar:"شریتی ئەستوونی پچڕاو",sect:"نیشانەی دوو s لەسەریەک",uml:"خاڵ",copy:"نیشانەی مافی چاپ", +ordf:"هێڵ لەسەر پیتی a",laquo:"دوو تیری بەدووایەکی چەپ",not:"نیشانەی نەخێر",reg:"نیشانەی R لەناو بازنەدا",macr:"ماکڕۆن",deg:"نیشانەی پلە",sup2:"سەرنووسی دوو",sup3:"سەرنووسی سێ",acute:"لاری تیژ",micro:"نیشانەی u لق درێژی چەپی خواروو",para:"نیشانەی پەڕەگراف",middot:"ناوەڕاستی خاڵ",cedil:"نیشانەی c ژێر چووکرە",sup1:"سەرنووسی یەک",ordm:"هێڵ لەژێر پیتی o",raquo:"دوو تیری بەدووایەکی ڕاست",frac14:"یەک لەسەر چووار",frac12:"یەک لەسەر دوو",frac34:"سێ لەسەر چووار",iquest:"هێمای هەڵەوگێری پرسیار",Agrave:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری لار", +Aacute:"پیتی لاتینی A-ی گەورە لەگەڵ ڕوومەتداری تیژ",Acirc:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Atilde:"پیتی لاتینی A-ی گەورە لەگەڵ زەڕە",Auml:"پیتی لاتینی A-ی گەورە لەگەڵ نیشانە لەسەری",Aring:"پیتی لاتینی گەورەی Å",AElig:"پیتی لاتینی گەورەی Æ",Ccedil:"پیتی لاتینی C-ی گەورە لەگەڵ ژێر چووکرە",Egrave:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری لار",Eacute:"پیتی لاتینی E-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ecirc:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری",Euml:"پیتی لاتینی E-ی گەورە لەگەڵ نیشانە لەسەری", +Igrave:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری لار",Iacute:"پیتی لاتینی I-ی گەورە لەگەڵ ڕوومەتداری تیژ",Icirc:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",Iuml:"پیتی لاتینی I-ی گەورە لەگەڵ نیشانە لەسەری",ETH:"پیتی لاتینی E-ی گەورەی",Ntilde:"پیتی لاتینی N-ی گەورە لەگەڵ زەڕە",Ograve:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری لار",Oacute:"پیتی لاتینی O-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ocirc:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری",Otilde:"پیتی لاتینی O-ی گەورە لەگەڵ زەڕە",Ouml:"پیتی لاتینی O-ی گەورە لەگەڵ نیشانە لەسەری", +times:"نیشانەی لێکدان",Oslash:"پیتی لاتینی گەورەی Ø لەگەڵ هێمای دڵ وەستان",Ugrave:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری لار",Uacute:"پیتی لاتینی U-ی گەورە لەگەڵ ڕوومەتداری تیژ",Ucirc:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Uuml:"پیتی لاتینی U-ی گەورە لەگەڵ نیشانە لەسەری",Yacute:"پیتی لاتینی Y-ی گەورە لەگەڵ ڕوومەتداری تیژ",THORN:"پیتی لاتینی دڕکی گەورە",szlig:"پیتی لاتنی نووک تیژی s",agrave:"پیتی لاتینی a-ی بچووک لەگەڵ ڕوومەتداری لار",aacute:"پیتی لاتینی a-ی بچووك لەگەڵ ڕوومەتداری تیژ",acirc:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری", +atilde:"پیتی لاتینی a-ی بچووك لەگەڵ زەڕە",auml:"پیتی لاتینی a-ی بچووك لەگەڵ نیشانە لەسەری",aring:"پیتی لاتینی å-ی بچووك",aelig:"پیتی لاتینی æ-ی بچووك",ccedil:"پیتی لاتینی c-ی بچووك لەگەڵ ژێر چووکرە",egrave:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری لار",eacute:"پیتی لاتینی e-ی بچووك لەگەڵ ڕوومەتداری تیژ",ecirc:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",euml:"پیتی لاتینی e-ی بچووك لەگەڵ نیشانە لەسەری",igrave:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری لار",iacute:"پیتی لاتینی i-ی بچووك لەگەڵ ڕوومەتداری تیژ", +icirc:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",iuml:"پیتی لاتینی i-ی بچووك لەگەڵ نیشانە لەسەری",eth:"پیتی لاتینی e-ی بچووك",ntilde:"پیتی لاتینی n-ی بچووك لەگەڵ زەڕە",ograve:"پیتی لاتینی o-ی بچووك لەگەڵ ڕوومەتداری لار",oacute:"پیتی لاتینی o-ی بچووك له‌گەڵ ڕوومەتداری تیژ",ocirc:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",otilde:"پیتی لاتینی o-ی بچووك لەگەڵ زەڕە",ouml:"پیتی لاتینی o-ی بچووك لەگەڵ نیشانە لەسەری",divide:"نیشانەی دابەش",oslash:"پیتی لاتینی گەورەی ø لەگەڵ هێمای دڵ وەستان",ugrave:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری لار", +uacute:"پیتی لاتینی u-ی بچووك لەگەڵ ڕوومەتداری تیژ",ucirc:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",uuml:"پیتی لاتینی u-ی بچووك لەگەڵ نیشانە لەسەری",yacute:"پیتی لاتینی y-ی بچووك لەگەڵ ڕوومەتداری تیژ",thorn:"پیتی لاتینی دڕکی بچووك",yuml:"پیتی لاتینی y-ی بچووك لەگەڵ نیشانە لەسەری",OElig:"پیتی لاتینی گەورەی پێکەوەنووسراوی OE",oelig:"پیتی لاتینی بچووکی پێکەوەنووسراوی oe",372:"پیتی لاتینی W-ی گەورە لەگەڵ نیشانە لەسەری",374:"پیتی لاتینی Y-ی گەورە لەگەڵ نیشانە لەسەری",373:"پیتی لاتینی w-ی بچووکی لەگەڵ نیشانە لەسەری", 375:"پیتی لاتینی y-ی بچووکی لەگەڵ نیشانە لەسەری",sbquo:"نیشانەی فاریزەی نزم",8219:"نیشانەی فاریزەی بەرزی پێچەوانە",bdquo:"دوو فاریزەی تەنیش یەك",hellip:"ئاسۆیی بازنە",trade:"نیشانەی بازرگانی",9658:"ئاراستەی ڕەشی دەستی ڕاست",bull:"فیشەك",rarr:"تیری دەستی ڕاست",rArr:"دووتیری دەستی ڕاست",hArr:"دوو تیری ڕاست و چەپ",diams:"ڕەشی پاقڵاوەیی",asymp:"نیشانەی یەکسانە"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js index 50a77d36e..6ff95a33d 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/lv.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", -laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", -Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", -Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", -times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", -acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", -icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", -uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zīme",lsquo:"Kreisā vienkārtīga pēdiņa",rsquo:"Labā vienkārtīga pēdiņa",ldquo:"Kreisā dubult pēdiņa",rdquo:"Labā dubult pēdiņa",ndash:"En svītra",mdash:"Em svītra",iexcl:"Apgriezta izsaukuma zīme",cent:"Centu naudas zīme",pound:"Sterliņu mārciņu naudas zīme",curren:"Valūtas zīme",yen:"Jenu naudas zīme",brvbar:"Vertikāla pārrauta līnija",sect:"Paragrāfa zīme",uml:"Diakritiska zīme",copy:"Autortiesību zīme",ordf:"Sievišķas kārtas rādītājs", +laquo:"Kreisā dubult stūra pēdiņu zīme",not:"Neparakstīts",reg:"Reģistrēta zīme",macr:"Garumzīme",deg:"Grādu zīme",sup2:"Augšraksts divi",sup3:"Augšraksts trīs",acute:"Akūta uzsvara zīme",micro:"Mikro zīme",para:"Rindkopas zīme ",middot:"Vidējs punkts",cedil:"Āķītis zem burta",sup1:"Augšraksts viens",ordm:"Vīrišķīgas kārtas rādītājs",raquo:"Labā dubult stūra pēdiņu zīme",frac14:"Vulgāra frakcija 1/4",frac12:"Vulgāra frakcija 1/2",frac34:"Vulgāra frakcija 3/4",iquest:"Apgriezta jautājuma zīme",Agrave:"Lielais latīņu burts A ar uzsvara zīmi", +Aacute:"Lielais latīņu burts A ar akūtu uzsvara zīmi",Acirc:"Lielais latīņu burts A ar diakritisku zīmi",Atilde:"Lielais latīņu burts A ar tildi ",Auml:"Lielais latīņu burts A ar diakritisko zīmi",Aring:"Lielais latīņu burts A ar aplīti augšā",AElig:"Lielais latīņu burts Æ",Ccedil:"Lielais latīņu burts C ar āķīti zem burta",Egrave:"Lielais latīņu burts E ar apostrofu",Eacute:"Lielais latīņu burts E ar akūtu uzsvara zīmi",Ecirc:"Lielais latīņu burts E ar diakritisko zīmi",Euml:"Lielais latīņu burts E ar diakritisko zīmi", +Igrave:"Lielais latīņu burts I ar uzsvaras zīmi",Iacute:"Lielais latīņu burts I ar akūtu uzsvara zīmi",Icirc:"Lielais latīņu burts I ar diakritisko zīmi",Iuml:"Lielais latīņu burts I ar diakritisko zīmi",ETH:"Lielais latīņu burts Eth",Ntilde:"Lielais latīņu burts N ar tildi",Ograve:"Lielais latīņu burts O ar uzsvara zīmi",Oacute:"Lielais latīņu burts O ar akūto uzsvara zīmi",Ocirc:"Lielais latīņu burts O ar diakritisko zīmi",Otilde:"Lielais latīņu burts O ar tildi",Ouml:"Lielais latīņu burts O ar diakritisko zīmi", +times:"Reizināšanas zīme ",Oslash:"Lielais latīņu burts O ar iesvītrojumu",Ugrave:"Lielais latīņu burts U ar uzsvaras zīmi",Uacute:"Lielais latīņu burts U ar akūto uzsvars zīmi",Ucirc:"Lielais latīņu burts U ar diakritisko zīmi",Uuml:"Lielais latīņu burts U ar diakritisko zīmi",Yacute:"Lielais latīņu burts Y ar akūto uzsvaras zīmi",THORN:"Lielais latīņu burts torn",szlig:"Mazs latīņu burts ar ligatūru",agrave:"Mazs latīņu burts a ar uzsvara zīmi",aacute:"Mazs latīņu burts a ar akūto uzsvara zīmi", +acirc:"Mazs latīņu burts a ar diakritisko zīmi",atilde:"Mazs latīņu burts a ar tildi",auml:"Mazs latīņu burts a ar diakritisko zīmi",aring:"Mazs latīņu burts a ar aplīti augšā",aelig:"Mazs latīņu burts æ",ccedil:"Mazs latīņu burts c ar āķīti zem burta",egrave:"Mazs latīņu burts e ar uzsvara zīmi ",eacute:"Mazs latīņu burts e ar akūtu uzsvara zīmi",ecirc:"Mazs latīņu burts e ar diakritisko zīmi",euml:"Mazs latīņu burts e ar diakritisko zīmi",igrave:"Mazs latīņu burts i ar uzsvara zīmi ",iacute:"Mazs latīņu burts i ar akūtu uzsvara zīmi", +icirc:"Mazs latīņu burts i ar diakritisko zīmi",iuml:"Mazs latīņu burts i ar diakritisko zīmi",eth:"Mazs latīņu burts eth",ntilde:"Mazs latīņu burts n ar tildi",ograve:"Mazs latīņu burts o ar uzsvara zīmi ",oacute:"Mazs latīņu burts o ar akūtu uzsvara zīmi",ocirc:"Mazs latīņu burts o ar diakritisko zīmi",otilde:"Mazs latīņu burts o ar tildi",ouml:"Mazs latīņu burts o ar diakritisko zīmi",divide:"Dalīšanas zīme",oslash:"Mazs latīņu burts o ar iesvītrojumu",ugrave:"Mazs latīņu burts u ar uzsvara zīmi ", +uacute:"Mazs latīņu burts u ar akūtu uzsvara zīmi",ucirc:"Mazs latīņu burts u ar diakritisko zīmi",uuml:"Mazs latīņu burts u ar diakritisko zīmi",yacute:"Mazs latīņu burts y ar akūtu uzsvaras zīmi",thorn:"Mazs latīņu burts torns",yuml:"Mazs latīņu burts y ar diakritisko zīmi",OElig:"Liela latīņu ligatūra OE",oelig:"Maza latīņu ligatūra oe",372:"Liels latīņu burts W ar diakritisko zīmi ",374:"Liels latīņu burts Y ar diakritisko zīmi ",373:"Mazs latīņu burts w ar diakritisko zīmi ",375:"Mazs latīņu burts y ar diakritisko zīmi ", sbquo:"Mazas-9 vienkārtīgas pēdiņas",8219:"Lielas-9 vienkārtīgas apgrieztas pēdiņas",bdquo:"Mazas-9 dubultas pēdiņas",hellip:"Horizontāli daudzpunkti",trade:"Preču zīmes zīme",9658:"Melns pa labi pagriezts radītājs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"Gandrīz vienāds ar"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js index 0cdcde200..b64c1074c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nb.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", -reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", -Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", -times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", -ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", -uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js index 68edf37f4..df5fb7bea 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/nl.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", -reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", -Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", -Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", -Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", -aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", -iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", -uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken", +reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Micro-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe", +Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Æ",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu", +Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave", +Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema", +aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe", +iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave", +uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Œ",oelig:"Latijnse kleine letter œ",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe", 375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js index eecc56c92..42e97c5b4 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/no.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", -reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", -Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", -times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", -ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", -uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn", +reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde", +Auml:"Stor A med tøddel",Aring:"Stor Å",AElig:"Stor Æ",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel", +times:"Multiplikasjonstegn",Oslash:"Stor Ø",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten å",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent", +ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks", +uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil", rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js index f21a09dbb..ccb95f5ec 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pl.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", -laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", -Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", -Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", -Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", -eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", -divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pl",{euro:"Znak euro",lsquo:"Cudzysłów pojedynczy otwierający",rsquo:"Cudzysłów pojedynczy zamykający",ldquo:"Cudzysłów apostrofowy otwierający",rdquo:"Cudzysłów apostrofowy zamykający",ndash:"Półpauza",mdash:"Pauza",iexcl:"Odwrócony wykrzyknik",cent:"Znak centa",pound:"Znak funta",curren:"Znak waluty",yen:"Znak jena",brvbar:"Przerwana pionowa kreska",sect:"Paragraf",uml:"Diereza",copy:"Znak praw autorskich",ordf:"Wskaźnik rodzaju żeńskiego liczebnika porządkowego", +laquo:"Lewy cudzysłów ostrokątny",not:"Znak negacji",reg:"Zastrzeżony znak towarowy",macr:"Makron",deg:"Znak stopnia",sup2:"Druga potęga",sup3:"Trzecia potęga",acute:"Akcent ostry",micro:"Znak mikro",para:"Znak akapitu",middot:"Kropka środkowa",cedil:"Cedylla",sup1:"Pierwsza potęga",ordm:"Wskaźnik rodzaju męskiego liczebnika porządkowego",raquo:"Prawy cudzysłów ostrokątny",frac14:"Ułamek zwykły jedna czwarta",frac12:"Ułamek zwykły jedna druga",frac34:"Ułamek zwykły trzy czwarte",iquest:"Odwrócony znak zapytania", +Agrave:"Wielka litera A z akcentem ciężkim",Aacute:"Wielka litera A z akcentem ostrym",Acirc:"Wielka litera A z akcentem przeciągłym",Atilde:"Wielka litera A z tyldą",Auml:"Wielka litera A z dierezą",Aring:"Wielka litera A z kółkiem",AElig:"Wielka ligatura Æ",Ccedil:"Wielka litera C z cedyllą",Egrave:"Wielka litera E z akcentem ciężkim",Eacute:"Wielka litera E z akcentem ostrym",Ecirc:"Wielka litera E z akcentem przeciągłym",Euml:"Wielka litera E z dierezą",Igrave:"Wielka litera I z akcentem ciężkim", +Iacute:"Wielka litera I z akcentem ostrym",Icirc:"Wielka litera I z akcentem przeciągłym",Iuml:"Wielka litera I z dierezą",ETH:"Wielka litera Eth",Ntilde:"Wielka litera N z tyldą",Ograve:"Wielka litera O z akcentem ciężkim",Oacute:"Wielka litera O z akcentem ostrym",Ocirc:"Wielka litera O z akcentem przeciągłym",Otilde:"Wielka litera O z tyldą",Ouml:"Wielka litera O z dierezą",times:"Znak mnożenia wektorowego",Oslash:"Wielka litera O z przekreśleniem",Ugrave:"Wielka litera U z akcentem ciężkim",Uacute:"Wielka litera U z akcentem ostrym", +Ucirc:"Wielka litera U z akcentem przeciągłym",Uuml:"Wielka litera U z dierezą",Yacute:"Wielka litera Y z akcentem ostrym",THORN:"Wielka litera Thorn",szlig:"Mała litera ostre s (eszet)",agrave:"Mała litera a z akcentem ciężkim",aacute:"Mała litera a z akcentem ostrym",acirc:"Mała litera a z akcentem przeciągłym",atilde:"Mała litera a z tyldą",auml:"Mała litera a z dierezą",aring:"Mała litera a z kółkiem",aelig:"Mała ligatura æ",ccedil:"Mała litera c z cedyllą",egrave:"Mała litera e z akcentem ciężkim", +eacute:"Mała litera e z akcentem ostrym",ecirc:"Mała litera e z akcentem przeciągłym",euml:"Mała litera e z dierezą",igrave:"Mała litera i z akcentem ciężkim",iacute:"Mała litera i z akcentem ostrym",icirc:"Mała litera i z akcentem przeciągłym",iuml:"Mała litera i z dierezą",eth:"Mała litera eth",ntilde:"Mała litera n z tyldą",ograve:"Mała litera o z akcentem ciężkim",oacute:"Mała litera o z akcentem ostrym",ocirc:"Mała litera o z akcentem przeciągłym",otilde:"Mała litera o z tyldą",ouml:"Mała litera o z dierezą", +divide:"Anglosaski znak dzielenia",oslash:"Mała litera o z przekreśleniem",ugrave:"Mała litera u z akcentem ciężkim",uacute:"Mała litera u z akcentem ostrym",ucirc:"Mała litera u z akcentem przeciągłym",uuml:"Mała litera u z dierezą",yacute:"Mała litera y z akcentem ostrym",thorn:"Mała litera thorn",yuml:"Mała litera y z dierezą",OElig:"Wielka ligatura OE",oelig:"Mała ligatura oe",372:"Wielka litera W z akcentem przeciągłym",374:"Wielka litera Y z akcentem przeciągłym",373:"Mała litera w z akcentem przeciągłym", 375:"Mała litera y z akcentem przeciągłym",sbquo:"Pojedynczy apostrof dolny",8219:"Pojedynczy apostrof górny",bdquo:"Podwójny apostrof dolny",hellip:"Wielokropek",trade:"Znak towarowy",9658:"Czarny wskaźnik wskazujący w prawo",bull:"Punktor",rarr:"Strzałka w prawo",rArr:"Podwójna strzałka w prawo",hArr:"Podwójna strzałka w lewo",diams:"Czarny znak karo",asymp:"Znak prawie równe"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js index e3f78319a..b45623f0e 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", -macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", -Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", -Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", -aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", -otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"Símbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada", +macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema", +Aring:"A maiúsculo com anel acima",AElig:"Æ maiúsculo",Ccedil:"Ç maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo", +Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema", +aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo", +otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo", 373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js index 11ef746a6..e1ab51271 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/pt.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", -laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", -Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", -Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", -times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", -atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", -icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", -uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","pt",{euro:"Símbolo do Euro",lsquo:"Aspa esquerda simples",rsquo:"Aspa direita simples",ldquo:"Aspa esquerda dupla",rdquo:"Aspa direita dupla",ndash:"Travessão Simples",mdash:"Travessão Longo",iexcl:"Ponto de exclamação invertido",cent:"Símbolo do Cêntimo",pound:"Símbolo da Libra",curren:"Símbolo de Moeda",yen:"Símbolo do Iene",brvbar:"Barra quebrada",sect:"Símbolo de Secção",uml:"Trema",copy:"Símbolo dos Direitos de Autor",ordf:"Indicador ordinal feminino", +laquo:"Aspa esquerda ângulo duplo",not:"Não Símbolo",reg:"Símbolo de Registado",macr:"Mácron",deg:"Símbolo de Grau",sup2:"Expoente 2",sup3:"Expoente 3",acute:"Acento agudo",micro:"Símbolo de Micro",para:"Símbolo de Parágrafo",middot:"Ponto do Meio",cedil:"Cedilha",sup1:"Expoente 1",ordm:"Indicador ordinal masculino",raquo:"Aspas ângulo duplo pra Direita",frac14:"Fração vulgar 1/4",frac12:"Fração vulgar 1/2",frac34:"Fração vulgar 3/4",iquest:"Ponto de interrugação invertido",Agrave:"Letra maiúscula latina A com acento grave", +Aacute:"Letra maiúscula latina A com acento agudo",Acirc:"Letra maiúscula latina A com circunflexo",Atilde:"Letra maiúscula latina A com til",Auml:"Letra maiúscula latina A com trema",Aring:"Letra maiúscula latina A com sinal diacrítico",AElig:"Letra Maiúscula Latina Æ",Ccedil:"Letra maiúscula latina C com cedilha",Egrave:"Letra maiúscula latina E com acento grave",Eacute:"Letra maiúscula latina E com acento agudo",Ecirc:"Letra maiúscula latina E com circunflexo",Euml:"Letra maiúscula latina E com trema", +Igrave:"Letra maiúscula latina I com acento grave",Iacute:"Letra maiúscula latina I com acento agudo",Icirc:"Letra maiúscula latina I com cincunflexo",Iuml:"Letra maiúscula latina I com trema",ETH:"Letra maiúscula latina Eth (Ðð)",Ntilde:"Letra maiúscula latina N com til",Ograve:"Letra maiúscula latina O com acento grave",Oacute:"Letra maiúscula latina O com acento agudo",Ocirc:"Letra maiúscula latina I com circunflexo",Otilde:"Letra maiúscula latina O com til",Ouml:"Letra maiúscula latina O com trema", +times:"Símbolo de Multiplicação",Oslash:"Letra maiúscula O com barra",Ugrave:"Letra maiúscula latina U com acento grave",Uacute:"Letra maiúscula latina U com acento agudo",Ucirc:"Letra maiúscula latina U com circunflexo",Uuml:"Letra maiúscula latina E com trema",Yacute:"Letra maiúscula latina Y com acento agudo",THORN:"Letra maiúscula latina Rúnico",szlig:"Letra minúscula latina s forte",agrave:"Letra minúscula latina a com acento grave",aacute:"Letra minúscula latina a com acento agudo",acirc:"Letra minúscula latina a com circunflexo", +atilde:"Letra minúscula latina a com til",auml:"Letra minúscula latina a com trema",aring:"Letra minúscula latina a com sinal diacrítico",aelig:"Letra minúscula latina æ",ccedil:"Letra minúscula latina c com cedilha",egrave:"Letra minúscula latina e com acento grave",eacute:"Letra minúscula latina e com acento agudo",ecirc:"Letra minúscula latina e com circunflexo",euml:"Letra minúscula latina e com trema",igrave:"Letra minúscula latina i com acento grave",iacute:"Letra minúscula latina i com acento agudo", +icirc:"Letra minúscula latina i com circunflexo",iuml:"Letra pequena latina i com trema",eth:"Letra minúscula latina eth",ntilde:"Letra minúscula latina n com til",ograve:"Letra minúscula latina o com acento grave",oacute:"Letra minúscula latina o com acento agudo",ocirc:"Letra minúscula latina o com circunflexo",otilde:"Letra minúscula latina o com til",ouml:"Letra minúscula latina o com trema",divide:"Símbolo de Divisão",oslash:"Letra minúscula latina o com barra",ugrave:"Letra minúscula latina u com acento grave", +uacute:"Letra minúscula latina u com acento agudo",ucirc:"Letra minúscula latina u com circunflexo",uuml:"Letra minúscula latina u com trema",yacute:"Letra minúscula latina y com acento agudo",thorn:"Letra minúscula latina Rúnico",yuml:"Letra minúscula latina y com trema",OElig:"Ligadura maiúscula latina OE",oelig:"Ligadura minúscula latina oe",372:"Letra maiúscula latina W com circunflexo",374:"Letra maiúscula latina Y com circunflexo",373:"Letra minúscula latina w com circunflexo",375:"Letra minúscula latina y com circunflexo", sbquo:"Aspa Simples inferior-9",8219:"Aspa Simples superior invertida-9",bdquo:"Aspa Duplas inferior-9",hellip:"Elipse Horizontal ",trade:"Símbolo de Marca Registada",9658:"Ponteiro preto direito",bull:"Marca",rarr:"Seta para a direita",rArr:"Seta dupla para a direita",hArr:"Seta dupla direita esquerda",diams:"Naipe diamante preto",asymp:"Quase igual a "}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js index 866e86598..13af50246 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ru.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", -not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", -Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", -Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", -Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", -aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", -ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", -uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ru",{euro:"Знак евро",lsquo:"Левая одинарная кавычка",rsquo:"Правая одинарная кавычка",ldquo:"Левая двойная кавычка",rdquo:"Левая двойная кавычка",ndash:"Среднее тире",mdash:"Длинное тире",iexcl:"перевёрнутый восклицательный знак",cent:"Цент",pound:"Фунт",curren:"Знак валюты",yen:"Йена",brvbar:"Вертикальная черта с разрывом",sect:"Знак параграфа",uml:"Умлаут",copy:"Знак охраны авторского права",ordf:"Указатель окончания женского рода ...ая",laquo:"Левая кавычка-«ёлочка»", +not:"Отрицание",reg:"Знак охраны смежных прав\\t",macr:"Макрон",deg:"Градус",sup2:"Надстрочное два",sup3:"Надстрочное три",acute:"Акут",micro:"Микро",para:"Абзац",middot:"Интерпункт",cedil:"Седиль",sup1:"Надстрочная единица",ordm:"Порядковое числительное",raquo:"Правая кавычка-«ёлочка»",frac14:"Одна четвертая",frac12:"Одна вторая",frac34:"Три четвёртых",iquest:"Перевёрнутый вопросительный знак",Agrave:"Латинская заглавная буква А с апострофом",Aacute:"Латинская заглавная буква A с ударением",Acirc:"Латинская заглавная буква А с циркумфлексом", +Atilde:"Латинская заглавная буква А с тильдой",Auml:"Латинская заглавная буква А с тремой",Aring:"Латинская заглавная буква А с кольцом над ней",AElig:"Латинская большая буква Æ",Ccedil:"Латинская заглавная буква C с седилью",Egrave:"Латинская заглавная буква Е с апострофом",Eacute:"Латинская заглавная буква Е с ударением",Ecirc:"Латинская заглавная буква Е с циркумфлексом",Euml:"Латинская заглавная буква Е с тремой",Igrave:"Латинская заглавная буква I с апострофом",Iacute:"Латинская заглавная буква I с ударением", +Icirc:"Латинская заглавная буква I с циркумфлексом",Iuml:"Латинская заглавная буква I с тремой",ETH:"Латинская большая буква Eth",Ntilde:"Латинская заглавная буква N с тильдой",Ograve:"Латинская заглавная буква O с апострофом",Oacute:"Латинская заглавная буква O с ударением",Ocirc:"Латинская заглавная буква O с циркумфлексом",Otilde:"Латинская заглавная буква O с тильдой",Ouml:"Латинская заглавная буква O с тремой",times:"Знак умножения",Oslash:"Латинская большая перечеркнутая O",Ugrave:"Латинская заглавная буква U с апострофом", +Uacute:"Латинская заглавная буква U с ударением",Ucirc:"Латинская заглавная буква U с циркумфлексом",Uuml:"Латинская заглавная буква U с тремой",Yacute:"Латинская заглавная буква Y с ударением",THORN:"Латинская заглавная буква Thorn",szlig:"Знак диеза",agrave:"Латинская маленькая буква a с апострофом",aacute:"Латинская маленькая буква a с ударением",acirc:"Латинская маленькая буква a с циркумфлексом",atilde:"Латинская маленькая буква a с тильдой",auml:"Латинская маленькая буква a с тремой",aring:"Латинская маленькая буква a с кольцом", +aelig:"Латинская маленькая буква æ",ccedil:"Латинская маленькая буква с с седилью",egrave:"Латинская маленькая буква е с апострофом",eacute:"Латинская маленькая буква е с ударением",ecirc:"Латинская маленькая буква е с циркумфлексом",euml:"Латинская маленькая буква е с тремой",igrave:"Латинская маленькая буква i с апострофом",iacute:"Латинская маленькая буква i с ударением",icirc:"Латинская маленькая буква i с циркумфлексом",iuml:"Латинская маленькая буква i с тремой",eth:"Латинская маленькая буква eth", +ntilde:"Латинская маленькая буква n с тильдой",ograve:"Латинская маленькая буква o с апострофом",oacute:"Латинская маленькая буква o с ударением",ocirc:"Латинская маленькая буква o с циркумфлексом",otilde:"Латинская маленькая буква o с тильдой",ouml:"Латинская маленькая буква o с тремой",divide:"Знак деления",oslash:"Латинская строчная перечеркнутая o",ugrave:"Латинская маленькая буква u с апострофом",uacute:"Латинская маленькая буква u с ударением",ucirc:"Латинская маленькая буква u с циркумфлексом", +uuml:"Латинская маленькая буква u с тремой",yacute:"Латинская маленькая буква y с ударением",thorn:"Латинская маленькая буква thorn",yuml:"Латинская маленькая буква y с тремой",OElig:"Латинская прописная лигатура OE",oelig:"Латинская строчная лигатура oe",372:"Латинская заглавная буква W с циркумфлексом",374:"Латинская заглавная буква Y с циркумфлексом",373:"Латинская маленькая буква w с циркумфлексом",375:"Латинская маленькая буква y с циркумфлексом",sbquo:"Нижняя одинарная кавычка",8219:"Правая одинарная кавычка", bdquo:"Левая двойная кавычка",hellip:"Горизонтальное многоточие",trade:"Товарный знак",9658:"Черный указатель вправо",bull:"Маркер списка",rarr:"Стрелка вправо",rArr:"Двойная стрелка вправо",hArr:"Двойная стрелка влево-вправо",diams:"Черный ромб",asymp:"Примерно равно"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js index 1255a3508..1dbc9e430 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/si.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", -macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", -Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", -Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", -Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", -aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", -ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", -thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","si",{euro:"යුරෝ සලකුණ",lsquo:"වමේ තනි උපුටා දක්වීම ",rsquo:"දකුණේ තනි උපුටා දක්වීම ",ldquo:"වමේ දිත්ව උපුටා දක්වීම ",rdquo:"දකුණේ දිත්ව උපුටා දක්වීම ",ndash:"En dash",mdash:"Em dash",iexcl:"යටිකුරු හර්ෂදී ",cent:"Cent sign",pound:"Pound sign",curren:"මුල්‍යමය ",yen:"යෙන් ",brvbar:"Broken bar",sect:"තෙරේම් ",uml:"Diaeresis",copy:"පිටපත් අයිතිය ",ordf:"දර්ශකය",laquo:"Left-pointing double angle quotation mark",not:"සලකුණක් නොවේ",reg:"සලකුණක් ලියාපදිංචි කිරීම", +macr:"මුද්‍රිත ",deg:"සලකුණේ ",sup2:"උඩු ලකුණු දෙක",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent", +Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above", +aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde", +ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent", +thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer", bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js index 2d226d06e..51fa2cb6c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sk.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", -reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", -Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", -Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", -Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", -aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", -oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", -OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlčka",mdash:"Em pomlčka",iexcl:"Obrátený výkričník",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"Prerušená zvislá čiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor", +reg:"Znak registrácie",macr:"Pomlčka nad",deg:"Znak stupňa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"Dĺžeň",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"Obyčajný zlomok jedna štvrtina",frac12:"Obyčajný zlomok jedna polovica",frac34:"Obyčajný zlomok tri štvrtiny",iquest:"Otočený otáznik",Agrave:"Veľké písmeno latinky A s accentom", +Aacute:"Veľké písmeno latinky A s dĺžňom",Acirc:"Veľké písmeno latinky A s mäkčeňom",Atilde:"Veľké písmeno latinky A s tildou",Auml:"Veľké písmeno latinky A s dvoma bodkami",Aring:"Veľké písmeno latinky A s krúžkom nad",AElig:"Veľké písmeno latinky Æ",Ccedil:"Veľké písmeno latinky C s chvostom vľavo",Egrave:"Veľké písmeno latinky E s accentom",Eacute:"Veľké písmeno latinky E s dĺžňom",Ecirc:"Veľké písmeno latinky E s mäkčeňom",Euml:"Veľké písmeno latinky E s dvoma bodkami",Igrave:"Veľké písmeno latinky I s accentom", +Iacute:"Veľké písmeno latinky I s dĺžňom",Icirc:"Veľké písmeno latinky I s mäkčeňom",Iuml:"Veľké písmeno latinky I s dvoma bodkami",ETH:"Veľké písmeno latinky Eth",Ntilde:"Veľké písmeno latinky N s tildou",Ograve:"Veľké písmeno latinky O s accentom",Oacute:"Veľké písmeno latinky O s dĺžňom",Ocirc:"Veľké písmeno latinky O s mäkčeňom",Otilde:"Veľké písmeno latinky O s tildou",Ouml:"Veľké písmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké písmeno latinky O preškrtnuté",Ugrave:"Veľké písmeno latinky U s accentom", +Uacute:"Veľké písmeno latinky U s dĺžňom",Ucirc:"Veľké písmeno latinky U s mäkčeňom",Uuml:"Veľké písmeno latinky U s dvoma bodkami",Yacute:"Veľké písmeno latinky Y s dĺžňom",THORN:"Veľké písmeno latinky Thorn",szlig:"Malé písmeno latinky ostré s",agrave:"Malé písmeno latinky a s accentom",aacute:"Malé písmeno latinky a s dĺžňom",acirc:"Malé písmeno latinky a s mäkčeňom",atilde:"Malé písmeno latinky a s tildou",auml:"Malé písmeno latinky a s dvoma bodkami",aring:"Malé písmeno latinky a s krúžkom nad", +aelig:"Malé písmeno latinky æ",ccedil:"Malé písmeno latinky c s chvostom vľavo",egrave:"Malé písmeno latinky e s accentom",eacute:"Malé písmeno latinky e s dĺžňom",ecirc:"Malé písmeno latinky e s mäkčeňom",euml:"Malé písmeno latinky e s dvoma bodkami",igrave:"Malé písmeno latinky i s accentom",iacute:"Malé písmeno latinky i s dĺžňom",icirc:"Malé písmeno latinky i s mäkčeňom",iuml:"Malé písmeno latinky i s dvoma bodkami",eth:"Malé písmeno latinky eth",ntilde:"Malé písmeno latinky n s tildou",ograve:"Malé písmeno latinky o s accentom", +oacute:"Malé písmeno latinky o s dĺžňom",ocirc:"Malé písmeno latinky o s mäkčeňom",otilde:"Malé písmeno latinky o s tildou",ouml:"Malé písmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé písmeno latinky o preškrtnuté",ugrave:"Malé písmeno latinky u s accentom",uacute:"Malé písmeno latinky u s dĺžňom",ucirc:"Malé písmeno latinky u s mäkčeňom",uuml:"Malé písmeno latinky u s dvoma bodkami",yacute:"Malé písmeno latinky y s dĺžňom",thorn:"Malé písmeno latinky thorn",yuml:"Malé písmeno latinky y s dvoma bodkami", +OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké písmeno latinky W s mäkčeňom",374:"Veľké písmeno latinky Y s mäkčeňom",373:"Malé písmeno latinky w s mäkčeňom",375:"Malé písmeno latinky y s mäkčeňom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otočená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej značky",9658:"Čierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Šípka vpravo",rArr:"Dvojitá šipka vpravo", hArr:"Dvojitá šipka vľavo a vpravo",diams:"Čierne piky",asymp:"Skoro sa rovná"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js index 84759b627..ec7b30c0d 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sl.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", -macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", -Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", -ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", -Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", -ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", -divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sl",{euro:"Evro znak",lsquo:"Levi enojni narekovaj",rsquo:"Desni enojni narekovaj",ldquo:"Levi dvojni narekovaj",rdquo:"Desni dvojni narekovaj",ndash:"En pomišljaj",mdash:"Em pomišljaj",iexcl:"Obrnjen klicaj",cent:"Cent znak",pound:"Funt znak",curren:"Znak valute",yen:"Jen znak",brvbar:"Zlomljena črta",sect:"Znak oddelka",uml:"Diaeresis",copy:"Znak avtorskih pravic",ordf:"Ženski zaporedni kazalnik",laquo:"Levi obrnjen dvojni kotni narekovaj",not:"Ne znak",reg:"Registrirani znak", +macr:"Macron",deg:"Znak stopinj",sup2:"Nadpisano dva",sup3:"Nadpisano tri",acute:"Ostrivec",micro:"Mikro znak",para:"Pilcrow znak",middot:"Sredinska pika",cedil:"Cedilla",sup1:"Nadpisano ena",ordm:"Moški zaporedni kazalnik",raquo:"Desno obrnjen dvojni kotni narekovaj",frac14:"Ena četrtina",frac12:"Ena polovica",frac34:"Tri četrtine",iquest:"Obrnjen vprašaj",Agrave:"Velika latinska črka A s krativcem",Aacute:"Velika latinska črka A z ostrivcem",Acirc:"Velika latinska črka A s strešico",Atilde:"Velika latinska črka A z tildo", +Auml:"Velika latinska črka A z diaeresis-om",Aring:"Velika latinska črka A z obročem",AElig:"Velika latinska črka Æ",Ccedil:"Velika latinska črka C s cedillo",Egrave:"Velika latinska črka E s krativcem",Eacute:"Velika latinska črka E z ostrivcem",Ecirc:"Velika latinska črka E s strešico",Euml:"Velika latinska črka E z diaeresis-om",Igrave:"Velika latinska črka I s krativcem",Iacute:"Velika latinska črka I z ostrivcem",Icirc:"Velika latinska črka I s strešico",Iuml:"Velika latinska črka I z diaeresis-om", +ETH:"Velika latinska črka Eth",Ntilde:"Velika latinska črka N s tildo",Ograve:"Velika latinska črka O s krativcem",Oacute:"Velika latinska črka O z ostrivcem",Ocirc:"Velika latinska črka O s strešico",Otilde:"Velika latinska črka O s tildo",Ouml:"Velika latinska črka O z diaeresis-om",times:"Znak za množenje",Oslash:"Velika prečrtana latinska črka O",Ugrave:"Velika latinska črka U s krativcem",Uacute:"Velika latinska črka U z ostrivcem",Ucirc:"Velika latinska črka U s strešico",Uuml:"Velika latinska črka U z diaeresis-om", +Yacute:"Velika latinska črka Y z ostrivcem",THORN:"Velika latinska črka Thorn",szlig:"Mala ostra latinska črka s",agrave:"Mala latinska črka a s krativcem",aacute:"Mala latinska črka a z ostrivcem",acirc:"Mala latinska črka a s strešico",atilde:"Mala latinska črka a s tildo",auml:"Mala latinska črka a z diaeresis-om",aring:"Mala latinska črka a z obročem",aelig:"Mala latinska črka æ",ccedil:"Mala latinska črka c s cedillo",egrave:"Mala latinska črka e s krativcem",eacute:"Mala latinska črka e z ostrivcem", +ecirc:"Mala latinska črka e s strešico",euml:"Mala latinska črka e z diaeresis-om",igrave:"Mala latinska črka i s krativcem",iacute:"Mala latinska črka i z ostrivcem",icirc:"Mala latinska črka i s strešico",iuml:"Mala latinska črka i z diaeresis-om",eth:"Mala latinska črka eth",ntilde:"Mala latinska črka n s tildo",ograve:"Mala latinska črka o s krativcem",oacute:"Mala latinska črka o z ostrivcem",ocirc:"Mala latinska črka o s strešico",otilde:"Mala latinska črka o s tildo",ouml:"Mala latinska črka o z diaeresis-om", +divide:"Znak za deljenje",oslash:"Mala prečrtana latinska črka o",ugrave:"Mala latinska črka u s krativcem",uacute:"Mala latinska črka u z ostrivcem",ucirc:"Mala latinska črka u s strešico",uuml:"Mala latinska črka u z diaeresis-om",yacute:"Mala latinska črka y z ostrivcem",thorn:"Mala latinska črka thorn",yuml:"Mala latinska črka y z diaeresis-om",OElig:"Velika latinska ligatura OE",oelig:"Mala latinska ligatura oe",372:"Velika latinska črka W s strešico",374:"Velika latinska črka Y s strešico", 373:"Mala latinska črka w s strešico",375:"Mala latinska črka y s strešico",sbquo:"Enojni nizki-9 narekovaj",8219:"Enojni visoki-obrnjen-9 narekovaj",bdquo:"Dvojni nizki-9 narekovaj",hellip:"Horizontalni izpust",trade:"Znak blagovne znamke",9658:"Črni desno-usmerjen kazalec",bull:"Krogla",rarr:"Desno-usmerjena puščica",rArr:"Desno-usmerjena dvojna puščica",hArr:"Leva in desna dvojna puščica",diams:"Črna kara",asymp:"Skoraj enako"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js index c7098005c..24293ec92 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sq.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", -Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", -Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", -times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", -acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", -iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", -ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sq",{euro:"Shenja e Euros",lsquo:"Thonjëza majtas me një vi",rsquo:"Thonjëza djathtas me një vi",ldquo:"Thonjëza majtas",rdquo:"Thonjëza djathtas",ndash:"En viza lidhëse",mdash:"Em viza lidhëse",iexcl:"Pikëçuditëse e përmbysur",cent:"Shenja e Centit",pound:"Shejna e Funtit",curren:"Shenja e valutës",yen:"Shenja e Jenit",brvbar:"Viza e këputur",sect:"Shenja e pjesës",uml:"Diaeresis",copy:"Shenja e të drejtave të kopjimit",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Nuk ka shenjë",reg:"Shenja e të regjistruarit",macr:"Macron",deg:"Shenja e shkallës",sup2:"Super-skripta dy",sup3:"Super-skripta tre",acute:"Theks i mprehtë",micro:"Shjenja e Mikros",para:"Pilcrow sign",middot:"Pika e Mesme",cedil:"Hark nën shkronja",sup1:"Super-skripta një",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Thyesa një të katrat",frac12:"Thyesa një të dytat",frac34:"Thyesa tre të katrat",iquest:"Pikëpyetje e përmbysur",Agrave:"Shkronja e madhe latine A me theks të rëndë", +Aacute:"Shkronja e madhe latine A me theks akute",Acirc:"Shkronja e madhe latine A me theks lakor",Atilde:"Shkronja e madhe latine A me tildë",Auml:"Shkronja e madhe latine A me dy pika",Aring:"Shkronja e madhe latine A me unazë mbi",AElig:"Shkronja e madhe latine Æ",Ccedil:"Shkronja e madhe latine C me hark poshtë",Egrave:"Shkronja e madhe latine E me theks të rëndë",Eacute:"Shkronja e madhe latine E me theks akute",Ecirc:"Shkronja e madhe latine E me theks lakor",Euml:"Shkronja e madhe latine E me dy pika", +Igrave:"Shkronja e madhe latine I me theks të rëndë",Iacute:"Shkronja e madhe latine I me theks akute",Icirc:"Shkronja e madhe latine I me theks lakor",Iuml:"Shkronja e madhe latine I me dy pika",ETH:"Shkronja e madhe latine Eth",Ntilde:"Shkronja e madhe latine N me tildë",Ograve:"Shkronja e madhe latine O me theks të rëndë",Oacute:"Shkronja e madhe latine O me theks akute",Ocirc:"Shkronja e madhe latine O me theks lakor",Otilde:"Shkronja e madhe latine O me tildë",Ouml:"Shkronja e madhe latine O me dy pika", +times:"Shenja e shumëzimit",Oslash:"Shkronja e madhe latine O me vizë në mes",Ugrave:"Shkronja e madhe latine U me theks të rëndë",Uacute:"Shkronja e madhe latine U me theks akute",Ucirc:"Shkronja e madhe latine U me theks lakor",Uuml:"Shkronja e madhe latine U me dy pika",Yacute:"Shkronja e madhe latine Y me theks akute",THORN:"Shkronja e madhe latine Thorn",szlig:"Shkronja e vogë latine s e mprehtë",agrave:"Shkronja e vogë latine a me theks të rëndë",aacute:"Shkronja e vogë latine a me theks të mprehtë", +acirc:"Shkronja e vogël latine a me theks lakor",atilde:"Shkronja e vogël latine a me tildë",auml:"Shkronja e vogël latine a me dy pika",aring:"Shkronja e vogë latine a me unazë mbi",aelig:"Shkronja e vogë latine æ",ccedil:"Shkronja e vogël latine c me hark poshtë",egrave:"Shkronja e vogë latine e me theks të rëndë",eacute:"Shkronja e vogë latine e me theks të mprehtë",ecirc:"Shkronja e vogël latine e me theks lakor",euml:"Shkronja e vogël latine e me dy pika",igrave:"Shkronja e vogë latine i me theks të rëndë", +iacute:"Shkronja e vogë latine i me theks të mprehtë",icirc:"Shkronja e vogël latine i me theks lakor",iuml:"Shkronja e vogël latine i me dy pika",eth:"Shkronja e vogë latine eth",ntilde:"Shkronja e vogël latine n me tildë",ograve:"Shkronja e vogë latine o me theks të rëndë",oacute:"Shkronja e vogë latine o me theks të mprehtë",ocirc:"Shkronja e vogël latine o me theks lakor",otilde:"Shkronja e vogël latine o me tildë",ouml:"Shkronja e vogël latine o me dy pika",divide:"Shenja ndarëse",oslash:"Shkronja e vogël latine o me vizë në mes", +ugrave:"Shkronja e vogë latine u me theks të rëndë",uacute:"Shkronja e vogë latine u me theks të mprehtë",ucirc:"Shkronja e vogël latine u me theks lakor",uuml:"Shkronja e vogël latine u me dy pika",yacute:"Shkronja e vogë latine y me theks të mprehtë",thorn:"Shkronja e vogël latine thorn",yuml:"Shkronja e vogël latine y me dy pika",OElig:"Shkronja e madhe e bashkuar latine OE",oelig:"Shkronja e vogël e bashkuar latine oe",372:"Shkronja e madhe latine W me theks lakor",374:"Shkronja e madhe latine Y me theks lakor", 373:"Shkronja e vogël latine w me theks lakor",375:"Shkronja e vogël latine y me theks lakor",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Shenja e Simbolit Tregtarë",9658:"Black right-pointing pointer",bull:"Pulla",rarr:"Shigjeta djathtas",rArr:"Shenja të dyfishta djathtas",hArr:"Shigjeta e dyfishë majtas-djathtas",diams:"Black diamond suit",asymp:"Gati e barabar me"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js index 8f741b93e..e7412ea57 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/sv.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", -not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", -Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", -Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", -ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", -ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken", +not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex", +Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Æ",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex", +Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ø",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ", +ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø", +ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken", trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js index ae0b00e53..20071f48d 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/th.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", -not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", -Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", -Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", -Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", -aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", -ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", -yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","th",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"สัญลักษณ์สกุลเงิน",yen:"สัญลักษณ์เงินเยน",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark", +not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent", +Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent", +Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke", +Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis", +aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth", +ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis", +yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis", trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"สัญลักษณ์หัวข้อย่อย",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js index 3dd220a33..e2371dfff 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/tr.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", -not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", -Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", -ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", -THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", -igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", -uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro işareti",lsquo:"Sol tek tırnak işareti",rsquo:"Sağ tek tırnak işareti",ldquo:"Sol çift tırnak işareti",rdquo:"Sağ çift tırnak işareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem işareti",cent:"Cent işareti",pound:"Pound işareti",curren:"Para birimi işareti",yen:"Yen işareti",brvbar:"Kırık bar",sect:"Bölüm işareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı işareti",ordf:"Dişil sıralı gösterge",laquo:"Sol-işaret çift açı tırnak işareti", +not:"Not işareti",reg:"Kayıtlı işareti",macr:"Makron",deg:"Derece işareti",sup2:"İkili üstsimge",sup3:"Üçlü üstsimge",acute:"Aksan işareti",micro:"Mikro işareti",para:"Pilcrow işareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Üstsimge",ordm:"Eril sıralı gösterge",raquo:"Sağ işaret çift açı tırnak işareti",frac14:"Bayağı kesrin dörtte biri",frac12:"Bayağı kesrin bir yarım",frac34:"Bayağı kesrin dörtte üç",iquest:"Ters soru işareti",Agrave:"Aksanlı latin harfi",Aacute:"Aşırı aksanıyla Latin harfi", +Acirc:"Çarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük Æ harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"Aşırı vurgulu latin büyük E harfi",Ecirc:"Çarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"Aşırı aksanlı latin büyük I harfi",Icirc:"Çarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi", +ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"Aşırı aksanlı latin büyük O harfi",Ocirc:"Çarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Çarpma işareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"Aşırı aksanlı latin büyük U harfi",Ucirc:"Çarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"Aşırı aksanlı latin büyük Y harfi", +THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"Aşırı aksanlı latin küçük a harfi",acirc:"Çarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"Aşırı aksanlı latin küçük e harfi",ecirc:"Çarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi", +igrave:"Aksanlı latin küçük i harfi",iacute:"Aşırı aksanlı latin küçük i harfi",icirc:"Çarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"Aşırı aksanlı latin küçük o harfi",ocirc:"Çarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme işareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi", +uacute:"Aşırı aksanlı latin küçük u harfi",ucirc:"Çarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"Aşırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük bağlı OE harfi",oelig:"Latin küçük bağlı oe harfi",372:"Çarpık latin büyük W harfi",374:"Çarpık latin büyük Y harfi",373:"Çarpık latin küçük w harfi",375:"Çarpık latin küçük y harfi",sbquo:"Tek düşük-9 tırnak işareti",8219:"Tek yüksek-ters-9 tırnak işareti", bdquo:"Çift düşük-9 tırnak işareti",hellip:"Yatay elips",trade:"Marka tescili işareti",9658:"Siyah sağ işaret işaretçisi",bull:"Koyu nokta",rarr:"Sağa doğru ok",rArr:"Sağa doğru çift ok",hArr:"Sol, sağ çift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eşit"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js index 51f4c1d93..cca7c9819 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/ug.js @@ -1,13 +1,13 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", -deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", -Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", -Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", -Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", -ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", -oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", -yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ياۋرو بەلگىسى",lsquo:"يالاڭ پەش سول",rsquo:"يالاڭ پەش ئوڭ",ldquo:"قوش پەش سول",rdquo:"قوش پەش ئوڭ",ndash:"سىزىقچە",mdash:"سىزىق",iexcl:"ئۈندەش",cent:"تىيىن بەلگىسى",pound:"فوند ستېرلىڭ",curren:"پۇل بەلگىسى",yen:"ياپونىيە يىنى",brvbar:"ئۈزۈك بالداق",sect:"پاراگراف بەلگىسى",uml:"تاۋۇش ئايرىش بەلگىسى",copy:"نەشر ھوقۇقى بەلگىسى",ordf:"Feminine ordinal indicator",laquo:"قوش تىرناق سول",not:"غەيرى بەلگە",reg:"خەتلەتكەن تاۋار ماركىسى",macr:"سوزۇش بەلگىسى", +deg:"گىرادۇس بەلگىسى",sup2:"يۇقىرى ئىندېكىس 2",sup3:"يۇقىرى ئىندېكىس 3",acute:"ئۇرغۇ بەلگىسى",micro:"Micro sign",para:"ئابزاس بەلگىسى",middot:"ئوتتۇرا چېكىت",cedil:"ئاستىغا قوشۇلىدىغان بەلگە",sup1:"يۇقىرى ئىندېكىس 1",ordm:"Masculine ordinal indicator",raquo:"قوش تىرناق ئوڭ",frac14:"ئاددىي كەسىر تۆتتىن بىر",frac12:"ئاددىي كەسىر ئىككىدىن بىر",frac34:"ئاددىي كەسىر ئۈچتىن تۆرت",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent", +Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Æ",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent", +Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"قوش پەش ئوڭ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent", +Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ", +ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تىك موللاق سوئال بەلگىسى",ograve:"Latin small letter o with grave accent", +oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"بۆلۈش بەلگىسى",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn", +yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"خەتلەتكەن تاۋار ماركىسى بەلگىسى",9658:"Black right-pointing pointer", bull:"Bullet",rarr:"ئوڭ يا ئوق",rArr:"ئوڭ قوش سىزىق يا ئوق",hArr:"ئوڭ سول قوش سىزىق يا ئوق",diams:"ئۇيۇل غىچ",asymp:"تەخمىنەن تەڭ"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js index 845e7524b..c879fb2e3 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/uk.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", -not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", -Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", -Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", -Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", -igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", -ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","uk",{euro:"Знак євро",lsquo:"Ліві одинарні лапки",rsquo:"Праві одинарні лапки",ldquo:"Ліві подвійні лапки",rdquo:"Праві подвійні лапки",ndash:"Середнє тире",mdash:"Довге тире",iexcl:"Перевернутий знак оклику",cent:"Знак цента",pound:"Знак фунта",curren:"Знак валюти",yen:"Знак єни",brvbar:"Переривчаста вертикальна лінія",sect:"Знак параграфу",uml:"Умлаут",copy:"Знак авторських прав",ordf:"Жіночий порядковий вказівник",laquo:"ліві вказівні подвійні кутові дужки", +not:"Заперечення",reg:"Знак охорони суміжних прав",macr:"Макрон",deg:"Знак градуса",sup2:"два у верхньому індексі",sup3:"три у верхньому індексі",acute:"Знак акута",micro:"Знак мікро",para:"Знак абзацу",middot:"Інтерпункт",cedil:"Седиль",sup1:"Один у верхньому індексі",ordm:"Чоловічий порядковий вказівник",raquo:"праві вказівні подвійні кутові дужки",frac14:"Одна четвертина",frac12:"Одна друга",frac34:"три четвертих",iquest:"Перевернутий знак питання",Agrave:"Велика латинська A з гравісом",Aacute:"Велика латинська А з акутом", +Acirc:"Велика латинська А з циркумфлексом",Atilde:"Велика латинська А з тильдою",Auml:"Велике латинське А з умлаутом",Aring:"Велика латинська A з кільцем згори",AElig:"Велика латинська Æ",Ccedil:"Велика латинська C з седиллю",Egrave:"Велика латинська E з гравісом",Eacute:"Велика латинська E з акутом",Ecirc:"Велика латинська E з циркумфлексом",Euml:"Велика латинська А з умлаутом",Igrave:"Велика латинська I з гравісом",Iacute:"Велика латинська I з акутом",Icirc:"Велика латинська I з циркумфлексом", +Iuml:"Велика латинська І з умлаутом",ETH:"Велика латинська Eth",Ntilde:"Велика латинська N з тильдою",Ograve:"Велика латинська O з гравісом",Oacute:"Велика латинська O з акутом",Ocirc:"Велика латинська O з циркумфлексом",Otilde:"Велика латинська O з тильдою",Ouml:"Велика латинська О з умлаутом",times:"Знак множення",Oslash:"Велика латинська перекреслена O ",Ugrave:"Велика латинська U з гравісом",Uacute:"Велика латинська U з акутом",Ucirc:"Велика латинська U з циркумфлексом",Uuml:"Велика латинська U з умлаутом", +Yacute:"Велика латинська Y з акутом",THORN:"Велика латинська Торн",szlig:"Мала латинська есцет",agrave:"Мала латинська a з гравісом",aacute:"Мала латинська a з акутом",acirc:"Мала латинська a з циркумфлексом",atilde:"Мала латинська a з тильдою",auml:"Мала латинська a з умлаутом",aring:"Мала латинська a з кільцем згори",aelig:"Мала латинська æ",ccedil:"Мала латинська C з седиллю",egrave:"Мала латинська e з гравісом",eacute:"Мала латинська e з акутом",ecirc:"Мала латинська e з циркумфлексом",euml:"Мала латинська e з умлаутом", +igrave:"Мала латинська i з гравісом",iacute:"Мала латинська i з акутом",icirc:"Мала латинська i з циркумфлексом",iuml:"Мала латинська i з умлаутом",eth:"Мала латинська Eth",ntilde:"Мала латинська n з тильдою",ograve:"Мала латинська o з гравісом",oacute:"Мала латинська o з акутом",ocirc:"Мала латинська o з циркумфлексом",otilde:"Мала латинська o з тильдою",ouml:"Мала латинська o з умлаутом",divide:"Знак ділення",oslash:"Мала латинська перекреслена o",ugrave:"Мала латинська u з гравісом",uacute:"Мала латинська u з акутом", +ucirc:"Мала латинська u з циркумфлексом",uuml:"Мала латинська u з умлаутом",yacute:"Мала латинська y з акутом",thorn:"Мала латинська торн",yuml:"Мала латинська y з умлаутом",OElig:"Велика латинська лігатура OE",oelig:"Мала латинська лігатура oe",372:"Велика латинська W з циркумфлексом",374:"Велика латинська Y з циркумфлексом",373:"Мала латинська w з циркумфлексом",375:"Мала латинська y з циркумфлексом",sbquo:"Одиничні нижні лабки",8219:"Верхні одиничні обернені лабки",bdquo:"Подвійні нижні лабки", hellip:"Три крапки",trade:"Знак торгової марки",9658:"Чорний правий вказівник",bull:"Маркер списку",rarr:"Стрілка вправо",rArr:"Подвійна стрілка вправо",hArr:"Подвійна стрілка вліво-вправо",diams:"Чорний діамонт",asymp:"Наближено дорівнює"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js index d4e4d37aa..a9fc5482c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/vi.js @@ -1,14 +1,14 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", -reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", -Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", -Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", -times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", -atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", -iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", -divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", -372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","vi",{euro:"Ký hiệu Euro",lsquo:"Dấu ngoặc đơn trái",rsquo:"Dấu ngoặc đơn phải",ldquo:"Dấu ngoặc đôi trái",rdquo:"Dấu ngoặc đôi phải",ndash:"Gạch ngang tiếng anh",mdash:"Gạch ngang Em",iexcl:"Chuyển đổi dấu chấm than",cent:"Ký tự tiền Mỹ",pound:"Ký tự tiền Anh",curren:"Ký tự tiền tệ",yen:"Ký tự tiền Yên Nhật",brvbar:"Thanh hỏng",sect:"Ký tự khu vực",uml:"Dấu tách đôi",copy:"Ký tự bản quyền",ordf:"Phần chỉ thị giống cái",laquo:"Chọn dấu ngoặc đôi trái",not:"Không có ký tự", +reg:"Ký tự đăng ký",macr:"Dấu nguyên âm dài",deg:"Ký tự độ",sup2:"Chữ trồi lên trên dạng 2",sup3:"Chữ trồi lên trên dạng 3",acute:"Dấu trọng âm",micro:"Ký tự micro",para:"Ký tự đoạn văn",middot:"Dấu chấm tròn",cedil:"Dấu móc lưới",sup1:"Ký tự trồi lên cấp 1",ordm:"Ký tự biểu hiện giống đực",raquo:"Chọn dấu ngoặc đôi phải",frac14:"Tỉ lệ một phần tư",frac12:"Tỉ lệ một nửa",frac34:"Tỉ lệ ba phần tư",iquest:"Chuyển đổi dấu chấm hỏi",Agrave:"Ký tự la-tinh viết hoa A với dấu huyền",Aacute:"Ký tự la-tinh viết hoa A với dấu sắc", +Acirc:"Ký tự la-tinh viết hoa A với dấu mũ",Atilde:"Ký tự la-tinh viết hoa A với dấu ngã",Auml:"Ký tự la-tinh viết hoa A với dấu hai chấm trên đầu",Aring:"Ký tự la-tinh viết hoa A với biểu tượng vòng tròn trên đầu",AElig:"Ký tự la-tinh viết hoa của Æ",Ccedil:"Ký tự la-tinh viết hoa C với dấu móc bên dưới",Egrave:"Ký tự la-tinh viết hoa E với dấu huyền",Eacute:"Ký tự la-tinh viết hoa E với dấu sắc",Ecirc:"Ký tự la-tinh viết hoa E với dấu mũ",Euml:"Ký tự la-tinh viết hoa E với dấu hai chấm trên đầu", +Igrave:"Ký tự la-tinh viết hoa I với dấu huyền",Iacute:"Ký tự la-tinh viết hoa I với dấu sắc",Icirc:"Ký tự la-tinh viết hoa I với dấu mũ",Iuml:"Ký tự la-tinh viết hoa I với dấu hai chấm trên đầu",ETH:"Viết hoa của ký tự Eth",Ntilde:"Ký tự la-tinh viết hoa N với dấu ngã",Ograve:"Ký tự la-tinh viết hoa O với dấu huyền",Oacute:"Ký tự la-tinh viết hoa O với dấu sắc",Ocirc:"Ký tự la-tinh viết hoa O với dấu mũ",Otilde:"Ký tự la-tinh viết hoa O với dấu ngã",Ouml:"Ký tự la-tinh viết hoa O với dấu hai chấm trên đầu", +times:"Ký tự phép toán nhân",Oslash:"Ký tự la-tinh viết hoa A với dấu ngã xuống",Ugrave:"Ký tự la-tinh viết hoa U với dấu huyền",Uacute:"Ký tự la-tinh viết hoa U với dấu sắc",Ucirc:"Ký tự la-tinh viết hoa U với dấu mũ",Uuml:"Ký tự la-tinh viết hoa U với dấu hai chấm trên đầu",Yacute:"Ký tự la-tinh viết hoa Y với dấu sắc",THORN:"Phần viết hoa của ký tự Thorn",szlig:"Ký tự viết nhỏ la-tinh của chữ s",agrave:"Ký tự la-tinh thường với dấu huyền",aacute:"Ký tự la-tinh thường với dấu sắc",acirc:"Ký tự la-tinh thường với dấu mũ", +atilde:"Ký tự la-tinh thường với dấu ngã",auml:"Ký tự la-tinh thường với dấu hai chấm trên đầu",aring:"Ký tự la-tinh viết thường với biểu tượng vòng tròn trên đầu",aelig:"Ký tự la-tinh viết thường của æ",ccedil:"Ký tự la-tinh viết thường của c với dấu móc bên dưới",egrave:"Ký tự la-tinh viết thường e với dấu huyền",eacute:"Ký tự la-tinh viết thường e với dấu sắc",ecirc:"Ký tự la-tinh viết thường e với dấu mũ",euml:"Ký tự la-tinh viết thường e với dấu hai chấm trên đầu",igrave:"Ký tự la-tinh viết thường i với dấu huyền", +iacute:"Ký tự la-tinh viết thường i với dấu sắc",icirc:"Ký tự la-tinh viết thường i với dấu mũ",iuml:"Ký tự la-tinh viết thường i với dấu hai chấm trên đầu",eth:"Ký tự la-tinh viết thường của eth",ntilde:"Ký tự la-tinh viết thường n với dấu ngã",ograve:"Ký tự la-tinh viết thường o với dấu huyền",oacute:"Ký tự la-tinh viết thường o với dấu sắc",ocirc:"Ký tự la-tinh viết thường o với dấu mũ",otilde:"Ký tự la-tinh viết thường o với dấu ngã",ouml:"Ký tự la-tinh viết thường o với dấu hai chấm trên đầu", +divide:"Ký hiệu phép tính chia",oslash:"Ký tự la-tinh viết thường o với dấu ngã",ugrave:"Ký tự la-tinh viết thường u với dấu huyền",uacute:"Ký tự la-tinh viết thường u với dấu sắc",ucirc:"Ký tự la-tinh viết thường u với dấu mũ",uuml:"Ký tự la-tinh viết thường u với dấu hai chấm trên đầu",yacute:"Ký tự la-tinh viết thường y với dấu sắc",thorn:"Ký tự la-tinh viết thường của chữ thorn",yuml:"Ký tự la-tinh viết thường y với dấu hai chấm trên đầu",OElig:"Ký tự la-tinh viết hoa gạch nối OE",oelig:"Ký tự la-tinh viết thường gạch nối OE", +372:"Ký tự la-tinh viết hoa W với dấu mũ",374:"Ký tự la-tinh viết hoa Y với dấu mũ",373:"Ký tự la-tinh viết thường w với dấu mũ",375:"Ký tự la-tinh viết thường y với dấu mũ",sbquo:"Dấu ngoặc đơn thấp số-9",8219:"Dấu ngoặc đơn đảo ngược số-9",bdquo:"Gấp đôi dấu ngoặc đơn số-9",hellip:"Tĩnh dược chiều ngang",trade:"Ký tự thương hiệu",9658:"Ký tự trỏ về hướng bên phải màu đen",bull:"Ký hiệu",rarr:"Mũi tên hướng bên phải",rArr:"Mũi tên hướng bên phải dạng đôi",hArr:"Mũi tên hướng bên trái dạng đôi",diams:"Ký hiệu hình thoi", asymp:"Gần bằng với"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js index f0bb8a6d2..8999768c6 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js @@ -1,12 +1,12 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", - frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", - Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", - times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", - auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", - eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", - uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"歐元符號",lsquo:"左單引號",rsquo:"右單引號",ldquo:"左雙引號",rdquo:"右雙引號",ndash:"短破折號",mdash:"長破折號",iexcl:"倒置的驚嘆號",cent:"美分符號",pound:"英鎊符號",curren:"貨幣符號",yen:"日圓符號",brvbar:"Broken bar",sect:"章節符號",uml:"分音符號",copy:"版權符號",ordf:"雌性符號",laquo:"左雙角括號",not:"Not 符號",reg:"註冊商標符號",macr:"長音符號",deg:"度數符號",sup2:"上標字 2",sup3:"上標字 3",acute:"尖音符號",micro:"Micro sign",para:"段落符號",middot:"中間點",cedil:"字母 C 下面的尾型符號 ",sup1:"上標",ordm:"雄性符號",raquo:"右雙角括號",frac14:"四分之一符號",frac12:"Vulgar fraction one half", + frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"拉丁大寫字母 E 帶分音符號",Aring:"拉丁大寫字母 A 帶上圓圈",AElig:"拉丁大寫字母 Æ",Ccedil:"拉丁大寫字母 C 帶下尾符號",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis", + Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis", + times:"乘號",Oslash:"拉丁大寫字母 O 帶粗線符號",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde", + auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis", + eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex", + uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark", hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js index 9e9964f3c..3f61aed33 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/lang/zh.js @@ -1,9 +1,9 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.plugins.setLang("specialchar","zh",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", - Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", - Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", - iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", - 373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.plugins.setLang("specialchar","zh",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", + Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", + Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", + iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", + 373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js index c4d1696b3..3c87ab1a1 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/specialchar/dialogs/specialchar.js @@ -1,14 +1,14 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); -var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), -j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); -break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): -d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
     ');f.push("
    ",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, -title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", -align:"top",children:[{type:"html",html:"
    "},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
     
    "},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j); +var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"), +j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault(); +break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)): +d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=[''],d=0,g=b.length,h,e;d');for(var j=0;j'+h+''+e+"")}else f.push('")}f.push("")}f.push("
     ');f.push("
    ",''+l.options+"");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab, +title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox", +align:"top",children:[{type:"html",html:"
    "},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"
     
    "},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;", html:"
     
    "}]}]}]}]}]}}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/table/dialogs/table.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/table/dialogs/table.js index 6f656817d..86bef4eca 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/table/dialogs/table.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/table/dialogs/table.js @@ -1,21 +1,21 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -(function(){function r(a){for(var e=0,l=0,k=0,m,g=a.$.rows.length;kl&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& -a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); -a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", -this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", -html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0l&&(l=e)}return l}function o(a){return function(){var e=this.getValue(),e=!!(CKEDITOR.dialog.validate.integer()(e)&&0n.getSize("width")?"100%":500:0,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&& +a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",id:"txtHeight",requiredContent:"table{height}",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles"); +a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",requiredContent:"table[cellspacing]",controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":a.filter.check("table[cellspacing]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing", +this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",requiredContent:"table[cellpadding]",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":a.filter.check("table[cellpadding]")?1:0,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right", +html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",requiredContent:"caption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0"+g.widthPx}]},e,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:function(a){var b=a.getAttribute("noWrap");("nowrap"==a.getStyle("white-space")||b)&&this.setValue("no")},commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}}, -e,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[d.notSet,""],[d.alignLeft,"left"],[d.alignCenter,"center"],[d.alignRight,"right"]],setup:function(a){var b=a.getAttribute("align");this.setValue(a.getStyle("text-align")||b||"")},commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align");a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[d.notSet,""],[d.alignTop,"top"],[d.alignMiddle,"middle"],[d.alignBottom, -"bottom"],[c.alignBaseline,"baseline"]],setup:function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}this.setValue(a||b||"")},commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]},e,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]], -setup:function(a){this.setValue(a.getName())},commit:function(a){a.renameNode(this.getValue())}},e,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:h.integer(c.invalidRowSpan),setup:function(a){(a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()):a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:h.integer(c.invalidColSpan), -setup:function(a){(a=parseInt(a.getAttribute("colSpan"),10))&&1!=a&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},e,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:function(a){var b=a.getAttribute("bgColor");this.setValue(a.getStyle("background-color")||b)},commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()): -a.removeStyle("background-color");a.removeAttribute("bgColor")}},i?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){f.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:e]},e,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:function(a){var b= -a.getAttribute("borderColor");this.setValue(a.getStyle("border-color")||b)},commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},i?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(k?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){f.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("cellProperties",function(f){var g=f.lang.table,c=g.cell,d=f.lang.common,h=CKEDITOR.dialog.validate,j=/^(\d+(?:\.\d+)?)(px|%)$/,e={type:"html",html:" "},k="rtl"==f.lang.dir,i=f.plugins.colordialog;return{title:c.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?450:410,minHeight:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?230:220,contents:[{id:"info",label:c.title,accessKey:"I",elements:[{type:"hbox",widths:["40%","5%","40%"],children:[{type:"vbox",padding:0, +children:[{type:"hbox",widths:["70%","30%"],children:[{type:"text",id:"width",width:"100px",label:d.width,validate:h.number(c.invalidWidth),onLoad:function(){var a=this.getDialog().getContentElement("info","widthType").getElement(),b=this.getInputElement(),c=b.getAttribute("aria-labelledby");b.setAttribute("aria-labelledby",[c,a.$.id].join(" "))},setup:function(a){var b=parseInt(a.getAttribute("width"),10),a=parseInt(a.getStyle("width"),10);!isNaN(b)&&this.setValue(b);!isNaN(a)&&this.setValue(a)}, +commit:function(a){var b=parseInt(this.getValue(),10),c=this.getDialog().getValueOf("info","widthType");isNaN(b)?a.removeStyle("width"):a.setStyle("width",b+c);a.removeAttribute("width")},"default":""},{type:"select",id:"widthType",label:f.lang.table.widthUnit,labelStyle:"visibility:hidden","default":"px",items:[[g.widthPx,"px"],[g.widthPc,"%"]],setup:function(a){(a=j.exec(a.getStyle("width")||a.getAttribute("width")))&&this.setValue(a[2])}}]},{type:"hbox",widths:["70%","30%"],children:[{type:"text", +id:"height",label:d.height,width:"100px","default":"",validate:h.number(c.invalidHeight),onLoad:function(){var a=this.getDialog().getContentElement("info","htmlHeightType").getElement(),b=this.getInputElement(),c=b.getAttribute("aria-labelledby");b.setAttribute("aria-labelledby",[c,a.$.id].join(" "))},setup:function(a){var b=parseInt(a.getAttribute("height"),10),a=parseInt(a.getStyle("height"),10);!isNaN(b)&&this.setValue(b);!isNaN(a)&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(), +10);isNaN(b)?a.removeStyle("height"):a.setStyle("height",CKEDITOR.tools.cssLength(b));a.removeAttribute("height")}},{id:"htmlHeightType",type:"html",html:"
    "+g.widthPx}]},e,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:function(a){var b=a.getAttribute("noWrap");("nowrap"==a.getStyle("white-space")||b)&&this.setValue("no")},commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}}, +e,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[d.notSet,""],[d.alignLeft,"left"],[d.alignCenter,"center"],[d.alignRight,"right"]],setup:function(a){var b=a.getAttribute("align");this.setValue(a.getStyle("text-align")||b||"")},commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align");a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[d.notSet,""],[d.alignTop,"top"],[d.alignMiddle,"middle"],[d.alignBottom, +"bottom"],[c.alignBaseline,"baseline"]],setup:function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}this.setValue(a||b||"")},commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]},e,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]], +setup:function(a){this.setValue(a.getName())},commit:function(a){a.renameNode(this.getValue())}},e,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:h.integer(c.invalidRowSpan),setup:function(a){(a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()):a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:h.integer(c.invalidColSpan), +setup:function(a){(a=parseInt(a.getAttribute("colSpan"),10))&&1!=a&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},e,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:function(a){var b=a.getAttribute("bgColor");this.setValue(a.getStyle("background-color")||b)},commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()): +a.removeStyle("background-color");a.removeAttribute("bgColor")}},i?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){f.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:e]},e,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:function(a){var b= +a.getAttribute("borderColor");this.setValue(a.getStyle("border-color")||b)},commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},i?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(k?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){f.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info", "borderColor").setValue(a);this.focus()},this)}}:e]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells[0])},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d
    '),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), -c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, -minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
    '+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, -"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d
    '),d='';a.image&&b&&(d+='');d+='");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(), +c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title, +minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:""+f.selectPromptMsg+""},{id:"templatesList",type:"html",focus:!0,html:'
    '+f.options+""},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption, +"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d'+f.emptyListMsg+"
    ")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})(); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/templates/templates/default.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/templates/templates/default.js index d8c172e3f..36934e491 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/templates/templates/default.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/templates/templates/default.js @@ -1,6 +1,6 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'

    Type the title here

    Type the text here

    '},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'

    Type the title here

    Type the text here

    '},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", html:'

    Title 1

    Title 2

    Text 1Text 2

    More text goes here.

    '},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

    Title goes here

    Table title
       
       
       

    Type the text here

    '}]}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/LICENSE.md b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/LICENSE.md index c7d374ad1..6096de233 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/LICENSE.md +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/LICENSE.md @@ -1,28 +1,28 @@ -Software License Agreement -========================== - -**CKEditor WSC Plugin** -Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: - -* GNU General Public License Version 2 or later (the "GPL"): - http://www.gnu.org/licenses/gpl.html - -* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): - http://www.gnu.org/licenses/lgpl.html - -* Mozilla Public License Version 1.1 or later (the "MPL"): - http://www.mozilla.org/MPL/MPL-1.1.html - -You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. - -Sources of Intellectual Property Included in this plugin --------------------------------------------------------- - -Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. - -Trademarks ----------- - -CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. +Software License Agreement +========================== + +**CKEditor WSC Plugin** +Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: + +* GNU General Public License Version 2 or later (the "GPL"): + http://www.gnu.org/licenses/gpl.html + +* GNU Lesser General Public License Version 2.1 or later (the "LGPL"): + http://www.gnu.org/licenses/lgpl.html + +* Mozilla Public License Version 1.1 or later (the "MPL"): + http://www.mozilla.org/MPL/MPL-1.1.html + +You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. + +Sources of Intellectual Property Included in this plugin +-------------------------------------------------------- + +Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. + +Trademarks +---------- + +CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/README.md b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/README.md index 46eeafb09..346e2ab19 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/README.md +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/README.md @@ -1,25 +1,25 @@ -CKEditor WebSpellChecker Plugin -=============================== - -This plugin brings Web Spell Checker (WSC) into CKEditor. - -WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. - -Installation ------------- - -1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. -2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): - - config.extraPlugins = 'wsc'; - -That's all. WSC will appear on the editor toolbar and will be ready to use. - -License -------- - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. - -Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). +CKEditor WebSpellChecker Plugin +=============================== + +This plugin brings Web Spell Checker (WSC) into CKEditor. + +WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. + +Installation +------------ + +1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. +2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): + + config.extraPlugins = 'wsc'; + +That's all. WSC will appear on the editor toolbar and will be ready to use. + +License +------- + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. + +Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html index 25db3c739..1d6ba5a29 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/ciframe.html @@ -1,66 +1,66 @@ - - - - - - - - -

    - + + + + + + + + +

    + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmp.html b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmp.html index 67642956f..c00d8c2e7 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmp.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmp.html @@ -1,118 +1,118 @@ - - - - - iframe - - - - -
    - - - - - - - + + + + + iframe + + + + +
    + + + + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html index 0d675f4d6..88e1afe8a 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/tmpFrameset.html @@ -1,52 +1,52 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css index 9e834f1d0..e16394846 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.css @@ -1,82 +1,82 @@ -/* -Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.html or http://ckeditor.com/license -*/ - -html, body -{ - background-color: transparent; - margin: 0px; - padding: 0px; -} - -body -{ - padding: 10px; -} - -body, td, input, select, textarea -{ - font-size: 11px; - font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; -} - -.midtext -{ - padding:0px; - margin:10px; -} - -.midtext p -{ - padding:0px; - margin:10px; -} - -.Button -{ - border: #737357 1px solid; - color: #3b3b1f; - background-color: #c7c78f; -} - -.PopupTabArea -{ - color: #737357; - background-color: #e3e3c7; -} - -.PopupTitleBorder -{ - border-bottom: #d5d59d 1px solid; -} -.PopupTabEmptyArea -{ - padding-left: 10px; - border-bottom: #d5d59d 1px solid; -} - -.PopupTab, .PopupTabSelected -{ - border-right: #d5d59d 1px solid; - border-top: #d5d59d 1px solid; - border-left: #d5d59d 1px solid; - padding: 3px 5px 3px 5px; - color: #737357; -} - -.PopupTab -{ - margin-top: 1px; - border-bottom: #d5d59d 1px solid; - cursor: pointer; -} - -.PopupTabSelected -{ - font-weight: bold; - cursor: default; - padding-top: 4px; - border-bottom: #f1f1e3 1px solid; - background-color: #f1f1e3; -} +/* +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +html, body +{ + background-color: transparent; + margin: 0px; + padding: 0px; +} + +body +{ + padding: 10px; +} + +body, td, input, select, textarea +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.midtext +{ + padding:0px; + margin:10px; +} + +.midtext p +{ + padding:0px; + margin:10px; +} + +.Button +{ + border: #737357 1px solid; + color: #3b3b1f; + background-color: #c7c78f; +} + +.PopupTabArea +{ + color: #737357; + background-color: #e3e3c7; +} + +.PopupTitleBorder +{ + border-bottom: #d5d59d 1px solid; +} +.PopupTabEmptyArea +{ + padding-left: 10px; + border-bottom: #d5d59d 1px solid; +} + +.PopupTab, .PopupTabSelected +{ + border-right: #d5d59d 1px solid; + border-top: #d5d59d 1px solid; + border-left: #d5d59d 1px solid; + padding: 3px 5px 3px 5px; + color: #737357; +} + +.PopupTab +{ + margin-top: 1px; + border-bottom: #d5d59d 1px solid; + cursor: pointer; +} + +.PopupTabSelected +{ + font-weight: bold; + cursor: default; + padding-top: 4px; + border-bottom: #f1f1e3 1px solid; + background-color: #f1f1e3; +} diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js index 22410bdb1..fd46a9053 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc.js @@ -1,67 +1,67 @@ -/* - Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license -*/ -(function(){function w(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; -if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){document.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=a.fn||null,f=a.id||"",g=a.target||window,h=a.message||{id:f};"[object Object]"==Object.prototype.toString.call(a.message)&& -(a.message.id||(a.message.id=f),h=a.message);a=window.JSON.stringify(h,b);g.postMessage(a,"*")}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}}}(),a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode= -null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null,text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null, -text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var x=function(b){for(var c in b)b[c].instance.getElement().setText(a.LocalizationComing[c])},y=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}}, -j,p;a.framesetHtml=function(b){return''};a.setIframe=function(b,c){var d=a.framesetHtml(c);return b.getElement().setHtml(d)};a.setCurrentIframe=function(b){a.setIframe(a.dialog._.contents[b].Content,b)};a.setHeightBannerFrame=function(){var b=a.dialog.getContentElement("SpellTab","banner").getElement(), -c=a.dialog.getContentElement("GrammTab","banner").getElement(),d=a.dialog.getContentElement("Thesaurus","banner").getElement();b.setStyle("height","90px");c.setStyle("height","90px");d.setStyle("height","90px")};a.setHeightFrame=function(){document.getElementById(a.iframeNumber+"_"+a.dialog._.currentTabId).style.height="240px"};a.sendData=function(b){var c=b._.currentTabId,d=b._.contents[c].Content,f,g;a.setIframe(d,c);b.parts.tabs.removeAllListeners();b.parts.tabs.on("click",function(h){h=h||window.event; -h.data.getTarget().is("a")&&c!=b._.currentTabId&&(c=b._.currentTabId,d=b._.contents[c].Content,f=a.iframeNumber+"_"+c,a.div_overlay.setEnable(),d.getElement().getChildCount()?t(a.targetFromFrame[f],a.cmd[c]):(a.setIframe(d,c),g=document.getElementById(f),a.targetFromFrame[f]=g.contentWindow))})};a.buildSelectLang=function(a){var c=new CKEDITOR.dom.element("div"),d=new CKEDITOR.dom.element("select"),a="wscLang"+a;c.addClass("cke_dialog_ui_input_select");c.setAttribute("role","presentation");c.setStyles({height:"auto", -position:"absolute",right:"0",top:"-1px",width:"160px","white-space":"normal"});d.setAttribute("id",a);d.addClass("cke_dialog_ui_input_select");d.setStyles({width:"160px"});c.append(d);return c};a.buildOptionLang=function(b,c){var d=document.getElementById("wscLang"+c),f=document.createDocumentFragment(),g,h,e=[];if(0===d.options.length){for(g in b)e.push([g,b[g]]);e.sort();for(var k=0;k
    "},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(b){var b=a.iframeNumber+"_"+b._.currentTabId, -c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"hbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;",widths:["50%","50%"],children:[{type:"hbox",id:"leftCol",align:"left",width:"50%",children:[{type:"vbox",id:"rightCol1",widths:["50%","50%"],children:[{type:"text",id:"text",label:a.LocalizationLabel.ChangeTo.text+":",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",width:"140px","default":"",onShow:function(){a.textNode.SpellTab=this;a.LocalizationLabel.ChangeTo.instance= -this},onHide:function(){this.reset()}},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"text",id:"labelSuggestions",label:a.LocalizationLabel.Suggestions.text+":",onShow:function(){a.LocalizationLabel.Suggestions.instance=this;this.getInputElement().hide()}},{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src= -a.logotype;this.getElement().getParent().setStyles({"text-align":"left"})}}]},{type:"select",id:"list_of_suggestions",labelStyle:"font: 12px/25px arial, sans-serif;",size:"6",inputStyle:"width: 140px; height: auto;",items:[["loading..."]],onShow:function(){p=this},onHide:function(){this.clear()},onChange:function(){a.textNode.SpellTab.setValue(this.getValue())}}]}]}]},{type:"hbox",id:"rightCol",align:"right",width:"50%",children:[{type:"vbox",id:"rightCol_col__left",widths:["50%","50%","50%","50%"], -children:[{type:"button",id:"ChangeTo",label:a.LocalizationButton.ChangeTo.text,title:"Change to",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeTo.instance=this},onClick:c},{type:"button",id:"ChangeAll",label:a.LocalizationButton.ChangeAll.text,title:"Change All",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeAll.instance=this},onClick:c},{type:"button",id:"AddWord", -label:a.LocalizationButton.AddWord.text,title:"Add word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.AddWord.instance=this},onClick:c},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text,title:"Finish Checking",style:"width: 100%;margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.FinishChecking.instance=this},onClick:c}]},{type:"vbox",id:"rightCol_col__right", -widths:["50%","50%","50%"],children:[{type:"button",id:"IgnoreWord",label:a.LocalizationButton.IgnoreWord.text,title:"Ignore word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreWord.instance=this},onClick:c},{type:"button",id:"IgnoreAllWords",label:a.LocalizationButton.IgnoreAllWords.text,title:"Ignore all words",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreAllWords.instance= -this},onClick:c},{type:"button",id:"option",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){a.LocalizationButton.Options.instance=this;"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()}, -onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",setup:function(){this.getChild()[0].getElement().$.src=a.logotype;this.getChild()[0].getElement().getParent().setStyles({"text-align":"center"})},children:[{type:"html",id:"logo",html:'WebSpellChecker.net'}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox", -id:"rightCol_col__left",children:[{type:"button",id:"Option_button",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text, -title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"GrammTab",label:"Grammar",accessKey:"G",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
    "},{type:"html",id:"Content",label:"GrammarContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId,c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;", -children:[{type:"hbox",id:"leftCol",widths:["66%","34%"],children:[{type:"vbox",children:[{type:"text",id:"text",label:"Change to:",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",inputStyle:"float: right; width: 200px;","default":"",onShow:function(){a.textNode.GrammTab=this},onHide:function(){this.reset()}},{type:"html",id:"html_text",html:"
    ", -onShow:function(){a.textNodeInfo.GrammTab=this}},{type:"html",id:"radio",html:"",onShow:function(){a.grammerSuggest=this}}]},{type:"vbox",children:[{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"IgnoreWord",label:"Ignore word",title:"Ignore word",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)}, -onClick:c},{type:"button",id:"IgnoreAllWords",label:"Ignore Problem",title:"Ignore Problem",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 133px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;", -widths:["70%","30%"],onShow:function(){this.getElement().hide()},onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right", -width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"Thesaurus",label:"Thesaurus",accessKey:"T",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
    "},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId, -c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: -10px auto; overflow: hidden;",children:[{type:"hbox",widths:["75%","25%"],children:[{type:"vbox",children:[{type:"hbox",widths:["65%","35%"],children:[{type:"text",id:"ChangeTo",label:"Change to:",labelLayout:"horizontal",inputStyle:"width: 160px;",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onShow:function(){a.textNode.Thesaurus=this},onHide:function(){this.reset()}}, -{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 121px; margin-top: 1px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]},{type:"hbox",children:[{type:"select",id:"categories",label:"Categories:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.categories=this},onHide:function(){this.clear()},onChange:function(){a.buildOptionSynonyms(this.getValue())}}, -{type:"select",id:"synonyms",label:"Synonyms:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.synonyms=this;a.textNode.Thesaurus.setValue(this.getValue())},onHide:function(){this.clear()},onChange:function(){a.textNode.Thesaurus.setValue(this.getValue())}}]}]},{type:"vbox",width:"120px",style:"margin-top:46px;",children:[{type:"html",id:"logotype",label:"WebSpellChecker.net",html:'WebSpellChecker.net', -setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 121px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()},children:[{type:"hbox", -id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking", -label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]}]}});CKEDITOR.dialog.add("options",function(){var b=null,c={},d={},f=null,g=null;e.cookie.get("udn");e.cookie.get("osp");var h=function(){g=this.getElement().getAttribute("title-cmd");var a=[];a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp", -a);e.cookie.set("udnCmd",g?g:"ignore");"delete"!=g&&(a="",""!==j.getValue()&&(a=j.getValue()),e.cookie.set("udn",a));e.postMessage.send({id:"options_dic_send"})},i=function(){f.getElement().setHtml(a.LocalizationComing.error);f.getElement().show()};return{title:a.LocalizationComing.Options,minWidth:430,minHeight:130,resizable:CKEDITOR.DIALOG_RESIZE_NONE,contents:[{id:"OptionsTab",label:"Options",accessKey:"O",elements:[{type:"hbox",id:"options_error",children:[{type:"html",style:"display: block;text-align: center;white-space: normal!important; font-size: 12px;color:red", -html:"
    ",onShow:function(){f=this}}]},{type:"vbox",id:"Options_content",children:[{type:"hbox",id:"Options_manager",widths:["52%","48%"],children:[{type:"fieldset",label:"Spell Checking Options",style:"border: none;margin-top: 13px;padding: 10px 0 10px 10px",onShow:function(){this.getInputElement().$.children[0].innerHTML=a.LocalizationComing.SpellCheckingOptions},children:[{type:"vbox",id:"Options_checkbox",children:[{type:"checkbox",id:"IgnoreAllCapsWords",label:"Ignore All-Caps Words", -labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreWordsNumbers",label:"Ignore Words with Numbers",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox", -id:"IgnoreMixedCaseWords",label:"Ignore Mixed-Case Words",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreDomainNames",label:"Ignore Domain Names",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]= -!this.getValue()?0:1}}]}]},{type:"vbox",id:"Options_DictionaryName",children:[{type:"text",id:"DictionaryName",style:"margin-bottom: 10px",label:"Dictionary Name:",labelLayout:"vertical",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onLoad:function(){j=this;this.setValue(a.userDictionaryName?a.userDictionaryName:(e.cookie.get("udn"),this.getValue()))},onShow:function(){j=this;this.setValue(!e.cookie.get("udn")?this.getValue():e.cookie.get("udn"));this.setLabel(a.LocalizationComing.DictionaryName)}, -onHide:function(){this.reset()}},{type:"hbox",id:"Options_buttons",children:[{type:"vbox",id:"Options_leftCol_col",widths:["50%","50%"],children:[{type:"button",id:"create",label:"Create",title:"Create",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Create)},onClick:h},{type:"button",id:"restore",label:"Restore",title:"Restore",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", -this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Restore)},onClick:h}]},{type:"vbox",id:"Options_rightCol_col",widths:["50%","50%"],children:[{type:"button",id:"rename",label:"Rename",title:"Rename",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Rename)},onClick:h},{type:"button",id:"delete",label:"Remove",title:"Remove",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", -this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Remove)},onClick:h}]}]}]}]},{type:"hbox",id:"Options_text",children:[{type:"html",style:"text-align: justify;margin-top: 15px;white-space: normal!important; font-size: 12px;color:#777;",html:"
    "+a.LocalizationComing.OptionsTextIntro+"
    ",onShow:function(){this.getElement().setText(a.LocalizationComing.OptionsTextIntro)}}]}]}]}],buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton],onOk:function(){var a=[]; -a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp",a);e.cookie.set("udn",j.getValue());e.postMessage.send({id:"options_checkbox_send"});f.getElement().hide();f.getElement().setHtml(" ")},onLoad:function(){b=this;e.postMessage.init(i);c.IgnoreAllCapsWords=b.getContentElement("OptionsTab","IgnoreAllCapsWords");c.IgnoreWordsNumbers=b.getContentElement("OptionsTab","IgnoreWordsNumbers");c.IgnoreMixedCaseWords= -b.getContentElement("OptionsTab","IgnoreMixedCaseWords");c.IgnoreDomainNames=b.getContentElement("OptionsTab","IgnoreDomainNames")},onShow:function(){var b=e.cookie.get("osp").split("");d.IgnoreAllCapsWords=b[0];d.IgnoreWordsNumbers=b[1];d.IgnoreMixedCaseWords=b[2];d.IgnoreDomainNames=b[3];!parseInt(d.IgnoreAllCapsWords,10)?c.IgnoreAllCapsWords.setValue("",!1):c.IgnoreAllCapsWords.setValue("checked",!1);!parseInt(d.IgnoreWordsNumbers,10)?c.IgnoreWordsNumbers.setValue("",!1):c.IgnoreWordsNumbers.setValue("checked", -!1);!parseInt(d.IgnoreMixedCaseWords,10)?c.IgnoreMixedCaseWords.setValue("",!1):c.IgnoreMixedCaseWords.setValue("checked",!1);!parseInt(d.IgnoreDomainNames,10)?c.IgnoreDomainNames.setValue("",!1):c.IgnoreDomainNames.setValue("checked",!1);d.IgnoreAllCapsWords=!c.IgnoreAllCapsWords.getValue()?0:1;d.IgnoreWordsNumbers=!c.IgnoreWordsNumbers.getValue()?0:1;d.IgnoreMixedCaseWords=!c.IgnoreMixedCaseWords.getValue()?0:1;d.IgnoreDomainNames=!c.IgnoreDomainNames.getValue()?0:1;c.IgnoreAllCapsWords.getElement().$.lastChild.innerHTML= -a.LocalizationComing.IgnoreAllCapsWords;c.IgnoreWordsNumbers.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreWordsWithNumbers;c.IgnoreMixedCaseWords.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreMixedCaseWords;c.IgnoreDomainNames.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreDomainNames}}});CKEDITOR.dialog.on("resize",function(b){var b=b.data,c=b.dialog,d=CKEDITOR.document.getById(a.iframeNumber+"_"+c._.currentTabId);"checkspell"==c._.name&&(a.bnr?d&& +/* + Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +(function(){function w(a){if(!a)throw"Languages-by-groups list are required for construct selectbox";var c=[],d="",f;for(f in a)for(var g in a[f]){var h=a[f][g];"en_US"==h?d=h:c.push(h)}c.sort();d&&c.unshift(d);return{getCurrentLangGroup:function(c){a:{for(var d in a)for(var f in a[d])if(f.toUpperCase()===c.toUpperCase()){c=d;break a}c=""}return c},setLangList:function(){var c={},d;for(d in a)for(var f in a[d])c[a[d][f]]=f;return c}()}}var e=function(){var a=function(a,b,f){var f=f||{},g=f.expires; +if("number"==typeof g&&g){var h=new Date;h.setTime(h.getTime()+1E3*g);g=f.expires=h}g&&g.toUTCString&&(f.expires=g.toUTCString());var b=encodeURIComponent(b),a=a+"="+b,e;for(e in f)b=f[e],a+="; "+e,!0!==b&&(a+="="+b);document.cookie=a};return{postMessage:{init:function(a){document.addEventListener?window.addEventListener("message",a,!1):window.attachEvent("onmessage",a)},send:function(a){var b=a.fn||null,f=a.id||"",g=a.target||window,h=a.message||{id:f};"[object Object]"==Object.prototype.toString.call(a.message)&& +(a.message.id||(a.message.id=f),h=a.message);a=window.JSON.stringify(h,b);g.postMessage(a,"*")}},hash:{create:function(){},parse:function(){}},cookie:{set:a,get:function(a){return(a=document.cookie.match(RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)")))?decodeURIComponent(a[1]):void 0},remove:function(c){a(c,"",{expires:-1})}}}}(),a=a||{};a.TextAreaNumber=null;a.load=!0;a.cmd={SpellTab:"spell",Thesaurus:"thes",GrammTab:"grammar"};a.dialog=null;a.optionNode=null;a.selectNode= +null;a.grammerSuggest=null;a.textNode={};a.iframeMain=null;a.dataTemp="";a.div_overlay=null;a.textNodeInfo={};a.selectNode={};a.selectNodeResponce={};a.langList=null;a.langSelectbox=null;a.banner="";a.show_grammar=null;a.div_overlay_no_check=null;a.targetFromFrame={};a.onLoadOverlay=null;a.LocalizationComing={};a.OverlayPlace=null;a.LocalizationButton={ChangeTo:{instance:null,text:"Change to"},ChangeAll:{instance:null,text:"Change All"},IgnoreWord:{instance:null,text:"Ignore word"},IgnoreAllWords:{instance:null, +text:"Ignore all words"},Options:{instance:null,text:"Options",optionsDialog:{instance:null}},AddWord:{instance:null,text:"Add word"},FinishChecking:{instance:null,text:"Finish Checking"}};a.LocalizationLabel={ChangeTo:{instance:null,text:"Change to"},Suggestions:{instance:null,text:"Suggestions"}};var x=function(b){for(var c in b)b[c].instance.getElement().setText(a.LocalizationComing[c])},y=function(b){for(var c in b){if(!b[c].instance.setLabel)break;b[c].instance.setLabel(a.LocalizationComing[c])}}, +j,p;a.framesetHtml=function(b){return''};a.setIframe=function(b,c){var d=a.framesetHtml(c);return b.getElement().setHtml(d)};a.setCurrentIframe=function(b){a.setIframe(a.dialog._.contents[b].Content,b)};a.setHeightBannerFrame=function(){var b=a.dialog.getContentElement("SpellTab","banner").getElement(), +c=a.dialog.getContentElement("GrammTab","banner").getElement(),d=a.dialog.getContentElement("Thesaurus","banner").getElement();b.setStyle("height","90px");c.setStyle("height","90px");d.setStyle("height","90px")};a.setHeightFrame=function(){document.getElementById(a.iframeNumber+"_"+a.dialog._.currentTabId).style.height="240px"};a.sendData=function(b){var c=b._.currentTabId,d=b._.contents[c].Content,f,g;a.setIframe(d,c);b.parts.tabs.removeAllListeners();b.parts.tabs.on("click",function(h){h=h||window.event; +h.data.getTarget().is("a")&&c!=b._.currentTabId&&(c=b._.currentTabId,d=b._.contents[c].Content,f=a.iframeNumber+"_"+c,a.div_overlay.setEnable(),d.getElement().getChildCount()?t(a.targetFromFrame[f],a.cmd[c]):(a.setIframe(d,c),g=document.getElementById(f),a.targetFromFrame[f]=g.contentWindow))})};a.buildSelectLang=function(a){var c=new CKEDITOR.dom.element("div"),d=new CKEDITOR.dom.element("select"),a="wscLang"+a;c.addClass("cke_dialog_ui_input_select");c.setAttribute("role","presentation");c.setStyles({height:"auto", +position:"absolute",right:"0",top:"-1px",width:"160px","white-space":"normal"});d.setAttribute("id",a);d.addClass("cke_dialog_ui_input_select");d.setStyles({width:"160px"});c.append(d);return c};a.buildOptionLang=function(b,c){var d=document.getElementById("wscLang"+c),f=document.createDocumentFragment(),g,h,e=[];if(0===d.options.length){for(g in b)e.push([g,b[g]]);e.sort();for(var k=0;k
    "},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(b){var b=a.iframeNumber+"_"+b._.currentTabId, +c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"hbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;",widths:["50%","50%"],children:[{type:"hbox",id:"leftCol",align:"left",width:"50%",children:[{type:"vbox",id:"rightCol1",widths:["50%","50%"],children:[{type:"text",id:"text",label:a.LocalizationLabel.ChangeTo.text+":",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",width:"140px","default":"",onShow:function(){a.textNode.SpellTab=this;a.LocalizationLabel.ChangeTo.instance= +this},onHide:function(){this.reset()}},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"text",id:"labelSuggestions",label:a.LocalizationLabel.Suggestions.text+":",onShow:function(){a.LocalizationLabel.Suggestions.instance=this;this.getInputElement().hide()}},{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src= +a.logotype;this.getElement().getParent().setStyles({"text-align":"left"})}}]},{type:"select",id:"list_of_suggestions",labelStyle:"font: 12px/25px arial, sans-serif;",size:"6",inputStyle:"width: 140px; height: auto;",items:[["loading..."]],onShow:function(){p=this},onHide:function(){this.clear()},onChange:function(){a.textNode.SpellTab.setValue(this.getValue())}}]}]}]},{type:"hbox",id:"rightCol",align:"right",width:"50%",children:[{type:"vbox",id:"rightCol_col__left",widths:["50%","50%","50%","50%"], +children:[{type:"button",id:"ChangeTo",label:a.LocalizationButton.ChangeTo.text,title:"Change to",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeTo.instance=this},onClick:c},{type:"button",id:"ChangeAll",label:a.LocalizationButton.ChangeAll.text,title:"Change All",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.ChangeAll.instance=this},onClick:c},{type:"button",id:"AddWord", +label:a.LocalizationButton.AddWord.text,title:"Add word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.AddWord.instance=this},onClick:c},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text,title:"Finish Checking",style:"width: 100%;margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.FinishChecking.instance=this},onClick:c}]},{type:"vbox",id:"rightCol_col__right", +widths:["50%","50%","50%"],children:[{type:"button",id:"IgnoreWord",label:a.LocalizationButton.IgnoreWord.text,title:"Ignore word",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreWord.instance=this},onClick:c},{type:"button",id:"IgnoreAllWords",label:a.LocalizationButton.IgnoreAllWords.text,title:"Ignore all words",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);a.LocalizationButton.IgnoreAllWords.instance= +this},onClick:c},{type:"button",id:"option",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){a.LocalizationButton.Options.instance=this;"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()}, +onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",setup:function(){this.getChild()[0].getElement().$.src=a.logotype;this.getChild()[0].getElement().getParent().setStyles({"text-align":"center"})},children:[{type:"html",id:"logo",html:'WebSpellChecker.net'}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox", +id:"rightCol_col__left",children:[{type:"button",id:"Option_button",label:a.LocalizationButton.Options.text,title:"Option",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id);"file:"==document.location.protocol&&this.disable()},onClick:function(){"file:"==document.location.protocol?alert("WSC: Options functionality is disabled when runing from file system"):b.openDialog("options")}},{type:"button",id:"FinishChecking",label:a.LocalizationButton.FinishChecking.text, +title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"GrammTab",label:"Grammar",accessKey:"G",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
    "},{type:"html",id:"Content",label:"GrammarContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId,c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: 0 auto;", +children:[{type:"hbox",id:"leftCol",widths:["66%","34%"],children:[{type:"vbox",children:[{type:"text",id:"text",label:"Change to:",labelLayout:"horizontal",labelStyle:"font: 12px/25px arial, sans-serif;",inputStyle:"float: right; width: 200px;","default":"",onShow:function(){a.textNode.GrammTab=this},onHide:function(){this.reset()}},{type:"html",id:"html_text",html:"
    ", +onShow:function(){a.textNodeInfo.GrammTab=this}},{type:"html",id:"radio",html:"",onShow:function(){a.grammerSuggest=this}}]},{type:"vbox",children:[{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"IgnoreWord",label:"Ignore word",title:"Ignore word",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)}, +onClick:c},{type:"button",id:"IgnoreAllWords",label:"Ignore Problem",title:"Ignore Problem",style:"width: 133px; float: right;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 133px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;", +widths:["70%","30%"],onShow:function(){this.getElement().hide()},onHide:l,children:[{type:"hbox",id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right", +width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]},{id:"Thesaurus",label:"Thesaurus",accessKey:"T",elements:[{type:"html",id:"banner",label:"banner",style:"",html:"
    "},{type:"html",id:"Content",label:"spellContent",html:"",setup:function(){var b=a.iframeNumber+"_"+a.dialog._.currentTabId, +c=document.getElementById(b);a.targetFromFrame[b]=c.contentWindow}},{type:"vbox",id:"bottomGroup",style:"width:560px; margin: -10px auto; overflow: hidden;",children:[{type:"hbox",widths:["75%","25%"],children:[{type:"vbox",children:[{type:"hbox",widths:["65%","35%"],children:[{type:"text",id:"ChangeTo",label:"Change to:",labelLayout:"horizontal",inputStyle:"width: 160px;",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onShow:function(){a.textNode.Thesaurus=this},onHide:function(){this.reset()}}, +{type:"button",id:"ChangeTo",label:"Change to",title:"Change to",style:"width: 121px; margin-top: 1px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]},{type:"hbox",children:[{type:"select",id:"categories",label:"Categories:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.categories=this},onHide:function(){this.clear()},onChange:function(){a.buildOptionSynonyms(this.getValue())}}, +{type:"select",id:"synonyms",label:"Synonyms:",labelStyle:"font: 12px/25px arial, sans-serif;",size:"5",inputStyle:"width: 180px; height: auto;",items:[],onShow:function(){a.selectNode.synonyms=this;a.textNode.Thesaurus.setValue(this.getValue())},onHide:function(){this.clear()},onChange:function(){a.textNode.Thesaurus.setValue(this.getValue())}}]}]},{type:"vbox",width:"120px",style:"margin-top:46px;",children:[{type:"html",id:"logotype",label:"WebSpellChecker.net",html:'WebSpellChecker.net', +setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}},{type:"button",id:"FinishChecking",label:"Finish Checking",title:"Finish Checking",style:"width: 121px; float: right; margin-top: 9px;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]},{type:"hbox",id:"BlockFinishChecking",style:"width:560px; margin: 0 auto;",widths:["70%","30%"],onShow:function(){this.getElement().hide()},children:[{type:"hbox", +id:"leftCol",align:"left",width:"70%",children:[{type:"vbox",id:"rightCol1",children:[{type:"html",id:"logo",html:'WebSpellChecker.net',setup:function(){this.getElement().$.src=a.logotype;this.getElement().getParent().setStyles({"text-align":"center"})}}]}]},{type:"hbox",id:"rightCol",align:"right",width:"30%",children:[{type:"vbox",id:"rightCol_col__left",children:[{type:"button",id:"FinishChecking", +label:"Finish Checking",title:"Finish Checking",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onClick:c}]}]}]}]}]}});CKEDITOR.dialog.add("options",function(){var b=null,c={},d={},f=null,g=null;e.cookie.get("udn");e.cookie.get("osp");var h=function(){g=this.getElement().getAttribute("title-cmd");var a=[];a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp", +a);e.cookie.set("udnCmd",g?g:"ignore");"delete"!=g&&(a="",""!==j.getValue()&&(a=j.getValue()),e.cookie.set("udn",a));e.postMessage.send({id:"options_dic_send"})},i=function(){f.getElement().setHtml(a.LocalizationComing.error);f.getElement().show()};return{title:a.LocalizationComing.Options,minWidth:430,minHeight:130,resizable:CKEDITOR.DIALOG_RESIZE_NONE,contents:[{id:"OptionsTab",label:"Options",accessKey:"O",elements:[{type:"hbox",id:"options_error",children:[{type:"html",style:"display: block;text-align: center;white-space: normal!important; font-size: 12px;color:red", +html:"
    ",onShow:function(){f=this}}]},{type:"vbox",id:"Options_content",children:[{type:"hbox",id:"Options_manager",widths:["52%","48%"],children:[{type:"fieldset",label:"Spell Checking Options",style:"border: none;margin-top: 13px;padding: 10px 0 10px 10px",onShow:function(){this.getInputElement().$.children[0].innerHTML=a.LocalizationComing.SpellCheckingOptions},children:[{type:"vbox",id:"Options_checkbox",children:[{type:"checkbox",id:"IgnoreAllCapsWords",label:"Ignore All-Caps Words", +labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreWordsNumbers",label:"Ignore Words with Numbers",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox", +id:"IgnoreMixedCaseWords",label:"Ignore Mixed-Case Words",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]=!this.getValue()?0:1}},{type:"checkbox",id:"IgnoreDomainNames",label:"Ignore Domain Names",labelStyle:"margin-left: 5px; font: 12px/16px arial, sans-serif;display: inline-block;white-space: normal;",style:"float:left; min-height: 16px;","default":"",onClick:function(){d[this.id]= +!this.getValue()?0:1}}]}]},{type:"vbox",id:"Options_DictionaryName",children:[{type:"text",id:"DictionaryName",style:"margin-bottom: 10px",label:"Dictionary Name:",labelLayout:"vertical",labelStyle:"font: 12px/25px arial, sans-serif;","default":"",onLoad:function(){j=this;this.setValue(a.userDictionaryName?a.userDictionaryName:(e.cookie.get("udn"),this.getValue()))},onShow:function(){j=this;this.setValue(!e.cookie.get("udn")?this.getValue():e.cookie.get("udn"));this.setLabel(a.LocalizationComing.DictionaryName)}, +onHide:function(){this.reset()}},{type:"hbox",id:"Options_buttons",children:[{type:"vbox",id:"Options_leftCol_col",widths:["50%","50%"],children:[{type:"button",id:"create",label:"Create",title:"Create",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Create)},onClick:h},{type:"button",id:"restore",label:"Restore",title:"Restore",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", +this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Restore)},onClick:h}]},{type:"vbox",id:"Options_rightCol_col",widths:["50%","50%"],children:[{type:"button",id:"rename",label:"Rename",title:"Rename",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd",this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Rename)},onClick:h},{type:"button",id:"delete",label:"Remove",title:"Remove",style:"width: 100%;",onLoad:function(){this.getElement().setAttribute("title-cmd", +this.id)},onShow:function(){this.getElement().setText(a.LocalizationComing.Remove)},onClick:h}]}]}]}]},{type:"hbox",id:"Options_text",children:[{type:"html",style:"text-align: justify;margin-top: 15px;white-space: normal!important; font-size: 12px;color:#777;",html:"
    "+a.LocalizationComing.OptionsTextIntro+"
    ",onShow:function(){this.getElement().setText(a.LocalizationComing.OptionsTextIntro)}}]}]}]}],buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton],onOk:function(){var a=[]; +a[0]=d.IgnoreAllCapsWords;a[1]=d.IgnoreWordsNumbers;a[2]=d.IgnoreMixedCaseWords;a[3]=d.IgnoreDomainNames;a=a.toString().replace(/,/g,"");e.cookie.set("osp",a);e.cookie.set("udn",j.getValue());e.postMessage.send({id:"options_checkbox_send"});f.getElement().hide();f.getElement().setHtml(" ")},onLoad:function(){b=this;e.postMessage.init(i);c.IgnoreAllCapsWords=b.getContentElement("OptionsTab","IgnoreAllCapsWords");c.IgnoreWordsNumbers=b.getContentElement("OptionsTab","IgnoreWordsNumbers");c.IgnoreMixedCaseWords= +b.getContentElement("OptionsTab","IgnoreMixedCaseWords");c.IgnoreDomainNames=b.getContentElement("OptionsTab","IgnoreDomainNames")},onShow:function(){var b=e.cookie.get("osp").split("");d.IgnoreAllCapsWords=b[0];d.IgnoreWordsNumbers=b[1];d.IgnoreMixedCaseWords=b[2];d.IgnoreDomainNames=b[3];!parseInt(d.IgnoreAllCapsWords,10)?c.IgnoreAllCapsWords.setValue("",!1):c.IgnoreAllCapsWords.setValue("checked",!1);!parseInt(d.IgnoreWordsNumbers,10)?c.IgnoreWordsNumbers.setValue("",!1):c.IgnoreWordsNumbers.setValue("checked", +!1);!parseInt(d.IgnoreMixedCaseWords,10)?c.IgnoreMixedCaseWords.setValue("",!1):c.IgnoreMixedCaseWords.setValue("checked",!1);!parseInt(d.IgnoreDomainNames,10)?c.IgnoreDomainNames.setValue("",!1):c.IgnoreDomainNames.setValue("checked",!1);d.IgnoreAllCapsWords=!c.IgnoreAllCapsWords.getValue()?0:1;d.IgnoreWordsNumbers=!c.IgnoreWordsNumbers.getValue()?0:1;d.IgnoreMixedCaseWords=!c.IgnoreMixedCaseWords.getValue()?0:1;d.IgnoreDomainNames=!c.IgnoreDomainNames.getValue()?0:1;c.IgnoreAllCapsWords.getElement().$.lastChild.innerHTML= +a.LocalizationComing.IgnoreAllCapsWords;c.IgnoreWordsNumbers.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreWordsWithNumbers;c.IgnoreMixedCaseWords.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreMixedCaseWords;c.IgnoreDomainNames.getElement().$.lastChild.innerHTML=a.LocalizationComing.IgnoreDomainNames}}});CKEDITOR.dialog.on("resize",function(b){var b=b.data,c=b.dialog,d=CKEDITOR.document.getById(a.iframeNumber+"_"+c._.currentTabId);"checkspell"==c._.name&&(a.bnr?d&& d.setSize("height",b.height-310):d&&d.setSize("height",b.height-220))});CKEDITOR.on("dialogDefinition",function(b){var c=b.data.definition;a.onLoadOverlay=new q({opacity:"1",background:"#fff",target:c.dialog.parts.tabs.getParent().$});a.onLoadOverlay.setEnable();c.dialog.on("show",function(){});c.dialog.on("cancel",function(){c.dialog.getParentEditor().config.wsc_onClose.call(this.document.getWindow().getFrame());a.div_overlay.setDisable();return!1},this,null,-1)})})(); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js index 6b39b0060..7de72a909 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/plugins/wsc/dialogs/wsc_ie.js @@ -1,11 +1,11 @@ -/* - Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license -*/ -CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),j(a)):180==d++&&window._cancelOnError(c)}}function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang|| -f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display", -"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",i=a.lang.wsc.notAvailable,k='', -l=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid="+a.config.wsc_customerId+"&cmd=script&doc=wsc&schema=22";a.config.wsc_customLoaderScript&&(i+='

    '+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"

    ");window._cancelOnError=function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display", -"none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(k);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script", -{attributes:{type:"text/javascript",src:l}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,i),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}}); +/* + Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.html or http://ckeditor.com/license +*/ +CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),j(a)):180==d++&&window._cancelOnError(c)}}function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang|| +f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display", +"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",i=a.lang.wsc.notAvailable,k='', +l=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid="+a.config.wsc_customerId+"&cmd=script&doc=wsc&schema=22";a.config.wsc_customLoaderScript&&(i+='

    '+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"

    ");window._cancelOnError=function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display", +"none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(k);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script", +{attributes:{type:"text/javascript",src:l}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,i),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}}); CKEDITOR.dialog.on("resize",function(a){var a=a.data,c=a.dialog;"checkspell"==c._.name&&((c=(c=c.getContentElement("general","content").getElement())&&c.getChild(2))&&c.setSize("height",a.height),c&&c.setSize("width",a.width))}); \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/ajax.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/ajax.html index c3631c941..59333eb16 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/ajax.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/ajax.html @@ -1,82 +1,82 @@ - - - - - - Ajax — CKEditor Sample - - - - - -

    - CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications -

    -
    -

    - This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing - area will be displayed in a <div> element. -

    -

    - For details of how to create this setup check the source code of this sample page - for JavaScript code responsible for the creation and destruction of a CKEditor instance. -

    -
    -

    Click the buttons to create and remove a CKEditor instance.

    -

    - - -

    - -
    -
    - - - - + + + + + + Ajax — CKEditor Sample + + + + + +

    + CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications +

    +
    +

    + This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing + area will be displayed in a <div> element. +

    +

    + For details of how to create this setup check the source code of this sample page + for JavaScript code responsible for the creation and destruction of a CKEditor instance. +

    +
    +

    Click the buttons to create and remove a CKEditor instance.

    +

    + + +

    + +
    +
    + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/api.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/api.html index 5becd3239..a957eed02 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/api.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/api.html @@ -1,207 +1,207 @@ - - - - - - API Usage — CKEditor Sample - - - - - - -

    - CKEditor Samples » Using CKEditor JavaScript API -

    -
    -

    - This sample shows how to use the - CKEditor JavaScript API - to interact with the editor at runtime. -

    -

    - For details on how to create this setup check the source code of this sample page. -

    -
    - - -
    - -
    -
    - - - - -

    -

    - - -
    - - - + + + + + + API Usage — CKEditor Sample + + + + + + +

    + CKEditor Samples » Using CKEditor JavaScript API +

    +
    +

    + This sample shows how to use the + CKEditor JavaScript API + to interact with the editor at runtime. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    + + +
    + +
    +
    + + + + +

    +

    + + +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/appendto.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/appendto.html index 39b212b93..e308eda94 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/appendto.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/appendto.html @@ -1,57 +1,57 @@ - - - - - - CKEDITOR.appendTo — CKEditor Sample - - - - -

    - CKEditor Samples » Append To Page Element Using JavaScript Code -

    -
    -
    -

    - CKEDITOR.appendTo is basically to place editors - inside existing DOM elements. Unlike CKEDITOR.replace, - a target container to be replaced is no longer necessary. A new editor - instance is inserted directly wherever it is desired. -

    -
    CKEDITOR.appendTo( 'container_id',
    -	{ /* Configuration options to be used. */ }
    -	'Editor content to be used.'
    -);
    -
    - -
    -
    - - - + + + + + + CKEDITOR.appendTo — CKEditor Sample + + + + +

    + CKEditor Samples » Append To Page Element Using JavaScript Code +

    +
    +
    +

    + CKEDITOR.appendTo is basically to place editors + inside existing DOM elements. Unlike CKEDITOR.replace, + a target container to be replaced is no longer necessary. A new editor + instance is inserted directly wherever it is desired. +

    +
    CKEDITOR.appendTo( 'container_id',
    +	{ /* Configuration options to be used. */ }
    +	'Editor content to be used.'
    +);
    +
    + +
    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/outputxhtml/outputxhtml.css b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/outputxhtml/outputxhtml.css index da4f71a12..fa0ff379b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/outputxhtml/outputxhtml.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/outputxhtml/outputxhtml.css @@ -1,204 +1,204 @@ -/* - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - * - * Styles used by the XHTML 1.1 sample page (xhtml.html). - */ - -/** - * Basic definitions for the editing area. - */ -body -{ - font-family: Arial, Verdana, sans-serif; - font-size: 80%; - color: #000000; - background-color: #ffffff; - padding: 5px; - margin: 0px; -} - -/** - * Core styles. - */ - -.Bold -{ - font-weight: bold; -} - -.Italic -{ - font-style: italic; -} - -.Underline -{ - text-decoration: underline; -} - -.StrikeThrough -{ - text-decoration: line-through; -} - -.Subscript -{ - vertical-align: sub; - font-size: smaller; -} - -.Superscript -{ - vertical-align: super; - font-size: smaller; -} - -/** - * Font faces. - */ - -.FontComic -{ - font-family: 'Comic Sans MS'; -} - -.FontCourier -{ - font-family: 'Courier New'; -} - -.FontTimes -{ - font-family: 'Times New Roman'; -} - -/** - * Font sizes. - */ - -.FontSmaller -{ - font-size: smaller; -} - -.FontLarger -{ - font-size: larger; -} - -.FontSmall -{ - font-size: 8pt; -} - -.FontBig -{ - font-size: 14pt; -} - -.FontDouble -{ - font-size: 200%; -} - -/** - * Font colors. - */ -.FontColor1 -{ - color: #ff9900; -} - -.FontColor2 -{ - color: #0066cc; -} - -.FontColor3 -{ - color: #ff0000; -} - -.FontColor1BG -{ - background-color: #ff9900; -} - -.FontColor2BG -{ - background-color: #0066cc; -} - -.FontColor3BG -{ - background-color: #ff0000; -} - -/** - * Indentation. - */ - -.Indent1 -{ - margin-left: 40px; -} - -.Indent2 -{ - margin-left: 80px; -} - -.Indent3 -{ - margin-left: 120px; -} - -/** - * Alignment. - */ - -.JustifyLeft -{ - text-align: left; -} - -.JustifyRight -{ - text-align: right; -} - -.JustifyCenter -{ - text-align: center; -} - -.JustifyFull -{ - text-align: justify; -} - -/** - * Other. - */ - -code -{ - font-family: courier, monospace; - background-color: #eeeeee; - padding-left: 1px; - padding-right: 1px; - border: #c0c0c0 1px solid; -} - -kbd -{ - padding: 0px 1px 0px 1px; - border-width: 1px 2px 2px 1px; - border-style: solid; -} - -blockquote -{ - color: #808080; -} +/* + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + * + * Styles used by the XHTML 1.1 sample page (xhtml.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + font-family: Arial, Verdana, sans-serif; + font-size: 80%; + color: #000000; + background-color: #ffffff; + padding: 5px; + margin: 0px; +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/posteddata.php b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/posteddata.php index fd96f8f15..6b26aae3b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/posteddata.php +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/posteddata.php @@ -1,59 +1,59 @@ - - - - - - Sample — CKEditor - - - -

    - CKEditor — Posted Data -

    - - - - - - - - - $value ) - { - if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) - continue; - - if ( get_magic_quotes_gpc() ) - $value = htmlspecialchars( stripslashes((string)$value) ); - else - $value = htmlspecialchars( (string)$value ); -?> - - - - - -
    Field NameValue
    - - - + + + + + + Sample — CKEditor + + + +

    + CKEditor — Posted Data +

    + + + + + + + + + $value ) + { + if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) + continue; + + if ( get_magic_quotes_gpc() ) + $value = htmlspecialchars( stripslashes((string)$value) ); + else + $value = htmlspecialchars( (string)$value ); +?> + + + + + +
    Field NameValue
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/sample.css b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/sample.css index a47e4ddfd..64167c258 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/sample.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/sample.css @@ -1,3 +1,3 @@ -/** - * Required by tests (dom/document.html). - */ +/** + * Required by tests (dom/document.html). + */ diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/uilanguages/languages.js b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/uilanguages/languages.js index 7d2d18bd4..224fd0717 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/uilanguages/languages.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/assets/uilanguages/languages.js @@ -1,7 +1,7 @@ -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", -is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional", +/* + Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", +is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional", "zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name - - - - - Data Filtering — CKEditor Sample - - - - - -

    - CKEditor Samples » Data Filtering and Features Activation -

    -
    -

    - This sample page demonstrates the idea of Advanced Content Filter - (ACF), a sophisticated - tool that takes control over what kind of data is accepted by the editor and what - kind of output is produced. -

    -

    When and what is being filtered?

    -

    - ACF controls - every single source of data that comes to the editor. - It process both HTML that is inserted manually (i.e. pasted by the user) - and programmatically like: -

    -
    -editor.setData( '<p>Hello world!</p>' );
    -
    -

    - ACF discards invalid, - useless HTML tags and attributes so the editor remains "clean" during - runtime. ACF behaviour - can be configured and adjusted for a particular case to prevent the - output HTML (i.e. in CMS systems) from being polluted. - - This kind of filtering is a first, client-side line of defense - against "tag soups", - the tool that precisely restricts which tags, attributes and styles - are allowed (desired). When properly configured, ACF - is an easy and fast way to produce a high-quality, intentionally filtered HTML. -

    - -

    How to configure or disable ACF?

    -

    - Advanced Content Filter is enabled by default, working in "automatic mode", yet - it provides a set of easy rules that allow adjusting filtering rules - and disabling the entire feature when necessary. The config property - responsible for this feature is config.allowedContent. -

    -

    - By "automatic mode" is meant that loaded plugins decide which kind - of content is enabled and which is not. For example, if the link - plugin is loaded it implies that <a> tag is - automatically allowed. Each plugin is given a set - of predefined ACF rules - that control the editor until - config.allowedContent - is defined manually. -

    -

    - Let's assume our intention is to restrict the editor to accept (produce) paragraphs - only: no attributes, no styles, no other tags. - With ACF - this is very simple. Basically set - config.allowedContent to 'p': -

    -
    -var editor = CKEDITOR.replace( textarea_id, {
    -	allowedContent: 'p'
    -} );
    -
    -

    - Now try to play with allowed content: -

    -
    -// Trying to insert disallowed tag and attribute.
    -editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
    -alert( editor.getData() );
    -
    -// Filtered data is returned.
    -"<p>Hello world!</p>"
    -
    -

    - What happened? Since config.allowedContent: 'p' is set the editor assumes - that only plain <p> are accepted. Nothing more. This is why - style attribute and <em> tag are gone. The same - filtering would happen if we pasted disallowed HTML into this editor. -

    -

    - This is just a small sample of what ACF - can do. To know more, please refer to the sample section below and - the official Advanced Content Filter guide. -

    -

    - You may, of course, want CKEditor to avoid filtering of any kind. - To get rid of ACF, - basically set - config.allowedContent to true like this: -

    -
    -CKEDITOR.replace( textarea_id, {
    -	allowedContent: true
    -} );
    -
    - -

    Beyond data flow: Features activation

    -

    - ACF is far more than - I/O control: the entire - UI of the editor is adjusted to what - filters restrict. For example: if <a> tag is - disallowed - by ACF, - then accordingly link command, toolbar button and link dialog - are also disabled. Editor is smart: it knows which features must be - removed from the interface to match filtering rules. -

    -

    - CKEditor can be far more specific. If <a> tag is - allowed by filtering rules to be used but it is restricted - to have only one attribute (href) - config.allowedContent = 'a[!href]', then - "Target" tab of the link dialog is automatically disabled as target - attribute isn't included in ACF rules - for <a>. This behaviour applies to dialog fields, context - menus and toolbar buttons. -

    - -

    Sample configurations

    -

    - There are several editor instances below that present different - ACF setups. All of them, - except the last inline instance, share the same HTML content to visualize - how different filtering rules affect the same input data. -

    -
    - -
    - -
    -

    - This editor is using default configuration ("automatic mode"). It means that - - config.allowedContent is defined by loaded plugins. - Each plugin extends filtering rules to make it's own associated content - available for the user. -

    -
    - - - -
    - -
    - -
    - -
    -

    - This editor is using a custom configuration for - ACF: -

    -
    -CKEDITOR.replace( 'editor2', {
    -	allowedContent:
    -		'h1 h2 h3 p blockquote strong em;' +
    -		'a[!href];' +
    -		'img(left,right)[!src,alt,width,height];' +
    -		'table tr th td caption;' +
    -		'span{!font-family};' +'
    -		'span{!color};' +
    -		'span(!marker);' +
    -		'del ins'
    -} );
    -
    -

    - The following rules may require additional explanation: -

    -
      -
    • - h1 h2 h3 p blockquote strong em - These tags - are accepted by the editor. Any tag attributes will be discarded. -
    • -
    • - a[!href] - href attribute is obligatory - for <a> tag. Tags without this attribute - are disarded. No other attribute will be accepted. -
    • -
    • - img(left,right)[!src,alt,width,height] - src - attribute is obligatory for <img> tag. - alt, width, height - and class attributes are accepted but - class must be either class="left" - or class="right" -
    • -
    • - table tr th td caption - These tags - are accepted by the editor. Any tag attributes will be discarded. -
    • -
    • - span{!font-family}, span{!color}, - span(!marker) - <span> tags - will be accepted if either font-family or - color style is set or class="marker" - is present. -
    • -
    • - del ins - These tags - are accepted by the editor. Any tag attributes will be discarded. -
    • -
    -

    - Please note that UI of the - editor is different. It's a response to what happened to the filters. - Since text-align isn't allowed, the align toolbar is gone. - The same thing happened to subscript/superscript, strike, underline - (<u>, <sub>, <sup> - are disallowed by - config.allowedContent) and many other buttons. -

    -
    - - -
    - -
    - -
    - -
    -

    - This editor is using a custom configuration for - ACF. - Note that filters can be configured as an object literal - as an alternative to a string-based definition. -

    -
    -CKEDITOR.replace( 'editor3', {
    -	allowedContent: {
    -		'b i ul ol big small': true,
    -		'h1 h2 h3 p blockquote li': {
    -			styles: 'text-align'
    -		},
    -		a: { attributes: '!href,target' },
    -		img: {
    -			attributes: '!src,alt',
    -			styles: 'width,height',
    -			classes: 'left,right'
    -		}
    -	}
    -} );
    -
    -
    - - -
    - -
    - -
    - -
    -

    - This editor is using a custom set of plugins and buttons. -

    -
    -CKEDITOR.replace( 'editor4', {
    -	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
    -	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
    -	format_tags: 'p;h1;h2;h3;pre;address'
    -} );
    -
    -

    - As you can see, removing plugins and buttons implies filtering. - Several tags are not allowed in the editor because there's no - plugin/button that is responsible for creating and editing this - kind of content (for example: the image is missing because - of removeButtons: 'Image'). The conclusion is that - ACF works "backwards" - as well: modifying UI - elements is changing allowed content rules. -

    -
    - - -
    - -
    - -
    - -
    -

    - This editor is built on editable <h1> element. - ACF takes care of - what can be included in <h1>. Note that there - are no block styles in Styles combo. Also why lists, indentation, - blockquote, div, form and other buttons are missing. -

    -

    - ACF makes sure that - no disallowed tags will come to <h1> so the final - markup is valid. If the user tried to paste some invalid HTML - into this editor (let's say a list), it would be automatically - converted into plain text. -

    -
    -

    - Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. -

    -
    - - - - + + + + + + Data Filtering — CKEditor Sample + + + + + +

    + CKEditor Samples » Data Filtering and Features Activation +

    +
    +

    + This sample page demonstrates the idea of Advanced Content Filter + (ACF), a sophisticated + tool that takes control over what kind of data is accepted by the editor and what + kind of output is produced. +

    +

    When and what is being filtered?

    +

    + ACF controls + every single source of data that comes to the editor. + It process both HTML that is inserted manually (i.e. pasted by the user) + and programmatically like: +

    +
    +editor.setData( '<p>Hello world!</p>' );
    +
    +

    + ACF discards invalid, + useless HTML tags and attributes so the editor remains "clean" during + runtime. ACF behaviour + can be configured and adjusted for a particular case to prevent the + output HTML (i.e. in CMS systems) from being polluted. + + This kind of filtering is a first, client-side line of defense + against "tag soups", + the tool that precisely restricts which tags, attributes and styles + are allowed (desired). When properly configured, ACF + is an easy and fast way to produce a high-quality, intentionally filtered HTML. +

    + +

    How to configure or disable ACF?

    +

    + Advanced Content Filter is enabled by default, working in "automatic mode", yet + it provides a set of easy rules that allow adjusting filtering rules + and disabling the entire feature when necessary. The config property + responsible for this feature is config.allowedContent. +

    +

    + By "automatic mode" is meant that loaded plugins decide which kind + of content is enabled and which is not. For example, if the link + plugin is loaded it implies that <a> tag is + automatically allowed. Each plugin is given a set + of predefined ACF rules + that control the editor until + config.allowedContent + is defined manually. +

    +

    + Let's assume our intention is to restrict the editor to accept (produce) paragraphs + only: no attributes, no styles, no other tags. + With ACF + this is very simple. Basically set + config.allowedContent to 'p': +

    +
    +var editor = CKEDITOR.replace( textarea_id, {
    +	allowedContent: 'p'
    +} );
    +
    +

    + Now try to play with allowed content: +

    +
    +// Trying to insert disallowed tag and attribute.
    +editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
    +alert( editor.getData() );
    +
    +// Filtered data is returned.
    +"<p>Hello world!</p>"
    +
    +

    + What happened? Since config.allowedContent: 'p' is set the editor assumes + that only plain <p> are accepted. Nothing more. This is why + style attribute and <em> tag are gone. The same + filtering would happen if we pasted disallowed HTML into this editor. +

    +

    + This is just a small sample of what ACF + can do. To know more, please refer to the sample section below and + the official Advanced Content Filter guide. +

    +

    + You may, of course, want CKEditor to avoid filtering of any kind. + To get rid of ACF, + basically set + config.allowedContent to true like this: +

    +
    +CKEDITOR.replace( textarea_id, {
    +	allowedContent: true
    +} );
    +
    + +

    Beyond data flow: Features activation

    +

    + ACF is far more than + I/O control: the entire + UI of the editor is adjusted to what + filters restrict. For example: if <a> tag is + disallowed + by ACF, + then accordingly link command, toolbar button and link dialog + are also disabled. Editor is smart: it knows which features must be + removed from the interface to match filtering rules. +

    +

    + CKEditor can be far more specific. If <a> tag is + allowed by filtering rules to be used but it is restricted + to have only one attribute (href) + config.allowedContent = 'a[!href]', then + "Target" tab of the link dialog is automatically disabled as target + attribute isn't included in ACF rules + for <a>. This behaviour applies to dialog fields, context + menus and toolbar buttons. +

    + +

    Sample configurations

    +

    + There are several editor instances below that present different + ACF setups. All of them, + except the last inline instance, share the same HTML content to visualize + how different filtering rules affect the same input data. +

    +
    + +
    + +
    +

    + This editor is using default configuration ("automatic mode"). It means that + + config.allowedContent is defined by loaded plugins. + Each plugin extends filtering rules to make it's own associated content + available for the user. +

    +
    + + + +
    + +
    + +
    + +
    +

    + This editor is using a custom configuration for + ACF: +

    +
    +CKEDITOR.replace( 'editor2', {
    +	allowedContent:
    +		'h1 h2 h3 p blockquote strong em;' +
    +		'a[!href];' +
    +		'img(left,right)[!src,alt,width,height];' +
    +		'table tr th td caption;' +
    +		'span{!font-family};' +'
    +		'span{!color};' +
    +		'span(!marker);' +
    +		'del ins'
    +} );
    +
    +

    + The following rules may require additional explanation: +

    +
      +
    • + h1 h2 h3 p blockquote strong em - These tags + are accepted by the editor. Any tag attributes will be discarded. +
    • +
    • + a[!href] - href attribute is obligatory + for <a> tag. Tags without this attribute + are disarded. No other attribute will be accepted. +
    • +
    • + img(left,right)[!src,alt,width,height] - src + attribute is obligatory for <img> tag. + alt, width, height + and class attributes are accepted but + class must be either class="left" + or class="right" +
    • +
    • + table tr th td caption - These tags + are accepted by the editor. Any tag attributes will be discarded. +
    • +
    • + span{!font-family}, span{!color}, + span(!marker) - <span> tags + will be accepted if either font-family or + color style is set or class="marker" + is present. +
    • +
    • + del ins - These tags + are accepted by the editor. Any tag attributes will be discarded. +
    • +
    +

    + Please note that UI of the + editor is different. It's a response to what happened to the filters. + Since text-align isn't allowed, the align toolbar is gone. + The same thing happened to subscript/superscript, strike, underline + (<u>, <sub>, <sup> + are disallowed by + config.allowedContent) and many other buttons. +

    +
    + + +
    + +
    + +
    + +
    +

    + This editor is using a custom configuration for + ACF. + Note that filters can be configured as an object literal + as an alternative to a string-based definition. +

    +
    +CKEDITOR.replace( 'editor3', {
    +	allowedContent: {
    +		'b i ul ol big small': true,
    +		'h1 h2 h3 p blockquote li': {
    +			styles: 'text-align'
    +		},
    +		a: { attributes: '!href,target' },
    +		img: {
    +			attributes: '!src,alt',
    +			styles: 'width,height',
    +			classes: 'left,right'
    +		}
    +	}
    +} );
    +
    +
    + + +
    + +
    + +
    + +
    +

    + This editor is using a custom set of plugins and buttons. +

    +
    +CKEDITOR.replace( 'editor4', {
    +	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
    +	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
    +	format_tags: 'p;h1;h2;h3;pre;address'
    +} );
    +
    +

    + As you can see, removing plugins and buttons implies filtering. + Several tags are not allowed in the editor because there's no + plugin/button that is responsible for creating and editing this + kind of content (for example: the image is missing because + of removeButtons: 'Image'). The conclusion is that + ACF works "backwards" + as well: modifying UI + elements is changing allowed content rules. +

    +
    + + +
    + +
    + +
    + +
    +

    + This editor is built on editable <h1> element. + ACF takes care of + what can be included in <h1>. Note that there + are no block styles in Styles combo. Also why lists, indentation, + blockquote, div, form and other buttons are missing. +

    +

    + ACF makes sure that + no disallowed tags will come to <h1> so the final + markup is valid. If the user tried to paste some invalid HTML + into this editor (let's say a list), it would be automatically + converted into plain text. +

    +
    +

    + Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. +

    +
    + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/divreplace.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/divreplace.html index 3ee0e0e2d..873c8c2e5 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/divreplace.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/divreplace.html @@ -1,141 +1,141 @@ - - - - - - Replace DIV — CKEditor Sample - - - - - - -

    - CKEditor Samples » Replace DIV with CKEditor on the Fly -

    -
    -

    - This sample shows how to automatically replace <div> elements - with a CKEditor instance on the fly, following user's doubleclick. The content - that was previously placed inside the <div> element will now - be moved into CKEditor editing area. -

    -

    - For details on how to create this setup check the source code of this sample page. -

    -
    -

    - Double-click any of the following <div> elements to transform them into - editor instances. -

    -
    -

    - Part 1 -

    -

    - Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

    -
    -
    -

    - Part 2 -

    -

    - Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

    -

    - Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus - sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum - vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. -

    -
    -
    -

    - Part 3 -

    -

    - Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

    -
    - - - + + + + + + Replace DIV — CKEditor Sample + + + + + + +

    + CKEditor Samples » Replace DIV with CKEditor on the Fly +

    +
    +

    + This sample shows how to automatically replace <div> elements + with a CKEditor instance on the fly, following user's doubleclick. The content + that was previously placed inside the <div> element will now + be moved into CKEditor editing area. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +

    + Double-click any of the following <div> elements to transform them into + editor instances. +

    +
    +

    + Part 1 +

    +

    + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

    +
    +
    +

    + Part 2 +

    +

    + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

    +

    + Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus + sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum + vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. +

    +
    +
    +

    + Part 3 +

    +

    + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi + semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna + rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla + nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce + eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/index.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/index.html index 964c5a3ad..d5501621a 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/index.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/index.html @@ -1,128 +1,128 @@ - - - - - - CKEditor Samples - - - -

    - CKEditor Samples -

    -
    -
    -

    - Basic Samples -

    -
    -
    Replace textarea elements by class name
    -
    Automatic replacement of all textarea elements of a given class with a CKEditor instance.
    - -
    Replace textarea elements by code
    -
    Replacement of textarea elements with CKEditor instances by using a JavaScript call.
    - -
    Create editors with jQuery
    -
    Creating standard and inline CKEditor instances with jQuery adapter.
    -
    - -

    - Basic Customization -

    -
    -
    User Interface color
    -
    Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
    - -
    User Interface languages
    -
    Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
    -
    - - -

    Plugins

    -
    -
    Magicline plugin
    -
    Using the Magicline plugin to access difficult focus spaces.
    - -
    Full page support
    -
    CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
    -
    -
    -
    -

    - Inline Editing -

    -
    -
    Massive inline editor creation
    -
    Turn all elements with contentEditable = true attribute into inline editors.
    - -
    Convert element into an inline editor by code
    -
    Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
    - -
    Replace textarea with inline editor New!
    -
    A form with a textarea that is replaced by an inline editor at runtime.
    - - -
    - -

    - Advanced Samples -

    -
    -
    Data filtering and features activation New!
    -
    Data filtering and automatic features activation basing on configuration.
    - -
    Replace DIV elements on the fly
    -
    Transforming a div element into an instance of CKEditor with a mouse click.
    - -
    Append editor instances
    -
    Appending editor instances to existing DOM elements.
    - -
    Create and destroy editor instances for Ajax applications
    -
    Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
    - -
    Basic usage of the API
    -
    Using the CKEditor JavaScript API to interact with the editor at runtime.
    - -
    XHTML-compliant style
    -
    Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
    - -
    Read-only mode
    -
    Using the readOnly API to block introducing changes to the editor contents.
    - -
    "Tab" key-based navigation
    -
    Navigating among editor instances with tab key.
    - - - -
    Using the JavaScript API to customize dialog windows
    -
    Using the dialog windows API to customize dialog windows without changing the original editor code.
    - -
    Using the "Enter" key in CKEditor
    -
    Configuring the behavior of Enter and Shift+Enter keys.
    - -
    Output for Flash
    -
    Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
    - -
    Output HTML
    -
    Configuring CKEditor to produce legacy HTML 4 code.
    - -
    Toolbar Configurations
    -
    Configuring CKEditor to display full or custom toolbar layout.
    - -
    -
    -
    - - - + + + + + + CKEditor Samples + + + +

    + CKEditor Samples +

    +
    +
    +

    + Basic Samples +

    +
    +
    Replace textarea elements by class name
    +
    Automatic replacement of all textarea elements of a given class with a CKEditor instance.
    + +
    Replace textarea elements by code
    +
    Replacement of textarea elements with CKEditor instances by using a JavaScript call.
    + +
    Create editors with jQuery
    +
    Creating standard and inline CKEditor instances with jQuery adapter.
    +
    + +

    + Basic Customization +

    +
    +
    User Interface color
    +
    Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
    + +
    User Interface languages
    +
    Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
    +
    + + +

    Plugins

    +
    +
    Magicline plugin
    +
    Using the Magicline plugin to access difficult focus spaces.
    + +
    Full page support
    +
    CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
    +
    +
    +
    +

    + Inline Editing +

    +
    +
    Massive inline editor creation
    +
    Turn all elements with contentEditable = true attribute into inline editors.
    + +
    Convert element into an inline editor by code
    +
    Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
    + +
    Replace textarea with inline editor New!
    +
    A form with a textarea that is replaced by an inline editor at runtime.
    + + +
    + +

    + Advanced Samples +

    +
    +
    Data filtering and features activation New!
    +
    Data filtering and automatic features activation basing on configuration.
    + +
    Replace DIV elements on the fly
    +
    Transforming a div element into an instance of CKEditor with a mouse click.
    + +
    Append editor instances
    +
    Appending editor instances to existing DOM elements.
    + +
    Create and destroy editor instances for Ajax applications
    +
    Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
    + +
    Basic usage of the API
    +
    Using the CKEditor JavaScript API to interact with the editor at runtime.
    + +
    XHTML-compliant style
    +
    Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
    + +
    Read-only mode
    +
    Using the readOnly API to block introducing changes to the editor contents.
    + +
    "Tab" key-based navigation
    +
    Navigating among editor instances with tab key.
    + + + +
    Using the JavaScript API to customize dialog windows
    +
    Using the dialog windows API to customize dialog windows without changing the original editor code.
    + +
    Using the "Enter" key in CKEditor
    +
    Configuring the behavior of Enter and Shift+Enter keys.
    + +
    Output for Flash
    +
    Configuring CKEditor to produce HTML code that can be used with Adobe Flash.
    + +
    Output HTML
    +
    Configuring CKEditor to produce legacy HTML 4 code.
    + +
    Toolbar Configurations
    +
    Configuring CKEditor to display full or custom toolbar layout.
    + +
    +
    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlineall.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlineall.html index 250f0c54d..f82af1dbd 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlineall.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlineall.html @@ -1,311 +1,311 @@ - - - - - - Massive inline editing — CKEditor Sample - - - - - - -
    -

    CKEditor Samples » Massive inline editing

    -
    -

    This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

    -
    <div contenteditable="true" > ... </div>
    -

    Click inside of any element below to start editing.

    -
    -
    -
    - -
    -
    -
    -

    - Fusce vitae porttitor -

    -

    - - Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. - -

    -

    - Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. -

    -
    -

    - Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. - Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum -

    -
    -
    -

    - Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. -

    -
    -

    Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

    -

    Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

    -
    -
    -
    -
    -

    - Integer condimentum sit amet -

    -

    - Aenean nonummy a, mattis varius. Cras aliquet. - Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

    -

    Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

    -

    Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

    -
    -
    -

    - Praesent wisi accumsan sit amet nibh -

    -

    Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

    -

    Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

    -

    In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

    -
    -
    -
    -
    -

    - CKEditor logo -

    -

    Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

    -

    - Nullam laoreet vel consectetuer tellus suscipit -

    -
      -
    • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
    • -
    • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
    • -
    • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
    • -
    -

    Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

    -

    Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

    -

    Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

    -
    -
    -
    -
    - Tags of this article: -

    - inline, editing, floating, CKEditor -

    -
    -
    - - - + + + + + + Massive inline editing — CKEditor Sample + + + + + + +
    +

    CKEditor Samples » Massive inline editing

    +
    +

    This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

    +
    <div contenteditable="true" > ... </div>
    +

    Click inside of any element below to start editing.

    +
    +
    +
    + +
    +
    +
    +

    + Fusce vitae porttitor +

    +

    + + Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. + +

    +

    + Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. +

    +
    +

    + Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. + Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum +

    +
    +
    +

    + Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. +

    +
    +

    Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

    +

    Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

    +
    +
    +
    +
    +

    + Integer condimentum sit amet +

    +

    + Aenean nonummy a, mattis varius. Cras aliquet. + Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

    +

    Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

    +

    Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

    +
    +
    +

    + Praesent wisi accumsan sit amet nibh +

    +

    Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

    +

    Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

    +

    In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

    +
    +
    +
    +
    +

    + CKEditor logo +

    +

    Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

    +

    + Nullam laoreet vel consectetuer tellus suscipit +

    +
      +
    • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
    • +
    • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
    • +
    • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
    • +
    +

    Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

    +

    Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

    +

    Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

    +
    +
    +
    +
    + Tags of this article: +

    + inline, editing, floating, CKEditor +

    +
    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinebycode.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinebycode.html index fe627d087..4e4753672 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinebycode.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinebycode.html @@ -1,121 +1,121 @@ - - - - - - Inline Editing by Code — CKEditor Sample - - - - - -

    - CKEditor Samples » Inline Editing by Code -

    -
    -

    - This sample shows how to create an inline editor instance of CKEditor. It is created - with a JavaScript call using the following code: -

    -
    -// This property tells CKEditor to not activate every element with contenteditable=true element.
    -CKEDITOR.disableAutoInline = true;
    -
    -var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
    -
    -

    - Note that editable in the code above is the id - attribute of the <div> element to be converted into an inline instance. -

    -
    -
    -

    Saturn V carrying Apollo 11 Apollo 11

    - -

    Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

    - -

    Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

    - -

    Broadcasting and quotes

    - -

    Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

    - -
    -

    One small step for [a] man, one giant leap for mankind.

    -
    - -

    Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

    - -
    -

    [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

    -
    - -

    Technical details

    - - - - - - - - - - - - - - - - - - - - - - - -
    Mission crew
    PositionAstronaut
    CommanderNeil A. Armstrong
    Command Module PilotMichael Collins
    Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
    - -

    Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

    - -
      -
    1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
    2. -
    3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
    4. -
    5. Lunar Module for landing on the Moon.
    6. -
    - -

    After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

    - -
    -

    Source: Wikipedia.org

    -
    - - - - - + + + + + + Inline Editing by Code — CKEditor Sample + + + + + +

    + CKEditor Samples » Inline Editing by Code +

    +
    +

    + This sample shows how to create an inline editor instance of CKEditor. It is created + with a JavaScript call using the following code: +

    +
    +// This property tells CKEditor to not activate every element with contenteditable=true element.
    +CKEDITOR.disableAutoInline = true;
    +
    +var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
    +
    +

    + Note that editable in the code above is the id + attribute of the <div> element to be converted into an inline instance. +

    +
    +
    +

    Saturn V carrying Apollo 11 Apollo 11

    + +

    Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

    + +

    Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

    + +

    Broadcasting and quotes

    + +

    Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

    + +
    +

    One small step for [a] man, one giant leap for mankind.

    +
    + +

    Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

    + +
    +

    [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

    +
    + +

    Technical details

    + + + + + + + + + + + + + + + + + + + + + + + +
    Mission crew
    PositionAstronaut
    CommanderNeil A. Armstrong
    Command Module PilotMichael Collins
    Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
    + +

    Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

    + +
      +
    1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
    2. +
    3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
    4. +
    5. Lunar Module for landing on the Moon.
    6. +
    + +

    After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

    + +
    +

    Source: Wikipedia.org

    +
    + + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinetextarea.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinetextarea.html index 9da5ed3b9..97ced1edc 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinetextarea.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/inlinetextarea.html @@ -1,110 +1,110 @@ - - - - - - Replace Textarea with Inline Editor — CKEditor Sample - - - - - -

    - CKEditor Samples » Replace Textarea with Inline Editor -

    -
    -

    - You can also create an inline editor from a textarea - element. In this case the textarea will be replaced - by a div element with inline editing enabled. -

    -
    -// "article-body" is the name of a textarea element.
    -var editor = CKEDITOR.inline( 'article-body' );
    -
    -
    -
    -

    This is a sample form with some fields

    -

    - Title:
    -

    -

    - Article Body (Textarea converted to CKEditor):
    - -

    -

    - -

    -
    - - - - - + + + + + + Replace Textarea with Inline Editor — CKEditor Sample + + + + + +

    + CKEditor Samples » Replace Textarea with Inline Editor +

    +
    +

    + You can also create an inline editor from a textarea + element. In this case the textarea will be replaced + by a div element with inline editing enabled. +

    +
    +// "article-body" is the name of a textarea element.
    +var editor = CKEDITOR.inline( 'article-body' );
    +
    +
    +
    +

    This is a sample form with some fields

    +

    + Title:
    +

    +

    + Article Body (Textarea converted to CKEditor):
    + +

    +

    + +

    +
    + + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/jquery.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/jquery.html index b26607963..67102f36c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/jquery.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/jquery.html @@ -1,97 +1,97 @@ - - - - - - jQuery Adapter — CKEditor Sample - - - - - - - - -

    - CKEditor Samples » Create Editors with jQuery -

    -
    -
    -

    - This sample shows how to use the jQuery adapter. - Note that you have to include both CKEditor and jQuery scripts before including the adapter. -

    -
    -<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    -<script src="/ckeditor/ckeditor.js"></script>
    -<script src="/ckeditor/adapters/jquery.js"></script>
    -
    -

    Then you can replace html elements with a CKEditor instance using the ckeditor() method.

    -
    -$( document ).ready( function() {
    -	$( 'textarea#editor1' ).ckeditor();
    -} );
    -
    -
    - -

    Inline Example

    - -
    -

    Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

    -

    Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. -

    Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

    -

    One small step for [a] man, one giant leap for mankind.

    Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

    [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

    -
    - -
    - -

    Framed Example

    - - - -

    - - - - - -

    -
    - - - + + + + + + jQuery Adapter — CKEditor Sample + + + + + + + + +

    + CKEditor Samples » Create Editors with jQuery +

    +
    +
    +

    + This sample shows how to use the jQuery adapter. + Note that you have to include both CKEditor and jQuery scripts before including the adapter. +

    +
    +<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    +<script src="/ckeditor/ckeditor.js"></script>
    +<script src="/ckeditor/adapters/jquery.js"></script>
    +
    +

    Then you can replace html elements with a CKEditor instance using the ckeditor() method.

    +
    +$( document ).ready( function() {
    +	$( 'textarea#editor1' ).ckeditor();
    +} );
    +
    +
    + +

    Inline Example

    + +
    +

    Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

    +

    Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. +

    Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

    +

    One small step for [a] man, one giant leap for mankind.

    Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

    [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

    +
    + +
    + +

    Framed Example

    + + + +

    + + + + + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js index 3d8f3694d..3edd07286 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/assets/my_dialog.js @@ -1,48 +1,48 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -CKEDITOR.dialog.add( 'myDialog', function( editor ) { - return { - title: 'My Dialog', - minWidth: 400, - minHeight: 200, - contents: [ - { - id: 'tab1', - label: 'First Tab', - title: 'First Tab', - elements: [ - { - id: 'input1', - type: 'text', - label: 'Text Field' - }, - { - id: 'select1', - type: 'select', - label: 'Select Field', - items: [ - [ 'option1', 'value1' ], - [ 'option2', 'value2' ] - ] - } - ] - }, - { - id: 'tab2', - label: 'Second Tab', - title: 'Second Tab', - elements: [ - { - id: 'button1', - type: 'button', - label: 'Button Field' - } - ] - } - ] - }; -} ); - +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +CKEDITOR.dialog.add( 'myDialog', function( editor ) { + return { + title: 'My Dialog', + minWidth: 400, + minHeight: 200, + contents: [ + { + id: 'tab1', + label: 'First Tab', + title: 'First Tab', + elements: [ + { + id: 'input1', + type: 'text', + label: 'Text Field' + }, + { + id: 'select1', + type: 'select', + label: 'Select Field', + items: [ + [ 'option1', 'value1' ], + [ 'option2', 'value2' ] + ] + } + ] + }, + { + id: 'tab2', + label: 'Second Tab', + title: 'Second Tab', + elements: [ + { + id: 'button1', + type: 'button', + label: 'Button Field' + } + ] + } + ] + }; +} ); + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/dialog.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/dialog.html index b4940b214..df09d25b3 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/dialog.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/dialog/dialog.html @@ -1,187 +1,187 @@ - - - - - - Using API to Customize Dialog Windows — CKEditor Sample - - - - - - - - - -

    - CKEditor Samples » Using CKEditor Dialog API -

    -
    -

    - This sample shows how to use the - CKEditor Dialog API - to customize CKEditor dialog windows without changing the original editor code. - The following customizations are being done in the example below: -

    -

    - For details on how to create this setup check the source code of this sample page. -

    -
    -

    A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

    -
      -
    1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
    2. -
    3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
    4. -
    - - -

    The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

    -
      -
    1. Adding dialog tab – Add new tab "My Tab" to dialog window.
    2. -
    3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
    4. -
    5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
    6. -
    7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
    8. -
    9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
    10. -
    11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
    12. -
    - - - - - + + + + + + Using API to Customize Dialog Windows — CKEditor Sample + + + + + + + + + +

    + CKEditor Samples » Using CKEditor Dialog API +

    +
    +

    + This sample shows how to use the + CKEditor Dialog API + to customize CKEditor dialog windows without changing the original editor code. + The following customizations are being done in the example below: +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +

    A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

    +
      +
    1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
    2. +
    3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
    4. +
    + + +

    The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

    +
      +
    1. Adding dialog tab – Add new tab "My Tab" to dialog window.
    2. +
    3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
    4. +
    5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
    6. +
    7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
    8. +
    9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
    10. +
    11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
    12. +
    + + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/enterkey/enterkey.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/enterkey/enterkey.html index f49d9d76f..2d5150122 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/enterkey/enterkey.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/enterkey/enterkey.html @@ -1,103 +1,103 @@ - - - - - - ENTER Key Configuration — CKEditor Sample - - - - - - - - -

    - CKEditor Samples » ENTER Key Configuration -

    -
    -

    - This sample shows how to configure the Enter and Shift+Enter keys - to perform actions specified in the - enterMode - and shiftEnterMode - parameters, respectively. - You can choose from the following options: -

    -
      -
    • ENTER_P – new <p> paragraphs are created;
    • -
    • ENTER_BR – lines are broken with <br> elements;
    • -
    • ENTER_DIV – new <div> blocks are created.
    • -
    -

    - The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. -

    -
    -CKEDITOR.replace( 'textarea_id', {
    -	enterMode: CKEDITOR.ENTER_DIV
    -});
    -

    - Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

    -
    -
    - When Enter is pressed:
    - -
    -
    - When Shift+Enter is pressed:
    - -
    -
    -
    -

    -
    - -

    -

    - -

    -
    - - - + + + + + + ENTER Key Configuration — CKEditor Sample + + + + + + + + +

    + CKEditor Samples » ENTER Key Configuration +

    +
    +

    + This sample shows how to configure the Enter and Shift+Enter keys + to perform actions specified in the + enterMode + and shiftEnterMode + parameters, respectively. + You can choose from the following options: +

    +
      +
    • ENTER_P – new <p> paragraphs are created;
    • +
    • ENTER_BR – lines are broken with <br> elements;
    • +
    • ENTER_DIV – new <div> blocks are created.
    • +
    +

    + The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	enterMode: CKEDITOR.ENTER_DIV
    +});
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +
    +
    + When Enter is pressed:
    + +
    +
    + When Shift+Enter is pressed:
    + +
    +
    +
    +

    +
    + +

    +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js index 95fdf0a7a..d25ba25f4 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js @@ -1,18 +1,18 @@ -var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= -O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", -c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& -e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ -h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& -(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} -function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), -e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", -O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== -r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), -e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, -0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== -b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= +var swfobject=function(){function u(){if(!s){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}s=!0;for(var a=x.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;D()})()}else D()}function D(){var a=p.length;if(0e.wk))t(c,!0),f&&(g.success=!0,g.ref=E(c),f(g));else if(p[b].expressInstall&&F()){g={};g.data=p[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),j=d.length,k=0;ke.wk)}function G(a,b,c,f){A=!0;H=f||null;N={success:!1,id:c};var g=n(c);if(g){"OBJECT"==g.nodeName?(w=I(g),B=null):(w=g,B=c);a.id= +O;if(typeof a.width==i||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if(typeof a.height==i||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL="+m.location.toString().replace(/&/g,"%26")+"&MMplayerType="+f+"&MMdoctitle="+d.title;b.flashvars=typeof b.flashvars!=i?b.flashvars+("&"+f):f;e.ie&&(e.win&&4!=g.readyState)&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id", +c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){g.readyState==4?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());J(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(I(a),b);a.style.display="none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(I(a),a)}function I(a){var b=d.createElement("div");if(e.win&& +e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName(r)[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if(typeof a.id==i&&(a.id=c),e.ie&&e.win){var o="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?o+=' class="'+a[h]+'"':"classid"!=h.toLowerCase()&&(o+=" "+ +h+'="'+a[h]+'"'));h="";for(var j in b)b[j]!=Object.prototype[j]&&(h+='');g.outerHTML='"+h+"";C[C.length]=a.id;f=n(a.id)}else{j=d.createElement(r);j.setAttribute("type",y);for(var k in a)a[k]!=Object.prototype[k]&&("styleclass"==k.toLowerCase()?j.setAttribute("class",a[k]):"classid"!=k.toLowerCase()&&j.setAttribute(k,a[k]));for(o in b)b[o]!=Object.prototype[o]&&"movie"!=o.toLowerCase()&& +(a=j,h=o,k=b[o],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",k),a.appendChild(c));g.parentNode.replaceChild(j,g);f=j}return f}function P(a){var b=n(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4==b.readyState){var c=n(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function n(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b} +function U(a,b,c){a.attachEvent(b,c);v[v.length]=[a,b,c]}function z(a){var b=e.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];if(g){c=c&&"string"==typeof c?c:"screen";f&&(K=l=null);if(!l||K!=c)f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),l=g.appendChild(f), +e.ie&&(e.win&&typeof d.styleSheets!=i&&0\.;]/.exec(a)&&typeof encodeURIComponent!=i?encodeURIComponent(a):a}var i="undefined",r="object",y="application/x-shockwave-flash", +O="SWFObjectExprInst",m=window,d=document,q=navigator,T=!1,x=[function(){T?V():D()}],p=[],C=[],v=[],w,B,H,N,s=!1,A=!1,l,K,R=!0,e=function(){var a=typeof d.getElementById!=i&&typeof d.getElementsByTagName!=i&&typeof d.createElement!=i,b=q.userAgent.toLowerCase(),c=q.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if(typeof q.plugins!=i&&typeof q.plugins["Shockwave Flash"]== +r){if((h=q.plugins["Shockwave Flash"].description)&&!(typeof q.mimeTypes!=i&&q.mimeTypes[y]&&!q.mimeTypes[y].enabledPlugin))T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof m.ActiveXObject!=i)try{var j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(j&&(h=j.GetVariable("$version")))g=!0,h=h.split(" ")[1].split(","), +e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)]}catch(k){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&((typeof d.readyState!=i&&"complete"==d.readyState||typeof d.readyState==i&&(d.getElementsByTagName("body")[0]||d.body))&&u(),s||(typeof d.addEventListener!=i&&d.addEventListener("DOMContentLoaded",u,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),u())}),m==top&&function(){if(!s){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee, +0);return}u()}}()),e.wk&&function(){s||(/loaded|complete/.test(d.readyState)?u():setTimeout(arguments.callee,0))}(),M(u)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=v.length,b=0;be.wk)&&a&&b&&c&&d&&g?(t(b,!1),L(function(){c+="";d+="";var e={};if(k&&typeof k===r)for(var l in k)e[l]=k[l];e.data=a;e.width=c;e.height=d;l={};if(j&&typeof j===r)for(var p in j)l[p]=j[p];if(h&&typeof h===r)for(var q in h)l.flashvars=typeof l.flashvars!=i?l.flashvars+("&"+q+"="+h[q]):q+"="+h[q];if(z(g))p=J(e,l,b),e.id== +b&&t(b,!0),n.success=!0,n.ref=p;else{if(o&&F()){e.data=o;G(e,l,b,m);return}t(b,!0)}m&&m(n)})):m&&m(n)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:z,createSWF:function(a,b,c){if(e.w3)return J(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:L,addLoadEvent:M,getQueryParamValue:function(a){var b= d.location.search||d.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("&"),c=0;c - - - - - Output for Flash — CKEditor Sample - - - - - - - - - - - -

    - CKEditor Samples » Producing Flash Compliant HTML Output -

    -
    -

    - This sample shows how to configure CKEditor to output - HTML code that can be used with - - Adobe Flash. - The code will contain a subset of standard HTML elements like <b>, - <i>, and <p> as well as HTML attributes. -

    -

    - To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard - JavaScript call, and define CKEditor features to use HTML elements and attributes. -

    -

    - For details on how to create this setup check the source code of this sample page. -

    -
    -

    - To see how it works, create some content in the editing area of CKEditor on the left - and send it to the Flash object on the right side of the page by using the - Send to Flash button. -

    - - - - - -
    - - -

    - -

    -
    -
    -
    - - - + + + + + + Output for Flash — CKEditor Sample + + + + + + + + + + + +

    + CKEditor Samples » Producing Flash Compliant HTML Output +

    +
    +

    + This sample shows how to configure CKEditor to output + HTML code that can be used with + + Adobe Flash. + The code will contain a subset of standard HTML elements like <b>, + <i>, and <p> as well as HTML attributes. +

    +

    + To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard + JavaScript call, and define CKEditor features to use HTML elements and attributes. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +

    + To see how it works, create some content in the editing area of CKEditor on the left + and send it to the Flash object on the right side of the page by using the + Send to Flash button. +

    + + + + + +
    + + +

    + +

    +
    +
    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/outputhtml.html index d857b4e75..f25697df4 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/outputhtml.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/htmlwriter/outputhtml.html @@ -1,221 +1,221 @@ - - - - - - HTML Compliant Output — CKEditor Sample - - - - - - - - - -

    - CKEditor Samples » Producing HTML Compliant Output -

    -
    -

    - This sample shows how to configure CKEditor to output valid - HTML 4.01 code. - Traditional HTML elements like <b>, - <i>, and <font> are used in place of - <strong>, <em>, and CSS styles. -

    -

    - To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard - JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. -

    -

    - A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

    -
    -CKEDITOR.replace( 'textarea_id', {
    -	coreStyles_bold: { element: 'b' },
    -	coreStyles_italic: { element: 'i' },
    -
    -	fontSize_style: {
    -		element: 'font',
    -		attributes: { 'size': '#(size)' }
    -	}
    -
    -	...
    -});
    -
    -
    -

    - - - -

    -

    - -

    -
    - - - + + + + + + HTML Compliant Output — CKEditor Sample + + + + + + + + + +

    + CKEditor Samples » Producing HTML Compliant Output +

    +
    +

    + This sample shows how to configure CKEditor to output valid + HTML 4.01 code. + Traditional HTML elements like <b>, + <i>, and <font> are used in place of + <strong>, <em>, and CSS styles. +

    +

    + To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard + JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. +

    +

    + A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	coreStyles_bold: { element: 'b' },
    +	coreStyles_italic: { element: 'i' },
    +
    +	fontSize_style: {
    +		element: 'font',
    +		attributes: { 'size': '#(size)' }
    +	}
    +
    +	...
    +});
    +
    +
    +

    + + + +

    +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/magicline/magicline.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/magicline/magicline.html index 1638f4c44..800fbb3b1 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/magicline/magicline.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/magicline/magicline.html @@ -1,206 +1,206 @@ - - - - - - Using Magicline plugin — CKEditor Sample - - - - - - - -

    - CKEditor Samples » Using Magicline plugin -

    -
    -

    - This sample shows the advantages of Magicline plugin - which is to enhance the editing process. Thanks to this plugin, - a number of difficult focus spaces which are inaccessible due to - browser issues can now be focused. -

    -

    - Magicline plugin shows a red line with a handler - which, when clicked, inserts a paragraph and allows typing. To see this, - focus an editor and move your mouse above the focus space you want - to access. The plugin is enabled by default so no additional - configuration is necessary. -

    -
    -
    - -
    -

    - This editor uses a default Magicline setup. -

    -
    - - -
    -
    -
    - -
    -

    - This editor is using a blue line. -

    -
    -CKEDITOR.replace( 'editor2', {
    -	magicline_color: 'blue'
    -});
    -
    - - -
    - - - + + + + + + Using Magicline plugin — CKEditor Sample + + + + + + + +

    + CKEditor Samples » Using Magicline plugin +

    +
    +

    + This sample shows the advantages of Magicline plugin + which is to enhance the editing process. Thanks to this plugin, + a number of difficult focus spaces which are inaccessible due to + browser issues can now be focused. +

    +

    + Magicline plugin shows a red line with a handler + which, when clicked, inserts a paragraph and allows typing. To see this, + focus an editor and move your mouse above the focus space you want + to access. The plugin is enabled by default so no additional + configuration is necessary. +

    +
    +
    + +
    +

    + This editor uses a default Magicline setup. +

    +
    + + +
    +
    +
    + +
    +

    + This editor is using a blue line. +

    +
    +CKEDITOR.replace( 'editor2', {
    +	magicline_color: 'blue'
    +});
    +
    + + +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/toolbar/toolbar.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/toolbar/toolbar.html index 7d7a99eb1..6cf2ddf13 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/toolbar/toolbar.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/toolbar/toolbar.html @@ -1,232 +1,232 @@ - - - - - - Toolbar Configuration — CKEditor Sample - - - - - - - -

    - CKEditor Samples » Toolbar Configuration -

    -
    -

    - This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if - current editor's configuration modifies default settings, also editor with modified toolbar. -

    - -

    Since CKEditor 4 there are two ways to configure toolbar buttons.

    - -

    By config.toolbar

    - -

    - You can explicitly define which buttons are displayed in which groups and in which order. - This is the more precise setting, but less flexible. If newly added plugin adds its - own button you'll have to add it manually to your config.toolbar setting as well. -

    - -

    To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

    - -
    -CKEDITOR.replace( 'textarea_id', {
    -	toolbar: [
    -		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
    -		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
    -		'/',																					// Line break - next group will be placed in new line.
    -		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
    -	]
    -});
    - -

    By config.toolbarGroups

    - -

    - You can define which groups of buttons (like e.g. basicstyles, clipboard - and forms) are displayed and in which order. Registered buttons are associated - with toolbar groups by toolbar property in their definition. - This setting's advantage is that you don't have to modify toolbar configuration - when adding/removing plugins which register their own buttons. -

    - -

    To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

    - -
    -CKEDITOR.replace( 'textarea_id', {
    -	toolbarGroups: [
    -		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
    - 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
    - 		'/',																// Line break - next group will be placed in new line.
    - 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
    - 		{ name: 'links' }
    -	]
    -
    -	// NOTE: Remember to leave 'toolbar' property with the default value (null).
    -});
    -
    - - - -
    -

    Full toolbar configuration

    -

    Below you can see editor with full toolbar, generated automatically by the editor.

    -

    - Note: To create editor instance with full toolbar you don't have to set anything. - Just leave toolbar and toolbarGroups with the default, null values. -

    - -
    
    -	
    - - - - - - + + + + + + Toolbar Configuration — CKEditor Sample + + + + + + + +

    + CKEditor Samples » Toolbar Configuration +

    +
    +

    + This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if + current editor's configuration modifies default settings, also editor with modified toolbar. +

    + +

    Since CKEditor 4 there are two ways to configure toolbar buttons.

    + +

    By config.toolbar

    + +

    + You can explicitly define which buttons are displayed in which groups and in which order. + This is the more precise setting, but less flexible. If newly added plugin adds its + own button you'll have to add it manually to your config.toolbar setting as well. +

    + +

    To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

    + +
    +CKEDITOR.replace( 'textarea_id', {
    +	toolbar: [
    +		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
    +		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
    +		'/',																					// Line break - next group will be placed in new line.
    +		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
    +	]
    +});
    + +

    By config.toolbarGroups

    + +

    + You can define which groups of buttons (like e.g. basicstyles, clipboard + and forms) are displayed and in which order. Registered buttons are associated + with toolbar groups by toolbar property in their definition. + This setting's advantage is that you don't have to modify toolbar configuration + when adding/removing plugins which register their own buttons. +

    + +

    To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

    + +
    +CKEDITOR.replace( 'textarea_id', {
    +	toolbarGroups: [
    +		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
    + 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
    + 		'/',																// Line break - next group will be placed in new line.
    + 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
    + 		{ name: 'links' }
    +	]
    +
    +	// NOTE: Remember to leave 'toolbar' property with the default value (null).
    +});
    +
    + + + +
    +

    Full toolbar configuration

    +

    Below you can see editor with full toolbar, generated automatically by the editor.

    +

    + Note: To create editor instance with full toolbar you don't have to set anything. + Just leave toolbar and toolbarGroups with the default, null values. +

    + +
    
    +	
    + + + + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/wysiwygarea/fullpage.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/wysiwygarea/fullpage.html index 696da0fb3..911057690 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/wysiwygarea/fullpage.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/plugins/wysiwygarea/fullpage.html @@ -1,77 +1,77 @@ - - - - - - Full Page Editing — CKEditor Sample - - - - - - - - - -

    - CKEditor Samples » Full Page Editing -

    -
    -

    - This sample shows how to configure CKEditor to edit entire HTML pages, from the - <html> tag to the </html> tag. -

    -

    - The CKEditor instance below is inserted with a JavaScript call using the following code: -

    -
    -CKEDITOR.replace( 'textarea_id', {
    -	fullPage: true,
    -	allowedContent: true
    -});
    -
    -

    - Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

    -

    - The allowedContent in the code above is set to true to disable content filtering. - Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. -

    -
    -
    - - - -

    - -

    -
    - - - + + + + + + Full Page Editing — CKEditor Sample + + + + + + + + + +

    + CKEditor Samples » Full Page Editing +

    +
    +

    + This sample shows how to configure CKEditor to edit entire HTML pages, from the + <html> tag to the </html> tag. +

    +

    + The CKEditor instance below is inserted with a JavaScript call using the following code: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	fullPage: true,
    +	allowedContent: true
    +});
    +
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +

    + The allowedContent in the code above is set to true to disable content filtering. + Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. +

    +
    +
    + + + +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/readonly.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/readonly.html index cf609df77..58f97069c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/readonly.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/readonly.html @@ -1,73 +1,73 @@ - - - - - - Using the CKEditor Read-Only API — CKEditor Sample - - - - - -

    - CKEditor Samples » Using the CKEditor Read-Only API -

    -
    -

    - This sample shows how to use the - setReadOnly - API to put editor into the read-only state that makes it impossible for users to change the editor contents. -

    -

    - For details on how to create this setup check the source code of this sample page. -

    -
    -
    -

    - -

    -

    - - -

    -
    - - - + + + + + + Using the CKEditor Read-Only API — CKEditor Sample + + + + + +

    + CKEditor Samples » Using the CKEditor Read-Only API +

    +
    +

    + This sample shows how to use the + setReadOnly + API to put editor into the read-only state that makes it impossible for users to change the editor contents. +

    +

    + For details on how to create this setup check the source code of this sample page. +

    +
    +
    +

    + +

    +

    + + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebyclass.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebyclass.html index 6baea4cf5..6fc3e6fed 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebyclass.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebyclass.html @@ -1,57 +1,57 @@ - - - - - - Replace Textareas by Class Name — CKEditor Sample - - - - -

    - CKEditor Samples » Replace Textarea Elements by Class Name -

    -
    -

    - This sample shows how to automatically replace all <textarea> elements - of a given class with a CKEditor instance. -

    -

    - To replace a <textarea> element, simply assign it the ckeditor - class, as in the code below: -

    -
    -<textarea class="ckeditor" name="editor1"></textarea>
    -
    -

    - Note that other <textarea> attributes (like id or name) need to be adjusted to your document. -

    -
    -
    -

    - - -

    -

    - -

    -
    - - - + + + + + + Replace Textareas by Class Name — CKEditor Sample + + + + +

    + CKEditor Samples » Replace Textarea Elements by Class Name +

    +
    +

    + This sample shows how to automatically replace all <textarea> elements + of a given class with a CKEditor instance. +

    +

    + To replace a <textarea> element, simply assign it the ckeditor + class, as in the code below: +

    +
    +<textarea class="ckeditor" name="editor1"></textarea>
    +
    +

    + Note that other <textarea> attributes (like id or name) need to be adjusted to your document. +

    +
    +
    +

    + + +

    +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebycode.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebycode.html index 8e7d7f703..e5a4c5baf 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebycode.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/replacebycode.html @@ -1,56 +1,56 @@ - - - - - - Replace Textarea by Code — CKEditor Sample - - - - -

    - CKEditor Samples » Replace Textarea Elements Using JavaScript Code -

    -
    -
    -

    - This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. -

    -
    -CKEDITOR.replace( 'textarea_id' )
    -
    -
    - - -

    - -

    -
    - - - + + + + + + Replace Textarea by Code — CKEditor Sample + + + + +

    + CKEditor Samples » Replace Textarea Elements Using JavaScript Code +

    +
    +
    +

    + This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. +

    +
    +CKEDITOR.replace( 'textarea_id' )
    +
    +
    + + +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.css b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.css index f0686ea16..8cc2eb9bb 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.css @@ -1,356 +1,356 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ - -html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre -{ - line-height: 1.5; -} - -body -{ - padding: 10px 30px; -} - -input, textarea, select, option, optgroup, button, td, th -{ - font-size: 100%; -} - -pre, code, kbd, samp, tt -{ - font-family: monospace,monospace; - font-size: 1em; -} - -body { - width: 960px; - margin: 0 auto; -} - -code -{ - background: #f3f3f3; - border: 1px solid #ddd; - padding: 1px 4px; - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -abbr -{ - border-bottom: 1px dotted #555; - cursor: pointer; -} - -.new, .beta -{ - text-transform: uppercase; - font-size: 10px; - font-weight: bold; - padding: 1px 4px; - margin: 0 0 0 5px; - color: #fff; - float: right; - - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - -.new -{ - background: #FF7E00; - border: 1px solid #DA8028; - text-shadow: 0 1px 0 #C97626; - - -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; - -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; - box-shadow: 0 2px 3px 0 #FFA54E inset; -} - -.beta -{ - background: #18C0DF; - border: 1px solid #19AAD8; - text-shadow: 0 1px 0 #048CAD; - font-style: italic; - - -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; - -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; - box-shadow: 0 2px 3px 0 #50D4FD inset; -} - -h1.samples -{ - color: #0782C1; - font-size: 200%; - font-weight: normal; - margin: 0; - padding: 0; -} - -h1.samples a -{ - color: #0782C1; - text-decoration: none; - border-bottom: 1px dotted #0782C1; -} - -.samples a:hover -{ - border-bottom: 1px dotted #0782C1; -} - -h2.samples -{ - color: #000000; - font-size: 130%; - margin: 15px 0 0 0; - padding: 0; -} - -p, blockquote, address, form, pre, dl, h1.samples, h2.samples -{ - margin-bottom: 15px; -} - -ul.samples -{ - margin-bottom: 15px; -} - -.clear -{ - clear: both; -} - -fieldset -{ - margin: 0; - padding: 10px; -} - -body, input, textarea -{ - color: #333333; - font-family: Arial, Helvetica, sans-serif; -} - -body -{ - font-size: 75%; -} - -a.samples -{ - color: #189DE1; - text-decoration: none; -} - -form -{ - margin: 0; - padding: 0; -} - -pre.samples -{ - background-color: #F7F7F7; - border: 1px solid #D7D7D7; - overflow: auto; - padding: 0.25em; - white-space: pre-wrap; /* CSS 2.1 */ - word-wrap: break-word; /* IE7 */ - -moz-tab-size: 4; - -o-tab-size: 4; - -webkit-tab-size: 4; - tab-size: 4; -} - -#footer -{ - clear: both; - padding-top: 10px; -} - -#footer hr -{ - margin: 10px 0 15px 0; - height: 1px; - border: solid 1px gray; - border-bottom: none; -} - -#footer p -{ - margin: 0 10px 10px 10px; - float: left; -} - -#footer #copy -{ - float: right; -} - -#outputSample -{ - width: 100%; - table-layout: fixed; -} - -#outputSample thead th -{ - color: #dddddd; - background-color: #999999; - padding: 4px; - white-space: nowrap; -} - -#outputSample tbody th -{ - vertical-align: top; - text-align: left; -} - -#outputSample pre -{ - margin: 0; - padding: 0; -} - -.description -{ - border: 1px dotted #B7B7B7; - margin-bottom: 10px; - padding: 10px 10px 0; - overflow: hidden; -} - -label -{ - display: block; - margin-bottom: 6px; -} - -/** - * CKEditor editables are automatically set with the "cke_editable" class - * plus cke_editable_(inline|themed) depending on the editor type. - */ - -/* Style a bit the inline editables. */ -.cke_editable.cke_editable_inline -{ - cursor: pointer; -} - -/* Once an editable element gets focused, the "cke_focus" class is - added to it, so we can style it differently. */ -.cke_editable.cke_editable_inline.cke_focus -{ - box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; - outline: none; - background: #eee; - cursor: text; -} - -/* Avoid pre-formatted overflows inline editable. */ -.cke_editable_inline pre -{ - white-space: pre-wrap; - word-wrap: break-word; -} - -/** - * Samples index styles. - */ - -.twoColumns, -.twoColumnsLeft, -.twoColumnsRight -{ - overflow: hidden; -} - -.twoColumnsLeft, -.twoColumnsRight -{ - width: 45%; -} - -.twoColumnsLeft -{ - float: left; -} - -.twoColumnsRight -{ - float: right; -} - -dl.samples -{ - padding: 0 0 0 40px; -} -dl.samples > dt -{ - display: list-item; - list-style-type: disc; - list-style-position: outside; - margin: 0 0 3px; -} -dl.samples > dd -{ - margin: 0 0 3px; -} -.warning -{ - color: #ff0000; - background-color: #FFCCBA; - border: 2px dotted #ff0000; - padding: 15px 10px; - margin: 10px 0; -} - -/* Used on inline samples */ - -blockquote -{ - font-style: italic; - font-family: Georgia, Times, "Times New Roman", serif; - padding: 2px 0; - border-style: solid; - border-color: #ccc; - border-width: 0; -} - -.cke_contents_ltr blockquote -{ - padding-left: 20px; - padding-right: 8px; - border-left-width: 5px; -} - -.cke_contents_rtl blockquote -{ - padding-left: 8px; - padding-right: 20px; - border-right-width: 5px; -} - -img.right { - border: 1px solid #ccc; - float: right; - margin-left: 15px; - padding: 5px; -} - -img.left { - border: 1px solid #ccc; - float: left; - margin-right: 15px; - padding: 5px; -} +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ + +html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre +{ + line-height: 1.5; +} + +body +{ + padding: 10px 30px; +} + +input, textarea, select, option, optgroup, button, td, th +{ + font-size: 100%; +} + +pre, code, kbd, samp, tt +{ + font-family: monospace,monospace; + font-size: 1em; +} + +body { + width: 960px; + margin: 0 auto; +} + +code +{ + background: #f3f3f3; + border: 1px solid #ddd; + padding: 1px 4px; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +abbr +{ + border-bottom: 1px dotted #555; + cursor: pointer; +} + +.new, .beta +{ + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + padding: 1px 4px; + margin: 0 0 0 5px; + color: #fff; + float: right; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + +.new +{ + background: #FF7E00; + border: 1px solid #DA8028; + text-shadow: 0 1px 0 #C97626; + + -moz-box-shadow: 0 2px 3px 0 #FFA54E inset; + -webkit-box-shadow: 0 2px 3px 0 #FFA54E inset; + box-shadow: 0 2px 3px 0 #FFA54E inset; +} + +.beta +{ + background: #18C0DF; + border: 1px solid #19AAD8; + text-shadow: 0 1px 0 #048CAD; + font-style: italic; + + -moz-box-shadow: 0 2px 3px 0 #50D4FD inset; + -webkit-box-shadow: 0 2px 3px 0 #50D4FD inset; + box-shadow: 0 2px 3px 0 #50D4FD inset; +} + +h1.samples +{ + color: #0782C1; + font-size: 200%; + font-weight: normal; + margin: 0; + padding: 0; +} + +h1.samples a +{ + color: #0782C1; + text-decoration: none; + border-bottom: 1px dotted #0782C1; +} + +.samples a:hover +{ + border-bottom: 1px dotted #0782C1; +} + +h2.samples +{ + color: #000000; + font-size: 130%; + margin: 15px 0 0 0; + padding: 0; +} + +p, blockquote, address, form, pre, dl, h1.samples, h2.samples +{ + margin-bottom: 15px; +} + +ul.samples +{ + margin-bottom: 15px; +} + +.clear +{ + clear: both; +} + +fieldset +{ + margin: 0; + padding: 10px; +} + +body, input, textarea +{ + color: #333333; + font-family: Arial, Helvetica, sans-serif; +} + +body +{ + font-size: 75%; +} + +a.samples +{ + color: #189DE1; + text-decoration: none; +} + +form +{ + margin: 0; + padding: 0; +} + +pre.samples +{ + background-color: #F7F7F7; + border: 1px solid #D7D7D7; + overflow: auto; + padding: 0.25em; + white-space: pre-wrap; /* CSS 2.1 */ + word-wrap: break-word; /* IE7 */ + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + tab-size: 4; +} + +#footer +{ + clear: both; + padding-top: 10px; +} + +#footer hr +{ + margin: 10px 0 15px 0; + height: 1px; + border: solid 1px gray; + border-bottom: none; +} + +#footer p +{ + margin: 0 10px 10px 10px; + float: left; +} + +#footer #copy +{ + float: right; +} + +#outputSample +{ + width: 100%; + table-layout: fixed; +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} + +#outputSample pre +{ + margin: 0; + padding: 0; +} + +.description +{ + border: 1px dotted #B7B7B7; + margin-bottom: 10px; + padding: 10px 10px 0; + overflow: hidden; +} + +label +{ + display: block; + margin-bottom: 6px; +} + +/** + * CKEditor editables are automatically set with the "cke_editable" class + * plus cke_editable_(inline|themed) depending on the editor type. + */ + +/* Style a bit the inline editables. */ +.cke_editable.cke_editable_inline +{ + cursor: pointer; +} + +/* Once an editable element gets focused, the "cke_focus" class is + added to it, so we can style it differently. */ +.cke_editable.cke_editable_inline.cke_focus +{ + box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; + outline: none; + background: #eee; + cursor: text; +} + +/* Avoid pre-formatted overflows inline editable. */ +.cke_editable_inline pre +{ + white-space: pre-wrap; + word-wrap: break-word; +} + +/** + * Samples index styles. + */ + +.twoColumns, +.twoColumnsLeft, +.twoColumnsRight +{ + overflow: hidden; +} + +.twoColumnsLeft, +.twoColumnsRight +{ + width: 45%; +} + +.twoColumnsLeft +{ + float: left; +} + +.twoColumnsRight +{ + float: right; +} + +dl.samples +{ + padding: 0 0 0 40px; +} +dl.samples > dt +{ + display: list-item; + list-style-type: disc; + list-style-position: outside; + margin: 0 0 3px; +} +dl.samples > dd +{ + margin: 0 0 3px; +} +.warning +{ + color: #ff0000; + background-color: #FFCCBA; + border: 2px dotted #ff0000; + padding: 15px 10px; + margin: 10px 0; +} + +/* Used on inline samples */ + +blockquote +{ + font-style: italic; + font-family: Georgia, Times, "Times New Roman", serif; + padding: 2px 0; + border-style: solid; + border-color: #ccc; + border-width: 0; +} + +.cke_contents_ltr blockquote +{ + padding-left: 20px; + padding-right: 8px; + border-left-width: 5px; +} + +.cke_contents_rtl blockquote +{ + padding-left: 8px; + padding-right: 20px; + border-right-width: 5px; +} + +img.right { + border: 1px solid #ccc; + float: right; + margin-left: 15px; + padding: 5px; +} + +img.left { + border: 1px solid #ccc; + float: left; + margin-right: 15px; + padding: 5px; +} diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.js b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.js index b96b3bf0a..b25482d3a 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample.js @@ -1,50 +1,50 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -// Tool scripts for the sample pages. -// This file can be ignored and is not required to make use of CKEditor. - -( function() { - CKEDITOR.on( 'instanceReady', function( ev ) { - // Check for sample compliance. - var editor = ev.editor, - meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), - requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], - missing = [], - i; - - if ( requires.length ) { - for ( i = 0; i < requires.length; i++ ) { - if ( !editor.plugins[ requires[ i ] ] ) - missing.push( '' + requires[ i ] + '' ); - } - - if ( missing.length ) { - var warn = CKEDITOR.dom.element.createFromHtml( - '
    ' + - 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + - '
    ' - ); - warn.insertBefore( editor.container ); - } - } - - // Set icons. - var doc = new CKEDITOR.dom.document( document ), - icons = doc.find( '.button_icon' ); - - for ( i = 0; i < icons.count(); i++ ) { - var icon = icons.getItem( i ), - name = icon.getAttribute( 'data-icon' ), - style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); - - icon.addClass( 'cke_button_icon' ); - icon.addClass( 'cke_button__' + name + '_icon' ); - icon.setAttribute( 'style', style ); - icon.setStyle( 'float', 'none' ); - - } - } ); -} )(); +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// Tool scripts for the sample pages. +// This file can be ignored and is not required to make use of CKEditor. + +( function() { + CKEDITOR.on( 'instanceReady', function( ev ) { + // Check for sample compliance. + var editor = ev.editor, + meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), + requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], + missing = [], + i; + + if ( requires.length ) { + for ( i = 0; i < requires.length; i++ ) { + if ( !editor.plugins[ requires[ i ] ] ) + missing.push( '' + requires[ i ] + '' ); + } + + if ( missing.length ) { + var warn = CKEDITOR.dom.element.createFromHtml( + '
    ' + + 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + + '
    ' + ); + warn.insertBefore( editor.container ); + } + } + + // Set icons. + var doc = new CKEDITOR.dom.document( document ), + icons = doc.find( '.button_icon' ); + + for ( i = 0; i < icons.count(); i++ ) { + var icon = icons.getItem( i ), + name = icon.getAttribute( 'data-icon' ), + style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); + + icon.addClass( 'cke_button_icon' ); + icon.addClass( 'cke_button__' + name + '_icon' ); + icon.setAttribute( 'style', style ); + icon.setStyle( 'float', 'none' ); + + } + } ); +} )(); diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample_posteddata.php b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample_posteddata.php index 7637104a8..e4869b7cd 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample_posteddata.php +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/sample_posteddata.php @@ -1,16 +1,16 @@ -
    -
    --------------------------------------------------------------------------------------------
    -  CKEditor - Posted Data
    -
    -  We are sorry, but your Web server does not support the PHP language used in this script.
    -
    -  Please note that CKEditor can be used with any other server-side language than just PHP.
    -  To save the content created with CKEditor you need to read the POST data on the server
    -  side and write it to a file or the database.
    -
    -  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
    -  For licensing, see LICENSE.md or http://ckeditor.com/license
    --------------------------------------------------------------------------------------------
    -
    -
    */ include "assets/posteddata.php"; ?> +
    +
    +-------------------------------------------------------------------------------------------
    +  CKEditor - Posted Data
    +
    +  We are sorry, but your Web server does not support the PHP language used in this script.
    +
    +  Please note that CKEditor can be used with any other server-side language than just PHP.
    +  To save the content created with CKEditor you need to read the POST data on the server
    +  side and write it to a file or the database.
    +
    +  Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
    +  For licensing, see LICENSE.md or http://ckeditor.com/license
    +-------------------------------------------------------------------------------------------
    +
    +
    */ include "assets/posteddata.php"; ?> diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/tabindex.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/tabindex.html index 8c2eb413f..89521668b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/tabindex.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/tabindex.html @@ -1,75 +1,75 @@ - - - - - - TAB Key-Based Navigation — CKEditor Sample - - - - - - -

    - CKEditor Samples » TAB Key-Based Navigation -

    -
    -

    - This sample shows how tab key navigation among editor instances is - affected by the tabIndex attribute from - the original page element. Use TAB key to move between the editors. -

    -
    -

    - -

    -
    -

    - -

    -

    - -

    - - - + + + + + + TAB Key-Based Navigation — CKEditor Sample + + + + + + +

    + CKEditor Samples » TAB Key-Based Navigation +

    +
    +

    + This sample shows how tab key navigation among editor instances is + affected by the tabIndex attribute from + the original page element. Use TAB key to move between the editors. +

    +
    +

    + +

    +
    +

    + +

    +

    + +

    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uicolor.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uicolor.html index 9a42c7887..ce4b2a261 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uicolor.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uicolor.html @@ -1,69 +1,69 @@ - - - - - - UI Color Picker — CKEditor Sample - - - - -

    - CKEditor Samples » UI Color -

    -
    -

    - This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the color of its user interface.
    - Note:The UI skin color feature depends on the CKEditor skin - compatibility. The Moono and Kama skins are examples of skins that work with it. -

    -
    -
    -

    - This editor instance has a UI color value defined in configuration to change the skin color, - To specify the color of the user interface, set the uiColor property: -

    -
    -CKEDITOR.replace( 'textarea_id', {
    -	uiColor: '#14B8C4'
    -});
    -

    - Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

    -

    - - -

    -

    - -

    -
    - - - + + + + + + UI Color Picker — CKEditor Sample + + + + +

    + CKEditor Samples » UI Color +

    +
    +

    + This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the color of its user interface.
    + Note:The UI skin color feature depends on the CKEditor skin + compatibility. The Moono and Kama skins are examples of skins that work with it. +

    +
    +
    +

    + This editor instance has a UI color value defined in configuration to change the skin color, + To specify the color of the user interface, set the uiColor property: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	uiColor: '#14B8C4'
    +});
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +

    + + +

    +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uilanguages.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uilanguages.html index f428fdbbd..66acca438 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uilanguages.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/uilanguages.html @@ -1,119 +1,119 @@ - - - - - - User Interface Globalization — CKEditor Sample - - - - - -

    - CKEditor Samples » User Interface Languages -

    -
    -

    - This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the language of its user interface. -

    -

    - It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates - a drop-down list that lets the user change the UI language. -

    -

    - By default, CKEditor automatically localizes the editor to the language of the user. - The UI language can be controlled with two configuration options: - language and - - defaultLanguage. The defaultLanguage setting specifies the - default CKEditor language to be used when a localization suitable for user's settings is not available. -

    -

    - To specify the user interface language that will be used no matter what language is - specified in user's browser or operating system, set the language property: -

    -
    -CKEDITOR.replace( 'textarea_id', {
    -	// Load the German interface.
    -	language: 'de'
    -});
    -

    - Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

    -
    -
    -

    - Available languages ( languages!):
    - -
    - - (You may see strange characters if your system does not support the selected language) - -

    -

    - - -

    -
    - - - + + + + + + User Interface Globalization — CKEditor Sample + + + + + +

    + CKEditor Samples » User Interface Languages +

    +
    +

    + This sample shows how to automatically replace <textarea> elements + with a CKEditor instance with an option to change the language of its user interface. +

    +

    + It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates + a drop-down list that lets the user change the UI language. +

    +

    + By default, CKEditor automatically localizes the editor to the language of the user. + The UI language can be controlled with two configuration options: + language and + + defaultLanguage. The defaultLanguage setting specifies the + default CKEditor language to be used when a localization suitable for user's settings is not available. +

    +

    + To specify the user interface language that will be used no matter what language is + specified in user's browser or operating system, set the language property: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	// Load the German interface.
    +	language: 'de'
    +});
    +

    + Note that textarea_id in the code above is the id attribute of + the <textarea> element to be replaced. +

    +
    +
    +

    + Available languages ( languages!):
    + +
    + + (You may see strange characters if your system does not support the selected language) + +

    +

    + + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/xhtmlstyle.html b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/xhtmlstyle.html index 600cddca8..f219d11d0 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/samples/xhtmlstyle.html +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/samples/xhtmlstyle.html @@ -1,231 +1,231 @@ - - - - - - XHTML Compliant Output — CKEditor Sample - - - - - - -

    - CKEditor Samples » Producing XHTML Compliant Output -

    -
    -

    - This sample shows how to configure CKEditor to output valid - XHTML 1.1 code. - Deprecated elements (<font>, <u>) or attributes - (size, face) will be replaced with XHTML compliant code. -

    -

    - To add a CKEditor instance outputting valid XHTML code, load the editor using a standard - JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. -

    -

    - A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

    -
    -CKEDITOR.replace( 'textarea_id', {
    -	contentsCss: 'assets/outputxhtml.css',
    -
    -	coreStyles_bold: {
    -		element: 'span',
    -		attributes: { 'class': 'Bold' }
    -	},
    -	coreStyles_italic: {
    -		element: 'span',
    -		attributes: { 'class': 'Italic' }
    -	},
    -
    -	...
    -});
    -
    -
    -

    - - - -

    -

    - -

    -
    - - - + + + + + + XHTML Compliant Output — CKEditor Sample + + + + + + +

    + CKEditor Samples » Producing XHTML Compliant Output +

    +
    +

    + This sample shows how to configure CKEditor to output valid + XHTML 1.1 code. + Deprecated elements (<font>, <u>) or attributes + (size, face) will be replaced with XHTML compliant code. +

    +

    + To add a CKEditor instance outputting valid XHTML code, load the editor using a standard + JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. +

    +

    + A snippet of the configuration code can be seen below; check the source of this page for + full definition: +

    +
    +CKEDITOR.replace( 'textarea_id', {
    +	contentsCss: 'assets/outputxhtml.css',
    +
    +	coreStyles_bold: {
    +		element: 'span',
    +		attributes: { 'class': 'Bold' }
    +	},
    +	coreStyles_italic: {
    +		element: 'span',
    +		attributes: { 'class': 'Italic' }
    +	},
    +
    +	...
    +});
    +
    +
    +

    + + + +

    +

    + +

    +
    + + + diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog.css index 699f0fac6..5ca69168a 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog.css @@ -1,691 +1,691 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie.css index 99cbc5506..c2536a983 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie.css @@ -1,715 +1,715 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie7.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie7.css index 2eccab194..dc88f4b12 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie7.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie7.css @@ -1,747 +1,747 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 -} - -.cke_dialog_title { - zoom: 1 -} - -.cke_dialog_footer { - border-top: 1px solid #bfbfbf -} - -.cke_dialog_footer_buttons { - position: static -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button { - vertical-align: top -} - -.cke_dialog .cke_resizer_ltr { - padding-left: 4px -} - -.cke_dialog .cke_resizer_rtl { - padding-right: 4px -} - -.cke_dialog_ui_input_text, .cke_dialog_ui_input_password, .cke_dialog_ui_input_textarea, .cke_dialog_ui_input_select { - padding: 0 !important -} - -.cke_dialog_ui_checkbox_input, .cke_dialog_ui_ratio_input, .cke_btn_reset, .cke_btn_locked, .cke_btn_unlocked { - border: 1px solid transparent !important +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 +} + +.cke_dialog_title { + zoom: 1 +} + +.cke_dialog_footer { + border-top: 1px solid #bfbfbf +} + +.cke_dialog_footer_buttons { + position: static +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button { + vertical-align: top +} + +.cke_dialog .cke_resizer_ltr { + padding-left: 4px +} + +.cke_dialog .cke_resizer_rtl { + padding-right: 4px +} + +.cke_dialog_ui_input_text, .cke_dialog_ui_input_password, .cke_dialog_ui_input_textarea, .cke_dialog_ui_input_select { + padding: 0 !important +} + +.cke_dialog_ui_checkbox_input, .cke_dialog_ui_ratio_input, .cke_btn_reset, .cke_btn_locked, .cke_btn_unlocked { + border: 1px solid transparent !important } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie8.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie8.css index 33876b8cd..43e43591b 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie8.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_ie8.css @@ -1,719 +1,719 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - display: block +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + display: block } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_iequirks.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_iequirks.css index eb4c83725..92fe837f9 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_iequirks.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_iequirks.css @@ -1,719 +1,719 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - padding-right: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { - padding-left: 2px -} - -.cke_rtl div.cke_dialog_ui_input_text { - padding-right: 1px -} - -.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { - padding-right: 2px !important -} - -.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 0 -} - -.cke_dialog_footer { - filter: "" +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + padding-right: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text, .cke_rtl div.cke_dialog_ui_input_password { + padding-left: 2px +} + +.cke_rtl div.cke_dialog_ui_input_text { + padding-right: 1px +} + +.cke_rtl .cke_dialog_ui_vbox_child, .cke_rtl .cke_dialog_ui_hbox_child, .cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_last { + padding-right: 2px !important +} + +.cke_hc .cke_dialog_title, .cke_hc .cke_dialog_footer, .cke_hc a.cke_dialog_tab, .cke_hc a.cke_dialog_ui_button, .cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button_ok, .cke_hc a.cke_dialog_ui_button_ok:hover { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 0 +} + +.cke_dialog_footer { + filter: "" } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_opera.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_opera.css index 903418fa0..4f4b0db2c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_opera.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/dialog_opera.css @@ -1,704 +1,704 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_dialog { - visibility: visible -} - -.cke_dialog_body { - z-index: 1; - background: #eaeaea; - border: 1px solid #b2b2b2; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_browser_gecko19 .cke_dialog_body { - position: relative -} - -.cke_dialog strong { - font-weight: bold -} - -.cke_dialog_title { - font-weight: bold; - font-size: 13px; - cursor: move; - position: relative; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #999; - padding: 6px 10px; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_dialog_contents { - background-color: #fff; - overflow: auto; - padding: 15px 10px 5px 10px; - margin-top: 30px; - border-top: 1px solid #bfbfbf; - -moz-border-radius: 0 0 3px 3px; - -webkit-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px -} - -.cke_dialog_contents_body { - overflow: auto; - padding: 17px 10px 5px 10px; - margin-top: 22px -} - -.cke_dialog_footer { - text-align: right; - position: relative; - border: 0; - outline: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_rtl .cke_dialog_footer { - text-align: left -} - -.cke_hc .cke_dialog_footer { - outline: 0; - border-top: 1px solid #fff -} - -.cke_dialog .cke_resizer { - margin-top: 22px -} - -.cke_dialog .cke_resizer_rtl { - margin-left: 5px -} - -.cke_dialog .cke_resizer_ltr { - margin-right: 5px -} - -.cke_dialog_tabs { - height: 24px; - display: inline-block; - margin: 5px 0 0; - position: absolute; - z-index: 2; - left: 10px -} - -.cke_rtl .cke_dialog_tabs { - right: 10px -} - -a.cke_dialog_tab { - height: 16px; - padding: 4px 8px; - margin-right: 3px; - display: inline-block; - cursor: pointer; - line-height: 16px; - outline: 0; - color: #595959; - border: 1px solid #bfbfbf; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - background: #d4d4d4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); - background-image: -moz-linear-gradient(top, #fafafa, #ededed); - background-image: -webkit-linear-gradient(top, #fafafa, #ededed); - background-image: -o-linear-gradient(top, #fafafa, #ededed); - background-image: -ms-linear-gradient(top, #fafafa, #ededed); - background-image: linear-gradient(top, #fafafa, #ededed); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') -} - -.cke_rtl a.cke_dialog_tab { - margin-right: 0; - margin-left: 3px -} - -a.cke_dialog_tab:hover { - background: #ebebeb; - background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); - background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); - background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) -} - -a.cke_dialog_tab_selected { - background: #fff; - color: #383838; - border-bottom-color: #fff; - cursor: default; - filter: none -} - -a.cke_dialog_tab_selected:hover { - background: #ededed; - background: -moz-linear-gradient(top, #ededed 0, #fff 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); - background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); - background: -o-linear-gradient(top, #ededed 0, #fff 100%); - background: -ms-linear-gradient(top, #ededed 0, #fff 100%); - background: linear-gradient(to bottom, #ededed 0, #fff 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) -} - -.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { - border: 3px solid; - padding: 2px 6px -} - -a.cke_dialog_tab_disabled { - color: #bababa; - cursor: default -} - -.cke_single_page .cke_dialog_tabs { - display: none -} - -.cke_single_page .cke_dialog_contents { - padding-top: 5px; - margin-top: 0; - border-top: 0 -} - -.cke_dialog_close_button { - background-image: url(images/close.png); - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - cursor: pointer; - text-align: center; - height: 20px; - width: 20px; - top: 5px; - z-index: 5 -} - -.cke_hidpi .cke_dialog_close_button { - background-image: url(images/hidpi/close.png); - background-size: 16px -} - -.cke_dialog_close_button span { - display: none -} - -.cke_hc .cke_dialog_close_button span { - display: inline; - cursor: pointer; - font-weight: bold; - position: relative; - top: 3px -} - -.cke_ltr .cke_dialog_close_button { - right: 5px -} - -.cke_rtl .cke_dialog_close_button { - left: 6px -} - -.cke_dialog_close_button { - top: 4px -} - -div.cke_disabled .cke_dialog_ui_labeled_content div * { - background-color: #ddd; - cursor: default -} - -.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { - margin: auto -} - -.cke_dialog_ui_vbox_child { - padding: 5px 0 -} - -.cke_dialog_ui_hbox { - width: 100% -} - -.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { - vertical-align: top -} - -.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { - padding-right: 10px -} - -.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { - padding-left: 10px -} - -.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-right: 5px -} - -.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { - padding-left: 5px; - padding-right: 0 -} - -.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { - border: 1px solid -} - -textarea.cke_dialog_ui_input_textarea { - overflow: auto; - resize: none -} - -input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 4px 6px; - outline: 0; - width: 100%; - *width: 95%; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { - border: 1px solid #aeb3b9; - border-top-color: #a0a6ad -} - -input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { - outline: 0; - border: 1px solid #139ff7; - border-top-color: #1392e9 -} - -a.cke_dialog_ui_button { - display: inline-block; - *display: inline; - *zoom: 1; - padding: 3px 0; - margin: 0; - text-align: center; - color: #333; - vertical-align: middle; - cursor: pointer; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -span.cke_dialog_ui_button { - padding: 0 12px -} - -a.cke_dialog_ui_button:hover { - border-color: #9e9e9e; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { - border-color: #969696; - outline: 0; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; - box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset -} - -.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { - border: 3px solid; - padding-top: 1px; - padding-bottom: 1px -} - -.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { - padding-left: 10px; - padding-right: 10px -} - -.cke_dialog_footer_buttons a.cke_dialog_ui_button span { - color: inherit; - font-size: 12px; - font-weight: bold; - line-height: 20px -} - -a.cke_dialog_ui_button_ok { - color: #fff; - text-shadow: 0 -1px 0 #55830c; - border-color: #62a60a #62a60a #4d9200; - background: #69b10b; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); - background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); - background-image: -o-linear-gradient(top, #9ad717, #69b10b); - background-image: linear-gradient(to bottom, #9ad717, #69b10b); - background-image: -moz-linear-gradient(top, #9ad717, #69b10b); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') -} - -a.cke_dialog_ui_button_ok:hover { - border-color: #5b9909 #5b9909 #478500; - background: #88be14; - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); - background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); - background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); - background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) -} - -a.cke_dialog_ui_button span { - text-shadow: 0 1px 0 #fff -} - -a.cke_dialog_ui_button_ok span { - text-shadow: 0 -1px 0 #55830c -} - -span.cke_dialog_ui_button { - cursor: pointer -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { - border-width: 2px; - padding: 2px 0 -} - -a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { - border-color: #568c0a -} - -a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { - padding: 0 11px -} - -.cke_dialog_footer_buttons { - display: inline-table; - margin: 5px; - width: auto; - position: relative; - vertical-align: middle -} - -div.cke_dialog_ui_input_select { - display: table -} - -select.cke_dialog_ui_input_select { - height: 24px; - line-height: 24px; - background-color: #fff; - border: 1px solid #c9cccf; - border-top-color: #aeb3b9; - padding: 2px 6px; - outline: 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset -} - -.cke_dialog_ui_input_file { - width: 100%; - height: 25px -} - -.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { - outline: 1px dotted -} - -.cke_dialog .cke_dark_background { - background-color: #dedede -} - -.cke_dialog .cke_light_background { - background-color: #ebebeb -} - -.cke_dialog .cke_centered { - text-align: center -} - -.cke_dialog a.cke_btn_reset { - float: right; - background: url(images/refresh.png) top left no-repeat; - width: 16px; - height: 16px; - border: 1px none; - font-size: 1px -} - -.cke_hidpi .cke_dialog a.cke_btn_reset { - background-size: 16px; - background-image: url(images/hidpi/refresh.png) -} - -.cke_rtl .cke_dialog a.cke_btn_reset { - float: left -} - -.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { - float: left; - width: 16px; - height: 16px; - background-repeat: no-repeat; - border: none 1px; - font-size: 1px -} - -.cke_dialog a.cke_btn_locked .cke_icon { - display: none -} - -.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { - float: right -} - -.cke_dialog a.cke_btn_locked { - background-image: url(images/lock.png) -} - -.cke_dialog a.cke_btn_unlocked { - background-image: url(images/lock-open.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { - background-size: 16px -} - -.cke_hidpi .cke_dialog a.cke_btn_locked { - background-image: url(images/hidpi/lock.png) -} - -.cke_hidpi .cke_dialog a.cke_btn_unlocked { - background-image: url(images/hidpi/lock-open.png) -} - -.cke_dialog .cke_btn_over { - border: outset 1px; - cursor: pointer -} - -.cke_dialog .ImagePreviewBox { - border: 2px ridge black; - overflow: scroll; - height: 200px; - width: 300px; - padding: 2px; - background-color: white -} - -.cke_dialog .ImagePreviewBox table td { - white-space: normal -} - -.cke_dialog .ImagePreviewLoader { - position: absolute; - white-space: normal; - overflow: hidden; - height: 160px; - width: 230px; - margin: 2px; - padding: 2px; - opacity: .9; - filter: alpha(opacity = 90); - background-color: #e4e4e4 -} - -.cke_dialog .FlashPreviewBox { - white-space: normal; - border: 2px ridge black; - overflow: auto; - height: 160px; - width: 390px; - padding: 2px; - background-color: white -} - -.cke_dialog .cke_pastetext { - width: 346px; - height: 170px -} - -.cke_dialog .cke_pastetext textarea { - width: 340px; - height: 170px; - resize: none -} - -.cke_dialog iframe.cke_pasteframe { - width: 346px; - height: 130px; - background-color: white; - border: 1px solid #aeb3b9; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px -} - -.cke_dialog .cke_hand { - cursor: pointer -} - -.cke_disabled { - color: #a0a0a0 -} - -.cke_dialog_body .cke_label { - display: none -} - -.cke_dialog_body label { - display: inline; - margin-bottom: auto; - cursor: default -} - -.cke_dialog_body label.cke_required { - font-weight: bold -} - -a.cke_smile { - overflow: hidden; - display: block; - text-align: center; - padding: .3em 0 -} - -a.cke_smile img { - vertical-align: middle -} - -a.cke_specialchar { - cursor: inherit; - display: block; - height: 1.25em; - padding: .2em .3em; - text-align: center -} - -a.cke_smile, a.cke_specialchar { - border: 1px solid transparent -} - -a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { - background: #fff; - outline: 0 -} - -a.cke_smile:hover, a.cke_specialchar:hover { - border-color: #888 -} - -a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { - border-color: #139ff7 -} - -.cke_dialog_contents a.colorChooser { - display: block; - margin-top: 6px; - margin-left: 10px; - width: 80px -} - -.cke_rtl .cke_dialog_contents a.colorChooser { - margin-right: 10px -} - -.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { - outline: 1px dotted #696969 -} - -.cke_iframe_shim { - display: block; - position: absolute; - top: 0; - left: 0; - z-index: -1; - filter: alpha(opacity = 0); - width: 100%; - height: 100% -} - -.cke_dialog_footer { - display: block; - height: 38px -} - -.cke_ltr .cke_dialog_footer>* { - float: right -} - -.cke_rtl .cke_dialog_footer>* { - float: left +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_dialog { + visibility: visible +} + +.cke_dialog_body { + z-index: 1; + background: #eaeaea; + border: 1px solid #b2b2b2; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_browser_gecko19 .cke_dialog_body { + position: relative +} + +.cke_dialog strong { + font-weight: bold +} + +.cke_dialog_title { + font-weight: bold; + font-size: 13px; + cursor: move; + position: relative; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #999; + padding: 6px 10px; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_dialog_contents { + background-color: #fff; + overflow: auto; + padding: 15px 10px 5px 10px; + margin-top: 30px; + border-top: 1px solid #bfbfbf; + -moz-border-radius: 0 0 3px 3px; + -webkit-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px +} + +.cke_dialog_contents_body { + overflow: auto; + padding: 17px 10px 5px 10px; + margin-top: 22px +} + +.cke_dialog_footer { + text-align: right; + position: relative; + border: 0; + outline: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_rtl .cke_dialog_footer { + text-align: left +} + +.cke_hc .cke_dialog_footer { + outline: 0; + border-top: 1px solid #fff +} + +.cke_dialog .cke_resizer { + margin-top: 22px +} + +.cke_dialog .cke_resizer_rtl { + margin-left: 5px +} + +.cke_dialog .cke_resizer_ltr { + margin-right: 5px +} + +.cke_dialog_tabs { + height: 24px; + display: inline-block; + margin: 5px 0 0; + position: absolute; + z-index: 2; + left: 10px +} + +.cke_rtl .cke_dialog_tabs { + right: 10px +} + +a.cke_dialog_tab { + height: 16px; + padding: 4px 8px; + margin-right: 3px; + display: inline-block; + cursor: pointer; + line-height: 16px; + outline: 0; + color: #595959; + border: 1px solid #bfbfbf; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + background: #d4d4d4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#ededed)); + background-image: -moz-linear-gradient(top, #fafafa, #ededed); + background-image: -webkit-linear-gradient(top, #fafafa, #ededed); + background-image: -o-linear-gradient(top, #fafafa, #ededed); + background-image: -ms-linear-gradient(top, #fafafa, #ededed); + background-image: linear-gradient(top, #fafafa, #ededed); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#fafafa', endColorstr = '#ededed') +} + +.cke_rtl a.cke_dialog_tab { + margin-right: 0; + margin-left: 3px +} + +a.cke_dialog_tab:hover { + background: #ebebeb; + background: -moz-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ebebeb), color-stop(100%, #dfdfdf)); + background: -webkit-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -o-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: -ms-linear-gradient(top, #ebebeb 0, #dfdfdf 100%); + background: linear-gradient(to bottom, #ebebeb 0, #dfdfdf 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ebebeb', endColorstr = '#dfdfdf', GradientType = 0) +} + +a.cke_dialog_tab_selected { + background: #fff; + color: #383838; + border-bottom-color: #fff; + cursor: default; + filter: none +} + +a.cke_dialog_tab_selected:hover { + background: #ededed; + background: -moz-linear-gradient(top, #ededed 0, #fff 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ededed), color-stop(100%, #fff)); + background: -webkit-linear-gradient(top, #ededed 0, #fff 100%); + background: -o-linear-gradient(top, #ededed 0, #fff 100%); + background: -ms-linear-gradient(top, #ededed 0, #fff 100%); + background: linear-gradient(to bottom, #ededed 0, #fff 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ededed', endColorstr = '#ffffff', GradientType = 0) +} + +.cke_hc a.cke_dialog_tab:hover, .cke_hc a.cke_dialog_tab_selected { + border: 3px solid; + padding: 2px 6px +} + +a.cke_dialog_tab_disabled { + color: #bababa; + cursor: default +} + +.cke_single_page .cke_dialog_tabs { + display: none +} + +.cke_single_page .cke_dialog_contents { + padding-top: 5px; + margin-top: 0; + border-top: 0 +} + +.cke_dialog_close_button { + background-image: url(images/close.png); + background-repeat: no-repeat; + background-position: 0 0; + position: absolute; + cursor: pointer; + text-align: center; + height: 20px; + width: 20px; + top: 5px; + z-index: 5 +} + +.cke_hidpi .cke_dialog_close_button { + background-image: url(images/hidpi/close.png); + background-size: 16px +} + +.cke_dialog_close_button span { + display: none +} + +.cke_hc .cke_dialog_close_button span { + display: inline; + cursor: pointer; + font-weight: bold; + position: relative; + top: 3px +} + +.cke_ltr .cke_dialog_close_button { + right: 5px +} + +.cke_rtl .cke_dialog_close_button { + left: 6px +} + +.cke_dialog_close_button { + top: 4px +} + +div.cke_disabled .cke_dialog_ui_labeled_content div * { + background-color: #ddd; + cursor: default +} + +.cke_dialog_ui_vbox table, .cke_dialog_ui_hbox table { + margin: auto +} + +.cke_dialog_ui_vbox_child { + padding: 5px 0 +} + +.cke_dialog_ui_hbox { + width: 100% +} + +.cke_dialog_ui_hbox_first, .cke_dialog_ui_hbox_child, .cke_dialog_ui_hbox_last { + vertical-align: top +} + +.cke_ltr .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_ui_hbox_child { + padding-right: 10px +} + +.cke_rtl .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_ui_hbox_child { + padding-left: 10px +} + +.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-right: 5px +} + +.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first, .cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child { + padding-left: 5px; + padding-right: 0 +} + +.cke_hc div.cke_dialog_ui_input_text, .cke_hc div.cke_dialog_ui_input_password, .cke_hc div.cke_dialog_ui_input_textarea, .cke_hc div.cke_dialog_ui_input_select, .cke_hc div.cke_dialog_ui_input_file { + border: 1px solid +} + +textarea.cke_dialog_ui_input_textarea { + overflow: auto; + resize: none +} + +input.cke_dialog_ui_input_text, input.cke_dialog_ui_input_password, textarea.cke_dialog_ui_input_textarea { + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 4px 6px; + outline: 0; + width: 100%; + *width: 95%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +input.cke_dialog_ui_input_text:hover, input.cke_dialog_ui_input_password:hover, textarea.cke_dialog_ui_input_textarea:hover { + border: 1px solid #aeb3b9; + border-top-color: #a0a6ad +} + +input.cke_dialog_ui_input_text:focus, input.cke_dialog_ui_input_password:focus, textarea.cke_dialog_ui_input_textarea:focus, select.cke_dialog_ui_input_select:focus { + outline: 0; + border: 1px solid #139ff7; + border-top-color: #1392e9 +} + +a.cke_dialog_ui_button { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 0; + margin: 0; + text-align: center; + color: #333; + vertical-align: middle; + cursor: pointer; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +span.cke_dialog_ui_button { + padding: 0 12px +} + +a.cke_dialog_ui_button:hover { + border-color: #9e9e9e; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +a.cke_dialog_ui_button:focus, a.cke_dialog_ui_button:active { + border-color: #969696; + outline: 0; + -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset; + box-shadow: 0 0 6px rgba(0, 0, 0, .4) inset +} + +.cke_hc a.cke_dialog_ui_button:hover, .cke_hc a.cke_dialog_ui_button:focus, .cke_hc a.cke_dialog_ui_button:active { + border: 3px solid; + padding-top: 1px; + padding-bottom: 1px +} + +.cke_hc a.cke_dialog_ui_button:hover span, .cke_hc a.cke_dialog_ui_button:focus span, .cke_hc a.cke_dialog_ui_button:active span { + padding-left: 10px; + padding-right: 10px +} + +.cke_dialog_footer_buttons a.cke_dialog_ui_button span { + color: inherit; + font-size: 12px; + font-weight: bold; + line-height: 20px +} + +a.cke_dialog_ui_button_ok { + color: #fff; + text-shadow: 0 -1px 0 #55830c; + border-color: #62a60a #62a60a #4d9200; + background: #69b10b; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ad717), to(#69b10b)); + background-image: -webkit-linear-gradient(top, #9ad717, #69b10b); + background-image: -o-linear-gradient(top, #9ad717, #69b10b); + background-image: linear-gradient(to bottom, #9ad717, #69b10b); + background-image: -moz-linear-gradient(top, #9ad717, #69b10b); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#9ad717', endColorstr = '#69b10b') +} + +a.cke_dialog_ui_button_ok:hover { + border-color: #5b9909 #5b9909 #478500; + background: #88be14; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #88be14), color-stop(100%, #5d9c0a)); + background: -webkit-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: -o-linear-gradient(top, #88be14 0, #5d9c0a 100%); + background: linear-gradient(to bottom, #88be14 0, #5d9c0a 100%); + background: -moz-linear-gradient(top, #88be14 0, #5d9c0a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#88be14', endColorstr = '#5d9c0a', GradientType = 0) +} + +a.cke_dialog_ui_button span { + text-shadow: 0 1px 0 #fff +} + +a.cke_dialog_ui_button_ok span { + text-shadow: 0 -1px 0 #55830c +} + +span.cke_dialog_ui_button { + cursor: pointer +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active, a.cke_dialog_ui_button_cancel:focus, a.cke_dialog_ui_button_cancel:active { + border-width: 2px; + padding: 2px 0 +} + +a.cke_dialog_ui_button_ok:focus, a.cke_dialog_ui_button_ok:active { + border-color: #568c0a +} + +a.cke_dialog_ui_button_ok:focus span, a.cke_dialog_ui_button_ok:active span, a.cke_dialog_ui_button_cancel:focus span, a.cke_dialog_ui_button_cancel:active span { + padding: 0 11px +} + +.cke_dialog_footer_buttons { + display: inline-table; + margin: 5px; + width: auto; + position: relative; + vertical-align: middle +} + +div.cke_dialog_ui_input_select { + display: table +} + +select.cke_dialog_ui_input_select { + height: 24px; + line-height: 24px; + background-color: #fff; + border: 1px solid #c9cccf; + border-top-color: #aeb3b9; + padding: 2px 6px; + outline: 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, .15) inset +} + +.cke_dialog_ui_input_file { + width: 100%; + height: 25px +} + +.cke_hc .cke_dialog_ui_labeled_content input:focus, .cke_hc .cke_dialog_ui_labeled_content select:focus, .cke_hc .cke_dialog_ui_labeled_content textarea:focus { + outline: 1px dotted +} + +.cke_dialog .cke_dark_background { + background-color: #dedede +} + +.cke_dialog .cke_light_background { + background-color: #ebebeb +} + +.cke_dialog .cke_centered { + text-align: center +} + +.cke_dialog a.cke_btn_reset { + float: right; + background: url(images/refresh.png) top left no-repeat; + width: 16px; + height: 16px; + border: 1px none; + font-size: 1px +} + +.cke_hidpi .cke_dialog a.cke_btn_reset { + background-size: 16px; + background-image: url(images/hidpi/refresh.png) +} + +.cke_rtl .cke_dialog a.cke_btn_reset { + float: left +} + +.cke_dialog a.cke_btn_locked, .cke_dialog a.cke_btn_unlocked { + float: left; + width: 16px; + height: 16px; + background-repeat: no-repeat; + border: none 1px; + font-size: 1px +} + +.cke_dialog a.cke_btn_locked .cke_icon { + display: none +} + +.cke_rtl .cke_dialog a.cke_btn_locked, .cke_rtl .cke_dialog a.cke_btn_unlocked { + float: right +} + +.cke_dialog a.cke_btn_locked { + background-image: url(images/lock.png) +} + +.cke_dialog a.cke_btn_unlocked { + background-image: url(images/lock-open.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked, .cke_hidpi .cke_dialog a.cke_btn_locked { + background-size: 16px +} + +.cke_hidpi .cke_dialog a.cke_btn_locked { + background-image: url(images/hidpi/lock.png) +} + +.cke_hidpi .cke_dialog a.cke_btn_unlocked { + background-image: url(images/hidpi/lock-open.png) +} + +.cke_dialog .cke_btn_over { + border: outset 1px; + cursor: pointer +} + +.cke_dialog .ImagePreviewBox { + border: 2px ridge black; + overflow: scroll; + height: 200px; + width: 300px; + padding: 2px; + background-color: white +} + +.cke_dialog .ImagePreviewBox table td { + white-space: normal +} + +.cke_dialog .ImagePreviewLoader { + position: absolute; + white-space: normal; + overflow: hidden; + height: 160px; + width: 230px; + margin: 2px; + padding: 2px; + opacity: .9; + filter: alpha(opacity = 90); + background-color: #e4e4e4 +} + +.cke_dialog .FlashPreviewBox { + white-space: normal; + border: 2px ridge black; + overflow: auto; + height: 160px; + width: 390px; + padding: 2px; + background-color: white +} + +.cke_dialog .cke_pastetext { + width: 346px; + height: 170px +} + +.cke_dialog .cke_pastetext textarea { + width: 340px; + height: 170px; + resize: none +} + +.cke_dialog iframe.cke_pasteframe { + width: 346px; + height: 130px; + background-color: white; + border: 1px solid #aeb3b9; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px +} + +.cke_dialog .cke_hand { + cursor: pointer +} + +.cke_disabled { + color: #a0a0a0 +} + +.cke_dialog_body .cke_label { + display: none +} + +.cke_dialog_body label { + display: inline; + margin-bottom: auto; + cursor: default +} + +.cke_dialog_body label.cke_required { + font-weight: bold +} + +a.cke_smile { + overflow: hidden; + display: block; + text-align: center; + padding: .3em 0 +} + +a.cke_smile img { + vertical-align: middle +} + +a.cke_specialchar { + cursor: inherit; + display: block; + height: 1.25em; + padding: .2em .3em; + text-align: center +} + +a.cke_smile, a.cke_specialchar { + border: 1px solid transparent +} + +a.cke_smile:hover, a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:hover, a.cke_specialchar:focus, a.cke_specialchar:active { + background: #fff; + outline: 0 +} + +a.cke_smile:hover, a.cke_specialchar:hover { + border-color: #888 +} + +a.cke_smile:focus, a.cke_smile:active, a.cke_specialchar:focus, a.cke_specialchar:active { + border-color: #139ff7 +} + +.cke_dialog_contents a.colorChooser { + display: block; + margin-top: 6px; + margin-left: 10px; + width: 80px +} + +.cke_rtl .cke_dialog_contents a.colorChooser { + margin-right: 10px +} + +.cke_dialog_ui_checkbox_input:focus, .cke_dialog_ui_radio_input:focus, .cke_btn_over { + outline: 1px dotted #696969 +} + +.cke_iframe_shim { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: -1; + filter: alpha(opacity = 0); + width: 100%; + height: 100% +} + +.cke_dialog_footer { + display: block; + height: 38px +} + +.cke_ltr .cke_dialog_footer>* { + float: right +} + +.cke_rtl .cke_dialog_footer>* { + float: left } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor.css index 29c3e2bb2..25b457dd4 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor.css @@ -1,1785 +1,1785 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_gecko.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_gecko.css index d0b161191..ecfd236c9 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_gecko.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_gecko.css @@ -1,1794 +1,1794 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -.cke_bottom { - padding-bottom: 3px -} - -.cke_combo_text { - margin-bottom: -1px; - margin-top: 1px -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +.cke_bottom { + padding-bottom: 3px +} + +.cke_combo_text { + margin-bottom: -1px; + margin-top: 1px +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie.css index 48224a8b0..93ea9969c 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie.css @@ -1,1813 +1,1813 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie7.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie7.css index c9d889eaa..a3eb7e8dc 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie7.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie7.css @@ -1,1955 +1,1955 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { - float: none -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { - display: inline-block; - vertical-align: top -} - -.cke_toolbox { - display: inline-block; - padding-bottom: 5px; - height: 100% -} - -.cke_rtl .cke_toolbox { - padding-bottom: 0 -} - -.cke_toolbar { - margin-bottom: 5px -} - -.cke_rtl .cke_toolbar { - margin-bottom: 0 -} - -.cke_toolgroup { - height: 26px -} - -.cke_toolgroup, .cke_combo { - position: relative -} - -a.cke_button { - float: none; - vertical-align: top -} - -.cke_toolbar_separator { - display: inline-block; - float: none; - vertical-align: top; - background-color: #c0c0c0 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 0 -} - -.cke_toolbox_collapser .cke_arrow { - border-width: 4px -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - border-width: 3px -} - -.cke_rtl .cke_button_arrow { - padding-top: 8px; - margin-right: 2px -} - -.cke_rtl .cke_combo_inlinelabel { - display: table-cell; - vertical-align: middle -} - -.cke_menubutton { - display: block; - height: 24px -} - -.cke_menubutton_inner { - display: block; - position: relative -} - -.cke_menubutton_icon { - height: 16px; - width: 16px -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: inline-block -} - -.cke_menubutton_label { - width: auto; - vertical-align: top; - line-height: 24px; - height: 24px; - margin: 0 10px 0 0 -} - -.cke_menuarrow { - width: 5px; - height: 6px; - padding: 0; - position: absolute; - right: 8px; - top: 10px; - background-position: 0 0 -} - -.cke_rtl .cke_menubutton_icon { - position: absolute; - right: 0; - top: 0 -} - -.cke_rtl .cke_menubutton_label { - float: right; - clear: both; - margin: 0 24px 0 10px -} - -.cke_hc .cke_rtl .cke_menubutton_label { - margin-right: 0 -} - -.cke_rtl .cke_menuarrow { - left: 8px; - right: auto; - background-position: 0 -24px -} - -.cke_hc .cke_menuarrow { - top: 5px; - padding: 0 5px -} - -.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { - position: relative -} - -.cke_wysiwyg_div { - padding-top: 0 !important; - padding-bottom: 0 !important -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { + float: none +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { + display: inline-block; + vertical-align: top +} + +.cke_toolbox { + display: inline-block; + padding-bottom: 5px; + height: 100% +} + +.cke_rtl .cke_toolbox { + padding-bottom: 0 +} + +.cke_toolbar { + margin-bottom: 5px +} + +.cke_rtl .cke_toolbar { + margin-bottom: 0 +} + +.cke_toolgroup { + height: 26px +} + +.cke_toolgroup, .cke_combo { + position: relative +} + +a.cke_button { + float: none; + vertical-align: top +} + +.cke_toolbar_separator { + display: inline-block; + float: none; + vertical-align: top; + background-color: #c0c0c0 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 0 +} + +.cke_toolbox_collapser .cke_arrow { + border-width: 4px +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + border-width: 3px +} + +.cke_rtl .cke_button_arrow { + padding-top: 8px; + margin-right: 2px +} + +.cke_rtl .cke_combo_inlinelabel { + display: table-cell; + vertical-align: middle +} + +.cke_menubutton { + display: block; + height: 24px +} + +.cke_menubutton_inner { + display: block; + position: relative +} + +.cke_menubutton_icon { + height: 16px; + width: 16px +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: inline-block +} + +.cke_menubutton_label { + width: auto; + vertical-align: top; + line-height: 24px; + height: 24px; + margin: 0 10px 0 0 +} + +.cke_menuarrow { + width: 5px; + height: 6px; + padding: 0; + position: absolute; + right: 8px; + top: 10px; + background-position: 0 0 +} + +.cke_rtl .cke_menubutton_icon { + position: absolute; + right: 0; + top: 0 +} + +.cke_rtl .cke_menubutton_label { + float: right; + clear: both; + margin: 0 24px 0 10px +} + +.cke_hc .cke_rtl .cke_menubutton_label { + margin-right: 0 +} + +.cke_rtl .cke_menuarrow { + left: 8px; + right: auto; + background-position: 0 -24px +} + +.cke_hc .cke_menuarrow { + top: 5px; + padding: 0 5px +} + +.cke_rtl input.cke_dialog_ui_input_text, .cke_rtl input.cke_dialog_ui_input_password { + position: relative +} + +.cke_wysiwyg_div { + padding-top: 0 !important; + padding-bottom: 0 !important +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie8.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie8.css index b0cad9a43..6e0a01a24 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie8.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_ie8.css @@ -1,1825 +1,1825 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_toolbox_collapser .cke_arrow { - border-width: 4px -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - border-width: 3px -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 0 -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_toolbox_collapser .cke_arrow { + border-width: 4px +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + border-width: 3px +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 0 +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_iequirks.css b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_iequirks.css index fff67a9f8..ec0ec8c68 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_iequirks.css +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/editor_iequirks.css @@ -1,1850 +1,1850 @@ -/* -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or http://ckeditor.com/license -*/ -.cke_reset { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none -} - -.cke_reset_all, .cke_reset_all * { - margin: 0; - padding: 0; - border: 0; - background: transparent; - text-decoration: none; - width: auto; - height: auto; - vertical-align: baseline; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - position: static; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - transition: none; - border-collapse: collapse; - font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; - color: #000; - text-align: left; - white-space: nowrap; - cursor: auto; - float: none -} - -.cke_reset_all .cke_rtl * { - text-align: right -} - -.cke_reset_all iframe { - vertical-align: inherit -} - -.cke_reset_all textarea { - white-space: pre -} - -.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { - cursor: text -} - -.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { - cursor: default -} - -.cke_reset_all fieldset { - padding: 10px; - border: 2px groove #e0dfe3 -} - -.cke_reset_all select { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box -} - -.cke_chrome { - display: block; - border: 1px solid #b6b6b6; - padding: 0; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_inner { - display: block; - -webkit-touch-callout: none; - background: #fff; - padding: 0 -} - -.cke_float { - border: 0 -} - -.cke_float .cke_inner { - padding-bottom: 0 -} - -.cke_top, .cke_contents, .cke_bottom { - display: block; - overflow: hidden -} - -.cke_top { - border-bottom: 1px solid #b6b6b6; - padding: 6px 8px 2px; - white-space: normal; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_float .cke_top { - border: 1px solid #b6b6b6; - border-bottom-color: #999 -} - -.cke_bottom { - padding: 6px 8px 2px; - position: relative; - border-top: 1px solid #bfbfbf; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); - background-image: linear-gradient(top, #ebebeb, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') -} - -.cke_browser_ios .cke_contents { - overflow-y: auto; - -webkit-overflow-scrolling: touch -} - -.cke_resizer { - width: 0; - height: 0; - overflow: hidden; - width: 0; - height: 0; - overflow: hidden; - border-width: 10px 10px 0 0; - border-color: transparent #666 transparent transparent; - border-style: dashed solid dashed dashed; - font-size: 0; - vertical-align: bottom; - margin-top: 6px; - margin-bottom: 2px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); - box-shadow: 0 1px 0 rgba(255, 255, 255, .3) -} - -.cke_hc .cke_resizer { - font-size: 15px; - width: auto; - height: auto; - border-width: 0 -} - -.cke_resizer_ltr { - cursor: se-resize; - float: right; - margin-right: -4px -} - -.cke_resizer_rtl { - border-width: 10px 0 0 10px; - border-color: transparent transparent transparent #a5a5a5; - border-style: dashed dashed dashed solid; - cursor: sw-resize; - float: left; - margin-left: -4px; - right: auto -} - -.cke_wysiwyg_div { - display: block; - height: 100%; - overflow: auto; - padding: 0 8px; - outline-style: none; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box -} - -.cke_panel { - visibility: visible; - width: 120px; - height: 100px; - overflow: hidden; - background-color: #fff; - border: 1px solid #b6b6b6; - border-bottom-color: #999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); - box-shadow: 0 0 3px rgba(0, 0, 0, .15) -} - -.cke_menu_panel { - padding: 0; - margin: 0 -} - -.cke_combopanel { - width: 150px; - height: 170px -} - -.cke_panel_frame { - width: 100%; - height: 100%; - font-size: 12px; - overflow: auto; - overflow-x: hidden -} - -.cke_panel_container { - overflow-y: auto; - overflow-x: hidden -} - -.cke_panel_list { - list-style-type: none; - margin: 3px; - padding: 0; - white-space: nowrap -} - -.cke_panel_listItem { - margin: 0; - padding-bottom: 1px -} - -.cke_panel_listItem a { - padding: 3px 4px; - display: block; - border: 1px solid #fff; - color: inherit !important; - text-decoration: none; - overflow: hidden; - text-overflow: ellipsis; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px -} - -* html .cke_panel_listItem a { - width: 100%; - color: #000 -} - -*:first-child+html .cke_panel_listItem a { - color: #000 -} - -.cke_panel_listItem.cke_selected a { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { - border-color: #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_hc .cke_panel_listItem a { - border-style: none -} - -.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_panel_grouptitle { - font-size: 11px; - font-weight: bold; - white-space: nowrap; - margin: 0; - padding: 4px 6px; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .75); - border-bottom: 1px solid #b6b6b6; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - -moz-box-shadow: 0 1px 0 #fff inset; - -webkit-box-shadow: 0 1px 0 #fff inset; - box-shadow: 0 1px 0 #fff inset; - background: #cfd1cf; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); - background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); - background-image: linear-gradient(top, #f5f5f5, #cfd1cf); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') -} - -.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { - margin-top: 0; - margin-bottom: 0 -} - -.cke_colorblock { - padding: 3px; - font-size: 11px; - font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif -} - -.cke_colorblock, .cke_colorblock a { - text-decoration: none; - color: #000 -} - -span.cke_colorbox { - width: 10px; - height: 10px; - border: #808080 1px solid; - float: left -} - -.cke_rtl span.cke_colorbox { - float: right -} - -a.cke_colorbox { - border: #fff 1px solid; - padding: 2px; - float: left; - width: 12px; - height: 12px -} - -.cke_rtl a.cke_colorbox { - float: right -} - -a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -a.cke_colorauto, a.cke_colormore { - border: #fff 1px solid; - padding: 2px; - display: block; - cursor: pointer -} - -a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { - border: #b6b6b6 1px solid; - background-color: #e5e5e5 -} - -.cke_toolbar { - float: left -} - -.cke_rtl .cke_toolbar { - float: right -} - -.cke_toolgroup { - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_hc .cke_toolgroup { - border: 0; - margin-right: 10px; - margin-bottom: 10px -} - -.cke_rtl .cke_toolgroup *:first-child { - -moz-border-radius: 0 2px 2px 0; - -webkit-border-radius: 0 2px 2px 0; - border-radius: 0 2px 2px 0 -} - -.cke_rtl .cke_toolgroup *:last-child { - -moz-border-radius: 2px 0 0 2px; - -webkit-border-radius: 2px 0 0 2px; - border-radius: 2px 0 0 2px -} - -.cke_rtl .cke_toolgroup { - float: right; - margin-left: 6px; - margin-right: 0 -} - -a.cke_button { - display: inline-block; - height: 18px; - padding: 4px 6px; - outline: 0; - cursor: default; - float: left; - border: 0 -} - -.cke_rtl .cke_button { - float: right -} - -.cke_hc .cke_button { - border: 1px solid black; - padding: 3px 5px; - margin: -2px 4px 0 -2px -} - -.cke_button_on { - -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { - border-width: 3px; - padding: 1px 3px -} - -.cke_button_disabled .cke_button_icon { - opacity: .3 -} - -.cke_hc .cke_button_disabled { - opacity: .5 -} - -a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_button_icon { - cursor: inherit; - background-repeat: no-repeat; - margin-top: 1px; - width: 16px; - height: 16px; - float: left; - display: inline-block -} - -.cke_rtl .cke_button_icon { - float: right -} - -.cke_hc .cke_button_icon { - display: none -} - -.cke_button_label { - display: none; - padding-left: 3px; - margin-top: 1px; - line-height: 17px; - vertical-align: middle; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_button_label { - padding-right: 3px; - padding-left: 0; - float: right -} - -.cke_hc .cke_button_label { - padding: 0; - display: inline-block; - font-size: 12px -} - -.cke_button_arrow { - display: inline-block; - margin: 8px 0 0 1px; - width: 0; - height: 0; - cursor: default; - vertical-align: top; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_rtl .cke_button_arrow { - margin-right: 5px; - margin-left: 0 -} - -.cke_hc .cke_button_arrow { - font-size: 10px; - margin: 3px -2px 0 3px; - width: auto; - border: 0 -} - -.cke_toolbar_separator { - float: left; - background-color: #c0c0c0; - background-color: rgba(0, 0, 0, .2); - margin: 5px 2px 0; - height: 18px; - width: 1px; - -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); - box-shadow: 1px 0 1px rgba(255, 255, 255, .5) -} - -.cke_rtl .cke_toolbar_separator { - float: right; - -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); - box-shadow: -1px 0 1px rgba(255, 255, 255, .1) -} - -.cke_hc .cke_toolbar_separator { - width: 0; - border-left: 1px solid; - margin: 1px 5px 0 0 -} - -.cke_toolbar_break { - display: block; - clear: left -} - -.cke_rtl .cke_toolbar_break { - clear: right -} - -.cke_toolbox_collapser { - width: 12px; - height: 11px; - float: right; - margin: 11px 0 0; - font-size: 0; - cursor: default; - text-align: center; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_toolbox_collapser:hover { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min { - margin: 0 2px 4px -} - -.cke_rtl .cke_toolbox_collapser { - float: left -} - -.cke_toolbox_collapser .cke_arrow { - display: inline-block; - height: 0; - width: 0; - font-size: 0; - margin-top: 1px; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-bottom: 3px solid #474747; - border-top: 3px solid transparent -} - -.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { - margin-top: 4px; - border-bottom-color: transparent; - border-top-color: #474747 -} - -.cke_hc .cke_toolbox_collapser .cke_arrow { - font-size: 8px; - width: auto; - border: 0; - margin-top: 0; - margin-right: 2px -} - -.cke_menubutton { - display: block -} - -.cke_menuitem span { - cursor: default -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #d3d3d3; - display: block -} - -.cke_hc .cke_menubutton { - padding: 2px -} - -.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { - border: 2px solid; - padding: 0 -} - -.cke_menubutton_inner { - display: table-row -} - -.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { - display: table-cell -} - -.cke_menubutton_icon { - background-color: #d7d8d7; - opacity: .70; - filter: alpha(opacity = 70); - padding: 4px -} - -.cke_hc .cke_menubutton_icon { - height: 16px; - width: 0; - padding: 4px 0 -} - -.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { - background-color: #d0d2d0 -} - -.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_label { - padding: 0 5px; - background-color: transparent; - width: 100%; - vertical-align: middle -} - -.cke_menubutton_disabled .cke_menubutton_label { - opacity: .3; - filter: alpha(opacity = 30) -} - -.cke_menubutton_on { - border: 1px solid #dedede; - background-color: #f2f2f2; - -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; - box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset -} - -.cke_menubutton_on .cke_menubutton_icon { - padding-right: 3px -} - -.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { - background-color: #eff0ef -} - -.cke_panel_frame .cke_menubutton_label { - display: none -} - -.cke_menuseparator { - background-color: #d3d3d3; - height: 1px; - filter: alpha(opacity = 70); - opacity: .70 -} - -.cke_menuarrow { - background-image: url(images/arrow.png); - background-position: 0 10px; - background-repeat: no-repeat; - padding: 0 5px -} - -.cke_rtl .cke_menuarrow { - background-position: 5px -13px; - background-repeat: no-repeat -} - -.cke_menuarrow span { - display: none -} - -.cke_hc .cke_menuarrow span { - vertical-align: middle; - display: inline -} - -.cke_combo { - display: inline-block; - float: left -} - -.cke_rtl .cke_combo { - float: right -} - -.cke_hc .cke_combo { - margin-top: -2px -} - -.cke_combo_label { - display: none; - float: left; - line-height: 26px; - vertical-align: top; - margin-right: 5px -} - -.cke_rtl .cke_combo_label { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_combo_button { - display: inline-block; - float: left; - margin: 0 6px 5px 0; - border: 1px solid #a6a6a6; - border-bottom-color: #979797; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; - background: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); - background-image: -moz-linear-gradient(top, #fff, #e4e4e4); - background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); - background-image: -o-linear-gradient(top, #fff, #e4e4e4); - background-image: -ms-linear-gradient(top, #fff, #e4e4e4); - background-image: linear-gradient(top, #fff, #e4e4e4); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') -} - -.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { - background: #ccc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); - background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); - background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); - background-image: -o-linear-gradient(top, #f2f2f2, #ccc); - background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); - background-image: linear-gradient(top, #f2f2f2, #ccc); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); - outline: 0 -} - -.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { - border: 1px solid #777; - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; - background: #b5b5b5; - background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); - background-image: -moz-linear-gradient(top, #aaa, #cacaca); - background-image: -webkit-linear-gradient(top, #aaa, #cacaca); - background-image: -o-linear-gradient(top, #aaa, #cacaca); - background-image: -ms-linear-gradient(top, #aaa, #cacaca); - background-image: linear-gradient(top, #aaa, #cacaca); - filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') -} - -.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { - -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); - box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) -} - -.cke_rtl .cke_combo_button { - float: right; - margin-left: 5px; - margin-right: 0 -} - -.cke_hc a.cke_combo_button { - padding: 3px -} - -.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { - border-width: 3px; - padding: 1px -} - -.cke_combo_text { - line-height: 26px; - padding-left: 10px; - text-overflow: ellipsis; - overflow: hidden; - float: left; - cursor: default; - color: #474747; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - width: 60px -} - -.cke_rtl .cke_combo_text { - float: right; - text-align: right; - padding-left: 0; - padding-right: 10px -} - -.cke_hc .cke_combo_text { - line-height: 18px; - font-size: 12px -} - -.cke_combo_open { - cursor: default; - display: inline-block; - font-size: 0; - height: 19px; - line-height: 17px; - margin: 1px 7px 1px; - width: 5px -} - -.cke_hc .cke_combo_open { - height: 12px -} - -.cke_combo_arrow { - margin: 11px 0 0; - float: left; - height: 0; - width: 0; - font-size: 0; - border-left: 3px solid transparent; - border-right: 3px solid transparent; - border-top: 3px solid #474747 -} - -.cke_hc .cke_combo_arrow { - font-size: 10px; - width: auto; - border: 0; - margin-top: 3px -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - opacity: .3 -} - -.cke_path { - float: left; - margin: -2px 0 2px -} - -.cke_path_item, .cke_path_empty { - display: inline-block; - float: left; - padding: 3px 4px; - margin-right: 2px; - cursor: default; - text-decoration: none; - outline: 0; - border: 0; - color: #4c4c4c; - text-shadow: 0 1px 0 #fff; - font-weight: bold; - font-size: 11px -} - -.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { - float: right -} - -a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { - background-color: #bfbfbf; - color: #333; - text-shadow: 0 1px 0 rgba(255, 255, 255, .5); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); - box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) -} - -.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { - border: 2px solid; - padding: 1px 2px -} - -.cke_button__source_label, .cke_button__sourcedialog_label { - display: inline -} - -.cke_combo__fontsize .cke_combo_text { - width: 30px -} - -.cke_combopanel__fontsize { - width: 120px -} - -.cke_source { - font-family: 'Courier New', Monospace; - font-size: small; - background-color: #fff; - white-space: pre -} - -.cke_wysiwyg_frame, .cke_wysiwyg_div { - background-color: #fff -} - -.cke_chrome { - visibility: inherit -} - -.cke_voice_label { - display: none -} - -legend.cke_voice_label { - display: none -} - -a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { - filter: alpha(opacity = 30) -} - -.cke_button_disabled .cke_button_icon { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) -} - -.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { - filter: alpha(opacity = 100) -} - -.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { - filter: alpha(opacity = 30) -} - -.cke_toolbox_collapser { - border: 1px solid #a6a6a6 -} - -.cke_toolbox_collapser .cke_arrow { - margin-top: 1px -} - -.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) -} - -.cke_top, .cke_contents, .cke_bottom { - width: 100% -} - -.cke_button_arrow { - font-size: 0 -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { - float: none -} - -.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { - display: inline-block; - vertical-align: top -} - -.cke_rtl .cke_button_icon { - float: none -} - -.cke_resizer { - width: 10px -} - -.cke_source { - white-space: normal -} - -.cke_bottom { - position: static -} - -.cke_colorbox { - font-size: 0 -} - -.cke_button__about_icon { - background: url(icons.png) no-repeat 0 -0px !important; -} - -.cke_button__bold_icon { - background: url(icons.png) no-repeat 0 -24px !important; -} - -.cke_button__italic_icon { - background: url(icons.png) no-repeat 0 -48px !important; -} - -.cke_button__strike_icon { - background: url(icons.png) no-repeat 0 -72px !important; -} - -.cke_button__subscript_icon { - background: url(icons.png) no-repeat 0 -96px !important; -} - -.cke_button__superscript_icon { - background: url(icons.png) no-repeat 0 -120px !important; -} - -.cke_button__underline_icon { - background: url(icons.png) no-repeat 0 -144px !important; -} - -.cke_button__bidiltr_icon { - background: url(icons.png) no-repeat 0 -168px !important; -} - -.cke_button__bidirtl_icon { - background: url(icons.png) no-repeat 0 -192px !important; -} - -.cke_button__blockquote_icon { - background: url(icons.png) no-repeat 0 -216px !important; -} - -.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -240px !important; -} - -.cke_ltr .cke_button__copy_icon { - background: url(icons.png) no-repeat 0 -264px !important; -} - -.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -288px !important; -} - -.cke_ltr .cke_button__cut_icon { - background: url(icons.png) no-repeat 0 -312px !important; -} - -.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -336px !important; -} - -.cke_ltr .cke_button__paste_icon { - background: url(icons.png) no-repeat 0 -360px !important; -} - -.cke_button__bgcolor_icon { - background: url(icons.png) no-repeat 0 -384px !important; -} - -.cke_button__textcolor_icon { - background: url(icons.png) no-repeat 0 -408px !important; -} - -.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -432px !important; -} - -.cke_ltr .cke_button__templates_icon { - background: url(icons.png) no-repeat 0 -456px !important; -} - -.cke_button__creatediv_icon { - background: url(icons.png) no-repeat 0 -480px !important; -} - -.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -504px !important; -} - -.cke_ltr .cke_button__find_icon { - background: url(icons.png) no-repeat 0 -528px !important; -} - -.cke_button__replace_icon { - background: url(icons.png) no-repeat 0 -552px !important; -} - -.cke_button__flash_icon { - background: url(icons.png) no-repeat 0 -576px !important; -} - -.cke_button__button_icon { - background: url(icons.png) no-repeat 0 -600px !important; -} - -.cke_button__checkbox_icon { - background: url(icons.png) no-repeat 0 -624px !important; -} - -.cke_button__form_icon { - background: url(icons.png) no-repeat 0 -648px !important; -} - -.cke_button__hiddenfield_icon { - background: url(icons.png) no-repeat 0 -672px !important; -} - -.cke_button__imagebutton_icon { - background: url(icons.png) no-repeat 0 -696px !important; -} - -.cke_button__radio_icon { - background: url(icons.png) no-repeat 0 -720px !important; -} - -.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -744px !important; -} - -.cke_ltr .cke_button__select_icon { - background: url(icons.png) no-repeat 0 -768px !important; -} - -.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -792px !important; -} - -.cke_ltr .cke_button__textarea_icon { - background: url(icons.png) no-repeat 0 -816px !important; -} - -.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -840px !important; -} - -.cke_ltr .cke_button__textfield_icon { - background: url(icons.png) no-repeat 0 -864px !important; -} - -.cke_button__horizontalrule_icon { - background: url(icons.png) no-repeat 0 -888px !important; -} - -.cke_button__iframe_icon { - background: url(icons.png) no-repeat 0 -912px !important; -} - -.cke_button__image_icon { - background: url(icons.png) no-repeat 0 -936px !important; -} - -.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -960px !important; -} - -.cke_ltr .cke_button__indent_icon { - background: url(icons.png) no-repeat 0 -984px !important; -} - -.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1008px !important; -} - -.cke_ltr .cke_button__outdent_icon { - background: url(icons.png) no-repeat 0 -1032px !important; -} - -.cke_button__smiley_icon { - background: url(icons.png) no-repeat 0 -1056px !important; -} - -.cke_button__justifyblock_icon { - background: url(icons.png) no-repeat 0 -1080px !important; -} - -.cke_button__justifycenter_icon { - background: url(icons.png) no-repeat 0 -1104px !important; -} - -.cke_button__justifyleft_icon { - background: url(icons.png) no-repeat 0 -1128px !important; -} - -.cke_button__justifyright_icon { - background: url(icons.png) no-repeat 0 -1152px !important; -} - -.cke_button__language_icon { - background: url(icons.png) no-repeat 0 -1176px !important; -} - -.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1200px !important; -} - -.cke_ltr .cke_button__anchor_icon { - background: url(icons.png) no-repeat 0 -1224px !important; -} - -.cke_button__link_icon { - background: url(icons.png) no-repeat 0 -1248px !important; -} - -.cke_button__unlink_icon { - background: url(icons.png) no-repeat 0 -1272px !important; -} - -.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1296px !important; -} - -.cke_ltr .cke_button__bulletedlist_icon { - background: url(icons.png) no-repeat 0 -1320px !important; -} - -.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1344px !important; -} - -.cke_ltr .cke_button__numberedlist_icon { - background: url(icons.png) no-repeat 0 -1368px !important; -} - -.cke_button__maximize_icon { - background: url(icons.png) no-repeat 0 -1392px !important; -} - -.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1416px !important; -} - -.cke_ltr .cke_button__newpage_icon { - background: url(icons.png) no-repeat 0 -1440px !important; -} - -.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1464px !important; -} - -.cke_ltr .cke_button__pagebreak_icon { - background: url(icons.png) no-repeat 0 -1488px !important; -} - -.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1512px !important; -} - -.cke_ltr .cke_button__pastetext_icon { - background: url(icons.png) no-repeat 0 -1536px !important; -} - -.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1560px !important; -} - -.cke_ltr .cke_button__pastefromword_icon { - background: url(icons.png) no-repeat 0 -1584px !important; -} - -.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1608px !important; -} - -.cke_ltr .cke_button__preview_icon { - background: url(icons.png) no-repeat 0 -1632px !important; -} - -.cke_button__print_icon { - background: url(icons.png) no-repeat 0 -1656px !important; -} - -.cke_button__removeformat_icon { - background: url(icons.png) no-repeat 0 -1680px !important; -} - -.cke_button__save_icon { - background: url(icons.png) no-repeat 0 -1704px !important; -} - -.cke_button__selectall_icon { - background: url(icons.png) no-repeat 0 -1728px !important; -} - -.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1752px !important; -} - -.cke_ltr .cke_button__showblocks_icon { - background: url(icons.png) no-repeat 0 -1776px !important; -} - -.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1800px !important; -} - -.cke_ltr .cke_button__source_icon { - background: url(icons.png) no-repeat 0 -1824px !important; -} - -.cke_button__specialchar_icon { - background: url(icons.png) no-repeat 0 -1848px !important; -} - -.cke_button__scayt_icon { - background: url(icons.png) no-repeat 0 -1872px !important; -} - -.cke_button__table_icon { - background: url(icons.png) no-repeat 0 -1896px !important; -} - -.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1920px !important; -} - -.cke_ltr .cke_button__redo_icon { - background: url(icons.png) no-repeat 0 -1944px !important; -} - -.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1968px !important; -} - -.cke_ltr .cke_button__undo_icon { - background: url(icons.png) no-repeat 0 -1992px !important; -} - -.cke_button__spellchecker_icon { - background: url(icons.png) no-repeat 0 -2016px !important; -} - -.cke_hidpi .cke_button__about_icon { - background: url(icons_hidpi.png) no-repeat 0 -0px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bold_icon { - background: url(icons_hidpi.png) no-repeat 0 -24px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__italic_icon { - background: url(icons_hidpi.png) no-repeat 0 -48px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__strike_icon { - background: url(icons_hidpi.png) no-repeat 0 -72px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__subscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -96px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__superscript_icon { - background: url(icons_hidpi.png) no-repeat 0 -120px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__underline_icon { - background: url(icons_hidpi.png) no-repeat 0 -144px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidiltr_icon { - background: url(icons_hidpi.png) no-repeat 0 -168px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bidirtl_icon { - background: url(icons_hidpi.png) no-repeat 0 -192px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__blockquote_icon { - background: url(icons_hidpi.png) no-repeat 0 -216px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -240px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { - background: url(icons_hidpi.png) no-repeat 0 -264px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -288px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { - background: url(icons_hidpi.png) no-repeat 0 -312px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -336px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { - background: url(icons_hidpi.png) no-repeat 0 -360px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__bgcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -384px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__textcolor_icon { - background: url(icons_hidpi.png) no-repeat 0 -408px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -432px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { - background: url(icons_hidpi.png) no-repeat 0 -456px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__creatediv_icon { - background: url(icons_hidpi.png) no-repeat 0 -480px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -504px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { - background: url(icons_hidpi.png) no-repeat 0 -528px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__replace_icon { - background: url(icons_hidpi.png) no-repeat 0 -552px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__flash_icon { - background: url(icons_hidpi.png) no-repeat 0 -576px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__button_icon { - background: url(icons_hidpi.png) no-repeat 0 -600px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__checkbox_icon { - background: url(icons_hidpi.png) no-repeat 0 -624px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__form_icon { - background: url(icons_hidpi.png) no-repeat 0 -648px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__hiddenfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -672px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__imagebutton_icon { - background: url(icons_hidpi.png) no-repeat 0 -696px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__radio_icon { - background: url(icons_hidpi.png) no-repeat 0 -720px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -744px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { - background: url(icons_hidpi.png) no-repeat 0 -768px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -792px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { - background: url(icons_hidpi.png) no-repeat 0 -816px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -840px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { - background: url(icons_hidpi.png) no-repeat 0 -864px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__horizontalrule_icon { - background: url(icons_hidpi.png) no-repeat 0 -888px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__iframe_icon { - background: url(icons_hidpi.png) no-repeat 0 -912px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__image_icon { - background: url(icons_hidpi.png) no-repeat 0 -936px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -960px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { - background: url(icons_hidpi.png) no-repeat 0 -984px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1008px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { - background: url(icons_hidpi.png) no-repeat 0 -1032px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__smiley_icon { - background: url(icons_hidpi.png) no-repeat 0 -1056px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyblock_icon { - background: url(icons_hidpi.png) no-repeat 0 -1080px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifycenter_icon { - background: url(icons_hidpi.png) no-repeat 0 -1104px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyleft_icon { - background: url(icons_hidpi.png) no-repeat 0 -1128px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__justifyright_icon { - background: url(icons_hidpi.png) no-repeat 0 -1152px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__language_icon { - background: url(icons_hidpi.png) no-repeat 0 -1176px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1200px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { - background: url(icons_hidpi.png) no-repeat 0 -1224px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__link_icon { - background: url(icons_hidpi.png) no-repeat 0 -1248px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__unlink_icon { - background: url(icons_hidpi.png) no-repeat 0 -1272px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1296px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1320px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1344px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { - background: url(icons_hidpi.png) no-repeat 0 -1368px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__maximize_icon { - background: url(icons_hidpi.png) no-repeat 0 -1392px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1416px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { - background: url(icons_hidpi.png) no-repeat 0 -1440px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1464px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { - background: url(icons_hidpi.png) no-repeat 0 -1488px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1512px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { - background: url(icons_hidpi.png) no-repeat 0 -1536px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1560px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { - background: url(icons_hidpi.png) no-repeat 0 -1584px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1608px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { - background: url(icons_hidpi.png) no-repeat 0 -1632px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__print_icon { - background: url(icons_hidpi.png) no-repeat 0 -1656px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__removeformat_icon { - background: url(icons_hidpi.png) no-repeat 0 -1680px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__save_icon { - background: url(icons_hidpi.png) no-repeat 0 -1704px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__selectall_icon { - background: url(icons_hidpi.png) no-repeat 0 -1728px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1752px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { - background: url(icons_hidpi.png) no-repeat 0 -1776px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1800px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { - background: url(icons_hidpi.png) no-repeat 0 -1824px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__specialchar_icon { - background: url(icons_hidpi.png) no-repeat 0 -1848px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__scayt_icon { - background: url(icons_hidpi.png) no-repeat 0 -1872px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__table_icon { - background: url(icons_hidpi.png) no-repeat 0 -1896px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1920px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1944px !important; - background-size: 16px !important; -} - -.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1968px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { - background: url(icons_hidpi.png) no-repeat 0 -1992px !important; - background-size: 16px !important; -} - -.cke_hidpi .cke_button__spellchecker_icon { - background: url(icons_hidpi.png) no-repeat 0 -2016px !important; - background-size: 16px !important; +/* +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.md or http://ckeditor.com/license +*/ +.cke_reset { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none +} + +.cke_reset_all, .cke_reset_all * { + margin: 0; + padding: 0; + border: 0; + background: transparent; + text-decoration: none; + width: auto; + height: auto; + vertical-align: baseline; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + position: static; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + transition: none; + border-collapse: collapse; + font: normal normal normal 12px Arial, Helvetica, Tahoma, Verdana, Sans-Serif; + color: #000; + text-align: left; + white-space: nowrap; + cursor: auto; + float: none +} + +.cke_reset_all .cke_rtl * { + text-align: right +} + +.cke_reset_all iframe { + vertical-align: inherit +} + +.cke_reset_all textarea { + white-space: pre +} + +.cke_reset_all textarea, .cke_reset_all input[type="text"], .cke_reset_all input[type="password"] { + cursor: text +} + +.cke_reset_all textarea[disabled], .cke_reset_all input[type="text"][disabled], .cke_reset_all input[type="password"][disabled] { + cursor: default +} + +.cke_reset_all fieldset { + padding: 10px; + border: 2px groove #e0dfe3 +} + +.cke_reset_all select { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box +} + +.cke_chrome { + display: block; + border: 1px solid #b6b6b6; + padding: 0; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_inner { + display: block; + -webkit-touch-callout: none; + background: #fff; + padding: 0 +} + +.cke_float { + border: 0 +} + +.cke_float .cke_inner { + padding-bottom: 0 +} + +.cke_top, .cke_contents, .cke_bottom { + display: block; + overflow: hidden +} + +.cke_top { + border-bottom: 1px solid #b6b6b6; + padding: 6px 8px 2px; + white-space: normal; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_float .cke_top { + border: 1px solid #b6b6b6; + border-bottom-color: #999 +} + +.cke_bottom { + padding: 6px 8px 2px; + position: relative; + border-top: 1px solid #bfbfbf; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -webkit-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -o-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: -ms-linear-gradient(top, #ebebeb, #cfd1cf); + background-image: linear-gradient(top, #ebebeb, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ebebeb', endColorstr = '#cfd1cf') +} + +.cke_browser_ios .cke_contents { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.cke_resizer { + width: 0; + height: 0; + overflow: hidden; + width: 0; + height: 0; + overflow: hidden; + border-width: 10px 10px 0 0; + border-color: transparent #666 transparent transparent; + border-style: dashed solid dashed dashed; + font-size: 0; + vertical-align: bottom; + margin-top: 6px; + margin-bottom: 2px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .3); + box-shadow: 0 1px 0 rgba(255, 255, 255, .3) +} + +.cke_hc .cke_resizer { + font-size: 15px; + width: auto; + height: auto; + border-width: 0 +} + +.cke_resizer_ltr { + cursor: se-resize; + float: right; + margin-right: -4px +} + +.cke_resizer_rtl { + border-width: 10px 0 0 10px; + border-color: transparent transparent transparent #a5a5a5; + border-style: dashed dashed dashed solid; + cursor: sw-resize; + float: left; + margin-left: -4px; + right: auto +} + +.cke_wysiwyg_div { + display: block; + height: 100%; + overflow: auto; + padding: 0 8px; + outline-style: none; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.cke_panel { + visibility: visible; + width: 120px; + height: 100px; + overflow: hidden; + background-color: #fff; + border: 1px solid #b6b6b6; + border-bottom-color: #999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); + box-shadow: 0 0 3px rgba(0, 0, 0, .15) +} + +.cke_menu_panel { + padding: 0; + margin: 0 +} + +.cke_combopanel { + width: 150px; + height: 170px +} + +.cke_panel_frame { + width: 100%; + height: 100%; + font-size: 12px; + overflow: auto; + overflow-x: hidden +} + +.cke_panel_container { + overflow-y: auto; + overflow-x: hidden +} + +.cke_panel_list { + list-style-type: none; + margin: 3px; + padding: 0; + white-space: nowrap +} + +.cke_panel_listItem { + margin: 0; + padding-bottom: 1px +} + +.cke_panel_listItem a { + padding: 3px 4px; + display: block; + border: 1px solid #fff; + color: inherit !important; + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px +} + +* html .cke_panel_listItem a { + width: 100%; + color: #000 +} + +*:first-child+html .cke_panel_listItem a { + color: #000 +} + +.cke_panel_listItem.cke_selected a { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_panel_listItem a:hover, .cke_panel_listItem a:focus, .cke_panel_listItem a:active { + border-color: #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_hc .cke_panel_listItem a { + border-style: none +} + +.cke_hc .cke_panel_listItem a:hover, .cke_hc .cke_panel_listItem a:focus, .cke_hc .cke_panel_listItem a:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_panel_grouptitle { + font-size: 11px; + font-weight: bold; + white-space: nowrap; + margin: 0; + padding: 4px 6px; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .75); + border-bottom: 1px solid #b6b6b6; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + -moz-box-shadow: 0 1px 0 #fff inset; + -webkit-box-shadow: 0 1px 0 #fff inset; + box-shadow: 0 1px 0 #fff inset; + background: #cfd1cf; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#cfd1cf)); + background-image: -moz-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -webkit-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -o-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: -ms-linear-gradient(top, #f5f5f5, #cfd1cf); + background-image: linear-gradient(top, #f5f5f5, #cfd1cf); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f5f5f5', endColorstr = '#cfd1cf') +} + +.cke_panel_listItem p, .cke_panel_listItem h1, .cke_panel_listItem h2, .cke_panel_listItem h3, .cke_panel_listItem h4, .cke_panel_listItem h5, .cke_panel_listItem h6, .cke_panel_listItem pre { + margin-top: 0; + margin-bottom: 0 +} + +.cke_colorblock { + padding: 3px; + font-size: 11px; + font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif +} + +.cke_colorblock, .cke_colorblock a { + text-decoration: none; + color: #000 +} + +span.cke_colorbox { + width: 10px; + height: 10px; + border: #808080 1px solid; + float: left +} + +.cke_rtl span.cke_colorbox { + float: right +} + +a.cke_colorbox { + border: #fff 1px solid; + padding: 2px; + float: left; + width: 12px; + height: 12px +} + +.cke_rtl a.cke_colorbox { + float: right +} + +a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +a.cke_colorauto, a.cke_colormore { + border: #fff 1px solid; + padding: 2px; + display: block; + cursor: pointer +} + +a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore { + border: #b6b6b6 1px solid; + background-color: #e5e5e5 +} + +.cke_toolbar { + float: left +} + +.cke_rtl .cke_toolbar { + float: right +} + +.cke_toolgroup { + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_hc .cke_toolgroup { + border: 0; + margin-right: 10px; + margin-bottom: 10px +} + +.cke_rtl .cke_toolgroup *:first-child { + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0 +} + +.cke_rtl .cke_toolgroup *:last-child { + -moz-border-radius: 2px 0 0 2px; + -webkit-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px +} + +.cke_rtl .cke_toolgroup { + float: right; + margin-left: 6px; + margin-right: 0 +} + +a.cke_button { + display: inline-block; + height: 18px; + padding: 4px 6px; + outline: 0; + cursor: default; + float: left; + border: 0 +} + +.cke_rtl .cke_button { + float: right +} + +.cke_hc .cke_button { + border: 1px solid black; + padding: 3px 5px; + margin: -2px 4px 0 -2px +} + +.cke_button_on { + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 5px rgba(0, 0, 0, .6) inset, 0 1px 0 rgba(0, 0, 0, .2); + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc a.cke_button_disabled:hover, .cke_hc a.cke_button_disabled:focus, .cke_hc a.cke_button_disabled:active { + border-width: 3px; + padding: 1px 3px +} + +.cke_button_disabled .cke_button_icon { + opacity: .3 +} + +.cke_hc .cke_button_disabled { + opacity: .5 +} + +a.cke_button_on:hover, a.cke_button_on:focus, a.cke_button_on:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +a.cke_button_off:hover, a.cke_button_off:focus, a.cke_button_off:active, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + -moz-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + box-shadow: 0 0 1px rgba(0, 0, 0, .3) inset; + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_button_icon { + cursor: inherit; + background-repeat: no-repeat; + margin-top: 1px; + width: 16px; + height: 16px; + float: left; + display: inline-block +} + +.cke_rtl .cke_button_icon { + float: right +} + +.cke_hc .cke_button_icon { + display: none +} + +.cke_button_label { + display: none; + padding-left: 3px; + margin-top: 1px; + line-height: 17px; + vertical-align: middle; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_button_label { + padding-right: 3px; + padding-left: 0; + float: right +} + +.cke_hc .cke_button_label { + padding: 0; + display: inline-block; + font-size: 12px +} + +.cke_button_arrow { + display: inline-block; + margin: 8px 0 0 1px; + width: 0; + height: 0; + cursor: default; + vertical-align: top; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_rtl .cke_button_arrow { + margin-right: 5px; + margin-left: 0 +} + +.cke_hc .cke_button_arrow { + font-size: 10px; + margin: 3px -2px 0 3px; + width: auto; + border: 0 +} + +.cke_toolbar_separator { + float: left; + background-color: #c0c0c0; + background-color: rgba(0, 0, 0, .2); + margin: 5px 2px 0; + height: 18px; + width: 1px; + -webkit-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + -moz-box-shadow: 1px 0 1px rgba(255, 255, 255, .5); + box-shadow: 1px 0 1px rgba(255, 255, 255, .5) +} + +.cke_rtl .cke_toolbar_separator { + float: right; + -webkit-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + -moz-box-shadow: -1px 0 1px rgba(255, 255, 255, .1); + box-shadow: -1px 0 1px rgba(255, 255, 255, .1) +} + +.cke_hc .cke_toolbar_separator { + width: 0; + border-left: 1px solid; + margin: 1px 5px 0 0 +} + +.cke_toolbar_break { + display: block; + clear: left +} + +.cke_rtl .cke_toolbar_break { + clear: right +} + +.cke_toolbox_collapser { + width: 12px; + height: 11px; + float: right; + margin: 11px 0 0; + font-size: 0; + cursor: default; + text-align: center; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_toolbox_collapser:hover { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc') +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min { + margin: 0 2px 4px +} + +.cke_rtl .cke_toolbox_collapser { + float: left +} + +.cke_toolbox_collapser .cke_arrow { + display: inline-block; + height: 0; + width: 0; + font-size: 0; + margin-top: 1px; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-bottom: 3px solid #474747; + border-top: 3px solid transparent +} + +.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow { + margin-top: 4px; + border-bottom-color: transparent; + border-top-color: #474747 +} + +.cke_hc .cke_toolbox_collapser .cke_arrow { + font-size: 8px; + width: auto; + border: 0; + margin-top: 0; + margin-right: 2px +} + +.cke_menubutton { + display: block +} + +.cke_menuitem span { + cursor: default +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #d3d3d3; + display: block +} + +.cke_hc .cke_menubutton { + padding: 2px +} + +.cke_hc .cke_menubutton:hover, .cke_hc .cke_menubutton:focus, .cke_hc .cke_menubutton:active { + border: 2px solid; + padding: 0 +} + +.cke_menubutton_inner { + display: table-row +} + +.cke_menubutton_icon, .cke_menubutton_label, .cke_menuarrow { + display: table-cell +} + +.cke_menubutton_icon { + background-color: #d7d8d7; + opacity: .70; + filter: alpha(opacity = 70); + padding: 4px +} + +.cke_hc .cke_menubutton_icon { + height: 16px; + width: 0; + padding: 4px 0 +} + +.cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon { + background-color: #d0d2d0 +} + +.cke_menubutton_disabled:hover .cke_menubutton_icon, .cke_menubutton_disabled:focus .cke_menubutton_icon, .cke_menubutton_disabled:active .cke_menubutton_icon { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_label { + padding: 0 5px; + background-color: transparent; + width: 100%; + vertical-align: middle +} + +.cke_menubutton_disabled .cke_menubutton_label { + opacity: .3; + filter: alpha(opacity = 30) +} + +.cke_menubutton_on { + border: 1px solid #dedede; + background-color: #f2f2f2; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset; + box-shadow: 0 0 2px rgba(0, 0, 0, .1) inset +} + +.cke_menubutton_on .cke_menubutton_icon { + padding-right: 3px +} + +.cke_menubutton:hover, .cke_menubutton:focus, .cke_menubutton:active { + background-color: #eff0ef +} + +.cke_panel_frame .cke_menubutton_label { + display: none +} + +.cke_menuseparator { + background-color: #d3d3d3; + height: 1px; + filter: alpha(opacity = 70); + opacity: .70 +} + +.cke_menuarrow { + background-image: url(images/arrow.png); + background-position: 0 10px; + background-repeat: no-repeat; + padding: 0 5px +} + +.cke_rtl .cke_menuarrow { + background-position: 5px -13px; + background-repeat: no-repeat +} + +.cke_menuarrow span { + display: none +} + +.cke_hc .cke_menuarrow span { + vertical-align: middle; + display: inline +} + +.cke_combo { + display: inline-block; + float: left +} + +.cke_rtl .cke_combo { + float: right +} + +.cke_hc .cke_combo { + margin-top: -2px +} + +.cke_combo_label { + display: none; + float: left; + line-height: 26px; + vertical-align: top; + margin-right: 5px +} + +.cke_rtl .cke_combo_label { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_combo_button { + display: inline-block; + float: left; + margin: 0 6px 5px 0; + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 0 2px rgba(255, 255, 255, .15) inset, 0 1px 0 rgba(255, 255, 255, .15) inset; + background: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e4e4e4)); + background-image: -moz-linear-gradient(top, #fff, #e4e4e4); + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: -o-linear-gradient(top, #fff, #e4e4e4); + background-image: -ms-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(top, #fff, #e4e4e4); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#ffffff', endColorstr = '#e4e4e4') +} + +.cke_combo_off a.cke_combo_button:hover, .cke_combo_off a.cke_combo_button:focus { + background: #ccc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ccc)); + background-image: -moz-linear-gradient(top, #f2f2f2, #ccc); + background-image: -webkit-linear-gradient(top, #f2f2f2, #ccc); + background-image: -o-linear-gradient(top, #f2f2f2, #ccc); + background-image: -ms-linear-gradient(top, #f2f2f2, #ccc); + background-image: linear-gradient(top, #f2f2f2, #ccc); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#f2f2f2', endColorstr = '#cccccc'); + outline: 0 +} + +.cke_combo_off a.cke_combo_button:active, .cke_combo_on a.cke_combo_button { + border: 1px solid #777; + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5), 0 1px 5px rgba(0, 0, 0, .6) inset; + background: #b5b5b5; + background-image: -webkit-gradient(linear, left top, left bottom, from(#aaa), to(#cacaca)); + background-image: -moz-linear-gradient(top, #aaa, #cacaca); + background-image: -webkit-linear-gradient(top, #aaa, #cacaca); + background-image: -o-linear-gradient(top, #aaa, #cacaca); + background-image: -ms-linear-gradient(top, #aaa, #cacaca); + background-image: linear-gradient(top, #aaa, #cacaca); + filter: progid:DXImageTransform.Microsoft.gradient(gradientType = 0, startColorstr = '#aaaaaa', endColorstr = '#cacaca') +} + +.cke_combo_on a.cke_combo_button:hover, .cke_combo_on a.cke_combo_button:focus, .cke_combo_on a.cke_combo_button:active { + -moz-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2); + box-shadow: 0 1px 6px rgba(0, 0, 0, .7) inset, 0 1px 0 rgba(0, 0, 0, .2) +} + +.cke_rtl .cke_combo_button { + float: right; + margin-left: 5px; + margin-right: 0 +} + +.cke_hc a.cke_combo_button { + padding: 3px +} + +.cke_hc .cke_combo_on a.cke_combo_button, .cke_hc .cke_combo_off a.cke_combo_button:hover, .cke_hc .cke_combo_off a.cke_combo_button:focus, .cke_hc .cke_combo_off a.cke_combo_button:active { + border-width: 3px; + padding: 1px +} + +.cke_combo_text { + line-height: 26px; + padding-left: 10px; + text-overflow: ellipsis; + overflow: hidden; + float: left; + cursor: default; + color: #474747; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + width: 60px +} + +.cke_rtl .cke_combo_text { + float: right; + text-align: right; + padding-left: 0; + padding-right: 10px +} + +.cke_hc .cke_combo_text { + line-height: 18px; + font-size: 12px +} + +.cke_combo_open { + cursor: default; + display: inline-block; + font-size: 0; + height: 19px; + line-height: 17px; + margin: 1px 7px 1px; + width: 5px +} + +.cke_hc .cke_combo_open { + height: 12px +} + +.cke_combo_arrow { + margin: 11px 0 0; + float: left; + height: 0; + width: 0; + font-size: 0; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #474747 +} + +.cke_hc .cke_combo_arrow { + font-size: 10px; + width: auto; + border: 0; + margin-top: 3px +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + opacity: .3 +} + +.cke_path { + float: left; + margin: -2px 0 2px +} + +.cke_path_item, .cke_path_empty { + display: inline-block; + float: left; + padding: 3px 4px; + margin-right: 2px; + cursor: default; + text-decoration: none; + outline: 0; + border: 0; + color: #4c4c4c; + text-shadow: 0 1px 0 #fff; + font-weight: bold; + font-size: 11px +} + +.cke_rtl .cke_path, .cke_rtl .cke_path_item, .cke_rtl .cke_path_empty { + float: right +} + +a.cke_path_item:hover, a.cke_path_item:focus, a.cke_path_item:active { + background-color: #bfbfbf; + color: #333; + text-shadow: 0 1px 0 rgba(255, 255, 255, .5); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + -moz-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5); + box-shadow: 0 0 4px rgba(0, 0, 0, .5) inset, 0 1px 0 rgba(255, 255, 255, .5) +} + +.cke_hc a.cke_path_item:hover, .cke_hc a.cke_path_item:focus, .cke_hc a.cke_path_item:active { + border: 2px solid; + padding: 1px 2px +} + +.cke_button__source_label, .cke_button__sourcedialog_label { + display: inline +} + +.cke_combo__fontsize .cke_combo_text { + width: 30px +} + +.cke_combopanel__fontsize { + width: 120px +} + +.cke_source { + font-family: 'Courier New', Monospace; + font-size: small; + background-color: #fff; + white-space: pre +} + +.cke_wysiwyg_frame, .cke_wysiwyg_div { + background-color: #fff +} + +.cke_chrome { + visibility: inherit +} + +.cke_voice_label { + display: none +} + +legend.cke_voice_label { + display: none +} + +a.cke_button_disabled, a.cke_button_disabled:hover, a.cke_button_disabled:focus, a.cke_button_disabled:active { + filter: alpha(opacity = 30) +} + +.cke_button_disabled .cke_button_icon { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = #00ffffff, endColorstr = #00ffffff) +} + +.cke_button_off:hover, .cke_button_off:focus, .cke_button_off:active { + filter: alpha(opacity = 100) +} + +.cke_combo_disabled .cke_combo_inlinelabel, .cke_combo_disabled .cke_combo_open { + filter: alpha(opacity = 30) +} + +.cke_toolbox_collapser { + border: 1px solid #a6a6a6 +} + +.cke_toolbox_collapser .cke_arrow { + margin-top: 1px +} + +.cke_hc .cke_top, .cke_hc .cke_bottom, .cke_hc .cke_combo_button, .cke_hc a.cke_combo_button:hover, .cke_hc a.cke_combo_button:focus, .cke_hc .cke_toolgroup, .cke_hc .cke_button_on, .cke_hc a.cke_button_off:hover, .cke_hc a.cke_button_off:focus, .cke_hc a.cke_button_off:active, .cke_hc .cke_toolbox_collapser, .cke_hc .cke_toolbox_collapser:hover, .cke_hc .cke_panel_grouptitle { + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false) +} + +.cke_top, .cke_contents, .cke_bottom { + width: 100% +} + +.cke_button_arrow { + font-size: 0 +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_button, .cke_rtl .cke_button *, .cke_rtl .cke_combo, .cke_rtl .cke_combo *, .cke_rtl .cke_path_item, .cke_rtl .cke_path_item *, .cke_rtl .cke_path_empty { + float: none +} + +.cke_rtl .cke_toolgroup, .cke_rtl .cke_toolbar_separator, .cke_rtl .cke_combo_button, .cke_rtl .cke_combo_button *, .cke_rtl .cke_button, .cke_rtl .cke_button_icon, { + display: inline-block; + vertical-align: top +} + +.cke_rtl .cke_button_icon { + float: none +} + +.cke_resizer { + width: 10px +} + +.cke_source { + white-space: normal +} + +.cke_bottom { + position: static +} + +.cke_colorbox { + font-size: 0 +} + +.cke_button__about_icon { + background: url(icons.png) no-repeat 0 -0px !important; +} + +.cke_button__bold_icon { + background: url(icons.png) no-repeat 0 -24px !important; +} + +.cke_button__italic_icon { + background: url(icons.png) no-repeat 0 -48px !important; +} + +.cke_button__strike_icon { + background: url(icons.png) no-repeat 0 -72px !important; +} + +.cke_button__subscript_icon { + background: url(icons.png) no-repeat 0 -96px !important; +} + +.cke_button__superscript_icon { + background: url(icons.png) no-repeat 0 -120px !important; +} + +.cke_button__underline_icon { + background: url(icons.png) no-repeat 0 -144px !important; +} + +.cke_button__bidiltr_icon { + background: url(icons.png) no-repeat 0 -168px !important; +} + +.cke_button__bidirtl_icon { + background: url(icons.png) no-repeat 0 -192px !important; +} + +.cke_button__blockquote_icon { + background: url(icons.png) no-repeat 0 -216px !important; +} + +.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -240px !important; +} + +.cke_ltr .cke_button__copy_icon { + background: url(icons.png) no-repeat 0 -264px !important; +} + +.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -288px !important; +} + +.cke_ltr .cke_button__cut_icon { + background: url(icons.png) no-repeat 0 -312px !important; +} + +.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -336px !important; +} + +.cke_ltr .cke_button__paste_icon { + background: url(icons.png) no-repeat 0 -360px !important; +} + +.cke_button__bgcolor_icon { + background: url(icons.png) no-repeat 0 -384px !important; +} + +.cke_button__textcolor_icon { + background: url(icons.png) no-repeat 0 -408px !important; +} + +.cke_rtl .cke_button__templates_icon, .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -432px !important; +} + +.cke_ltr .cke_button__templates_icon { + background: url(icons.png) no-repeat 0 -456px !important; +} + +.cke_button__creatediv_icon { + background: url(icons.png) no-repeat 0 -480px !important; +} + +.cke_rtl .cke_button__find_icon, .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -504px !important; +} + +.cke_ltr .cke_button__find_icon { + background: url(icons.png) no-repeat 0 -528px !important; +} + +.cke_button__replace_icon { + background: url(icons.png) no-repeat 0 -552px !important; +} + +.cke_button__flash_icon { + background: url(icons.png) no-repeat 0 -576px !important; +} + +.cke_button__button_icon { + background: url(icons.png) no-repeat 0 -600px !important; +} + +.cke_button__checkbox_icon { + background: url(icons.png) no-repeat 0 -624px !important; +} + +.cke_button__form_icon { + background: url(icons.png) no-repeat 0 -648px !important; +} + +.cke_button__hiddenfield_icon { + background: url(icons.png) no-repeat 0 -672px !important; +} + +.cke_button__imagebutton_icon { + background: url(icons.png) no-repeat 0 -696px !important; +} + +.cke_button__radio_icon { + background: url(icons.png) no-repeat 0 -720px !important; +} + +.cke_rtl .cke_button__select_icon, .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -744px !important; +} + +.cke_ltr .cke_button__select_icon { + background: url(icons.png) no-repeat 0 -768px !important; +} + +.cke_rtl .cke_button__textarea_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -792px !important; +} + +.cke_ltr .cke_button__textarea_icon { + background: url(icons.png) no-repeat 0 -816px !important; +} + +.cke_rtl .cke_button__textfield_icon, .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -840px !important; +} + +.cke_ltr .cke_button__textfield_icon { + background: url(icons.png) no-repeat 0 -864px !important; +} + +.cke_button__horizontalrule_icon { + background: url(icons.png) no-repeat 0 -888px !important; +} + +.cke_button__iframe_icon { + background: url(icons.png) no-repeat 0 -912px !important; +} + +.cke_button__image_icon { + background: url(icons.png) no-repeat 0 -936px !important; +} + +.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -960px !important; +} + +.cke_ltr .cke_button__indent_icon { + background: url(icons.png) no-repeat 0 -984px !important; +} + +.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1008px !important; +} + +.cke_ltr .cke_button__outdent_icon { + background: url(icons.png) no-repeat 0 -1032px !important; +} + +.cke_button__smiley_icon { + background: url(icons.png) no-repeat 0 -1056px !important; +} + +.cke_button__justifyblock_icon { + background: url(icons.png) no-repeat 0 -1080px !important; +} + +.cke_button__justifycenter_icon { + background: url(icons.png) no-repeat 0 -1104px !important; +} + +.cke_button__justifyleft_icon { + background: url(icons.png) no-repeat 0 -1128px !important; +} + +.cke_button__justifyright_icon { + background: url(icons.png) no-repeat 0 -1152px !important; +} + +.cke_button__language_icon { + background: url(icons.png) no-repeat 0 -1176px !important; +} + +.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1200px !important; +} + +.cke_ltr .cke_button__anchor_icon { + background: url(icons.png) no-repeat 0 -1224px !important; +} + +.cke_button__link_icon { + background: url(icons.png) no-repeat 0 -1248px !important; +} + +.cke_button__unlink_icon { + background: url(icons.png) no-repeat 0 -1272px !important; +} + +.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1296px !important; +} + +.cke_ltr .cke_button__bulletedlist_icon { + background: url(icons.png) no-repeat 0 -1320px !important; +} + +.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1344px !important; +} + +.cke_ltr .cke_button__numberedlist_icon { + background: url(icons.png) no-repeat 0 -1368px !important; +} + +.cke_button__maximize_icon { + background: url(icons.png) no-repeat 0 -1392px !important; +} + +.cke_rtl .cke_button__newpage_icon, .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1416px !important; +} + +.cke_ltr .cke_button__newpage_icon { + background: url(icons.png) no-repeat 0 -1440px !important; +} + +.cke_rtl .cke_button__pagebreak_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1464px !important; +} + +.cke_ltr .cke_button__pagebreak_icon { + background: url(icons.png) no-repeat 0 -1488px !important; +} + +.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1512px !important; +} + +.cke_ltr .cke_button__pastetext_icon { + background: url(icons.png) no-repeat 0 -1536px !important; +} + +.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1560px !important; +} + +.cke_ltr .cke_button__pastefromword_icon { + background: url(icons.png) no-repeat 0 -1584px !important; +} + +.cke_rtl .cke_button__preview_icon, .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1608px !important; +} + +.cke_ltr .cke_button__preview_icon { + background: url(icons.png) no-repeat 0 -1632px !important; +} + +.cke_button__print_icon { + background: url(icons.png) no-repeat 0 -1656px !important; +} + +.cke_button__removeformat_icon { + background: url(icons.png) no-repeat 0 -1680px !important; +} + +.cke_button__save_icon { + background: url(icons.png) no-repeat 0 -1704px !important; +} + +.cke_button__selectall_icon { + background: url(icons.png) no-repeat 0 -1728px !important; +} + +.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1752px !important; +} + +.cke_ltr .cke_button__showblocks_icon { + background: url(icons.png) no-repeat 0 -1776px !important; +} + +.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1800px !important; +} + +.cke_ltr .cke_button__source_icon { + background: url(icons.png) no-repeat 0 -1824px !important; +} + +.cke_button__specialchar_icon { + background: url(icons.png) no-repeat 0 -1848px !important; +} + +.cke_button__scayt_icon { + background: url(icons.png) no-repeat 0 -1872px !important; +} + +.cke_button__table_icon { + background: url(icons.png) no-repeat 0 -1896px !important; +} + +.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1920px !important; +} + +.cke_ltr .cke_button__redo_icon { + background: url(icons.png) no-repeat 0 -1944px !important; +} + +.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1968px !important; +} + +.cke_ltr .cke_button__undo_icon { + background: url(icons.png) no-repeat 0 -1992px !important; +} + +.cke_button__spellchecker_icon { + background: url(icons.png) no-repeat 0 -2016px !important; +} + +.cke_hidpi .cke_button__about_icon { + background: url(icons_hidpi.png) no-repeat 0 -0px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bold_icon { + background: url(icons_hidpi.png) no-repeat 0 -24px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__italic_icon { + background: url(icons_hidpi.png) no-repeat 0 -48px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__strike_icon { + background: url(icons_hidpi.png) no-repeat 0 -72px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__subscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -96px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__superscript_icon { + background: url(icons_hidpi.png) no-repeat 0 -120px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__underline_icon { + background: url(icons_hidpi.png) no-repeat 0 -144px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidiltr_icon { + background: url(icons_hidpi.png) no-repeat 0 -168px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bidirtl_icon { + background: url(icons_hidpi.png) no-repeat 0 -192px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__blockquote_icon { + background: url(icons_hidpi.png) no-repeat 0 -216px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -240px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__copy_icon, .cke_ltr.cke_hidpi .cke_button__copy_icon { + background: url(icons_hidpi.png) no-repeat 0 -264px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -288px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__cut_icon, .cke_ltr.cke_hidpi .cke_button__cut_icon { + background: url(icons_hidpi.png) no-repeat 0 -312px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -336px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__paste_icon, .cke_ltr.cke_hidpi .cke_button__paste_icon { + background: url(icons_hidpi.png) no-repeat 0 -360px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__bgcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -384px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__textcolor_icon { + background: url(icons_hidpi.png) no-repeat 0 -408px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__templates_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -432px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__templates_icon, .cke_ltr.cke_hidpi .cke_button__templates_icon { + background: url(icons_hidpi.png) no-repeat 0 -456px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__creatediv_icon { + background: url(icons_hidpi.png) no-repeat 0 -480px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__find_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -504px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__find_icon, .cke_ltr.cke_hidpi .cke_button__find_icon { + background: url(icons_hidpi.png) no-repeat 0 -528px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__replace_icon { + background: url(icons_hidpi.png) no-repeat 0 -552px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__flash_icon { + background: url(icons_hidpi.png) no-repeat 0 -576px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__button_icon { + background: url(icons_hidpi.png) no-repeat 0 -600px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__checkbox_icon { + background: url(icons_hidpi.png) no-repeat 0 -624px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__form_icon { + background: url(icons_hidpi.png) no-repeat 0 -648px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__hiddenfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -672px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__imagebutton_icon { + background: url(icons_hidpi.png) no-repeat 0 -696px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__radio_icon { + background: url(icons_hidpi.png) no-repeat 0 -720px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__select_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -744px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__select_icon, .cke_ltr.cke_hidpi .cke_button__select_icon { + background: url(icons_hidpi.png) no-repeat 0 -768px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textarea_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -792px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textarea_icon, .cke_ltr.cke_hidpi .cke_button__textarea_icon { + background: url(icons_hidpi.png) no-repeat 0 -816px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__textfield_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -840px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__textfield_icon, .cke_ltr.cke_hidpi .cke_button__textfield_icon { + background: url(icons_hidpi.png) no-repeat 0 -864px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__horizontalrule_icon { + background: url(icons_hidpi.png) no-repeat 0 -888px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__iframe_icon { + background: url(icons_hidpi.png) no-repeat 0 -912px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__image_icon { + background: url(icons_hidpi.png) no-repeat 0 -936px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -960px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__indent_icon, .cke_ltr.cke_hidpi .cke_button__indent_icon { + background: url(icons_hidpi.png) no-repeat 0 -984px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1008px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__outdent_icon, .cke_ltr.cke_hidpi .cke_button__outdent_icon { + background: url(icons_hidpi.png) no-repeat 0 -1032px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__smiley_icon { + background: url(icons_hidpi.png) no-repeat 0 -1056px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyblock_icon { + background: url(icons_hidpi.png) no-repeat 0 -1080px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifycenter_icon { + background: url(icons_hidpi.png) no-repeat 0 -1104px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyleft_icon { + background: url(icons_hidpi.png) no-repeat 0 -1128px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__justifyright_icon { + background: url(icons_hidpi.png) no-repeat 0 -1152px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__language_icon { + background: url(icons_hidpi.png) no-repeat 0 -1176px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1200px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__anchor_icon, .cke_ltr.cke_hidpi .cke_button__anchor_icon { + background: url(icons_hidpi.png) no-repeat 0 -1224px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__link_icon { + background: url(icons_hidpi.png) no-repeat 0 -1248px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__unlink_icon { + background: url(icons_hidpi.png) no-repeat 0 -1272px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1296px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon, .cke_ltr.cke_hidpi .cke_button__bulletedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1320px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1344px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__numberedlist_icon, .cke_ltr.cke_hidpi .cke_button__numberedlist_icon { + background: url(icons_hidpi.png) no-repeat 0 -1368px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__maximize_icon { + background: url(icons_hidpi.png) no-repeat 0 -1392px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__newpage_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1416px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__newpage_icon, .cke_ltr.cke_hidpi .cke_button__newpage_icon { + background: url(icons_hidpi.png) no-repeat 0 -1440px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pagebreak_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1464px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pagebreak_icon, .cke_ltr.cke_hidpi .cke_button__pagebreak_icon { + background: url(icons_hidpi.png) no-repeat 0 -1488px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1512px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastetext_icon, .cke_ltr.cke_hidpi .cke_button__pastetext_icon { + background: url(icons_hidpi.png) no-repeat 0 -1536px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1560px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__pastefromword_icon, .cke_ltr.cke_hidpi .cke_button__pastefromword_icon { + background: url(icons_hidpi.png) no-repeat 0 -1584px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__preview_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1608px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__preview_icon, .cke_ltr.cke_hidpi .cke_button__preview_icon { + background: url(icons_hidpi.png) no-repeat 0 -1632px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__print_icon { + background: url(icons_hidpi.png) no-repeat 0 -1656px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__removeformat_icon { + background: url(icons_hidpi.png) no-repeat 0 -1680px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__save_icon { + background: url(icons_hidpi.png) no-repeat 0 -1704px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__selectall_icon { + background: url(icons_hidpi.png) no-repeat 0 -1728px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1752px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__showblocks_icon, .cke_ltr.cke_hidpi .cke_button__showblocks_icon { + background: url(icons_hidpi.png) no-repeat 0 -1776px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1800px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__source_icon, .cke_ltr.cke_hidpi .cke_button__source_icon { + background: url(icons_hidpi.png) no-repeat 0 -1824px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__specialchar_icon { + background: url(icons_hidpi.png) no-repeat 0 -1848px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__scayt_icon { + background: url(icons_hidpi.png) no-repeat 0 -1872px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__table_icon { + background: url(icons_hidpi.png) no-repeat 0 -1896px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1920px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__redo_icon, .cke_ltr.cke_hidpi .cke_button__redo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1944px !important; + background-size: 16px !important; +} + +.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1968px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_ltr .cke_button__undo_icon, .cke_ltr.cke_hidpi .cke_button__undo_icon { + background: url(icons_hidpi.png) no-repeat 0 -1992px !important; + background-size: 16px !important; +} + +.cke_hidpi .cke_button__spellchecker_icon { + background: url(icons_hidpi.png) no-repeat 0 -2016px !important; + background-size: 16px !important; } \ No newline at end of file diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/readme.md b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/readme.md index 1b48dd25c..d086fe9b7 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/readme.md +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/skins/moono/readme.md @@ -1,51 +1,51 @@ -"Moono" Skin -==================== - -This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor -[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by -the CKEditor team. "Moono" is maintained by the core developers. - -For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) -documentation. - -Features -------------------- -"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. -It comes with the following features: - -- Chameleon feature with brightness, -- high-contrast compatibility, -- graphics source provided in SVG. - -Directory Structure -------------------- - -CSS parts: -- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, -- **mainui.css**: the file contains styles of entire editor outline structures, -- **toolbar.css**: the file contains styles of the editor toolbar space (top), -- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, -- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded -until the first panel open up, -- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), -- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, -it's not loaded until the first menu open up, -- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, -- **reset.css**: the file defines the basis of style resets among all editor UI spaces, -- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, -- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. - -Other parts: -- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, -- **icons/**: contains all skin defined icons, -- **images/**: contains a fill general used images, -- **dev/**: contains SVG source of the skin icons. - -License -------- - -Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - -Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). - -See LICENSE.md for more information. +"Moono" Skin +==================== + +This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor +[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by +the CKEditor team. "Moono" is maintained by the core developers. + +For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) +documentation. + +Features +------------------- +"Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. +It comes with the following features: + +- Chameleon feature with brightness, +- high-contrast compatibility, +- graphics source provided in SVG. + +Directory Structure +------------------- + +CSS parts: +- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, +- **mainui.css**: the file contains styles of entire editor outline structures, +- **toolbar.css**: the file contains styles of the editor toolbar space (top), +- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, +- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded +until the first panel open up, +- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), +- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, +it's not loaded until the first menu open up, +- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, +- **reset.css**: the file defines the basis of style resets among all editor UI spaces, +- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, +- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. + +Other parts: +- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, +- **icons/**: contains all skin defined icons, +- **images/**: contains a fill general used images, +- **dev/**: contains SVG source of the skin icons. + +License +------- + +Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + +Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). + +See LICENSE.md for more information. diff --git a/public/plugin_assets/redmine_ckeditor/ckeditor/styles.js b/public/plugin_assets/redmine_ckeditor/ckeditor/styles.js index 48661b193..18e4316b0 100644 --- a/public/plugin_assets/redmine_ckeditor/ckeditor/styles.js +++ b/public/plugin_assets/redmine_ckeditor/ckeditor/styles.js @@ -1,111 +1,111 @@ -/** - * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or http://ckeditor.com/license - */ - -// This file contains style definitions that can be used by CKEditor plugins. -// -// The most common use for it is the "stylescombo" plugin, which shows a combo -// in the editor toolbar, containing all styles. Other plugins instead, like -// the div plugin, use a subset of the styles on their feature. -// -// If you don't have plugins that depend on this file, you can simply ignore it. -// Otherwise it is strongly recommended to customize this file to match your -// website requirements and design properly. - -CKEDITOR.stylesSet.add( 'default', [ - /* Block Styles */ - - // These styles are already available in the "Format" combo ("format" plugin), - // so they are not needed here by default. You may enable them to avoid - // placing the "Format" combo in the toolbar, maintaining the same features. - /* - { name: 'Paragraph', element: 'p' }, - { name: 'Heading 1', element: 'h1' }, - { name: 'Heading 2', element: 'h2' }, - { name: 'Heading 3', element: 'h3' }, - { name: 'Heading 4', element: 'h4' }, - { name: 'Heading 5', element: 'h5' }, - { name: 'Heading 6', element: 'h6' }, - { name: 'Preformatted Text',element: 'pre' }, - { name: 'Address', element: 'address' }, - */ - - { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, - { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, - { - name: 'Special Container', - element: 'div', - styles: { - padding: '5px 10px', - background: '#eee', - border: '1px solid #ccc' - } - }, - - /* Inline Styles */ - - // These are core styles available as toolbar buttons. You may opt enabling - // some of them in the Styles combo, removing them from the toolbar. - // (This requires the "stylescombo" plugin) - /* - { name: 'Strong', element: 'strong', overrides: 'b' }, - { name: 'Emphasis', element: 'em' , overrides: 'i' }, - { name: 'Underline', element: 'u' }, - { name: 'Strikethrough', element: 'strike' }, - { name: 'Subscript', element: 'sub' }, - { name: 'Superscript', element: 'sup' }, - */ - - { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, - - { name: 'Big', element: 'big' }, - { name: 'Small', element: 'small' }, - { name: 'Typewriter', element: 'tt' }, - - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' }, - - { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, - { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, - - /* Object Styles */ - - { - name: 'Styled image (left)', - element: 'img', - attributes: { 'class': 'left' } - }, - - { - name: 'Styled image (right)', - element: 'img', - attributes: { 'class': 'right' } - }, - - { - name: 'Compact table', - element: 'table', - attributes: { - cellpadding: '5', - cellspacing: '0', - border: '1', - bordercolor: '#ccc' - }, - styles: { - 'border-collapse': 'collapse' - } - }, - - { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, - { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } -] ); - +/** + * Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. + * For licensing, see LICENSE.md or http://ckeditor.com/license + */ + +// This file contains style definitions that can be used by CKEditor plugins. +// +// The most common use for it is the "stylescombo" plugin, which shows a combo +// in the editor toolbar, containing all styles. Other plugins instead, like +// the div plugin, use a subset of the styles on their feature. +// +// If you don't have plugins that depend on this file, you can simply ignore it. +// Otherwise it is strongly recommended to customize this file to match your +// website requirements and design properly. + +CKEDITOR.stylesSet.add( 'default', [ + /* Block Styles */ + + // These styles are already available in the "Format" combo ("format" plugin), + // so they are not needed here by default. You may enable them to avoid + // placing the "Format" combo in the toolbar, maintaining the same features. + /* + { name: 'Paragraph', element: 'p' }, + { name: 'Heading 1', element: 'h1' }, + { name: 'Heading 2', element: 'h2' }, + { name: 'Heading 3', element: 'h3' }, + { name: 'Heading 4', element: 'h4' }, + { name: 'Heading 5', element: 'h5' }, + { name: 'Heading 6', element: 'h6' }, + { name: 'Preformatted Text',element: 'pre' }, + { name: 'Address', element: 'address' }, + */ + + { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, + { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, + { + name: 'Special Container', + element: 'div', + styles: { + padding: '5px 10px', + background: '#eee', + border: '1px solid #ccc' + } + }, + + /* Inline Styles */ + + // These are core styles available as toolbar buttons. You may opt enabling + // some of them in the Styles combo, removing them from the toolbar. + // (This requires the "stylescombo" plugin) + /* + { name: 'Strong', element: 'strong', overrides: 'b' }, + { name: 'Emphasis', element: 'em' , overrides: 'i' }, + { name: 'Underline', element: 'u' }, + { name: 'Strikethrough', element: 'strike' }, + { name: 'Subscript', element: 'sub' }, + { name: 'Superscript', element: 'sup' }, + */ + + { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, + + { name: 'Big', element: 'big' }, + { name: 'Small', element: 'small' }, + { name: 'Typewriter', element: 'tt' }, + + { name: 'Computer Code', element: 'code' }, + { name: 'Keyboard Phrase', element: 'kbd' }, + { name: 'Sample Text', element: 'samp' }, + { name: 'Variable', element: 'var' }, + + { name: 'Deleted Text', element: 'del' }, + { name: 'Inserted Text', element: 'ins' }, + + { name: 'Cited Work', element: 'cite' }, + { name: 'Inline Quotation', element: 'q' }, + + { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, + { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, + + /* Object Styles */ + + { + name: 'Styled image (left)', + element: 'img', + attributes: { 'class': 'left' } + }, + + { + name: 'Styled image (right)', + element: 'img', + attributes: { 'class': 'right' } + }, + + { + name: 'Compact table', + element: 'table', + attributes: { + cellpadding: '5', + cellspacing: '0', + border: '1', + bordercolor: '#ccc' + }, + styles: { + 'border-collapse': 'collapse' + } + }, + + { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, + { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } } +] ); + diff --git a/public/plugin_assets/redmine_ckeditor/javascripts/application.js b/public/plugin_assets/redmine_ckeditor/javascripts/application.js index b5679d111..8e6dc5834 100644 --- a/public/plugin_assets/redmine_ckeditor/javascripts/application.js +++ b/public/plugin_assets/redmine_ckeditor/javascripts/application.js @@ -1,1045 +1,1045 @@ - -/* - Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.html or http://ckeditor.com/license - */ - -(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a={timestamp:"E0LB",version:"4.3.2",revision:"ba625e6",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var d=document.getElementsByTagName("script"),a=0;a=0;o--)if(n[o].priority<=m){n.splice(o+1,0,j);return{removeListener:i}}n.unshift(j)}return{removeListener:i}}, - once:function(){var b=arguments[1];arguments[1]=function(d){d.removeListener();return b.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var b=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return b},fire:function(){var b=0,d=function(){b=1},a=0,h=function(){a=1};return function(m,j,i){var n=e(this)[m],m=b,r=a;b=a=0;if(n){var o=n.listeners;if(o.length)for(var o=o.slice(0),u,f=0;f=0&&a.listeners.splice(h,1)}},removeAllListeners:function(){var b=e(this),d;for(d in b)delete b[d]},hasListeners:function(b){return(b=e(this)[b])&&b.listeners.length>0}}}()); - CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fire.call(this,a,e,this)},CKEDITOR.editor.prototype.fireOnce=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fireOnce.call(this,a,e,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype)); - CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),e=window.opera,b={ie:a.indexOf("trident/")>-1,opera:!!e&&e.version,webkit:a.indexOf(" applewebkit/")>-1,air:a.indexOf(" adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat"&&(!document.documentMode||document.documentMode<10),mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return false;var d=document.domain,b=window.location.hostname;return d!= - b&&d!="["+b+"]"},secure:location.protocol=="https:"};b.gecko=navigator.product=="Gecko"&&!b.webkit&&!b.opera&&!b.ie;if(b.webkit)a.indexOf("chrome")>-1?b.chrome=true:b.safari=true;var c=0;if(b.ie){c=b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode;b.ie9Compat=c==9;b.ie8Compat=c==8;b.ie7Compat=c==7;b.ie6Compat=c<7||b.quirks}if(b.gecko){var d=a.match(/rv:([\d\.]+)/);if(d){d=d[1].split(".");c=d[0]*1E4+(d[1]||0)*100+(d[2]||0)*1}}b.opera&&(c=parseFloat(e.version())); - b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));b.webkit&&(c=parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));b.version=c;b.isCompatible=b.iOS&&c>=534||!b.mobile&&(b.ie&&c>6||b.gecko&&c>=10801||b.opera&&c>=9.5||b.air&&c>=1||b.webkit&&c>=522||false);b.hidpi=window.devicePixelRatio>=2;b.needsBrFiller=b.gecko||b.webkit||b.ie&&c>10;b.needsNbspFiller=b.ie&&c<11;b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.opera?"opera":b.webkit?"webkit":"unknown");if(b.quirks)b.cssClass=b.cssClass+" cke_browser_quirks"; - if(b.ie){b.cssClass=b.cssClass+(" cke_browser_ie"+(b.quirks||b.version<7?"6":b.version));if(b.quirks)b.cssClass=b.cssClass+" cke_browser_iequirks"}if(b.gecko)if(c<10900)b.cssClass=b.cssClass+" cke_browser_gecko18";else if(c<=11E3)b.cssClass=b.cssClass+" cke_browser_gecko19";if(b.air)b.cssClass=b.cssClass+" cke_browser_air";if(b.iOS)b.cssClass=b.cssClass+" cke_browser_ios";if(b.hidpi)b.cssClass=b.cssClass+" cke_hidpi";return b}()); - "unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a= - CKEDITOR.loadFullCore,e=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():e&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},e*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={}; - (function(){var a=[],e=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.opera?"-o-":CKEDITOR.env.ie?"-ms-":"";CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(b,a){if(!b&&!a)return true;if(!b||!a||b.length!=a.length)return false;for(var d=0;d"+a+""):d.push('');return d.join("")},htmlEncode:function(b){return(""+b).replace(/&/g,"&").replace(/>/g,">").replace(//g,">")},htmlDecodeAttr:function(b){return b.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">")},getNextNumber:function(){var b=0;return function(){return++b}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(b,a){var d=a(b);d.prototype=b.prototype;return d},setTimeout:function(b,a,d,g,e){e||(e=window);d||(d=e);return e.setTimeout(function(){g?b.apply(d,[].concat(g)): - b.apply(d)},a||0)},trim:function(){var b=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(a){return a.replace(b,"")}}(),ltrim:function(){var b=/^[ \t\n\r]+/g;return function(a){return a.replace(b,"")}}(),rtrim:function(){var b=/[ \t\n\r]+$/g;return function(a){return a.replace(b,"")}}(),indexOf:function(b,a){if(typeof a=="function")for(var d=0,g=b.length;d=0?b[d]:null},bind:function(b,a){return function(){return b.apply(a,arguments)}},createClass:function(b){var a=b.$,d=b.base,g=b.privates||b._,e=b.proto,b=b.statics;!a&&(a=function(){d&&this.base.apply(this,arguments)});if(g)var m=a,a=function(){var d=this._||(this._={}),a;for(a in g){var b=g[a];d[a]=typeof b=="function"?CKEDITOR.tools.bind(b,this):b}m.apply(this,arguments)};if(d){a.prototype=this.prototypedCopy(d.prototype);a.prototype.constructor=a;a.base= - d;a.baseProto=d.prototype;a.prototype.base=function(){this.base=d.prototype.base;d.apply(this,arguments);this.base=arguments.callee}}e&&this.extend(a.prototype,e,true);b&&this.extend(a,b,true);return a},addFunction:function(b,c){return a.push(function(){return b.apply(c||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var c=a[b];return c&&c.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,c;return function(d){c= - CKEDITOR.tools.trim(d+"")+"px";return a.test(c)?c:d||""}}(),convertToPx:function(){var a;return function(c){if(!a){a=CKEDITOR.dom.element.createFromHtml('
    ',CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(c)){a.setStyle("width",c);return a.$.clientWidth}return c}}(),repeat:function(a,c){return Array(c+1).join(a)},tryThese:function(){for(var a,c=0,d=arguments.length;c8)&&e)a=e+":"+a;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a= - a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),true)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*]*?>)|^/i,'$&\n