[MERGE] upstream

bzr revid: fme@openerp.com-20130925085226-lonpq3add9eaaf9q
This commit is contained in:
Fabien Meghazi 2013-09-25 10:52:26 +02:00
commit 5a0f580f5a
623 changed files with 91845 additions and 16222 deletions

View File

@ -1,133 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import fields, osv
from openerp.tools.translate import _
import difflib
from openerp import tools
class document_page(osv.osv):
_name = "document.page"
_description = "Document Page"
_order = 'name'
def _get_page_index(self, cr, uid, page, link=True):
index = []
for subpage in page.child_ids:
index += ["<li>"+ self._get_page_index(cr, uid, subpage) +"</li>"]
r = ''
if link:
r = '<a href="#id=%s">%s</a>'%(page.id,page.name)
if index:
r += "<ul>" + "".join(index) + "</ul>"
return r
def _get_display_content(self, cr, uid, ids, name, args, context=None):
res = {}
for page in self.browse(cr, uid, ids, context=context):
if page.type == "category":
content = self._get_page_index(cr, uid, page, link=False)
else:
content = page.content
res[page.id] = content
return res
_columns = {
'name': fields.char('Title', required=True),
'type':fields.selection([('content','Content'), ('category','Category')], 'Type', help="Page type"),
'parent_id': fields.many2one('document.page', 'Category', domain=[('type','=','category')]),
'child_ids': fields.one2many('document.page', 'parent_id', 'Children'),
'content': fields.text("Content"),
'display_content': fields.function(_get_display_content, string='Displayed Content', type='text'),
'history_ids': fields.one2many('document.page.history', 'page_id', 'History'),
'menu_id': fields.many2one('ir.ui.menu', "Menu", readonly=True),
'create_date': fields.datetime("Created on", select=True, readonly=True),
'create_uid': fields.many2one('res.users', 'Author', select=True, readonly=True),
'write_date': fields.datetime("Modification Date", select=True, readonly=True),
'write_uid': fields.many2one('res.users', "Last Contributor", select=True, readonly=True),
}
_defaults = {
'type':'content',
}
def onchange_parent_id(self, cr, uid, ids, parent_id, content, context=None):
res = {}
if parent_id and not content:
parent = self.browse(cr, uid, parent_id, context=context)
if parent.type == "category":
res['value'] = {
'content': parent.content,
}
return res
def create_history(self, cr, uid, ids, vals, context=None):
for i in ids:
history = self.pool.get('document.page.history')
if vals.get('content'):
res = {
'content': vals.get('content', ''),
'page_id': i,
}
history.create(cr, uid, res)
def create(self, cr, uid, vals, context=None):
page_id = super(document_page, self).create(cr, uid, vals, context)
self.create_history(cr, uid, [page_id], vals, context)
return page_id
def write(self, cr, uid, ids, vals, context=None):
result = super(document_page, self).write(cr, uid, ids, vals, context)
self.create_history(cr, uid, ids, vals, context)
return result
class document_page_history(osv.osv):
_name = "document.page.history"
_description = "Document Page History"
_order = 'id DESC'
_rec_name = "create_date"
_columns = {
'page_id': fields.many2one('document.page', 'Page'),
'summary': fields.char('Summary', size=256, select=True),
'content': fields.text("Content"),
'create_date': fields.datetime("Date"),
'create_uid': fields.many2one('res.users', "Modified By"),
}
def getDiff(self, cr, uid, v1, v2, context=None):
history_pool = self.pool.get('document.page.history')
text1 = history_pool.read(cr, uid, [v1], ['content'])[0]['content']
text2 = history_pool.read(cr, uid, [v2], ['content'])[0]['content']
line1 = line2 = ''
if text1:
line1 = text1.splitlines(1)
if text2:
line2 = text2.splitlines(1)
if (not line1 and not line2) or (line1 == line2):
raise osv.except_osv(_('Warning!'), _('There are no changes in revisions.'))
diff = difflib.HtmlDiff()
return diff.make_table(line1, line2, "Revision-%s" % (v1), "Revision-%s" % (v2), context=True)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="wiki_wiki_main" model="document.page">
<field name="name">The OpenERP wiki</field>
<field name="tags">help, quick start, wiki, formatting</field>
<field name="minor_edit">0</field>
<field name="index">1</field>
<field name="summary">Initial Page</field>
<field name="content">==The OpenERP wiki==
[[File:http://www.openerp.com/sites/all/themes/openerp/logo.png OpenERP]]
The OpenERP wiki allows you to manage your enterprise's contents using wiki
restructured texts. This module provides a collaborative way to manage internal
FAQs, quality manuals, technical references, etc.
==Keypoints==
* Same formating style than MediaWiki,
* Any number of wiki group for different purposes,
* Detailed history on all pages,
* Integrated with the document management system.
==Why you should use the OpenERP integrated wiki than a separate wiki system ?==
* Allows links to any document of the system,
* Uses the access controls of OpenERP for uniq access rights management,
* Use it to describe projects, tasks, products,
* Integrated with customer portal to provide restricted external accesses,
* Linked to users processes for quality manuals.
==To get more information==
* [[Basic Wiki Editing]]
* [[Wiki Documentation]]
* [http://openerp.com The OpenERP website]
</field>
<field name="parent_id" ref="wiki_groups_wikiformatting0"/>
</record>
</data>
</openerp>

View File

@ -1,130 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="base.user_demo" model="res.users">
<field eval="[(4, ref('base.group_sale_salesman')),(4, ref('base.group_document_user'))]" name="groups_id"/>
</record>
<record id="demo_category1" model="document.page">
<field name="name">OpenERP Features</field>
<field name="type">category</field>
<field name="content">
Summary of the feature
Long explanation
Conclusion
Additional ressources
</field>
</record>
<record id="demo_page1" model="document.page">
<field name="name">OpenERP 6.1. Functional Demo</field>
<field name="parent_id" ref="demo_category1"/>
<field name="content">
<![CDATA[
<br>
<br>
The news is out, OpenERP's latest version 6.1. is here. It's more<br>
user-friendly, even more business oriented and efficient to manage your company<br>
<br>
How to discover the latest version 6.1.?<br>
<br>
Demo : <a target="http://demo.openerp.com" href="http://demo.openerp.com" style="background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC&quot;) no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
Online: <a target="http://openerp.com/online" href="http://openerp.com/online" style="background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC&quot;) no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
Download: <a target="http://openerp.com/downloads" href="http://openerp.com/downloads" style="background: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeF59z4EJADEIQ1F36k7u5E7ZKXeUQPACJ3wK7UNokVxVk9kHnQH7bY9hbDyDhNXgjpRLqFlo4M2GgfyJHhjq8V4agfrgPQX3JtJQGbofmCHgA/nAKks+JAjFAAAAAElFTkSuQmCC&quot;) no-repeat scroll right center transparent;padding-right: 13px;"></a><br>
<br>
We have also put together a functional demo that presents 6.1. Watch this video<br>
to learn directly from us what OpenERP 6.1. can do for you. Share it in your<br>
company, with your clients and implement it now for your business.<br>
<br>
<h3>Watch on Youtube!</h3><br>
<br>
<iframe width="480" height="390" src="http://www.youtube.com/embed/7jES2jxKMso " frameborder="0" allowfullscreen=""></iframe><br>
<br>
<br>
]]>
</field>
</record>
<record id="demo_page2" model="document.page">
<field name="name">Personalise Dashboards</field>
<field name="parent_id" ref="demo_category1"/>
<field name="content">
<![CDATA[
<br>
You like OpenERP, but feel like you want to personalise it more? Now, OpenERP<br>
goes a step further and lets you customize your dashboard. Thanks to a new<br>
feature that allows you to customize your dashboard by adding new boards of any<br>
search view.<br>
<br>
<h3>How is it done?</h3><br>
<br>
Step 1: access one search view <br>
<br>
Step 2: apply the filter you want to see at each connection to the application<br>
(eg. on sales, manufacturing, etc)<br>
<br>
Step 3: add it into the dashboard in the same space where you can save the filter<br>
<br>
Step 4: choose the application you want it visible on and the name of the array<br>
<br>
Look at this simple example below from Purchase, where I want to put on the<br>
application's dashboard "Purchases to Approve". After I access the search view<br>
and apply the filter for "Purchases to Approve", I can add it immediately to my<br>
Purchase dashboard.<br>
<br>
<img src="http://www.openerp.com/sites/default/files/fileattach/dashboard2_1(1).png" alt=""><br>
<br>
In less than a minute, the search view is visible on the dashboard<br>
<br>
<img src="http://www.openerp.com/sites/default/files/fileattach/dashboard2_2.png" alt=""><br>
<br>
Of course, you are free to delete what you don't need or like, but just in case<br>
you change your mind there is a reset button to return to the default view.<br>
<br>
<br>
]]>
</field>
</record>
<record id="demo_page3" model="document.page">
<field name="name">Touchscreen Point of Sale</field>
<field name="parent_id" ref="demo_category1"/>
<field name="content">
<![CDATA[
<br>
The brand new OpenERP touchscreen point of sale available with 6.1 allows you<br>
to manage your shop sales very easily. It's fully web based so that you don't<br>
have to install or deploy any software and all the sales shops can be easily<br>
consolidated. It works in connected and disconnected modes so that you can<br>
continue to sell if you lose your internet connection.<br>
<br>
<img src="http://www.openerp.com/sites/default/files/fileattach/POS(2).png" alt=""><br>
<br>
<h3>Here's a summary of its main features and benefits:</h3><br>
<br>
100% WEB based<br>
<br>
<ul><li>available for any touchscreen device (ipod, ipad, any tablet)mobile (with portable devices)</li><li>no installation required</li><li>no synchronization needed, completely integrated</li><li>continue working even when your connection is down if you close your browser, data won't be lost</li><li>fully web based with a clean interface smart interface</li></ul><br>
<br>
You have different options to select your products. You can do it through the<br>
barcode reader, just browse through the categories you have put in place (ie.<br>
drinks, snacks, meals, etc.), or text search in case neither of the other<br>
options work for you. If you need to use the POS for your restaurant, for<br>
example, your employees can record at the same time multiple tickets without<br>
having to wait to do one transaction at a time. Along, to facilitate payment,<br>
the application allows multiple payment methods.<br>
<br>
The POS application is so simple and accessible to use that your shop or<br>
restaurant will never need any other tool to manage orders. Due to its smart<br>
and user-friendly interface you don't need any training to learn how to use it.<br>
Think of it as an out-of-the-box solution to boost your business' productivity.<br>
<br>
]]>
</field>
</record>
</data>
</openerp>

View File

@ -1,162 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem name="Knowledge" id="knowledge.menu_document"/>
<menuitem name="Pages" id="menu_wiki" parent="knowledge.menu_document" sequence="20" />
<!-- wiki tree view -->
<record id="view_wiki_tree_children" model="ir.ui.view">
<field name="name">document.page.tree</field>
<field name="model">document.page</field>
<field name="field_parent">child_ids</field>
<field name="priority">100</field>
<field name="arch" type="xml">
<tree string="Document Page">
<field name="name"/>
<field name="write_uid"/>
<field name="write_date"/>
</tree>
</field>
</record>
<!-- wiki list view -->
<record id="view_wiki_tree" model="ir.ui.view">
<field name="name">document.page.list</field>
<field name="model">document.page</field>
<field name="arch" type="xml">
<tree string="Document Page">
<field name="name"/>
<field name="parent_id"/>
<field name="create_uid" invisible="1"/>
<field name="write_uid"/>
<field name="write_date"/>
</tree>
</field>
</record>
<!-- wiki Form view -->
<record id="view_wiki_form" model="ir.ui.view">
<field name="name">document.page.form</field>
<field name="model">document.page</field>
<field name="arch" type="xml">
<form string="Document Page" version="7.0">
<field name="type" invisible="1"/>
<h1><field name="name" placeholder="Name"/></h1>
<group class="oe_edit_only">
<group>
<field name="parent_id" on_change="onchange_parent_id(parent_id,content)" string="Category"/>
</group>
<group>
<field name="write_uid" groups="base.group_no_one"/>
<field name="write_date" groups="base.group_no_one"/>
<field name="menu_id" groups="base.group_no_one"/>
</group>
</group>
<div class="oe_edit_only" attrs="{'invisible':[('type','=','content')]}">
<label for="content" string="Template"/>
that will be used as a content template for all new page of this category.
</div>
<field name="content" placeholder="e.g. Once upon a time..." class="oe_edit_only" widget="html"/>
<div class="oe_document_page">
<field name="display_content" widget="html" class="oe_view_only" options='{"safe": True}'/>
</div>
</form>
</field>
</record>
<!-- page Search view -->
<record id="view_wiki_filter" model="ir.ui.view">
<field name="name">document.page.search</field>
<field name="model">document.page</field>
<field name="arch" type="xml">
<search string="Document Page">
<field name="name" string="Content" filter_domain="['|', ('name','ilike',self), ('content','ilike',self)]"/>
<field name="write_uid"/>
<field name="parent_id"/>
<group expand="0" string="Group By...">
<filter string="Document Type" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Author" domain="[]" context="{'group_by':'create_uid'}"/>
<filter string="Last Contributor" domain="[]" context="{'group_by':'write_uid'}"/>
</group>
</search>
</field>
</record>
<!-- page action -->
<record id="action_page" model="ir.actions.act_window">
<field name="name">Pages</field>
<field name="res_model">document.page</field>
<field name="domain">[('type','=','content')]</field>
<field name="context">{'default_type': 'content'}</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_wiki_tree"/>
<field name="search_view_id" ref="view_wiki_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new web page.
</p>
</field>
</record>
<menuitem id="menu_page" parent="menu_wiki" name="Pages" action="action_page" sequence="10"/>
<record id="action_category" model="ir.actions.act_window">
<field name="name">Category</field>
<field name="res_model">document.page</field>
<field name="domain">[('type','=','category')]</field>
<field name="context">{'default_type': 'category'}</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_wiki_tree"/>
<field name="search_view_id" ref="view_wiki_filter"/>
</record>
<menuitem id="menu_category" parent="menu_wiki" name="Categories" action="action_category" sequence="20"/>
<!-- History Tree view -->
<record model="ir.ui.view" id="view_wiki_history_tree">
<field name="name">document.page.history.tree</field>
<field name="model">document.page.history</field>
<field name="arch" type="xml">
<tree string="Document History">
<field name="create_date"/>
<field name="create_uid"/>
<field name="page_id"/>
</tree>
</field>
</record>
<!-- History Form view -->
<record model="ir.ui.view" id="wiki_history_form">
<field name="name">document.page.history.form</field>
<field name="model">document.page.history</field>
<field name="arch" type="xml">
<form string="Document Page History" version="7.0">
<label for="page_id" class="oe_edit_only"/>
<h1><field name="page_id" select="1" /></h1>
<label for="create_date" class="oe_edit_only"/>
<field name="create_date" readonly="1"/>
<label for="content" class="oe_edit_only"/>
<field name="content" colspan="4"/>
</form>
</field>
</record>
<!-- History Action -->
<record model="ir.actions.act_window" id="action_history">
<field name="name">Page history</field>
<field name="res_model">document.page.history</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_page_history" parent="menu_wiki" name="Pages history" action="action_history" sequence="30" groups="base.group_no_one"/>
<act_window
id="action_related_page_history"
context="{'search_default_page_id': [active_id], 'default_page_id': active_id}"
domain="[('page_id','=',active_id)]"
name="Page History"
res_model="document.page.history"
src_model="document.page"/>
<act_window
id="action_related_page_create_menu"
name="Create Menu"
res_model="document.page.create.menu"
target="new"
view_type="form"
view_mode="form"
src_model="document.page"/>
</data>
</openerp>

View File

@ -1,255 +0,0 @@
# Arabic translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:08+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "الفئة"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "المشارك الاخير"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "الكاتب"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "القائمة"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "تاريخ الصفحة"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "المحتوى"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "تجميع حسب..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "الاسم"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "النوع"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "تم التعديل عليها بواسطة"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "أو"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "نوع الصفحة"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "معلومات القائمة"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Автор"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Меню"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Съдържание"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Групиране по..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Заглавие"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Информация за меню"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Дата"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Страници"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Надменю"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Създадено на"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Резюме"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Име на меню"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Дата на редакция"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Създай меню"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Отказ"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Различия"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:14+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr ""
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr ""
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr ""
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:13+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"<jesteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Últim col·laborador"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Històric pàgina"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Contingut"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Agrupa per..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Títol"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Assistent 'Crea menú'"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informació del menú"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Diferència"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Pàgines"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú pare"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Creat el"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Resum"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nom menú"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data modificació"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Crea menú"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Cancel·la"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Dif."
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
"X-Poedit-Language: Czech\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Poslední přispěvatel"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Nabídka"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Historie stránky"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Obsah"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Seskupit podle..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Název"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Průvodce vytvořením nabídky"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informace nabídky"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Rozdíly"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Stránky"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Rodičovská nabídka"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Vytvořeno"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Shrnutí"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Jméno nabídky"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Datum změny"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Vytvořit nabídku"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Zrušit"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Rozdíl"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Danish translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:08+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish <da@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr ""
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr ""
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr ""
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
# Ferdinand Gassauer <f.gassauer@chricar.at>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-18 06:54+0000\n"
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
"Language-Team: German <kde-i18n-doc@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Kategorie"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Letzer Beitragender"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menü"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Dokumentenseite"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Seitenänderungsverlauf"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Inhalt"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Gruppiert je..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Vorlage"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr "diese wird für alle neuen Dokumente dieser Kategorie verwendet"
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Titel"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Assistent für Menüerzeugung"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Typ"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Geändert von"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "oder"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Seitentyp"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menü"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Dokumenten Seite Historie"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Seiten Historie"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Es gibt keine Veränderungen in den Revisionen"
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Differenz"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Seiten"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Kategorien"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Obermenü"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Erzeugt am"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr "Sie müssen zumindest 1 und maximal 2 Revisionen auswählen"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Seiten Historie"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Zusammenfassung"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Webseiten erstellen"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Dokument Historie"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Menü Bezeichnung"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Seite"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Historie"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Änderung am"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Erzeuge Menü"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Zeige Inhalt"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Warnung!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Abbrechen"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Differenz"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Dokumententyp"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "abhängige Elemente"

View File

@ -1,253 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * document_page
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0alpha\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr ""
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr ""
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr ""
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,257 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: Panagiotis Kranidiotis <kranidiotis@vatica.org>\n"
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
"X-Poedit-SourceCharset: utf-8\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Δημιουργός"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Μενού"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Περιεχόμενα"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Τίτλος"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Πληροφορίες Μενού"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Ημερομηνία"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Σελίδες"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Μενού Προέλευσης"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Δημιουργήθηκε στις"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Περίληψη"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Όνομα Μενού"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Ημερομηνία Τροποποίησης"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Δημιουργία Μενού"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Ακύρωση"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Διαφ."
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,257 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-11 21:47+0000\n"
"Last-Translator: Ana Juaristi Olalde <ajuaristio@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Categoría"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Último colaborador"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Página de documento"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Historial página"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Contenido"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Plantilla"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"esto será usado como una plantilla de contenido para todas las páginas de "
"esta categoría."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Título"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Asistente crear menú"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tipo"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Modificado por"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "o"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Tipo de página"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Información del menú"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Historia de página de documento"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Historial de páginas"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "No hay cambios en las revisiones."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Fecha"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Diferencia"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Páginas"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Categorías"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú padre"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"¡Necesita seleccionar mínimo una y máximo dos revisiones de historial!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Historial de página"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Resumen"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Crear páginas Web"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Historial del Documento"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nombre menú"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Página"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Historial"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Fecha de modificación"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Crear menú"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Contenido mostrado"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "¡Advertencia!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Cancelar"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Dif."
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Tipo de documento"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Hijos"

View File

@ -1,494 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2009-09-23 14:54+0000\n"
"Last-Translator: Silvana Herrera <sherrera@thymbra.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: wiki
#: field:wiki.groups,template:0
msgid "Wiki Template"
msgstr "Plantilla Wiki"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki
#: model:ir.ui.menu,name:wiki.menu_action_wiki_wiki
msgid "Wiki Pages"
msgstr "Páginas Wiki"
#. module: wiki
#: field:wiki.groups,method:0
msgid "Display Method"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_wiki_page_open
#: view:wiki.wiki.page.open:0
msgid "Open Page"
msgstr "Abrir página"
#. module: wiki
#: field:wiki.groups,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: wiki
#: field:wiki.wiki,section:0
msgid "Section"
msgstr "Sección"
#. module: wiki
#: help:wiki.wiki,toc:0
msgid "Indicates that this pages have a table of contents or not"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_history view:wiki.wiki.history:0
msgid "Wiki History"
msgstr "Historial Wiki"
#. module: wiki
#: field:wiki.wiki,minor_edit:0
msgid "Minor edit"
msgstr "Edición menor"
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,text_area:0
msgid "Content"
msgstr "Contenido"
#. module: wiki
#: field:wiki.wiki,child_ids:0
msgid "Child Pages"
msgstr ""
#. module: wiki
#: field:wiki.wiki,parent_id:0
msgid "Parent Page"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: wiki
#: field:wiki.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú padre"
#. module: wiki
#: code:addons/wiki/wizard/wiki_make_index.py:52
#, python-format
msgid "There is no section in this Page"
msgstr ""
#. module: wiki
#: field:wiki.groups,name:0 view:wiki.wiki:0 field:wiki.wiki,group_id:0
msgid "Wiki Group"
msgstr "Grupo Wiki"
#. module: wiki
#: field:wiki.wiki,name:0
msgid "Title"
msgstr "Título"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: wiki
#: field:wiki.wiki,history_id:0
msgid "History Lines"
msgstr "Líneas del historial"
#. module: wiki
#: view:wiki.wiki:0
msgid "Page Content"
msgstr ""
#. module: wiki
#: code:addons/wiki/wiki.py:237 code:addons/wiki/wizard/wiki_make_index.py:52
#, python-format
msgid "Warning !"
msgstr ""
#. module: wiki
#: code:addons/wiki/wiki.py:237
#, python-format
msgid "There are no changes in revisions"
msgstr ""
#. module: wiki
#: help:wiki.wiki,section:0
msgid "Use page section code like 1.2.1"
msgstr "Utilice código de sección de la página, por ejemplo 1.2.1"
#. module: wiki
#: field:wiki.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nombre del menú"
#. module: wiki
#: field:wiki.groups,notes:0
msgid "Description"
msgstr "Descripción"
#. module: wiki
#: field:wiki.wiki,review:0
msgid "Needs Review"
msgstr ""
#. module: wiki
#: help:wiki.wiki,review:0
msgid ""
"Indicates that this page should be reviewed, raising the attention of other "
"contributors"
msgstr ""
#. module: wiki
#: view:wiki.create.menu:0 view:wiki.make.index:0
msgid "Menu Information"
msgstr "Información del menú"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_wiki_history
msgid "Page History"
msgstr ""
#. module: wiki
#: selection:wiki.groups,method:0
msgid "Tree"
msgstr ""
#. module: wiki
#: view:wiki.groups:0
msgid "Page Template"
msgstr "Plantilla de página"
#. module: wiki
#: field:wiki.wiki,tags:0
msgid "Keywords"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,help:wiki.action_wiki
msgid ""
"With Wiki Pages you can share ideas and questions with your coworkers. You "
"can create a new document that can be linked to one or several applications "
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
"There is a basic wiki editing for text format."
msgstr ""
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "Warning"
msgstr "Aviso"
#. module: wiki
#: help:wiki.groups,home:0
msgid "Required to select home page if display method is Home Page"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,create_date:0
msgid "Date"
msgstr "Fecha"
#. module: wiki
#: view:wiki.make.index:0
msgid "Want to create a Index on Selected Pages ? "
msgstr "¿Desea crear un índice sobre las páginas seleccionadas? "
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff_values
#: view:wizard.wiki.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: wiki
#: field:wiki.groups,page_ids:0
msgid "Pages"
msgstr "Páginas"
#. module: wiki
#: view:wiki.groups:0
msgid "Group Description"
msgstr ""
#. module: wiki
#: view:wiki.wiki.page.open:0
msgid "Want to open a wiki page? "
msgstr ""
#. module: wiki
#: field:wiki.groups,section:0
msgid "Make Section ?"
msgstr "¿Crear sección?"
#. module: wiki
#: field:wiki.wiki.history,text_area:0
msgid "Text area"
msgstr "Área de texto"
#. module: wiki
#: view:wiki.wiki:0
msgid "Meta Information"
msgstr ""
#. module: wiki
#: field:wiki.wiki,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: wiki
#: view:wiki.groups:0 view:wizard.wiki.history.show_diff:0
msgid "Notes"
msgstr "Notas"
#. module: wiki
#: selection:wiki.groups,method:0
msgid "List"
msgstr ""
#. module: wiki
#: field:wiki.wiki,summary:0 field:wiki.wiki.history,summary:0
msgid "Summary"
msgstr "Resumen"
#. module: wiki
#: field:wiki.groups,create_date:0
msgid "Created Date"
msgstr "Fecha de creación"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_history
msgid "All Page Histories"
msgstr "Todos los historiales de páginas"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki
msgid "wiki.wiki"
msgstr "wiki.wiki"
#. module: wiki
#: help:wiki.groups,method:0
msgid "Define the default behaviour of the menu created on this group"
msgstr ""
#. module: wiki
#: view:wizard.wiki.history.show_diff:0
msgid "Close"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wizard_wiki_history_show_diff
msgid "wizard.wiki.history.show_diff"
msgstr "asistente.wiki.historial.mostrar_dif"
#. module: wiki
#: field:wiki.wiki.history,wiki_id:0
msgid "Wiki Id"
msgstr "ID Wiki"
#. module: wiki
#: field:wiki.groups,home:0 selection:wiki.groups,method:0
msgid "Home Page"
msgstr ""
#. module: wiki
#: help:wiki.wiki,parent_id:0
msgid "Allows you to link with the other page with in the current topic"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Modification Information"
msgstr ""
#. module: wiki
#: help:wiki.wiki,group_id:0
msgid "Topic, also called Wiki Group"
msgstr ""
#. module: wiki
#: model:ir.ui.menu,name:wiki.menu_wiki_configuration view:wiki.wiki:0
msgid "Wiki"
msgstr "Wiki"
#. module: wiki
#: field:wiki.wiki,write_date:0
msgid "Modification Date"
msgstr "Fecha de modificación"
#. module: wiki
#: view:wiki.groups:0
msgid "Configuration"
msgstr "Configuración"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index_values
#: model:ir.model,name:wiki.model_wiki_make_index view:wiki.make.index:0
msgid "Create Index"
msgstr "Crear índice"
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "You need to select minimum 1 or maximum 2 history revision!"
msgstr ""
"¡Debe seleccionar como mínimo 1 o como máximo 2 revisiones históricas!"
#. module: wiki
#: view:wiki.wiki:0
msgid "Group By..."
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_create_menu
#: view:wiki.create.menu:0 view:wiki.groups:0 view:wiki.make.index:0
msgid "Create Menu"
msgstr "Crear menú"
#. module: wiki
#: field:wiki.wiki.history,minor_edit:0
msgid "This is a major edit ?"
msgstr "¿Es ésta una edición mayor?"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_groups
#: model:ir.actions.act_window,name:wiki.action_wiki_groups_browse
#: model:ir.model,name:wiki.model_wiki_groups
#: model:ir.ui.menu,name:wiki.menu_action_wiki_groups view:wiki.groups:0
msgid "Wiki Groups"
msgstr "Grupos Wiki"
#. module: wiki
#: view:wiki.wiki:0
msgid "Topic"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,write_uid:0
msgid "Modify By"
msgstr "Modificado por"
#. module: wiki
#: code:addons/wiki/web/widgets/wikimarkup/__init__.py:1981
#: field:wiki.wiki,toc:0
#, python-format
msgid "Table of Contents"
msgstr "Tabla de contenidos"
#. module: wiki
#: view:wiki.groups:0 view:wiki.wiki.page.open:0
msgid "Open Wiki Page"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_page_open
msgid "wiz open page"
msgstr ""
#. module: wiki
#: view:wiki.create.menu:0 view:wiki.make.index:0 view:wiki.wiki.page.open:0
msgid "Cancel"
msgstr "Cancelar"
#. module: wiki
#: field:wizard.wiki.history.show_diff,file_path:0
msgid "Diff"
msgstr "Dif."
#. module: wiki
#: view:wiki.wiki:0
msgid "Need Review"
msgstr "Necesita revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_review
msgid "Pages Waiting Review"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_group_open
msgid "Search Page"
msgstr ""
#~ msgid "Child Groups"
#~ msgstr "Grupos hijos"
#~ msgid "Wiki Groups Links"
#~ msgstr "Enlaces grupos wiki"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Document Management - Wiki"
#~ msgstr "Gestión de documentos - Wiki"
#~ msgid "Wiki Configuration"
#~ msgstr "Configuración Wiki"
#~ msgid "Create a Menu"
#~ msgstr "Crear un menú"
#~ msgid "History Differance"
#~ msgstr "Diferencia de historial"
#~ msgid "Group Home Page"
#~ msgstr "Página de inicio del grupo"
#~ msgid "Differences"
#~ msgstr "Diferencias"
#~ msgid "Last Author"
#~ msgstr "Último autor"
#~ msgid "Document Management"
#~ msgstr "Gestión de documentos"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML inválido para la definición de la vista !"
#~ msgid "Parent Group"
#~ msgstr "Grupo padre"
#~ msgid "Wiki Differance"
#~ msgstr "Diferencia Wiki"
#, python-format
#~ msgid "No action found"
#~ msgstr "No se ha encontrado la acción"
#~ msgid "Modifications"
#~ msgstr "Modificaciones"
#~ msgid "History"
#~ msgstr "Historial"
#~ msgid "Tags"
#~ msgstr "Etiquetas"

View File

@ -1,520 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-02-20 01:10+0000\n"
"Last-Translator: Freddy Gonzalez <freddy.gonzalez@clearcorp.co.cr>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-02-21 05:55+0000\n"
"X-Generator: Launchpad (build 14838)\n"
"Language: \n"
#. module: wiki
#: field:wiki.groups,template:0
msgid "Wiki Template"
msgstr "Plantilla Wiki"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki
#: model:ir.ui.menu,name:wiki.menu_action_wiki_wiki
msgid "Wiki Pages"
msgstr "Páginas Wiki"
#. module: wiki
#: field:wiki.groups,method:0
msgid "Display Method"
msgstr "Método de visualización"
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_wiki_page_open
#: view:wiki.wiki.page.open:0
msgid "Open Page"
msgstr "Abrir página"
#. module: wiki
#: field:wiki.groups,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: wiki
#: field:wiki.wiki,section:0
msgid "Section"
msgstr "Sección"
#. module: wiki
#: help:wiki.wiki,toc:0
msgid "Indicates that this pages have a table of contents or not"
msgstr "Indica si estas páginas tienen una tabla de contenidos o no."
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_history view:wiki.wiki.history:0
msgid "Wiki History"
msgstr "Historial Wiki"
#. module: wiki
#: field:wiki.wiki,minor_edit:0
msgid "Minor edit"
msgstr "Edición menor"
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,text_area:0
msgid "Content"
msgstr "Contenido"
#. module: wiki
#: field:wiki.wiki,child_ids:0
msgid "Child Pages"
msgstr "Páginas hijas"
#. module: wiki
#: field:wiki.wiki,parent_id:0
msgid "Parent Page"
msgstr "Página padre"
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,write_uid:0
msgid "Last Contributor"
msgstr "Último colaborador"
#. module: wiki
#: field:wiki.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú padre"
#. module: wiki
#: code:addons/wiki/wizard/wiki_make_index.py:52
#, python-format
msgid "There is no section in this Page"
msgstr "No hay sección en esta página"
#. module: wiki
#: field:wiki.groups,name:0 view:wiki.wiki:0 field:wiki.wiki,group_id:0
msgid "Wiki Group"
msgstr "Grupo Wiki"
#. module: wiki
#: field:wiki.wiki,name:0
msgid "Title"
msgstr "Título"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_create_menu
msgid "Wizard Create Menu"
msgstr "Asistente crear menú"
#. module: wiki
#: field:wiki.wiki,history_id:0
msgid "History Lines"
msgstr "Líneas historial"
#. module: wiki
#: view:wiki.wiki:0
msgid "Page Content"
msgstr "Contenido página"
#. module: wiki
#: code:addons/wiki/wiki.py:237 code:addons/wiki/wizard/wiki_make_index.py:52
#, python-format
msgid "Warning !"
msgstr "¡Aviso!"
#. module: wiki
#: code:addons/wiki/wiki.py:237
#, python-format
msgid "There are no changes in revisions"
msgstr "No hay cambios en revisiones"
#. module: wiki
#: help:wiki.wiki,section:0
msgid "Use page section code like 1.2.1"
msgstr "Utilice código de sección de la página, por ejemplo 1.2.1"
#. module: wiki
#: field:wiki.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nombre menú"
#. module: wiki
#: field:wiki.groups,notes:0
msgid "Description"
msgstr "Descripción"
#. module: wiki
#: field:wiki.wiki,review:0
msgid "Needs Review"
msgstr "Necesita revisión"
#. module: wiki
#: help:wiki.wiki,review:0
msgid ""
"Indicates that this page should be reviewed, raising the attention of other "
"contributors"
msgstr ""
"Indica que esta página debería ser revisada, captando la atención de otros "
"colaboradores."
#. module: wiki
#: view:wiki.create.menu:0 view:wiki.make.index:0
msgid "Menu Information"
msgstr "Información del menú"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_wiki_history
msgid "Page History"
msgstr "Historial página"
#. module: wiki
#: selection:wiki.groups,method:0
msgid "Tree"
msgstr "Árbol"
#. module: wiki
#: view:wiki.groups:0
msgid "Page Template"
msgstr "Plantilla de página"
#. module: wiki
#: field:wiki.wiki,tags:0
msgid "Keywords"
msgstr "Palabras clave"
#. module: wiki
#: model:ir.actions.act_window,help:wiki.action_wiki
msgid ""
"With Wiki Pages you can share ideas and questions with your coworkers. You "
"can create a new document that can be linked to one or several applications "
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
"There is a basic wiki editing for text format."
msgstr ""
"Con páginas wiki puede compartir ideas y preguntas con sus compañeros de "
"trabajo. Puede crear un nuevo documento que puede ser relacionado con una o "
"varias aplicaciones (CRM, Ventas, etc.). Puede utilizar palabras clave para "
"facilitar el acceso a sus páginas wiki. Existe un editor básico para el "
"formato texto del wiki."
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "Warning"
msgstr "Advertencia"
#. module: wiki
#: help:wiki.groups,home:0
msgid "Required to select home page if display method is Home Page"
msgstr ""
"Es obligado seleccionar la página de inicio si el método de visualización es "
"Página inicial."
#. module: wiki
#: field:wiki.wiki.history,create_date:0
msgid "Date"
msgstr "Fecha"
#. module: wiki
#: view:wiki.make.index:0
msgid "Want to create a Index on Selected Pages ? "
msgstr "¿Desea crear un índice sobre las páginas seleccionadas? "
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff_values
#: view:wizard.wiki.history.show_diff:0
msgid "Difference"
msgstr "Diferencia"
#. module: wiki
#: field:wiki.groups,page_ids:0
msgid "Pages"
msgstr "Páginas"
#. module: wiki
#: view:wiki.groups:0
msgid "Group Description"
msgstr "Descripción grupo"
#. module: wiki
#: view:wiki.wiki.page.open:0
msgid "Want to open a wiki page? "
msgstr "¿Desea abrir una página wiki? "
#. module: wiki
#: field:wiki.groups,section:0
msgid "Make Section ?"
msgstr "¿Crear sección?"
#. module: wiki
#: field:wiki.wiki.history,text_area:0
msgid "Text area"
msgstr "Área de texto"
#. module: wiki
#: view:wiki.wiki:0
msgid "Meta Information"
msgstr "Meta información"
#. module: wiki
#: field:wiki.wiki,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: wiki
#: view:wiki.groups:0 view:wizard.wiki.history.show_diff:0
msgid "Notes"
msgstr "Notas"
#. module: wiki
#: selection:wiki.groups,method:0
msgid "List"
msgstr "Lista"
#. module: wiki
#: field:wiki.wiki,summary:0 field:wiki.wiki.history,summary:0
msgid "Summary"
msgstr "Resumen"
#. module: wiki
#: field:wiki.groups,create_date:0
msgid "Created Date"
msgstr "Fecha de creación"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_history
msgid "All Page Histories"
msgstr "Todos los historiales de páginas"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki
msgid "wiki.wiki"
msgstr "wiki.wiki"
#. module: wiki
#: help:wiki.groups,method:0
msgid "Define the default behaviour of the menu created on this group"
msgstr "Define el comportamiento por defecto del menú creado en este grupo."
#. module: wiki
#: view:wizard.wiki.history.show_diff:0
msgid "Close"
msgstr "Cerrar"
#. module: wiki
#: model:ir.model,name:wiki.model_wizard_wiki_history_show_diff
msgid "wizard.wiki.history.show_diff"
msgstr "asistente.wiki.historial.mostrar_dif"
#. module: wiki
#: field:wiki.wiki.history,wiki_id:0
msgid "Wiki Id"
msgstr "ID Wiki"
#. module: wiki
#: field:wiki.groups,home:0 selection:wiki.groups,method:0
msgid "Home Page"
msgstr "Página inicial"
#. module: wiki
#: help:wiki.wiki,parent_id:0
msgid "Allows you to link with the other page with in the current topic"
msgstr "Le permite enlazar con la otra página dentro del tema actual."
#. module: wiki
#: view:wiki.wiki:0
msgid "Modification Information"
msgstr "Información modificación"
#. module: wiki
#: help:wiki.wiki,group_id:0
msgid "Topic, also called Wiki Group"
msgstr "Tema, también denominado Grupo wiki."
#. module: wiki
#: model:ir.ui.menu,name:wiki.menu_wiki_configuration view:wiki.wiki:0
msgid "Wiki"
msgstr "Wiki"
#. module: wiki
#: field:wiki.wiki,write_date:0
msgid "Modification Date"
msgstr "Fecha de modificación"
#. module: wiki
#: view:wiki.groups:0
msgid "Configuration"
msgstr "Configuración"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index_values
#: model:ir.model,name:wiki.model_wiki_make_index view:wiki.make.index:0
msgid "Create Index"
msgstr "Crear índice"
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "You need to select minimum 1 or maximum 2 history revision!"
msgstr ""
"¡Debe seleccionar como mínimo 1 o como máximo 2 revisiones históricas!"
#. module: wiki
#: view:wiki.wiki:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_create_menu
#: view:wiki.create.menu:0 view:wiki.groups:0 view:wiki.make.index:0
msgid "Create Menu"
msgstr "Crear menú"
#. module: wiki
#: field:wiki.wiki.history,minor_edit:0
msgid "This is a major edit ?"
msgstr "¿Es ésta una edición mayor?"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_groups
#: model:ir.actions.act_window,name:wiki.action_wiki_groups_browse
#: model:ir.model,name:wiki.model_wiki_groups
#: model:ir.ui.menu,name:wiki.menu_action_wiki_groups view:wiki.groups:0
msgid "Wiki Groups"
msgstr "Grupos Wiki"
#. module: wiki
#: view:wiki.wiki:0
msgid "Topic"
msgstr "Tema"
#. module: wiki
#: field:wiki.wiki.history,write_uid:0
msgid "Modify By"
msgstr "Modificado por"
#. module: wiki
#: code:addons/wiki/web/widgets/wikimarkup/__init__.py:1981
#: field:wiki.wiki,toc:0
#, python-format
msgid "Table of Contents"
msgstr "Tabla de contenido"
#. module: wiki
#: view:wiki.groups:0 view:wiki.wiki.page.open:0
msgid "Open Wiki Page"
msgstr "Abrir página wiki"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_page_open
msgid "wiz open page"
msgstr "asistente abrir página"
#. module: wiki
#: view:wiki.create.menu:0 view:wiki.make.index:0 view:wiki.wiki.page.open:0
msgid "Cancel"
msgstr "Cancelar"
#. module: wiki
#: field:wizard.wiki.history.show_diff,file_path:0
msgid "Diff"
msgstr "Dif."
#. module: wiki
#: view:wiki.wiki:0
msgid "Need Review"
msgstr "Necesita revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_review
msgid "Pages Waiting Review"
msgstr "Páginas esperando revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_group_open
msgid "Search Page"
msgstr "Buscar página"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Wiki Groups Links"
#~ msgstr "Enlaces grupos wiki"
#~ msgid "Child Groups"
#~ msgstr "Grupos hijos"
#~ msgid "Wiki Configuration"
#~ msgstr "Configuración Wiki"
#~ msgid "Document Management - Wiki"
#~ msgstr "Gestión de documentos - Wiki"
#~ msgid "Create a Menu"
#~ msgstr "Crear un menú"
#~ msgid "History Differance"
#~ msgstr "Diferencia historial"
#~ msgid "Group Home Page"
#~ msgstr "Página de inicio del grupo"
#~ msgid "Last Author"
#~ msgstr "Último autor"
#~ msgid "Differences"
#~ msgstr "Diferencias"
#~ msgid "Document Management"
#~ msgstr "Gestión de documentos"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid "Parent Group"
#~ msgstr "Grupo padre"
#~ msgid "Wiki Differance"
#~ msgstr "Diferencia Wiki"
#, python-format
#~ msgid "No action found"
#~ msgstr "No se ha encontrado la acción"
#~ msgid "Modifications"
#~ msgstr "Modificaciones"
#~ msgid "History"
#~ msgstr "Historial"
#~ msgid "Tags"
#~ msgstr "Etiquetas"
#~ msgid "Invalid model name in the action definition."
#~ msgstr "Nombre de modelo no válido en la definición de acción."
#~ msgid ""
#~ "\n"
#~ "The base module to manage documents(wiki)\n"
#~ "\n"
#~ "keep track for the wiki groups, pages, and history\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "El módulo base para gestionar documentos (wiki)\n"
#~ "\n"
#~ "gestione los grupos, páginas e historial del wiki\n"
#~ " "

View File

@ -1,535 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
"PO-Revision-Date: 2011-01-13 02:46+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:38+0000\n"
"X-Generator: Launchpad (build 13830)\n"
#. module: wiki
#: field:wiki.groups,template:0
msgid "Wiki Template"
msgstr "Plantilla Wiki"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki
#: model:ir.ui.menu,name:wiki.menu_action_wiki_wiki
msgid "Wiki Pages"
msgstr "Páginas Wiki"
#. module: wiki
#: field:wiki.groups,method:0
msgid "Display Method"
msgstr "Método de visualización"
#. module: wiki
#: view:wiki.wiki:0
#: field:wiki.wiki,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_wiki_page_open
#: view:wiki.wiki.page.open:0
msgid "Open Page"
msgstr "Abrir página"
#. module: wiki
#: field:wiki.groups,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: wiki
#: field:wiki.wiki,section:0
msgid "Section"
msgstr "Sección"
#. module: wiki
#: help:wiki.wiki,toc:0
msgid "Indicates that this pages have a table of contents or not"
msgstr "Indica si estas páginas tienen una tabla de contenidos o no."
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_history
#: view:wiki.wiki.history:0
msgid "Wiki History"
msgstr "Historial Wiki"
#. module: wiki
#: field:wiki.wiki,minor_edit:0
msgid "Minor edit"
msgstr "Edición menor"
#. module: wiki
#: view:wiki.wiki:0
#: field:wiki.wiki,text_area:0
msgid "Content"
msgstr "Contenido"
#. module: wiki
#: field:wiki.wiki,child_ids:0
msgid "Child Pages"
msgstr "Páginas hijas"
#. module: wiki
#: field:wiki.wiki,parent_id:0
msgid "Parent Page"
msgstr "Página padre"
#. module: wiki
#: view:wiki.wiki:0
#: field:wiki.wiki,write_uid:0
msgid "Last Contributor"
msgstr "Último colaborador"
#. module: wiki
#: field:wiki.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú padre"
#. module: wiki
#: help:wiki.wiki,group_id:0
msgid "Topic, also called Wiki Group"
msgstr "Tema, también denominado Grupo wiki."
#. module: wiki
#: field:wiki.groups,name:0
#: view:wiki.wiki:0
#: field:wiki.wiki,group_id:0
msgid "Wiki Group"
msgstr "Grupo Wiki"
#. module: wiki
#: field:wiki.wiki,name:0
msgid "Title"
msgstr "Título"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_create_menu
msgid "Wizard Create Menu"
msgstr "Asistente crear menú"
#. module: wiki
#: field:wiki.wiki,history_id:0
msgid "History Lines"
msgstr "Líneas historial"
#. module: wiki
#: view:wiki.wiki:0
msgid "Page Content"
msgstr "Contenido página"
#. module: wiki
#: code:addons/wiki/wiki.py:236
#, python-format
msgid "Warning !"
msgstr "¡Aviso!"
#. module: wiki
#: code:addons/wiki/wiki.py:236
#, python-format
msgid "There are no changes in revisions"
msgstr "No hay cambios en revisiones"
#. module: wiki
#: model:ir.module.module,shortdesc:wiki.module_meta_information
msgid "Document Management - Wiki"
msgstr "Gestión de documentos - Wiki"
#. module: wiki
#: field:wiki.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nombre menú"
#. module: wiki
#: field:wiki.groups,notes:0
msgid "Description"
msgstr "Descripción"
#. module: wiki
#: field:wiki.wiki,review:0
msgid "Needs Review"
msgstr "Necesita revisión"
#. module: wiki
#: help:wiki.wiki,review:0
msgid ""
"Indicates that this page should be reviewed, raising the attention of other "
"contributors"
msgstr ""
"Indica que esta página debería ser revisada, captando la atención de otros "
"colaboradores."
#. module: wiki
#: view:wiki.create.menu:0
#: view:wiki.make.index:0
msgid "Menu Information"
msgstr "Información del menú"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_wiki_history
msgid "Page History"
msgstr "Historial página"
#. module: wiki
#: selection:wiki.groups,method:0
msgid "Tree"
msgstr "Árbol"
#. module: wiki
#: view:wiki.groups:0
msgid "Page Template"
msgstr "Plantilla de página"
#. module: wiki
#: field:wiki.wiki,tags:0
msgid "Keywords"
msgstr "Palabras clave"
#. module: wiki
#: model:ir.actions.act_window,help:wiki.action_wiki
msgid ""
"With Wiki Pages you can share ideas and questions with your coworkers. You "
"can create a new document that can be linked to one or several applications "
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
"There is a basic wiki editing for text format."
msgstr ""
"Con páginas wiki puede compartir ideas y preguntas con sus compañeros de "
"trabajo. Puede crear un nuevo documento que puede ser relacionado con una o "
"varias aplicaciones (CRM, Ventas, etc.). Puede utilizar palabras clave para "
"facilitar el acceso a sus páginas wiki. Existe un editor básico para el "
"formato texto del wiki."
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "Warning"
msgstr "Advertencia"
#. module: wiki
#: field:wiki.wiki,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: wiki
#: field:wiki.wiki.history,create_date:0
msgid "Date"
msgstr "Fecha"
#. module: wiki
#: view:wiki.make.index:0
msgid "Want to create a Index on Selected Pages ? "
msgstr "¿Desea crear un índice sobre las páginas seleccionadas? "
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff_values
#: view:wizard.wiki.history.show_diff:0
msgid "Difference"
msgstr "Diferencia"
#. module: wiki
#: field:wiki.groups,page_ids:0
msgid "Pages"
msgstr "Páginas"
#. module: wiki
#: view:wiki.groups:0
msgid "Group Description"
msgstr "Descripción grupo"
#. module: wiki
#: help:wiki.wiki,section:0
msgid "Use page section code like 1.2.1"
msgstr "Utilice código de sección de la página, por ejemplo 1.2.1"
#. module: wiki
#: view:wiki.wiki.page.open:0
msgid "Want to open a wiki page? "
msgstr "¿Desea abrir una página wiki? "
#. module: wiki
#: field:wiki.groups,section:0
msgid "Make Section ?"
msgstr "¿Crear sección?"
#. module: wiki
#: field:wiki.wiki.history,text_area:0
msgid "Text area"
msgstr "Área de texto"
#. module: wiki
#: view:wiki.wiki:0
msgid "Meta Information"
msgstr "Meta información"
#. module: wiki
#: model:ir.module.module,description:wiki.module_meta_information
msgid ""
"\n"
"The base module to manage documents(wiki)\n"
"\n"
"keep track for the wiki groups, pages, and history\n"
" "
msgstr ""
"\n"
"El módulo base para gestionar documentos (wiki)\n"
"\n"
"gestione los grupos, páginas e historial del wiki\n"
" "
#. module: wiki
#: view:wiki.groups:0
#: view:wizard.wiki.history.show_diff:0
msgid "Notes"
msgstr "Notas"
#. module: wiki
#: help:wiki.groups,home:0
msgid "Required to select home page if display method is Home Page"
msgstr ""
"Es obligado seleccionar la página de inicio si el método de visualización es "
"Página inicial."
#. module: wiki
#: selection:wiki.groups,method:0
msgid "List"
msgstr "Lista"
#. module: wiki
#: field:wiki.wiki,summary:0
#: field:wiki.wiki.history,summary:0
msgid "Summary"
msgstr "Resumen"
#. module: wiki
#: field:wiki.groups,create_date:0
msgid "Created Date"
msgstr "Fecha de creación"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_history
msgid "All Page Histories"
msgstr "Todos los historiales de páginas"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki
msgid "wiki.wiki"
msgstr "wiki.wiki"
#. module: wiki
#: help:wiki.groups,method:0
msgid "Define the default behaviour of the menu created on this group"
msgstr "Define el comportamiento por defecto del menú creado en este grupo."
#. module: wiki
#: view:wizard.wiki.history.show_diff:0
msgid "Close"
msgstr "Cerrar"
#. module: wiki
#: model:ir.model,name:wiki.model_wizard_wiki_history_show_diff
msgid "wizard.wiki.history.show_diff"
msgstr "asistente.wiki.historial.mostrar_dif"
#. module: wiki
#: field:wiki.wiki.history,wiki_id:0
msgid "Wiki Id"
msgstr "ID Wiki"
#. module: wiki
#: field:wiki.groups,home:0
#: selection:wiki.groups,method:0
msgid "Home Page"
msgstr "Página inicial"
#. module: wiki
#: help:wiki.wiki,parent_id:0
msgid "Allows you to link with the other page with in the current topic"
msgstr "Le permite enlazar con la otra página dentro del tema actual."
#. module: wiki
#: view:wiki.wiki:0
msgid "Modification Information"
msgstr "Información modificación"
#. module: wiki
#: model:ir.ui.menu,name:wiki.menu_wiki_configuration
#: view:wiki.wiki:0
msgid "Wiki"
msgstr "Wiki"
#. module: wiki
#: field:wiki.wiki,write_date:0
msgid "Modification Date"
msgstr "Fecha de modificación"
#. module: wiki
#: view:wiki.groups:0
msgid "Configuration"
msgstr "Configuración"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index_values
#: model:ir.model,name:wiki.model_wiki_make_index
#: view:wiki.make.index:0
msgid "Create Index"
msgstr "Crear índice"
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "You need to select minimum 1 or maximum 2 history revision!"
msgstr ""
"¡Debe seleccionar como mínimo 1 o como máximo 2 revisiones históricas!"
#. module: wiki
#: view:wiki.wiki:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_create_menu
#: view:wiki.create.menu:0
#: view:wiki.groups:0
#: view:wiki.make.index:0
msgid "Create Menu"
msgstr "Crear menú"
#. module: wiki
#: field:wiki.wiki.history,minor_edit:0
msgid "This is a major edit ?"
msgstr "¿Es ésta una edición mayor?"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_groups
#: model:ir.actions.act_window,name:wiki.action_wiki_groups_browse
#: model:ir.model,name:wiki.model_wiki_groups
#: model:ir.ui.menu,name:wiki.menu_action_wiki_groups
#: view:wiki.groups:0
msgid "Wiki Groups"
msgstr "Grupos Wiki"
#. module: wiki
#: view:wiki.wiki:0
msgid "Topic"
msgstr "Tema"
#. module: wiki
#: field:wiki.wiki.history,write_uid:0
msgid "Modify By"
msgstr "Modificado por"
#. module: wiki
#: code:addons/wiki/web/widgets/wikimarkup/__init__.py:1981
#: field:wiki.wiki,toc:0
#, python-format
msgid "Table of Contents"
msgstr "Tabla de contenido"
#. module: wiki
#: view:wiki.groups:0
#: view:wiki.wiki.page.open:0
msgid "Open Wiki Page"
msgstr "Abrir página wiki"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_page_open
msgid "wiz open page"
msgstr "asistente abrir página"
#. module: wiki
#: view:wiki.create.menu:0
#: view:wiki.make.index:0
#: view:wiki.wiki.page.open:0
msgid "Cancel"
msgstr "Cancelar"
#. module: wiki
#: field:wizard.wiki.history.show_diff,file_path:0
msgid "Diff"
msgstr "Dif."
#. module: wiki
#: view:wiki.wiki:0
msgid "Need Review"
msgstr "Necesita revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_review
msgid "Pages Waiting Review"
msgstr "Páginas esperando revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_group_open
msgid "Search Page"
msgstr "Buscar página"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Wiki Groups Links"
#~ msgstr "Enlaces grupos wiki"
#~ msgid "Child Groups"
#~ msgstr "Grupos hijos"
#~ msgid "Wiki Configuration"
#~ msgstr "Configuración Wiki"
#~ msgid "Create a Menu"
#~ msgstr "Crear un menú"
#~ msgid "History Differance"
#~ msgstr "Diferencia historial"
#~ msgid "Group Home Page"
#~ msgstr "Página de inicio del grupo"
#~ msgid "Last Author"
#~ msgstr "Último autor"
#~ msgid "Differences"
#~ msgstr "Diferencias"
#~ msgid "Document Management"
#~ msgstr "Gestión de documentos"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid "Parent Group"
#~ msgstr "Grupo padre"
#~ msgid "Wiki Differance"
#~ msgstr "Diferencia Wiki"
#, python-format
#~ msgid "No action found"
#~ msgstr "No se ha encontrado la acción"
#~ msgid "Modifications"
#~ msgstr "Modificaciones"
#~ msgid "History"
#~ msgstr "Historial"
#~ msgid "Tags"
#~ msgstr "Etiquetas"
#~ msgid "Invalid model name in the action definition."
#~ msgstr "Nombre de modelo no válido en la definición de acción."

View File

@ -1,535 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
"PO-Revision-Date: 2011-01-13 02:46+0000\n"
"Last-Translator: Carlos @ smile.fr <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:38+0000\n"
"X-Generator: Launchpad (build 13830)\n"
#. module: wiki
#: field:wiki.groups,template:0
msgid "Wiki Template"
msgstr "Plantilla Wiki"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki
#: model:ir.ui.menu,name:wiki.menu_action_wiki_wiki
msgid "Wiki Pages"
msgstr "Páginas Wiki"
#. module: wiki
#: field:wiki.groups,method:0
msgid "Display Method"
msgstr "Método de visualización"
#. module: wiki
#: view:wiki.wiki:0
#: field:wiki.wiki,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_wiki_page_open
#: view:wiki.wiki.page.open:0
msgid "Open Page"
msgstr "Abrir página"
#. module: wiki
#: field:wiki.groups,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: wiki
#: field:wiki.wiki,section:0
msgid "Section"
msgstr "Sección"
#. module: wiki
#: help:wiki.wiki,toc:0
msgid "Indicates that this pages have a table of contents or not"
msgstr "Indica si estas páginas tienen una tabla de contenidos o no."
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_history
#: view:wiki.wiki.history:0
msgid "Wiki History"
msgstr "Historial Wiki"
#. module: wiki
#: field:wiki.wiki,minor_edit:0
msgid "Minor edit"
msgstr "Edición menor"
#. module: wiki
#: view:wiki.wiki:0
#: field:wiki.wiki,text_area:0
msgid "Content"
msgstr "Contenido"
#. module: wiki
#: field:wiki.wiki,child_ids:0
msgid "Child Pages"
msgstr "Páginas hijas"
#. module: wiki
#: field:wiki.wiki,parent_id:0
msgid "Parent Page"
msgstr "Página padre"
#. module: wiki
#: view:wiki.wiki:0
#: field:wiki.wiki,write_uid:0
msgid "Last Contributor"
msgstr "Último colaborador"
#. module: wiki
#: field:wiki.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú padre"
#. module: wiki
#: help:wiki.wiki,group_id:0
msgid "Topic, also called Wiki Group"
msgstr "Tema, también denominado Grupo wiki."
#. module: wiki
#: field:wiki.groups,name:0
#: view:wiki.wiki:0
#: field:wiki.wiki,group_id:0
msgid "Wiki Group"
msgstr "Grupo Wiki"
#. module: wiki
#: field:wiki.wiki,name:0
msgid "Title"
msgstr "Título"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_create_menu
msgid "Wizard Create Menu"
msgstr "Asistente crear menú"
#. module: wiki
#: field:wiki.wiki,history_id:0
msgid "History Lines"
msgstr "Líneas historial"
#. module: wiki
#: view:wiki.wiki:0
msgid "Page Content"
msgstr "Contenido página"
#. module: wiki
#: code:addons/wiki/wiki.py:236
#, python-format
msgid "Warning !"
msgstr "¡Aviso!"
#. module: wiki
#: code:addons/wiki/wiki.py:236
#, python-format
msgid "There are no changes in revisions"
msgstr "No hay cambios en revisiones"
#. module: wiki
#: model:ir.module.module,shortdesc:wiki.module_meta_information
msgid "Document Management - Wiki"
msgstr "Gestión de documentos - Wiki"
#. module: wiki
#: field:wiki.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nombre menú"
#. module: wiki
#: field:wiki.groups,notes:0
msgid "Description"
msgstr "Descripción"
#. module: wiki
#: field:wiki.wiki,review:0
msgid "Needs Review"
msgstr "Necesita revisión"
#. module: wiki
#: help:wiki.wiki,review:0
msgid ""
"Indicates that this page should be reviewed, raising the attention of other "
"contributors"
msgstr ""
"Indica que esta página debería ser revisada, captando la atención de otros "
"colaboradores."
#. module: wiki
#: view:wiki.create.menu:0
#: view:wiki.make.index:0
msgid "Menu Information"
msgstr "Información del menú"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_wiki_history
msgid "Page History"
msgstr "Historial página"
#. module: wiki
#: selection:wiki.groups,method:0
msgid "Tree"
msgstr "Árbol"
#. module: wiki
#: view:wiki.groups:0
msgid "Page Template"
msgstr "Plantilla de página"
#. module: wiki
#: field:wiki.wiki,tags:0
msgid "Keywords"
msgstr "Palabras clave"
#. module: wiki
#: model:ir.actions.act_window,help:wiki.action_wiki
msgid ""
"With Wiki Pages you can share ideas and questions with your coworkers. You "
"can create a new document that can be linked to one or several applications "
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
"There is a basic wiki editing for text format."
msgstr ""
"Con páginas wiki puede compartir ideas y preguntas con sus compañeros de "
"trabajo. Puede crear un nuevo documento que puede ser relacionado con una o "
"varias aplicaciones (CRM, Ventas, etc.). Puede utilizar palabras clave para "
"facilitar el acceso a sus páginas wiki. Existe un editor básico para el "
"formato texto del wiki."
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "Warning"
msgstr "Advertencia"
#. module: wiki
#: field:wiki.wiki,create_date:0
msgid "Created on"
msgstr "Creado en"
#. module: wiki
#: field:wiki.wiki.history,create_date:0
msgid "Date"
msgstr "Fecha"
#. module: wiki
#: view:wiki.make.index:0
msgid "Want to create a Index on Selected Pages ? "
msgstr "¿Desea crear un índice sobre las páginas seleccionadas? "
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff_values
#: view:wizard.wiki.history.show_diff:0
msgid "Difference"
msgstr "Diferencia"
#. module: wiki
#: field:wiki.groups,page_ids:0
msgid "Pages"
msgstr "Páginas"
#. module: wiki
#: view:wiki.groups:0
msgid "Group Description"
msgstr "Descripción grupo"
#. module: wiki
#: help:wiki.wiki,section:0
msgid "Use page section code like 1.2.1"
msgstr "Utilice código de sección de la página, por ejemplo 1.2.1"
#. module: wiki
#: view:wiki.wiki.page.open:0
msgid "Want to open a wiki page? "
msgstr "¿Desea abrir una página wiki? "
#. module: wiki
#: field:wiki.groups,section:0
msgid "Make Section ?"
msgstr "¿Crear sección?"
#. module: wiki
#: field:wiki.wiki.history,text_area:0
msgid "Text area"
msgstr "Área de texto"
#. module: wiki
#: view:wiki.wiki:0
msgid "Meta Information"
msgstr "Meta información"
#. module: wiki
#: model:ir.module.module,description:wiki.module_meta_information
msgid ""
"\n"
"The base module to manage documents(wiki)\n"
"\n"
"keep track for the wiki groups, pages, and history\n"
" "
msgstr ""
"\n"
"El módulo base para gestionar documentos (wiki)\n"
"\n"
"gestione los grupos, páginas e historial del wiki\n"
" "
#. module: wiki
#: view:wiki.groups:0
#: view:wizard.wiki.history.show_diff:0
msgid "Notes"
msgstr "Notas"
#. module: wiki
#: help:wiki.groups,home:0
msgid "Required to select home page if display method is Home Page"
msgstr ""
"Es obligado seleccionar la página de inicio si el método de visualización es "
"Página inicial."
#. module: wiki
#: selection:wiki.groups,method:0
msgid "List"
msgstr "Lista"
#. module: wiki
#: field:wiki.wiki,summary:0
#: field:wiki.wiki.history,summary:0
msgid "Summary"
msgstr "Resumen"
#. module: wiki
#: field:wiki.groups,create_date:0
msgid "Created Date"
msgstr "Fecha de creación"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_history
msgid "All Page Histories"
msgstr "Todos los historiales de páginas"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki
msgid "wiki.wiki"
msgstr "wiki.wiki"
#. module: wiki
#: help:wiki.groups,method:0
msgid "Define the default behaviour of the menu created on this group"
msgstr "Define el comportamiento por defecto del menú creado en este grupo."
#. module: wiki
#: view:wizard.wiki.history.show_diff:0
msgid "Close"
msgstr "Cerrar"
#. module: wiki
#: model:ir.model,name:wiki.model_wizard_wiki_history_show_diff
msgid "wizard.wiki.history.show_diff"
msgstr "asistente.wiki.historial.mostrar_dif"
#. module: wiki
#: field:wiki.wiki.history,wiki_id:0
msgid "Wiki Id"
msgstr "ID Wiki"
#. module: wiki
#: field:wiki.groups,home:0
#: selection:wiki.groups,method:0
msgid "Home Page"
msgstr "Página inicial"
#. module: wiki
#: help:wiki.wiki,parent_id:0
msgid "Allows you to link with the other page with in the current topic"
msgstr "Le permite enlazar con la otra página dentro del tema actual."
#. module: wiki
#: view:wiki.wiki:0
msgid "Modification Information"
msgstr "Información modificación"
#. module: wiki
#: model:ir.ui.menu,name:wiki.menu_wiki_configuration
#: view:wiki.wiki:0
msgid "Wiki"
msgstr "Wiki"
#. module: wiki
#: field:wiki.wiki,write_date:0
msgid "Modification Date"
msgstr "Fecha de modificación"
#. module: wiki
#: view:wiki.groups:0
msgid "Configuration"
msgstr "Configuración"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index_values
#: model:ir.model,name:wiki.model_wiki_make_index
#: view:wiki.make.index:0
msgid "Create Index"
msgstr "Crear índice"
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "You need to select minimum 1 or maximum 2 history revision!"
msgstr ""
"¡Debe seleccionar como mínimo 1 o como máximo 2 revisiones históricas!"
#. module: wiki
#: view:wiki.wiki:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_create_menu
#: view:wiki.create.menu:0
#: view:wiki.groups:0
#: view:wiki.make.index:0
msgid "Create Menu"
msgstr "Crear menú"
#. module: wiki
#: field:wiki.wiki.history,minor_edit:0
msgid "This is a major edit ?"
msgstr "¿Es ésta una edición mayor?"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_groups
#: model:ir.actions.act_window,name:wiki.action_wiki_groups_browse
#: model:ir.model,name:wiki.model_wiki_groups
#: model:ir.ui.menu,name:wiki.menu_action_wiki_groups
#: view:wiki.groups:0
msgid "Wiki Groups"
msgstr "Grupos Wiki"
#. module: wiki
#: view:wiki.wiki:0
msgid "Topic"
msgstr "Tema"
#. module: wiki
#: field:wiki.wiki.history,write_uid:0
msgid "Modify By"
msgstr "Modificado por"
#. module: wiki
#: code:addons/wiki/web/widgets/wikimarkup/__init__.py:1981
#: field:wiki.wiki,toc:0
#, python-format
msgid "Table of Contents"
msgstr "Tabla de contenido"
#. module: wiki
#: view:wiki.groups:0
#: view:wiki.wiki.page.open:0
msgid "Open Wiki Page"
msgstr "Abrir página wiki"
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_page_open
msgid "wiz open page"
msgstr "asistente abrir página"
#. module: wiki
#: view:wiki.create.menu:0
#: view:wiki.make.index:0
#: view:wiki.wiki.page.open:0
msgid "Cancel"
msgstr "Cancelar"
#. module: wiki
#: field:wizard.wiki.history.show_diff,file_path:0
msgid "Diff"
msgstr "Dif."
#. module: wiki
#: view:wiki.wiki:0
msgid "Need Review"
msgstr "Necesita revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_review
msgid "Pages Waiting Review"
msgstr "Páginas esperando revisión"
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_group_open
msgid "Search Page"
msgstr "Buscar página"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Wiki Groups Links"
#~ msgstr "Enlaces grupos wiki"
#~ msgid "Child Groups"
#~ msgstr "Grupos hijos"
#~ msgid "Wiki Configuration"
#~ msgstr "Configuración Wiki"
#~ msgid "Create a Menu"
#~ msgstr "Crear un menú"
#~ msgid "History Differance"
#~ msgstr "Diferencia historial"
#~ msgid "Group Home Page"
#~ msgstr "Página de inicio del grupo"
#~ msgid "Last Author"
#~ msgstr "Último autor"
#~ msgid "Differences"
#~ msgstr "Diferencias"
#~ msgid "Document Management"
#~ msgstr "Gestión de documentos"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid "Parent Group"
#~ msgstr "Grupo padre"
#~ msgid "Wiki Differance"
#~ msgstr "Diferencia Wiki"
#, python-format
#~ msgid "No action found"
#~ msgstr "No se ha encontrado la acción"
#~ msgid "Modifications"
#~ msgstr "Modificaciones"
#~ msgid "History"
#~ msgstr "Historial"
#~ msgid "Tags"
#~ msgstr "Etiquetas"
#~ msgid "Invalid model name in the action definition."
#~ msgstr "Nombre de modelo no válido en la definición de acción."

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:11+0000\n"
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menüü"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Sisu"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Tiitel"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menüü info"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Kuupäev"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Lehekülgi"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Ülemmenüü"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Loodud"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Kokkuvõte"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Menüü nimi"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Muutmise kuupäev"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Loo menüü"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Loobu"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Erinevus"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Finnish translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:13+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Finnish <fi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Viimeisin tiedon lisääjä"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Tekijä"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Valikko"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Sivuhistoria"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Sisältö"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Ryhmittely.."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Otsikko"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Menun luonti velho"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Valikon tiedot"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Päivämäärä"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Ero"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Sivut"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Ylätason valikko"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Luotu"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Yhteenveto"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Valikon nimi"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Muokkauspäivä"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Luo valikko"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Peruuta"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Erot"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,258 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-18 23:39+0000\n"
"Last-Translator: Nicolas JEUDY <njeudy@tuxservices.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Catégorie"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Dernier contributeur"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Auteur"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Gestion documentaire de pages Web"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Historique de la page"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Contenu"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Grouper par ..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Modèle"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"Ceci sera utilisé comment contenu initial de toutes les nouvelles pages de "
"cette catégorie."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Titre"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Menu de création d'un wizard"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Type"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Modifié par"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "ou"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Type de page"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menu Information"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Historique du document"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Historique des pages"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Il n'y a aucun changement dans les révisions."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Date"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Différence"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Pages"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Catégories"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menu Parent"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Créé le"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"Vous devez sélectionner au minimum une et au maximum deux versions "
"d'historique"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Historique de la page"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Sommaire"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Créer des pages Web"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Historique du document"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nom du menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Page"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Historique"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Date de modification"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Créer un menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Contenu affiché"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Avertissement!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Annuler"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Comparer"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Type de document"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Enfant"

View File

@ -1,256 +0,0 @@
# translation of wiki-es.po to Galego
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
# Frco. Javier Rial Rodríguez <fjrial@cesga.es>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: wiki-es\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Galego <g11n@mancomun.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menú"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Contido"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Título"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Información do menú"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Páxinas"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú principal"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Creado o"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Resumo"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nome do menú"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data de modificación"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Crear menú"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Cancelar"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Diff"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,256 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:11+0000\n"
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Kategorija"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Zadnji doprinos"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Izbornik"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Stranica dokumenata"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Povijest stranice"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Sadržaj"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Grupiraj po..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Predložak"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"ovo će biti korišteno kao predložak sadržaja za sve nove stranice u ovoj "
"kategoriji."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Naslov"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Wizard Create Menu"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tip"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Izmjenio"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "ili"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Tip stranice"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informacije o izborniku"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Povijest stranica Dokumenata"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Povijest stranice"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Nema izmjena u revizijama"
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Razlika"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Stranice"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Kategorije"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Nadređeni izbornik"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Datum kreiranja"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr "Morate odabrati minimum jednu ili maksimum dvije revizije!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Povijest stranica"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Sažetak"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Kreiraj web stranice"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Povijest dokumenata"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Naziv izbornika"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Stranica"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Povijest"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Datum promjene"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Kreiraj izbornik"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Prikazani sadržaj"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Upozorenje!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Odustani"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Razlika"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Vrsta dokumenta"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Podređeni"

View File

@ -1,257 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:16+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Kategória"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Utolsó közreműködő"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Szerző"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menü"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Documentum oldal"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Oldal előzmény"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Tartalom"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Csoportosítás..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Sablon"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"ez mint tartalom sablon lesz használva az összes ilyen kategóriájú új "
"oldalhoz."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Pozíció"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Menü létrehozás varázsló"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Típus"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Által módosítva"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "vagy"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Oldal típus"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menü infrormáció"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Dokumantum oldal előzmény"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Oldal előzmény"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Az előzményekben nem történt változtatás."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Dátum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Különbség"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Oldalok"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Kategóriák"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Főmenü"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Létrehozás dátuma"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"Ki kell választani minimum egy vagy maximum kettő átvizsgálás előzményt."
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Oldal előzmény"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Összegzés"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Weboldalak létrehozása"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Dokumentumok előzménye"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Menü"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Oldal"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Előzmény"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Módosítás dátuma"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Menü létrehozása"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Tartalom megjelenítése"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Figyelem!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Mégsem"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Különbség"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Dokumentumtípus"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Alárendelt"

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:08+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr ""
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr ""
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr ""
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,258 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-20 23:11+0000\n"
"Last-Translator: Sergio Corato <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Categoria"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Ultimo collaboratore"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autore"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Pagina documento"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Cronologia pagina"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Contenuto"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Raggruppa per..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Modello"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"sarà usato come modello contenuto per tutte le nuove pagine di questa "
"categoria."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Titolo"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Wizard creazione menu"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tipo"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Modificato Da"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "o"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Tipo di pagina"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informazioni Menu"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Cronologia Pagina Documento"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Cronologia pagine"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Non ci sono modifiche nelle revisioni."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Differenze"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Pagine"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Categorie"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menu Superiore"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Creato il"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"E' necessario selezionare almeno una o massimo due revisioni della "
"cronologia!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Cronologia pagina"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Riepilogo"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Crea pagine web"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Cronologia documento"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nome Menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Pagina"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Cronologia"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data di Modifica"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Crea Menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Contenuto Visualizzato"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Attenzione!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Cancella"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Differenze"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Tipo Documento"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Figlio"

View File

@ -1,255 +0,0 @@
# Japanese translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:11+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "最終貢献者"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "著者"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "メニュー"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "ページ履歴"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "コンテンツ"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "グループ化…"
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "タイトル"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "メニュー作成ウィザード"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "メニュー情報"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "日付"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "差分"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "ページ"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "親メニュー"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "作成日"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "要約"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "メニュー名"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "変更日"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "メニューの作成"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "キャンセル"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "差分"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Korean translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:14+0000\n"
"Last-Translator: CSro <choongsan@gmail.com>\n"
"Language-Team: Korean <ko@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "저자"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "메뉴"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "컨텐트"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "제목"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "메뉴 정보"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "날짜"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "페이지"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "부모 메뉴"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "생성 날짜"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "요약"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "메뉴 이름"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "수정 날짜"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "메뉴 만들기"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "취소"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Diff"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
# giedrius <giedrius.slavinskas@gmail.com>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:14+0000\n"
"Last-Translator: Giedrius Slavinskas - inovera.lt <giedrius@inovera.lt>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
"Language: lt\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autorius"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meniu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Turinys"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Antraštė"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Meniu informacija"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Puslapiai"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Bazinis meniu"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Sukurta"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Santrauka"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Meniu pavadinimas"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Modifikavimo data"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Sukurti meniu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Atšaukti"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Skirtumas"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Latvian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:13+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Latvian <lv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Pēdējais Papildinājs"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autors"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Izvēlne"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Lapas Vēsture"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Saturs"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Grupēt pēc..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Virsraksts"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Izvēlnes Veidošanas Veidnis"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Izvēlnes Informācija"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datums"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Atšķirības"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Lapas"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "VirsIzvēlne"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Izveidots"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Kopsavilkums"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Izvēlnes Nosaukums"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Izmaiņu Datums"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Izveidot Izvēlni"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Atcelt"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Atšķirības"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,258 +0,0 @@
# Macedonian translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-03-01 17:55+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Macedonian <mk@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Категорија"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Последен приложувач"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Автор"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Мени"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Страна на документ"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Историја на страна"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Содржина"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Групирај по..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Урнек"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"што ќе се користи како шаблон за содржината на сите нови страници од оваа "
"категорија"
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Титула"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tип"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Изменето од"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "или"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Тип на страница"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Мени Информации"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Историја на страна на документ"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Историја на страни"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Нема измени во ревизиите."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Датум"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Разлика"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Страници"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Категории"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Мени родител"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Креирано на"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"Треба да селектиарте минимум една или максимум две ревизии на историја!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Историја на страна"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Резиме"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Креирај веб страни"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Историја на документот"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Име на мени"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Страница"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Историја"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Датум на измена"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Креирај Мени"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Прикажана содржина"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Предупредување!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Откажи"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Разлика"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Тип документ"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Деца"

View File

@ -1,255 +0,0 @@
# Mongolian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:13+0000\n"
"Last-Translator: ub121 <ubs121@gmail.com>\n"
"Language-Team: Mongolian <mn@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Ангилал"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Зохиогч"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Цэс"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Баримтын Хуудас"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Агуулга"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Загвар"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Гарчиг"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Хуудасны төрөл"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Цэсний мэдээлэл"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Баримтын Хуудасны Түүх"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Хуудсуудын Түүх"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Огноо"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Хуудсууд"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Толгой цэс"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Үүсгэсэн"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Хуудсын Түүх"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Хураангуй"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Веб хуудсууд үүсгэх"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Баримтын Түүх"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Цэсний нэр"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Зассан огноо"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Цэс үүсгэх"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Цуцлах"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Зөрүү"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Norwegian Bokmal translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:14+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Siste forfatter"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Forfatter"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meny"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Sidehistorikk"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Innhold"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Grupper etter..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Tittel"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Wizard Opprett meny"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Meny informasjon"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Dato"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Endringer"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Sider"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Overordnet meny"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Opprettet den"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Sammendrag"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Menynavn"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Dato for siste endring"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Opprett meny"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Avbryt"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Diff"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,257 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-11-25 13:05+0000\n"
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Categorie"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Laatste bijdrage"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Auteur"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Document pagina"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Pagina geschiedenis"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Inhoud"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Groepeer op..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Sjabloon"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"dit zal worden gebruikt als een inhoud sjabloon voor alle nieuwe pagina;s "
"van deze categorie."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Titel"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Assistent menu maken"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Soort"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Aangepast door"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "of"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Paginatype"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menu informatie"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Document pagina historie"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Pagina historie"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Er zijn geen wijzigingen in de revisies."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Verschil"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Pagina's"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Categorieën"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Hoofdmenu"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Aangemaakt op"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"U dient minimaal één en maximaal twee historie revisies te selecteren.!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Pagina historie"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Samenvatting"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Webpagina's aanmaken"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Documenthistorie"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Naam menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Pagina"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Historie"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Wijzigingsdatum"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Menu maken"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Weergegeven inhoud"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Waarschuwing!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Annuleren"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Verschil"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Documenttype"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Onderliggende"

View File

@ -1,440 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2009-04-10 10:01+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-02-09 06:46+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: wiki
#: field:wiki.groups,template:0
msgid "Wiki Template"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki
#: model:ir.ui.menu,name:wiki.menu_action_wiki_wiki
msgid "Wiki Pages"
msgstr ""
#. module: wiki
#: field:wiki.groups,method:0
msgid "Display Method"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,create_uid:0
msgid "Author"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_wiki_page_open
#: view:wiki.wiki.page.open:0
msgid "Open Page"
msgstr ""
#. module: wiki
#: field:wiki.groups,menu_id:0
msgid "Menu"
msgstr ""
#. module: wiki
#: field:wiki.wiki,section:0
msgid "Section"
msgstr ""
#. module: wiki
#: help:wiki.wiki,toc:0
msgid "Indicates that this pages have a table of contents or not"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_history view:wiki.wiki.history:0
msgid "Wiki History"
msgstr ""
#. module: wiki
#: field:wiki.wiki,minor_edit:0
msgid "Minor edit"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,text_area:0
msgid "Content"
msgstr ""
#. module: wiki
#: field:wiki.wiki,child_ids:0
msgid "Child Pages"
msgstr ""
#. module: wiki
#: field:wiki.wiki,parent_id:0
msgid "Parent Page"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0 field:wiki.wiki,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: wiki
#: field:wiki.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: wiki
#: code:addons/wiki/wizard/wiki_make_index.py:52
#, python-format
msgid "There is no section in this Page"
msgstr ""
#. module: wiki
#: field:wiki.groups,name:0 view:wiki.wiki:0 field:wiki.wiki,group_id:0
msgid "Wiki Group"
msgstr ""
#. module: wiki
#: field:wiki.wiki,name:0
msgid "Title"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: wiki
#: field:wiki.wiki,history_id:0
msgid "History Lines"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Page Content"
msgstr ""
#. module: wiki
#: code:addons/wiki/wiki.py:237 code:addons/wiki/wizard/wiki_make_index.py:52
#, python-format
msgid "Warning !"
msgstr ""
#. module: wiki
#: code:addons/wiki/wiki.py:237
#, python-format
msgid "There are no changes in revisions"
msgstr ""
#. module: wiki
#: help:wiki.wiki,section:0
msgid "Use page section code like 1.2.1"
msgstr ""
#. module: wiki
#: field:wiki.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: wiki
#: field:wiki.groups,notes:0
msgid "Description"
msgstr ""
#. module: wiki
#: field:wiki.wiki,review:0
msgid "Needs Review"
msgstr ""
#. module: wiki
#: help:wiki.wiki,review:0
msgid ""
"Indicates that this page should be reviewed, raising the attention of other "
"contributors"
msgstr ""
#. module: wiki
#: view:wiki.create.menu:0 view:wiki.make.index:0
msgid "Menu Information"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_wiki_history
msgid "Page History"
msgstr ""
#. module: wiki
#: selection:wiki.groups,method:0
msgid "Tree"
msgstr ""
#. module: wiki
#: view:wiki.groups:0
msgid "Page Template"
msgstr ""
#. module: wiki
#: field:wiki.wiki,tags:0
msgid "Keywords"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,help:wiki.action_wiki
msgid ""
"With Wiki Pages you can share ideas and questions with your coworkers. You "
"can create a new document that can be linked to one or several applications "
"(CRM, Sales, etc.). You can use keywords to ease access to your wiki pages. "
"There is a basic wiki editing for text format."
msgstr ""
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "Warning"
msgstr ""
#. module: wiki
#: help:wiki.groups,home:0
msgid "Required to select home page if display method is Home Page"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,create_date:0
msgid "Date"
msgstr ""
#. module: wiki
#: view:wiki.make.index:0
msgid "Want to create a Index on Selected Pages ? "
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:wiki.action_view_wiki_show_diff_values
#: view:wizard.wiki.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: wiki
#: field:wiki.groups,page_ids:0
msgid "Pages"
msgstr ""
#. module: wiki
#: view:wiki.groups:0
msgid "Group Description"
msgstr ""
#. module: wiki
#: view:wiki.wiki.page.open:0
msgid "Want to open a wiki page? "
msgstr ""
#. module: wiki
#: field:wiki.groups,section:0
msgid "Make Section ?"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,text_area:0
msgid "Text area"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Meta Information"
msgstr ""
#. module: wiki
#: field:wiki.wiki,create_date:0
msgid "Created on"
msgstr ""
#. module: wiki
#: view:wiki.groups:0 view:wizard.wiki.history.show_diff:0
msgid "Notes"
msgstr ""
#. module: wiki
#: selection:wiki.groups,method:0
msgid "List"
msgstr ""
#. module: wiki
#: field:wiki.wiki,summary:0 field:wiki.wiki.history,summary:0
msgid "Summary"
msgstr ""
#. module: wiki
#: field:wiki.groups,create_date:0
msgid "Created Date"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_history
msgid "All Page Histories"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki
msgid "wiki.wiki"
msgstr ""
#. module: wiki
#: help:wiki.groups,method:0
msgid "Define the default behaviour of the menu created on this group"
msgstr ""
#. module: wiki
#: view:wizard.wiki.history.show_diff:0
msgid "Close"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wizard_wiki_history_show_diff
msgid "wizard.wiki.history.show_diff"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,wiki_id:0
msgid "Wiki Id"
msgstr ""
#. module: wiki
#: field:wiki.groups,home:0 selection:wiki.groups,method:0
msgid "Home Page"
msgstr ""
#. module: wiki
#: help:wiki.wiki,parent_id:0
msgid "Allows you to link with the other page with in the current topic"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Modification Information"
msgstr ""
#. module: wiki
#: help:wiki.wiki,group_id:0
msgid "Topic, also called Wiki Group"
msgstr ""
#. module: wiki
#: model:ir.ui.menu,name:wiki.menu_wiki_configuration view:wiki.wiki:0
msgid "Wiki"
msgstr ""
#. module: wiki
#: field:wiki.wiki,write_date:0
msgid "Modification Date"
msgstr ""
#. module: wiki
#: view:wiki.groups:0
msgid "Configuration"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index
#: model:ir.actions.act_window,name:wiki.action_view_wiki_make_index_values
#: model:ir.model,name:wiki.model_wiki_make_index view:wiki.make.index:0
msgid "Create Index"
msgstr ""
#. module: wiki
#: code:addons/wiki/wizard/wiki_show_diff.py:54
#, python-format
msgid "You need to select minimum 1 or maximum 2 history revision!"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Group By..."
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_create_menu
#: view:wiki.create.menu:0 view:wiki.groups:0 view:wiki.make.index:0
msgid "Create Menu"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,minor_edit:0
msgid "This is a major edit ?"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_groups
#: model:ir.actions.act_window,name:wiki.action_wiki_groups_browse
#: model:ir.model,name:wiki.model_wiki_groups
#: model:ir.ui.menu,name:wiki.menu_action_wiki_groups view:wiki.groups:0
msgid "Wiki Groups"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Topic"
msgstr ""
#. module: wiki
#: field:wiki.wiki.history,write_uid:0
msgid "Modify By"
msgstr ""
#. module: wiki
#: code:addons/wiki/web/widgets/wikimarkup/__init__.py:1981
#: field:wiki.wiki,toc:0
#, python-format
msgid "Table of Contents"
msgstr ""
#. module: wiki
#: view:wiki.groups:0 view:wiki.wiki.page.open:0
msgid "Open Wiki Page"
msgstr ""
#. module: wiki
#: model:ir.model,name:wiki.model_wiki_wiki_page_open
msgid "wiz open page"
msgstr ""
#. module: wiki
#: view:wiki.create.menu:0 view:wiki.make.index:0 view:wiki.wiki.page.open:0
msgid "Cancel"
msgstr ""
#. module: wiki
#: field:wizard.wiki.history.show_diff,file_path:0
msgid "Diff"
msgstr ""
#. module: wiki
#: view:wiki.wiki:0
msgid "Need Review"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.action_wiki_review
msgid "Pages Waiting Review"
msgstr ""
#. module: wiki
#: model:ir.actions.act_window,name:wiki.act_wiki_group_open
msgid "Search Page"
msgstr ""
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "De objectnaam moet beginnen met x_ en mag geen speciale karakters bevatten !"

View File

@ -1,256 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-17 10:25+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Kategoria"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Ostatni kontrybutor"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Strona dokumentu"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Historia strony"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Zawartość"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Grupuj wg..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Szablon"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"które będzie stosowane jako szablon zawartości dla nowych stron tej "
"kategorii."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Tytuł"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Typ"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Zmodyfikowane przez"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "lub"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Typ strony"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informacja o menu"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Historia strony dokumentu"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Historia strony"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Brak zmian w wersjach"
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Różnica"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Strony"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Kategorie"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menu nadrzędne"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Utworzono"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr "Musisz wybrać minimum jedną a maksymalnie dwie wersje historii !"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Historia strony"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Podsumowanie"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Twórz strony web"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Historia Dokumentu"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nazwa menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Strona"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Historia"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data modyfikacji"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Utwórz menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Wyświetlana zawartość"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Ostrzeżenie !"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Anuluj"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Różnice"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Typ dokumentu"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Podrzędne"

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-12 16:52+0000\n"
"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Categoria"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Último contribuinte"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Página do documento"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Histórico da página"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Conteúdo"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Modelo"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr "que será usado como modelo para qualquer página desta categoria"
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Título"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Assitente de criação de menu"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tipo"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Modificado por"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "ou"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Tipo de página"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informação do Menu"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Não há alterações de versão"
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Diferença"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Páginas"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Categorias"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menu do Ascendente"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Criado em"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Resumo"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Cria páginas na internet"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Histórico de documentos"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nome do Menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Página"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Histórico"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data de Modificação"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Criar Menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Aviso!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Cancelar"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Diferenças"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Tipo de documento"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,256 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-04 15:32+0000\n"
"Last-Translator: Cristiano Korndörfer <codigo.aberto@dorfer.com.br>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Categoria"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Último Contribuidor(a)"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Página do Documento"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Histórico da Página"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Conteúdo"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Agrupar Por..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Modelo"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"isto será utilizado como um modelo de conteúdo para todas as páginas desta "
"categoria."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Título"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Assistente Para Criar Menu"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tipo"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Modificado Por"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "ou"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Tipo de página"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informação do Menu"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Histórico da Página de Documento"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Histórico das páginas"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Não há mudanças nas revisões."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Data"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Diferença"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Páginas"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Categorias"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menu Superior"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Criado em"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr "Você deve selecionar de uma a duas revisões de histórico!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Histórico da página"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Resumo"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Criar páginas web"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Histórico de Documentos"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nome do Menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Página"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Histórico"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data de Modificação"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Criar Menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Conteúdo Exibido"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Atenção!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Cancelar"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Diferença"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Tipo de Documento"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Filhos"

View File

@ -1,257 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: filsys <office@filsystem.ro>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Categorie"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Ultimul colaborator"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meniu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Pagina Documentului"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Istoric pagină"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Conţinut"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Grupează după..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Sablon"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"care va fi folosit ca un sablon de continut pentru toate paginile noi din "
"aceasta categorie."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Titlu"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Wizard Creează meniul"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tip"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.pagina.istoric.arata_dif"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Modificat de"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "sau"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Tipul de pagina"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informaţii meniu"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Istoric Pagini Documente"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Istoric pagini"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Nu exista modificari in revizuiri."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Dată"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Diferenţă"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Pagini"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Categorii"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Meniu principal (părinte)"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Creat in"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
"Trebuie sa selectati minim unul sau maxim doua istorice ale revizuirilor!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Istoric pagina"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Rezumat"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Creeaza pagini web"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Istoric Documente"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Nume Meniu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Pagina"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Istoric"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Data modificării"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Creează meniu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Continut Afisat"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Avertizare!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Anulează"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Diferit"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Tipul documentului"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Subordonati"

View File

@ -1,256 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-28 12:51+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Категория"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Последний корректор"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Автор"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Меню"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Страница документа"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "История страницы"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Содержание"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Группировать по .."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Шаблон"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"будет использоваться как шаблон содержимого для всех новых страниц этой "
"категории."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Заголовок"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Помощник создания меню"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Тип"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Изменено"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "или"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Тип страниц"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Информация меню"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "История страницы документа"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "История страницы"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Нет изменений"
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Дата"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Различие"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Страницы"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Категории"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Родительское меню"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Создан"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr "Вы должны выбрать одну или две версии в истории!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "История страницы"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Итого"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Создание веб-страниц"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "История документа"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Название меню"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Страница"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "История"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Дата изменения"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Создать меню"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Отображаемое содержимое"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Внимание!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Отмена"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Различие"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Тип документа"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Потомки"

View File

@ -1,255 +0,0 @@
# Slovak translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:13+0000\n"
"Last-Translator: Peter Kohaut <peter.kohaut@gmail.com>\n"
"Language-Team: Slovak <sk@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Posledný prispievateľ"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menu"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "História stránky"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Obsah"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Zoskupiť podľa..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Názov"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Sprievodca vytvorením ponuky"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informácie menu"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Dátum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Rozdiel"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Stránky"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Nadradené menu"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Vytvorené"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Zhrnutie"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Názov menu"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Dátum zmeny"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Vytvoriť menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Zrušiť"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Rozdiel"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:14+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Avtor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meni"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Vsebina"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Naslov"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Informacije o meniju"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Strani"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Nadmenu"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Izdelano"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Povzetek"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Naziv menuja"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Datum spremembe"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Ustvari menu"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Prekliči"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Razlika"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Albanian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:08+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Albanian <sq@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr ""
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr ""
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr ""
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Serbian translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:13+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Serbian <sr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meni"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Sadržaj"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Naslov"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Meni Informacije"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Strane"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Roditeljski Meni"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Kreiran"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Sumarno"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Naziv Menija"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Datum Promene"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Kreiraj Meni"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Otkazati"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Razlika"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Serbian translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:14+0000\n"
"Last-Translator: qdp (OpenERP) <qdp-launchpad@tinyerp.com>\n"
"Language-Team: Serbian <sr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Autor"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meni"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Sadržaj"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Naslov"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Meni Informacije"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Strane"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Roditeljski Meni"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Kreiran"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Sumarno"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Naziv Menija"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Datum Promene"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Kreiraj Meni"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Otkazati"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Razlika"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.14\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Författare"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Meny"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Innehåll"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Rubrik"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menyinformation"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Datum"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Sidor"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Huvudmeny"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Skapad den"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Sammanfattning"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Menynamn"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Ändringsdatum"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Skapa meny"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Avbryt"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Skillnad"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:08+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr ""
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr ""
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr ""
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr ""
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr ""
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr ""
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:12+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "Kategori"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Son Katkı koyan"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Yazar"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Menü"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr "Belge Sayfası"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Sayfa Geçmişi"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "İçerik"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "Gruplandır..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "Şablon"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
"bu kategorideki tüm yeni sayfalar için içerik şablonu olarak kullanılacaktır."
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Başlık"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "Menü Oluşturma Sihirbazı"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "Tür"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "Değiştiren"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr "ya da"
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr "Sayfa türü"
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Menü bilgileri"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr "Belge Sayfa Geçmişi"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr "Sayfa geçmişi"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr "Düzeltmelerde hiç değişiklik yoktur."
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Tarih"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Fark"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Sayfalar"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "Kategoriler"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Ana Menü"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Oluşturulma"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr "Enaz bir ya da ençok 2 geçmiş düzeltmesi seçmelisiniz!"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr "Sayfa geçmişi"
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Özet"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "Web sayfaları oluşturun"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr "Belge Geçmişi"
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Menü Adı"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr "Sayfa"
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "Geçmiş"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Değiştirilme Tarihi"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Menü Oluştur"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "Görüntülenen İçerik"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr "Uyarı!"
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "İptal"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Fark"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr "Belge Türü"
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr "Alt"

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:11+0000\n"
"Last-Translator: Eugene Babiy <eugene.babiy@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Автор"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Меню"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Вміст"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Заголовок"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Інформація Меню"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Дата"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Сторінки"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Батьківське Меню"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Створено"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "Підсумок"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Назва Меню"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "Дата Зміни"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "Створити Меню"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "Скасувати"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "Відмінність"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,255 +0,0 @@
# Vietnamese translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-13 12:09+0000\n"
"Last-Translator: Antony Lesuisse (OpenERP) <al@openerp.com>\n"
"Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "Người đóng góp cuối"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "Tác giả"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "Trình đơn"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "Lịch sử Trang"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "Nội dung"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "Tiêu đề"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr ""
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "Thông tin Trình đơn"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "Ngày"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "Khác biệt"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "Các trang"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "Trình đơn cha"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "Tạo trên"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "Tên Trình đơn"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr ""
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr ""
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-12-08 13:10+0000\n"
"Last-Translator: 盈通 ccdos <ccdos@163.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr "类别"
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "最近的贡献者"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "作者"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "菜单"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "页面编辑日志"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "内容"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "分组..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr "模版"
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "标题"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "向导创建菜单"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "类型"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr ""
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr "修改者"
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "菜单信息"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "日期"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "差异"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "页面"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr "分类"
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "上级菜单"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "创建在"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "摘要"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr "创建网页"
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "菜单名"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr "历史"
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "修改日期"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "创建菜单"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr "显示内容"
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "取消"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "差异"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,254 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * wiki
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-08-30 09:36+0000\n"
"Last-Translator: Bonnie Duan <bonnie.duan@cenoq.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:51+0000\n"
"X-Generator: Launchpad (build 16532)\n"
#. module: document_page
#: view:document.page:0
#: field:document.page,parent_id:0
#: selection:document.page,type:0
#: model:ir.actions.act_window,name:document_page.action_category
msgid "Category"
msgstr ""
#. module: document_page
#: view:document.page:0
#: field:document.page,write_uid:0
msgid "Last Contributor"
msgstr "最後的貢獻者"
#. module: document_page
#: view:document.page:0
#: field:document.page,create_uid:0
msgid "Author"
msgstr "作者"
#. module: document_page
#: field:document.page,menu_id:0
msgid "Menu"
msgstr "選單"
#. module: document_page
#: view:document.page:0
#: model:ir.model,name:document_page.model_document_page
msgid "Document Page"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_related_page_history
msgid "Page History"
msgstr "頁面歷史記錄"
#. module: document_page
#: view:document.page:0
#: field:document.page,content:0
#: selection:document.page,type:0
#: field:document.page.history,content:0
msgid "Content"
msgstr "內容"
#. module: document_page
#: view:document.page:0
msgid "Group By..."
msgstr "分類方式..."
#. module: document_page
#: view:document.page:0
msgid "Template"
msgstr ""
#. module: document_page
#: view:document.page:0
msgid ""
"that will be used as a content template for all new page of this category."
msgstr ""
#. module: document_page
#: field:document.page,name:0
msgid "Title"
msgstr "標題"
#. module: document_page
#: model:ir.model,name:document_page.model_document_page_create_menu
msgid "Wizard Create Menu"
msgstr "嚮導創建選單"
#. module: document_page
#: field:document.page,type:0
msgid "Type"
msgstr "類型"
#. module: document_page
#: model:ir.model,name:document_page.model_wizard_document_page_history_show_diff
msgid "wizard.document.page.history.show_diff"
msgstr "wizard.document.page.history.show_diff"
#. module: document_page
#: field:document.page.history,create_uid:0
msgid "Modified By"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "or"
msgstr ""
#. module: document_page
#: help:document.page,type:0
msgid "Page type"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
msgid "Menu Information"
msgstr "選單資訊"
#. module: document_page
#: view:document.page.history:0
#: model:ir.model,name:document_page.model_document_page_history
msgid "Document Page History"
msgstr ""
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_page_history
msgid "Pages history"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#, python-format
msgid "There are no changes in revisions."
msgstr ""
#. module: document_page
#: field:document.page.history,create_date:0
msgid "Date"
msgstr "日期"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff
#: model:ir.actions.act_window,name:document_page.action_view_wiki_show_diff_values
#: view:wizard.document.page.history.show_diff:0
msgid "Difference"
msgstr "差異"
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_page
#: model:ir.ui.menu,name:document_page.menu_page
#: model:ir.ui.menu,name:document_page.menu_wiki
msgid "Pages"
msgstr "頁面"
#. module: document_page
#: model:ir.ui.menu,name:document_page.menu_category
msgid "Categories"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_parent_id:0
msgid "Parent Menu"
msgstr "上級選單"
#. module: document_page
#: field:document.page,create_date:0
msgid "Created on"
msgstr "建立於"
#. module: document_page
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "You need to select minimum one or maximum two history revisions!"
msgstr ""
#. module: document_page
#: model:ir.actions.act_window,name:document_page.action_history
msgid "Page history"
msgstr ""
#. module: document_page
#: field:document.page.history,summary:0
msgid "Summary"
msgstr "摘要"
#. module: document_page
#: model:ir.actions.act_window,help:document_page.action_page
msgid "Create web pages"
msgstr ""
#. module: document_page
#: view:document.page.history:0
msgid "Document History"
msgstr ""
#. module: document_page
#: field:document.page.create.menu,menu_name:0
msgid "Menu Name"
msgstr "選單名稱"
#. module: document_page
#: field:document.page.history,page_id:0
msgid "Page"
msgstr ""
#. module: document_page
#: field:document.page,history_ids:0
msgid "History"
msgstr ""
#. module: document_page
#: field:document.page,write_date:0
msgid "Modification Date"
msgstr "修改日期"
#. module: document_page
#: view:document.page.create.menu:0
#: model:ir.actions.act_window,name:document_page.action_related_page_create_menu
#: model:ir.actions.act_window,name:document_page.action_wiki_create_menu
msgid "Create Menu"
msgstr "建立選單"
#. module: document_page
#: field:document.page,display_content:0
msgid "Displayed Content"
msgstr ""
#. module: document_page
#: code:addons/document_page/document_page.py:129
#: code:addons/document_page/wizard/document_page_show_diff.py:50
#, python-format
msgid "Warning!"
msgstr ""
#. module: document_page
#: view:document.page.create.menu:0
#: view:wizard.document.page.history.show_diff:0
msgid "Cancel"
msgstr "刪除"
#. module: document_page
#: field:wizard.document.page.history.show_diff,diff:0
msgid "Diff"
msgstr "差異"
#. module: document_page
#: view:document.page:0
msgid "Document Type"
msgstr ""
#. module: document_page
#: field:document.page,child_ids:0
msgid "Children"
msgstr ""

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="base.group_document_user" model="res.groups">
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
</data>
</openerp>

View File

@ -1,4 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
document_page_all,document.page,model_document_page,,1,0,0,0
document_page,document.page,model_document_page,base.group_user,1,1,1,1
document_page_history,document.page.history,model_document_page_history,base.group_user,1,0,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 document_page_all document.page model_document_page 1 0 0 0
3 document_page document.page model_document_page base.group_user 1 1 1 1
4 document_page_history document.page.history model_document_page_history base.group_user 1 0 1 0

View File

@ -1,12 +0,0 @@
.oe_form_editable .oe_document_page {
display: none;
}
table.diff {font-family:Courier; border:medium;}
.diff_header {background-color:#e0e0e0}
td.diff_header {text-align:right}
.diff_next {background-color:#c0c0c0}
.diff_add {background-color:#aaffaa}
.diff_chg {background-color:#ffff77}
.diff_sub {background-color:#ffaaaa}

View File

@ -1,54 +0,0 @@
-
In order to test the document_page in OpenERP, I create a new page to category demo_category1
-
!record {model: document.page, id: test_page0}:
name: Test Page0
parent_id: demo_category1
content: 'Test content
The Open ERP wiki allows you to manage your enterprise contents using wiki
restructured texts. This module provides a collaborative way to manage internal
FAQs, quality manuals, technical references, etc.'
-
I check the category index contains my page.
-
!python {model: document.page}: |
res = self.read(cr, uid, [ref('demo_category1')], ['display_content'])
assert res[0]['display_content'].find('Test Page') > 1
-
!record {model: document.page, id: test_page0}:
content: 'Test updated content
The Open ERP wiki allows you to manage your enterprise contents using wiki
restructured texts. This module provides a collaborative way to manage internal
FAQs, quality manuals, technical references, etc.
Wiki text can easily be edited
'
-
I check the page history for the current page by clicking on "Page History".After that find difference between history.
-
!python {model: wizard.document.page.history.show_diff}: |
hist_obj = model.pool.get('document.page.history')
ids = hist_obj.search(cr, uid, [('page_id', '=', ref("test_page0"))])
model.get_diff(cr, uid, {'active_ids': ids[:] })
-
I click the "create menu" link and i fill the form.
-
!record {model: document.page.create.menu, id: test_create_menu0}:
menu_name: Wiki Test menu
menu_parent_id: base.menu_base_partner
-
I create a Menu by clicking on "create menu"
-
!python {model: document.page.create.menu}: |
ids = [ref("test_create_menu0")]
context['active_id'] = ref('test_page0')
self.document_page_menu_create(cr, uid, ids, context)

View File

@ -51,7 +51,9 @@ Key Features
'res_partner_view.xml',
'email_template.xml',
],
'demo': ['event_demo.xml'],
'demo': [
'event_demo.xml',
],
'test': ['test/process/event_draft2done.yml'],
'css': ['static/src/css/event.css'],
'installable': True,

View File

@ -212,7 +212,10 @@ class event_event(osv.osv):
'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}),
'country_id': fields.related('address_id', 'country_id',
type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}, store=True),
'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}),
'description': fields.html(
'Description', readonly=False,
states={'done': [('readonly', True)]},
oldname='note'),
'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}),
'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'),
'visibility': fields.selection(_visibility_selection, 'Privacy / Visibility',

View File

@ -27,31 +27,185 @@
<field name="name">Training</field>
</record>
<!-- Demo data for Event -->
<!-- event.event -->
<record id="event_0" model="event.event">
<field name="name">Concert of Bon Jovi</field>
<field eval="time.strftime('%Y-%m-01 19:05:15')" name="date_begin"/>
<field eval="time.strftime('%Y-%m-01 23:05:15')" name="date_end"/>
<field name="name">Open Days in Los Angeles</field>
<field eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 8:00:00')" name="date_begin"/>
<field eval="(DateTime.now() + timedelta(days=5)).strftime('%Y-%m-%d 18:00:00')" name="date_end"/>
<field name="register_max">500</field>
<field name="address_id" ref="base.res_partner_6"/>
<field name="type" ref="event_type_1"/>
<field name="description"><![CDATA[
<div class="oe_structure">
<center><strong>Join us to our main event of the year: the Open Days</strong></center>
<p>&nbsp;</p>
<p>Every year we invite our community, partners and end-users to come and meet us! It's the ideal event to get together and present new features, roadmap of future versions, achievements of the software, workshops, training sessions, etc.... This event is also an opportunity to showcase our partners' case studies, methodology or developments. Be there and see directly from the source the features of the version 8!
</p>
<p>This event and all the conferences are in english!</p>
<p>&nbsp;</p>
<p><strong>What's new for this year?</strong></p>
<ul>
<li>The Open Days are preceded by 2 days of optional training sessions for experts! We propose 3 different training sessions, 2 days each.</li>
<li>The whole event is open to all public! We ask a participation fee of 49.50€ for the costs for the 3 days (morning coffee, coffee breaks, drinks, sandwiches for lunch and the surprising beer party of Wednesday evening) but it's optional. For those who do not want to contribute, there is a free ticket, therefore, catering is not inclued.</li>
<li>The plenary sessions in the morning will be shorter and we will give more time for thematical meetings, conferences, workshops and tutorial sessions in the afternoon.</li>
</ul>
<p>&nbsp;</p>
<p><strong>Program:</strong></p>
<p>Conferences, workshops and trainings will be organized in 6 rooms:</p>
<ul>
<li>2 technical rooms: one dedicated to advanced OpenERP developers, one for new developers.</li>
<li>2 technical rooms: one dedicated to advanced OpenERP developers, one for new developers.</li>
<li>1 business room: to discuss implementation methodologies, best sales practices, etc.</li>
<li>1 workshop room: mainly for developers.</li>
</ul>
<p><em>If you wish to make a presentation, please send your topic proposal as soon as possible for approval to Mr. Famke Jenssens at ngh (a) yourcompany (dot) com. The presentations should be, for example, a presentation of a community module, a case study, methodology feedback, technical, etc. Each presentation must be in English.</em></p>
<p>&nbsp;</p>
<p><strong>Where to find us:</strong></p>
<p>OpenElec Applications 23 Rockwell Lane, Los Angeles, CA 90001, United States</p>
<p>For any additional information, please contact us at <a href="mailto:events@yourcompany.com">events@yourcompany.com</a>.</p>
<p>&nbsp;</p>
<p>Best regards,</p>
<p>Luigi Roni, Senior Event Manager</p>
<p>&nbsp;</p>
<p align="RIGHT"><em>(OpenElec Applications reserves the right to cancel, re-name or re-locate<br/>the event or change the dates on which it is held.)</em></p>
</div>
]]></field>
</record>
<record id="event_1" model="event.event">
<field name="name">Opera of Verdi</field>
<field eval="(DateTime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 18:00:00')" name="date_begin"/>
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 21:00:00')" name="date_end"/>
<field name="type" ref="event_type_1"/>
<field name="register_min">50</field>
<field name="name">Functional Webinar</field>
<field eval="(DateTime.now() + timedelta(days=3)).strftime('%Y-%m-%d 7:00:00')" name="date_begin"/>
<field eval="(DateTime.now() + timedelta(days=3)).strftime('%Y-%m-%d 11:00:00')" name="date_end"/>
<field name="type" ref="event_type_0"/>
<field name="address_id" ref="base.res_partner_5"/>
<field name="register_max">350</field>
<field name="description"><![CDATA[
<div class="oe_structure">
<center><strong>Functional Webinar</strong></center>
<p>&nbsp;</p>
<p>Webinars are online demonstrations where one of our team members explains the main features and benefits of our online offer through an online conference. We can therefore directly answer any questions you may have through a Q&A.</p>
<p>Each session lasts approximately one hour and is free, we just ask you to register to receive access codes.</p>
<p>&nbsp;</p>
<p><strong>Objective:</strong></p>
<p>These webinars allow companies interested in our software, to assess whether the solution meets their needs, and can adapt to the scope of their project.</p>
<p>This webinar helps participants to:
<ul>
<li>Discover how to navigate in our software;</li>
<li>View full flow: purchasing, sales, project management, accounting;</li>
<li>Ask your questions to our expert;</li>
<li>Assess whether your expectations are met;</li>
</ul>
<p>&nbsp;</p>
<p>After registering, you will receive a link and password by email before the start of the session. If you have a problem to connect, please contact us at <a href="mailto:events@yourcompany.com">events@yourcompany.com</a>.</p>
<p>&nbsp;</p>
<p>We are looking forward to meeting you online,</p>
<p>Best regards,</p>
<p>Luigi Roni, Senior Event Manager</p>
<p>&nbsp;</p>
<p align="RIGHT"><em>(YourCompany reserves the right to cancel, re-name or re-locate<br/>the event or change the dates on which it is held.)</em></p>
</div>
]]></field>
</record>
<record id="event_2" model="event.event">
<field name="name">Conference on ERP Business</field>
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 14:00:00')" name="date_begin"/>
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 16:30:00')" name="date_end"/>
<field name="name">Conference on Business Applications</field>
<field eval="(DateTime.today()+ timedelta(days=5)).strftime('%Y-%m-%d 7:00:00')" name="date_begin"/>
<field eval="(DateTime.today()+ timedelta(days=5)).strftime('%Y-%m-%d 16:30:00')" name="date_end"/>
<field name="type" ref="event_type_2"/>
<field name="address_id" ref="base.res_partner_14"/>
<field name="register_max">200</field>
<field name="description"><![CDATA[
<div class="oe_structure">
<center><strong>Conference on Business Applications</strong></center>
<p>&nbsp;</p>
<p> During this conference, our team will give a detailed overview of our business applications. Youll know all the benefits of using it.</p>
<p>&nbsp;</p>
<p><strong>Objectives:</strong></p>
<p>Having attended this conference, participants should be able to:</p>
<ul>
<li>Understand the various modules;</li>
<li>Functional flow of the main applications;</li>
</ul>
<p>&nbsp;</p>
<p><strong>Program:</strong></p>
<ul>
<li>Introduction, CRM, Sales Management</li>
<li>Purchase, Sales & Purchase management, Financial accounting.</li>
<li>Project management, Human resources, Contract management.</li>
<li>Warehouse management, Manufacturing (MRP) & Sales, Import/Export.</li>
<li>Point of Sale (POS), Introduction to report customization.</li>
</ul>
<p>&nbsp;</p>
<p><strong>Where to find us:</strong></p>
<p>Chamber Works 60, Rosewood Court Detroit, MI 48212 (United States)</p>
<p>For any additional information, please contact us at <a href="mailto:events@openerp.com">events@openerp.com</a>.</p>
<p>&nbsp;</p>
<p>Best regards,</p>
<p>Luigi Roni, Senior Event Manager</p>
<p>&nbsp;</p>
<p align="RIGHT"><em>(Chamber Works reserves the right to cancel, re-name or re-locate<br/>the event or change the dates on which it is held.)</em></p>
</div>
]]></field>
</record>
<function model="event.event" name="button_confirm" eval="[ref('event_2')]"/>
<record id="event_3" model="event.event">
<field name="name">Technical Training</field>
<field eval="(DateTime.now() + timedelta(15)).strftime('%Y-%m-%d 7:00:00')" name="date_begin"/>
<field eval="(DateTime.now() + timedelta(20)).strftime('%Y-%m-%d 16:00:00')" name="date_end"/>
<field name="type" ref="event_type_4"/>
<field name="user_id" ref="base.user_root"/>
<field name="address_id" ref="base.res_partner_2"/>
<field name="organizer_id" ref="base.res_partner_address_4"/>
<field name="description"><![CDATA[
<div class="oe_structure">
<center><strong>5-days Technical Training</strong></center>
<p>&nbsp;</p>
<p><strong>Course summary:</strong></p>
<p>This course is dedicated to partners, integrators and developers who need to grasp knowledge of the business applications development process. This course is for new developers or for IT professionals eager to learn more about technical aspects.</p>
<p>&nbsp;</p>
<p><strong>Objectives:</strong></p>
<p>Having attended this course, participants should be able to:</p>
<ul>
<li>Understand the development concepts and architecture;</li>
<li>Install and administer your own server;</li>
<li>Develop a new module for a particular application.</li>
</ul>
<p>&nbsp;</p>
<p><strong>Our prices include:</strong></p>
<ul>
<li>drinks and lunch;</li>
<li>training material.</li>
</ul>
<p>&nbsp;</p>
<p><strong>Requirements:</strong></p>
<ul>
<li>Bring your own laptop.</li>
<li>Participants are expected to have some knowledge in programming.&nbsp;A basic knowledge of the Python programming is recommended.</li>
<li>Participants preferably have a functional knowledge of our software (see Functional Training).</li>
</ul>
<p>&nbsp;</p>
<p>For more information on the program, please explore <a href="http://www.openerp.com/services/technical-training">http://www.openerp.com/services/technical-training</a>.</p>
<p>If you have a question<strong>&nbsp;concerning the content of the training</strong>, please contact <a href="mailto:events@yourcompany.com">events@yourcompany.com</a>.</p>
<p>&nbsp;</p>
<p><strong>Where to find us:</strong></p>
<p>Chaussée de Namur 69, 1300 Wavre, Belgium</p>
<p>More information about our Headquarter office (directions, transports, parking, hotels, ...), please have a look at&nbsp;<a href="http://bit.ly/VD8J67">http://bit.ly/VD8J67.</a></p>
<p>&nbsp;</p>
<p><strong>Cancellation Policy:&nbsp;</strong></p>
<p>The organization of the training session has related costs. Due to these costs, cancellations made less than 2 weeks (14 calendar days) prior to the start of the training session is a subject to a fee. This fee can be up to a maximum of 1000€ per cancellation request.</p>
<p>We strongly recommend to book your flight tickets and/or hotel reservations 2 weeks prior to the training. If the training is cancelled 2 weeks in advance, you'll be notified by email.</p>
<div>&nbsp;</div>
<p>For any additional information, please contact us at <a href="mailto:events@openerp.com">events@openerp.com</a>.</p>
<p>&nbsp;</p>
<p>Best regards,</p>
<p>Luigi Roni, Senior Event Manager</p>
<p>&nbsp;</p>
<p align="RIGHT"><em>(YourCompany reserves the right to cancel, re-name or re-locate<br/>the event or change the dates on which it is held.)</em></p>
</div>
]]></field>
</record>
<function model="event.event" name="button_confirm" eval="[ref('event_0')]"/>
<function model="event.event" name="button_confirm" eval="[ref('event_1')]"/>
<function model="event.event" name="button_confirm" eval="[ref('event_2')]"/>
<!-- Demo data for Event Registration-->

View File

@ -91,14 +91,6 @@
</group>
</group>
<notebook>
<page string="Event Details" groups="base.group_no_one">
<group colspan="4">
<field name="reply_to"/>
<field name="email_registration_id"/>
<field name="email_confirmation_id"/>
</group>
<field name="note" nolabel="1" placeholder="Event Description..."/>
</page>
<page string="Registrations">
<group>
<group>
@ -149,6 +141,16 @@
</form>
</field>
</page>
<page string="Description">
<field name="description" nolabel="1" placeholder="Event Description..."/>
</page>
<page string='Event Details' groups="base.group_no_one">
<group colspan="4">
<field name="reply_to"/>
<field name="email_registration_id"/>
<field name="email_confirmation_id"/>
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">

File diff suppressed because one or more lines are too long

View File

@ -117,10 +117,8 @@ class event_event(osv.osv):
return result
_columns = {
'website_published': fields.boolean('Available in the website'),
'description_website': fields.html('Description for the website'),
'event_ticket_ids': fields.one2many('event.event.ticket', "event_id", "Event Ticket"),
'organizer_id': fields.many2one('res.partner', "Orgonizer"),
'organizer_id': fields.many2one('res.partner', "Organizer"),
'phone': fields.related('organizer_id', 'phone', type='char', string='Phone'),
'email': fields.related('organizer_id', 'email', type='char', string='Email'),
'register_max': fields.function(_get_register_max,

View File

@ -25,8 +25,6 @@ class knowledge_config_settings(osv.osv_memory):
_name = 'knowledge.config.settings'
_inherit = 'res.config.settings'
_columns = {
'module_document_page': fields.boolean('Create static web pages',
help="""This installs the module document_page."""),
'module_document': fields.boolean('Manage documents',
help="""This is a complete document management system, with: user authentication,
full document search (but pptx and docx are not supported), and a document dashboard.

View File

@ -28,10 +28,6 @@
<field name="module_document_webdav" class="oe_inline"/>
<label for="module_document_webdav"/>
</div>
<div>
<field name="module_document_page" class="oe_inline"/>
<label for="module_document_page"/>
</div>
</div>
</group>
</form>

View File

@ -11,7 +11,6 @@ access_mail_notification_all,mail.notification.all,model_mail_notification,,1,0,
access_mail_notification_user,mail.notification.user,model_mail_notification,base.group_user,1,1,1,0
access_mail_notification_system,mail.notification.system,model_mail_notification,base.group_system,1,1,1,1
access_mail_group_all,mail.group.all,model_mail_group,,1,0,0,0
access_mail_group_public,mail.group.public,model_mail_group,base.group_public,1,0,0,0
access_mail_group_user,mail.group.user,model_mail_group,base.group_user,1,1,1,1
access_mail_alias_all,mail.alias.all,model_mail_alias,,1,0,0,0
access_mail_alias_user,mail.alias.user,model_mail_alias,base.group_user,1,1,1,0
@ -20,4 +19,3 @@ access_mail_message_subtype_all,mail.message.subtype.all,model_mail_message_subt
access_mail_message_subtype_system,mail.message.subtype.system,model_mail_message_subtype,base.group_system,1,1,1,1
access_mail_thread_all,mail.thread.all,model_mail_thread,,1,1,1,1
access_publisher_warranty_contract_all,publisher.warranty.contract.all,model_publisher_warranty_contract,,1,1,1,1
access_mail_message_public,mail.message.public,mail.model_mail_message,base.group_public,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
11 access_mail_notification_user mail.notification.user model_mail_notification base.group_user 1 1 1 0
12 access_mail_notification_system mail.notification.system model_mail_notification base.group_system 1 1 1 1
13 access_mail_group_all mail.group.all model_mail_group 1 0 0 0
access_mail_group_public mail.group.public model_mail_group base.group_public 1 0 0 0
14 access_mail_group_user mail.group.user model_mail_group base.group_user 1 1 1 1
15 access_mail_alias_all mail.alias.all model_mail_alias 1 0 0 0
16 access_mail_alias_user mail.alias.user model_mail_alias base.group_user 1 1 1 0
19 access_mail_message_subtype_system mail.message.subtype.system model_mail_message_subtype base.group_system 1 1 1 1
20 access_mail_thread_all mail.thread.all model_mail_thread 1 1 1 1
21 access_publisher_warranty_contract_all publisher.warranty.contract.all model_publisher_warranty_contract 1 1 1 1
access_mail_message_public mail.message.public mail.model_mail_message base.group_public 1 0 0 0

View File

@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Business Applications
# Copyright (c) 2012-TODAY OpenERP S.A. <http://openerp.com>
# Copyright (c) 20123TODAY OpenERP S.A. <http://www.openerp.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as

View File

@ -245,7 +245,7 @@ FaceTime HD Camera, 1.2 MP Photos</field>
<field name="name">Bose Mini Bluetooth Speaker</field>
<field name="default_code">PC-DEM</field>
<field name="categ_id" ref="product_category_4"/>
<field name="public_categ_id" ref="services"/>
<field name="public_categ_id" ref="Speakers"/>
<field name="standard_price">600.0</field>
<field name="list_price">900.0</field>
<field name="type">consu</field>
@ -311,7 +311,8 @@ FaceTime HD Camera, 1.2 MP Photos</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
<record id="product_product_11" model="product.product">
<record id="product_product_11_temp" model="product.template">
<field name="name">iPod</field>
<field name="default_code">M-Las</field>
<field name="categ_id" ref="product_category_8"/>
@ -322,6 +323,24 @@ FaceTime HD Camera, 1.2 MP Photos</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
</record>
<record id="product_product_11" model="product.product">
<field name="name">iPod</field>
<field name="default_code">M-Las</field>
<field name="categ_id" ref="product_category_8"/>
<field name="public_categ_id" ref="Keyboard_Mouse"/>
<field name="standard_price">14</field>
<field name="list_price">16.50</field>
<field name="type">consu</field>
<field name="uom_id" ref="product_uom_unit"/>
<field name="uom_po_id" ref="product_uom_unit"/>
<field name="product_tmpl_id" ref="product_product_11_temp"/>
</record>
<record id="product_product_11_b" model="product.product">
<field name="variants">32 Gb</field>
<field name="price_extra">12</field>
<field name="product_tmpl_id" ref="product_product_11_temp"/>
</record>
<record id="product_product_12" model="product.product">
<field name="name">Mouse, Wireless</field>
<field name="default_code">M-Wir</field>
@ -1023,12 +1042,12 @@ QWERTY keyboard</field>
<field name="min_qty">1</field>
</record>
<record id="product_supplierinfo_38" model="product.supplierinfo">
<!--record id="product_supplierinfo_38" model="product.supplierinfo">
<field name="product_id" ref="product_product_48"/>
<field name="name" ref="base.res_partner_8"/>
<field name="delay">7</field>
<field name="min_qty">1</field>
</record>
</record-->
<record id="product_supplierinfo_39" model="product.supplierinfo">
<field name="product_id" ref="product_product_18"/>

File diff suppressed because one or more lines are too long

View File

@ -51,7 +51,7 @@ class Website(openerp.addons.web.controllers.main.Home):
else:
module = 'website'
idname = path
path = "%s.%s" % (module, idname)
xid = "%s.%s" % (module, idname)
request.cr.execute('SAVEPOINT pagenew')
imd = request.registry['ir.model.data']
@ -63,7 +63,7 @@ class Website(openerp.addons.web.controllers.main.Home):
newview = view.browse(
request.cr, request.uid, newview_id, context=request.context)
newview.write({
'arch': newview.arch.replace("website.default_page", path),
'arch': newview.arch.replace("website.default_page", xid),
'name': "page/%s" % path,
'page': True,
})
@ -265,12 +265,16 @@ class Website(openerp.addons.web.controllers.main.Home):
hashed_session = hashlib.md5(request.session_id).hexdigest()
retag = hashed_session
try:
ids = Model.read(request.cr, request.uid, [('id', '=', id)], request.context)
if not ids:
id = Model.read(request.cr, openerp.SUPERUSER_ID, [('id', '=', id), ('website_published', '=', True)], request.context)[0]
if etag:
date = Model.read(request.cr, request.uid, [id], [last_update], request.context)[0].get(last_update)
date = Model.read(request.cr, openerp.SUPERUSER_ID, [id], [last_update], request.context)[0].get(last_update)
if hashlib.md5(date).hexdigest() == etag:
return werkzeug.wrappers.Response(status=304)
res = Model.read(request.cr, request.uid, [id], [last_update, field], request.context)[0]
res = Model.read(request.cr, openerp.SUPERUSER_ID, [id], [last_update, field], request.context)[0]
retag = hashlib.md5(res.get(last_update)).hexdigest()
image_base64 = res.get(field)
@ -316,4 +320,12 @@ class Website(openerp.addons.web.controllers.main.Home):
def kanban(self, **post):
return request.website.kanban_col(**post)
@website.route(['/robots.txt'], type='http', auth="public")
def robots(self):
return request.website.render('website.robots', {'url_root': request.httprequest.url_root})
@website.route(['/sitemap.xml'], type='http', auth="public")
def sitemap(self):
return request.website.render('website.sitemap', {'pages': request.website.list_pages()})
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,237 @@
CKEditor 4 Changelog
====================
## CKEditor 4.3 beta
* [#10708](http://dev.ckeditor.com/ticket/10708): New smileys.
## CKEditor 4.2.1
Fixed Issues:
* [#10301](http://dev.ckeditor.com/ticket/10301): [IE9-10] Undo fails after 3+ consecutive paste actions with a JavaScript error.
* [#10689](http://dev.ckeditor.com/ticket/10689): Save toolbar button saves only the first editor instance.
* [#10368](http://dev.ckeditor.com/ticket/10368): Move language reading direction definition (`dir`) from main language file to core.
* [#9330](http://dev.ckeditor.com/ticket/9330): Fixed pasting anchors from MS Word.
* [#8103](http://dev.ckeditor.com/ticket/8103): Fixed pasting nested lists from MS Word.
* [#9958](http://dev.ckeditor.com/ticket/9958): [IE9] Pressing the "OK" button will trigger the `onbeforeunload` event in the popup dialog.
* [#10662](http://dev.ckeditor.com/ticket/10662): Fixed styles from the Styles drop-down list not registering to the ACF in case when the [Shared Spaces plugin](http://ckeditor.com/addon/sharedspace) is used.
* [#9654](http://dev.ckeditor.com/ticket/9654): Problems with Internet Explorer 10 Quirks Mode.
* [#9816](http://dev.ckeditor.com/ticket/9816): Floating toolbar does not reposition vertically in several cases.
* [#10646](http://dev.ckeditor.com/ticket/10646): Removing a selected sublist or nested table with *Backspace/Delete* removes the parent element.
* [#10623](http://dev.ckeditor.com/ticket/10623): [WebKit] Page is scrolled when opening a drop-down list.
* [#10004](http://dev.ckeditor.com/ticket/10004): [ChromeVox] Button names are not announced.
* [#10731](http://dev.ckeditor.com/ticket/10731): [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin breaks cloning of editor configuration.
* It is now possible to set per instance [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin configuration instead of setting the configuration globally.
## CKEditor 4.2
**Important Notes:**
* Dropped compatibility support for Internet Explorer 7 and Firefox 3.6.
* Both the Basic and the Standard distribution packages will not contain the new [Indent Block](http://ckeditor.com/addon/indentblock) plugin. Because of this the [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) might remove block indentations from existing contents. If you want to prevent this, either [add an appropriate ACF rule to your filter](http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules) or create a custom build based on the Basic/Standard package and add the Indent Block plugin in [CKBuilder](http://ckeditor.com/builder).
New Features:
* [#10027](http://dev.ckeditor.com/ticket/10027): Separated list and block indentation into two plugins: [Indent List](http://ckeditor.com/addon/indentlist) and [Indent Block](http://ckeditor.com/addon/indentblock).
* [#8244](http://dev.ckeditor.com/ticket/8244): Use *(Shift+)Tab* to indent and outdent lists.
* [#10281](http://dev.ckeditor.com/ticket/10281): The [jQuery Adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) is now available. Several jQuery-related issues fixed: [#8261](http://dev.ckeditor.com/ticket/8261), [#9077](http://dev.ckeditor.com/ticket/9077), [#8710](http://dev.ckeditor.com/ticket/8710), [#8530](http://dev.ckeditor.com/ticket/8530), [#9019](http://dev.ckeditor.com/ticket/9019), [#6181](http://dev.ckeditor.com/ticket/6181), [#7876](http://dev.ckeditor.com/ticket/7876), [#6906](http://dev.ckeditor.com/ticket/6906).
* [#10042](http://dev.ckeditor.com/ticket/10042): Introduced [`config.title`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-title) setting to change the human-readable title of the editor.
* [#9794](http://dev.ckeditor.com/ticket/9794): Added [`editor.onChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event.
* [#9923](http://dev.ckeditor.com/ticket/9923): HiDPI support in the editor UI. HiDPI icons for [Moono skin](http://ckeditor.com/addon/moono) added.
* [#8031](http://dev.ckeditor.com/ticket/8031): Handle `required` attributes on `<textarea>` elements &mdash; introduced [`editor.required`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-required) event.
* [#10280](http://dev.ckeditor.com/ticket/10280): Ability to replace `<textarea>` elements with the inline editor.
Fixed Issues:
* [#10599](http://dev.ckeditor.com/ticket/10599): [Indent](http://ckeditor.com/addon/indent) plugin is no longer required by the [List](http://ckeditor.com/addon/list) plugin.
* [#10370](http://dev.ckeditor.com/ticket/10370): Inconsistency in data events between framed and inline editors.
* [#10438](http://dev.ckeditor.com/ticket/10438): [FF, IE] No selection is done on an editable element on executing [`editor.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData).
## CKEditor 4.1.3
New Features:
* Added new translation: Indonesian.
Fixed Issues:
* [#10644](http://dev.ckeditor.com/ticket/10644): Fixed a critical bug when pasting plain text in Blink-based browsers.
* [#5189](http://dev.ckeditor.com/ticket/5189): [Find/Replace](http://ckeditor.com/addon/find) dialog window: rename "Cancel" button to "Close".
* [#10562](http://dev.ckeditor.com/ticket/10562): [Housekeeping] Unified CSS gradient filter formats in the [Moono](http://ckeditor.com/addon/moono) skin.
* [#10537](http://dev.ckeditor.com/ticket/10537): Advanced Content Filter should register a default rule for [`config.shiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode).
* [#10610](http://dev.ckeditor.com/ticket/10610): [`CKEDITOR.dialog.addIframe()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog-static-method-addIframe) incorrectly sets the iframe size in dialog windows.
## CKEditor 4.1.2
New Features:
* Added new translation: Sinhala.
Fixed Issues:
* [#10339](http://dev.ckeditor.com/ticket/10339): Fixed: Error thrown when inserted data was totally stripped out after filtering and processing.
* [#10298](http://dev.ckeditor.com/ticket/10298): Fixed: Data processor breaks attributes containing protected parts.
* [#10367](http://dev.ckeditor.com/ticket/10367): Fixed: [`editable.insertText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertText) loses characters when `RegExp` replace controls are being inserted.
* [#10165](http://dev.ckeditor.com/ticket/10165): [IE] Access denied error when `document.domain` has been altered.
* [#9761](http://dev.ckeditor.com/ticket/9761): Update the *Backspace* key state in [`keystrokeHandler.blockedKeystrokes`](http://docs.ckeditor.com/#!/api/CKEDITOR.keystrokeHandler-property-blockedKeystrokes) when calling [`editor.setReadOnly()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setReadOnly).
* [#6504](http://dev.ckeditor.com/ticket/6504): Fixed: Race condition while loading several [`config.customConfig`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-customConfig) files.
* [#10146](http://dev.ckeditor.com/ticket/10146): [Firefox] Empty lines are being removed while [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR).
* [#10360](http://dev.ckeditor.com/ticket/10360): Fixed: ARIA `role="application"` should not be used for dialog windows.
* [#10361](http://dev.ckeditor.com/ticket/10361): Fixed: ARIA `role="application"` should not be used for floating panels.
* [#10510](http://dev.ckeditor.com/ticket/10510): Introduced unique voice labels to differentiate between different editor instances.
* [#9945](http://dev.ckeditor.com/ticket/9945): [iOS] Scrolling not possible on iPad.
* [#10389](http://dev.ckeditor.com/ticket/10389): Fixed: Invalid HTML in the "Text and Table" template.
* [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin user interface was changed to match CKEditor 4 style.
## CKEditor 4.1.1
New Features:
* Added new translation: Albanian.
Fixed Issues:
* [#10172](http://dev.ckeditor.com/ticket/10172): Pressing *Delete* or *Backspace* in an empty table cell moves the cursor to the next/previous cell.
* [#10219](http://dev.ckeditor.com/ticket/10219): Error thrown when destroying an editor instance in parallel with a `mouseup` event.
* [#10265](http://dev.ckeditor.com/ticket/10265): Wrong loop type in the [File Browser](http://ckeditor.com/addon/filebrowser) plugin.
* [#10249](http://dev.ckeditor.com/ticket/10249): Wrong undo/redo states at start.
* [#10268](http://dev.ckeditor.com/ticket/10268): [Show Blocks](http://ckeditor.com/addon/showblocks) does not recover after switching to Source view.
* [#9995](http://dev.ckeditor.com/ticket/9995): HTML code in the `<textarea>` should not be modified by the [`htmlDataProcessor`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlDataProcessor).
* [#10320](http://dev.ckeditor.com/ticket/10320): [Justify](http://ckeditor.com/addon/justify) plugin should add elements to Advanced Content Filter based on current [Enter mode](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode).
* [#10260](http://dev.ckeditor.com/ticket/10260): Fixed: Advanced Content Filter blocks [`tabSpaces`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-tabSpaces). Unified `data-cke-*` attributes filtering.
* [#10315](http://dev.ckeditor.com/ticket/10315): [WebKit] [Undo manager](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.undo.UndoManager) should not record snapshots after a filling character was added/removed.
* [#10291](http://dev.ckeditor.com/ticket/10291): [WebKit] Space after a filling character should be secured.
* [#10330](http://dev.ckeditor.com/ticket/10330): [WebKit] The filling character is not removed on `keydown` in specific cases.
* [#10285](http://dev.ckeditor.com/ticket/10285): Fixed: Styled text pasted from MS Word causes an infinite loop.
* [#10131](http://dev.ckeditor.com/ticket/10131): Fixed: [`undoManager.update()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.undo.UndoManager-method-update) does not refresh the command state.
* [#10337](http://dev.ckeditor.com/ticket/10337): Fixed: Unable to remove `<s>` using [Remove Format](http://ckeditor.com/addon/removeformat).
## CKEditor 4.1
Fixed Issues:
* [#10192](http://dev.ckeditor.com/ticket/10192): Closing lists with the *Enter* key does not work with [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) in several cases.
* [#10191](http://dev.ckeditor.com/ticket/10191): Fixed allowed content rules unification, so the [`filter.allowedContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-allowedContent) property always contains rules in the same format.
* [#10224](http://dev.ckeditor.com/ticket/10224): Advanced Content Filter does not remove non-empty `<a>` elements anymore.
* Minor issues in plugin integration with Advanced Content Filter:
* [#10166](http://dev.ckeditor.com/ticket/10166): Added transformation from the `align` attribute to `float` style to preserve backward compatibility after the introduction of Advanced Content Filter.
* [#10195](http://dev.ckeditor.com/ticket/10195): [Image](http://ckeditor.com/addon/image) plugin no longer registers rules for links to Advanced Content Filter.
* [#10213](http://dev.ckeditor.com/ticket/10213): [Justify](http://ckeditor.com/addon/justify) plugin is now correctly registering rules to Advanced Content Filter when [`config.justifyClasses`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-justifyClasses) is defined.
## CKEditor 4.1 RC
New Features:
* [#9829](http://dev.ckeditor.com/ticket/9829): Advanced Content Filter - data and features activation based on editor configuration.
Brand new data filtering system that works in 2 modes:
* Based on loaded features (toolbar items, plugins) - the data will be filtered according to what the editor in its
current configuration can handle.
* Based on [`config.allowedContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-allowedContent) rules - the data
will be filtered and the editor features (toolbar items, commands, keystrokes) will be enabled if they are allowed.
See the `datafiltering.html` sample, [guides](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) and [`CKEDITOR.filter` API documentation](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
* [#9387](http://dev.ckeditor.com/ticket/9387): Reintroduced [Shared Spaces](http://ckeditor.com/addon/sharedspace) - the ability to display toolbar and bottom editor space in selected locations and to share them by different editor instances.
* [#9907](http://dev.ckeditor.com/ticket/9907): Added the [`contentPreview`](http://docs.ckeditor.com/#!/api/CKEDITOR-event-contentPreview) event for preview data manipulation.
* [#9713](http://dev.ckeditor.com/ticket/9713): Introduced the [Source Dialog](http://ckeditor.com/addon/sourcedialog) plugin that brings raw HTML editing for inline editor instances.
* Included in [#9829](http://dev.ckeditor.com/ticket/9829): Introduced new events, [`toHtml`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toHtml) and [`toDataFormat`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-toDataFormat), allowing for better integration with data processing.
* [#9981](http://dev.ckeditor.com/ticket/9981): Added ability to filter [`htmlParser.fragment`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.fragment), [`htmlParser.element`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element) etc. by many [`htmlParser.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter)s before writing structure to an HTML string.
* Included in [#10103](http://dev.ckeditor.com/ticket/10103):
* Introduced the [`editor.status`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-status) property to make it easier to check the current status of the editor.
* Default [`command`](http://docs.ckeditor.com/#!/api/CKEDITOR.command) state is now [`CKEDITOR.TRISTATE_DISABLE`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-TRISTATE_DISABLED). It will be activated on [`editor.instanceReady`](http://docs.ckeditor.com/#!/api/CKEDITOR-event-instanceReady) or immediately after being added if the editor is already initialized.
* [#9796](http://dev.ckeditor.com/ticket/9796): Introduced `<s>` as a default tag for strikethrough, which replaces obsolete `<strike>` in HTML5.
## CKEditor 4.0.3
Fixed Issues:
* [#10196](http://dev.ckeditor.com/ticket/10196): Fixed context menus not opening with keyboard shortcuts when [Autogrow](http://ckeditor.com/addon/autogrow) is enabled.
* [#10212](http://dev.ckeditor.com/ticket/10212): [IE7-10] Undo command throws errors after multiple switches between Source and WYSIWYG view.
* [#10219](http://dev.ckeditor.com/ticket/10219): [Inline editor] Error thrown after calling [`editor.destroy()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-destroy).
## CKEditor 4.0.2
Fixed Issues:
* [#9779](http://dev.ckeditor.com/ticket/9779): Fixed overriding [`CKEDITOR.getUrl()`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getUrl) with `CKEDITOR_GETURL`.
* [#9772](http://dev.ckeditor.com/ticket/9772): Custom buttons in the dialog window footer have different look and size ([Moono](http://ckeditor.com/addon/moono), [Kama](http://ckeditor.com/addon/kama) skins).
* [#9029](http://dev.ckeditor.com/ticket/9029): Custom styles added with the [`stylesSet.add()`](http://docs.ckeditor.com/#!/api/CKEDITOR.stylesSet-method-add) are displayed in the wrong order.
* [#9887](http://dev.ckeditor.com/ticket/9887): Disable [Magic Line](http://ckeditor.com/addon/magicline) when [`editor.readOnly`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) is set.
* [#9882](http://dev.ckeditor.com/ticket/9882): Fixed empty document title on [`editor.getData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getData) if set via the Document Properties dialog window.
* [#9773](http://dev.ckeditor.com/ticket/9773): Fixed rendering problems with selection fields in the Kama skin.
* [#9851](http://dev.ckeditor.com/ticket/9851): The [`selectionChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-selectionChange) event is not fired when mouse selection ended outside editable.
* [#9903](http://dev.ckeditor.com/ticket/9903): [Inline editor] Bad positioning of floating space with page horizontal scroll.
* [#9872](http://dev.ckeditor.com/ticket/9872): [`editor.checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty) returns `true` when called onload. Removed the obsolete `editor.mayBeDirty` flag.
* [#9893](http://dev.ckeditor.com/ticket/9893): [IE] Fixed broken toolbar when editing mixed direction content in Quirks mode.
* [#9845](http://dev.ckeditor.com/ticket/9845): Fixed TAB navigation in the [Link](http://ckeditor.com/addon/link) dialog window when the Anchor option is used and no anchors are available.
* [#9883](http://dev.ckeditor.com/ticket/9883): Maximizing was making the entire page editable with [divarea](http://ckeditor.com/addon/divarea)-based editors.
* [#9940](http://dev.ckeditor.com/ticket/9940): [Firefox] Navigating back to a page with the editor was making the entire page editable.
* [#9966](http://dev.ckeditor.com/ticket/9966): Fixed: Unable to type square brackets with French keyboard layout. Changed [Magic Line](http://ckeditor.com/addon/magicline) keystrokes.
* [#9507](http://dev.ckeditor.com/ticket/9507): [Firefox] Selection is moved before editable position when the editor is focused for the first time.
* [#9947](http://dev.ckeditor.com/ticket/9947): [WebKit] Editor overflows parent container in some edge cases.
* [#10105](http://dev.ckeditor.com/ticket/10105): Fixed: Broken [sourcearea](http://ckeditor.com/addon/sourcearea) view when an RTL language is set.
* [#10123](http://dev.ckeditor.com/ticket/10123): [WebKit] Fixed: Several dialog windows have broken layout since the latest WebKit release.
* [#10152](http://dev.ckeditor.com/ticket/10152): Fixed: Invalid ARIA property used on menu items.
## CKEditor 4.0.1.1
Fixed Issues:
* Security update: Added protection against XSS attack and possible path disclosure in the PHP sample.
## CKEditor 4.0.1
Fixed Issues:
* [#9655](http://dev.ckeditor.com/ticket/9655): Support for IE Quirks Mode in the new [Moono skin](http://ckeditor.com/addon/moono).
* Accessibility issues (mainly in inline editor): [#9364](http://dev.ckeditor.com/ticket/9364), [#9368](http://dev.ckeditor.com/ticket/9368), [#9369](http://dev.ckeditor.com/ticket/9369), [#9370](http://dev.ckeditor.com/ticket/9370), [#9541](http://dev.ckeditor.com/ticket/9541), [#9543](http://dev.ckeditor.com/ticket/9543), [#9841](http://dev.ckeditor.com/ticket/9841), [#9844](http://dev.ckeditor.com/ticket/9844).
* [Magic Line](http://ckeditor.com/addon/magicline) plugin:
* [#9481](http://dev.ckeditor.com/ticket/9481): Added accessibility support for Magic Line.
* [#9509](http://dev.ckeditor.com/ticket/9509): Added Magic Line support for forms.
* [#9573](http://dev.ckeditor.com/ticket/9573): Magic Line does not disappear on `mouseout` in a specific case.
* [#9754](http://dev.ckeditor.com/ticket/9754): [WebKit] Cutting & pasting simple unformatted text generates an inline wrapper in WebKit browsers.
* [#9456](http://dev.ckeditor.com/ticket/9456): [Chrome] Properly paste bullet list style from MS Word.
* [#9699](http://dev.ckeditor.com/ticket/9699), [#9758](http://dev.ckeditor.com/ticket/9758): Improved selection locking when selecting by dragging.
* Context menu:
* [#9712](http://dev.ckeditor.com/ticket/9712): Opening the context menu destroys editor focus.
* [#9366](http://dev.ckeditor.com/ticket/9366): Context menu should be displayed over the floating toolbar.
* [#9706](http://dev.ckeditor.com/ticket/9706): Context menu generates a JavaScript error in inline mode when the editor is attached to a header element.
* [#9800](http://dev.ckeditor.com/ticket/9800): Hide float panel when resizing the window.
* [#9721](http://dev.ckeditor.com/ticket/9721): Padding in content of div-based editor puts the editing area under the bottom UI space.
* [#9528](http://dev.ckeditor.com/ticket/9528): Host page `box-sizing` style should not influence the editor UI elements.
* [#9503](http://dev.ckeditor.com/ticket/9503): [Form Elements](http://ckeditor.com/addon/forms) plugin adds context menu listeners only on supported input types. Added support for `tel`, `email`, `search` and `url` input types.
* [#9769](http://dev.ckeditor.com/ticket/9769): Improved floating toolbar positioning in a narrow window.
* [#9875](http://dev.ckeditor.com/ticket/9875): Table dialog window does not populate width correctly.
* [#8675](http://dev.ckeditor.com/ticket/8675): Deleting cells in a nested table removes the outer table cell.
* [#9815](http://dev.ckeditor.com/ticket/9815): Cannot edit dialog window fields in an editor initialized in the jQuery UI modal dialog.
* [#8888](http://dev.ckeditor.com/ticket/8888): CKEditor dialog windows do not show completely in a small window.
* [#9360](http://dev.ckeditor.com/ticket/9360): [Inline editor] Blocks shown for a `<div>` element stay permanently even after the user exits editing the `<div>`.
* [#9531](http://dev.ckeditor.com/ticket/9531): [Firefox & Inline editor] Toolbar is lost when closing the Format drop-down list by clicking its button.
* [#9553](http://dev.ckeditor.com/ticket/9553): Table width incorrectly set when the `border-width` style is specified.
* [#9594](http://dev.ckeditor.com/ticket/9594): Cannot tab past CKEditor when it is in read-only mode.
* [#9658](http://dev.ckeditor.com/ticket/9658): [IE9] Justify not working on selected images.
* [#9686](http://dev.ckeditor.com/ticket/9686): Added missing contents styles for `<pre>` elements.
* [#9709](http://dev.ckeditor.com/ticket/9709): [Paste from Word](http://ckeditor.com/addon/pastefromword) should not depend on configuration from other styles.
* [#9726](http://dev.ckeditor.com/ticket/9726): Removed [Color Dialog](http://ckeditor.com/addon/colordialog) plugin dependency from [Table Tools](http://ckeditor.com/addon/tabletools).
* [#9765](http://dev.ckeditor.com/ticket/9765): Toolbar Collapse command documented incorrectly in the [Accessibility Instructions](http://ckeditor.com/addon/a11yhelp) dialog window.
* [#9771](http://dev.ckeditor.com/ticket/9771): [WebKit & Opera] Fixed scrolling issues when pasting.
* [#9787](http://dev.ckeditor.com/ticket/9787): [IE9] `onChange` is not fired for checkboxes in dialogs.
* [#9842](http://dev.ckeditor.com/ticket/9842): [Firefox 17] When opening a toolbar menu for the first time and pressing the *Down Arrow* key, focus goes to the next toolbar button instead of the menu options.
* [#9847](http://dev.ckeditor.com/ticket/9847): [Elements Path](http://ckeditor.com/addon/elementspath) should not be initialized in the inline editor.
* [#9853](http://dev.ckeditor.com/ticket/9853): [`editor.addRemoveFormatFilter()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-addRemoveFormatFilter) is exposed before it really works.
* [#8893](http://dev.ckeditor.com/ticket/8893): Value of the [`pasteFromWordCleanupFile`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordCleanupFile) configuration option is now taken from the instance configuration.
* [#9693](http://dev.ckeditor.com/ticket/9693): Removed "Live Preview" checkbox from UI color picker.
## CKEditor 4.0
The first stable release of the new CKEditor 4 code line.
The CKEditor JavaScript API has been kept compatible with CKEditor 4, whenever
possible. The list of relevant changes can be found in the [API Changes page of
the CKEditor 4 documentation][1].
[1]: http://docs.ckeditor.com/#!/guide/dev_api_changes "API Changes"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,68 @@
CKEditor 4 - The best browser-based WYSIWYG editor
==================================================
## Development Code
This repository contains the development version of CKEditor.
**Attention:** The code in this repository should be used locally and for
development purposes only. We don't recommend distributing it on remote websites
because the user experience will be very limited. For that purpose, you should
build it (see below) or use an official release instead, available on the
[CKEditor website](http://ckeditor.com).
### Code Installation
There is no special installation procedure to install the development code.
Simply clone it on any local directory and you're set.
### Available Branches
This repository contains the following branches:
- **master**: development of the upcoming minor release.
- **major**: development of the upcoming major release.
- **stable**: latest stable release tag point (non-beta).
- **latest**: latest release tag point (including betas).
- **release/A.B.x** (e.g. 4.0.x, 4.1.x): release freeze, tests and tagging.
Hotfixing.
(*) Note that both **master** and **major** are under heavy development. Their
code didn't pass the release testing phase so it may be unstable.
Additionally, all releases will have their relative tags in this form: 4.0,
4.0.1, etc.
### Samples
The `samples/` folder contains a good set of examples that can be used
to test your installation. It can also be a precious resource for learning
some aspects of the CKEditor JavaScript API and its integration on web pages.
### Code Structure
The development code contains the following main elements:
- Main coding folders:
- `core/`: the core API of CKEditor. Alone, it does nothing, but
it provides the entire JavaScript API that makes the magic happen.
- `plugins/`: contains most of the plugins maintained by the CKEditor core team.
- `skin/`: contains the official default skin of CKEditor.
- `dev/`: contains "developer tools".
### Building a Release
A release optimized version of the development code can be easily created
locally. The `dev/builder/build.sh` script can be used for that purpose:
> ./dev/builder/build.sh
A "release ready" working copy of your development code will be built in the new
`dev/builder/release/` folder. An internet connection is necessary to run the
builder, for its first time at least.
### License
Licensed under the GPL, LGPL and MPL licenses, at your choice.
For full details about license, please check the LICENSE.md file.

View File

@ -1,927 +1,42 @@
/*
Copyright (c) 2003-2013, 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 b={timestamp:"D6IE",version:"4.2",revision:"f74e558",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var b=document.getElementsByTagName("script"),h=0;h<b.length;h++){var c=b[h].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(c){a=c[1];break}}-1==a.indexOf(":/")&&(a=0===a.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+a:location.href.match(/^[^\?]*\/(?:)/)[0]+
a);if(!a)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return a}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,
!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(h){}}function b(){for(var a;a=h.shift();)a()}var h=[];return function(b){h.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==h.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);b=!1;try{b=
!window.frameElement}catch(d){}if(document.documentElement.doScroll&&b){var c=function(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(c,1);return}a()};c()}}}}()},c=window.CKEDITOR_GETURL;if(c){var a=b.getUrl;b.getUrl=function(e){return c.call(b,e)||a.call(b,e)}}return b}());
CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(b){var c=CKEDITOR.event.prototype,a;for(a in c)b[a]==void 0&&(b[a]=c[a])},CKEDITOR.event.prototype=function(){function b(e){var b=c(this);return b[e]||(b[e]=new a(e))}var c=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},a=function(a){this.name=a;this.listeners=[]};a.prototype={getListenerIndex:function(a){for(var b=0,h=this.listeners;b<h.length;b++)if(h[b].fn==a)return b;return-1}};
return{define:function(a,d){var h=b.call(this,a);CKEDITOR.tools.extend(h,d,true)},on:function(a,d,h,c,j){function i(b,g,n,o){b={name:a,sender:this,editor:b,data:g,listenerData:c,stop:n,cancel:o,removeListener:l};return d.call(h,b)===false?false:b.data}function l(){o.removeListener(a,d)}var n=b.call(this,a);if(n.getListenerIndex(d)<0){n=n.listeners;h||(h=this);isNaN(j)&&(j=10);var o=this;i.fn=d;i.priority=j;for(var q=n.length-1;q>=0;q--)if(n[q].priority<=j){n.splice(q+1,0,i);return{removeListener:l}}n.unshift(i)}return{removeListener:l}},
once:function(){var a=arguments[1];arguments[1]=function(b){b.removeListener();return a.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},h=0,f=function(){h=1};return function(j,i,l){var n=c(this)[j],j=a,o=h;a=h=0;if(n){var q=n.listeners;if(q.length)for(var q=q.slice(0),k,g=0;g<q.length;g++){if(n.errorProof)try{k=q[g].call(this,
l,i,b,f)}catch(p){}else k=q[g].call(this,l,i,b,f);k===false?h=1:typeof k!="undefined"&&(i=k);if(a||h)break}}i=h?false:typeof i=="undefined"?true:i;a=j;h=o;return i}}(),fireOnce:function(a,b,h){b=this.fire(a,b,h);delete c(this)[a];return b},removeListener:function(a,b){var h=c(this)[a];if(h){var f=h.getListenerIndex(b);f>=0&&h.listeners.splice(f,1)}},removeAllListeners:function(){var a=c(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=c(this)[a])&&a.listeners.length>0}}}());
CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(b,c){b in{instanceReady:1,loaded:1}&&(this[b]=true);return CKEDITOR.event.prototype.fire.call(this,b,c,this)},CKEDITOR.editor.prototype.fireOnce=function(b,c){b in{instanceReady:1,loaded:1}&&(this[b]=true);return CKEDITOR.event.prototype.fireOnce.call(this,b,c,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
CKEDITOR.env||(CKEDITOR.env=function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,a={ie:eval("/*@cc_on!@*/false"),opera:!!c&&c.version,webkit:b.indexOf(" applewebkit/")>-1,air:b.indexOf(" adobeair/")>-1,mac:b.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat",mobile:b.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(b),isCustomDomain:function(){if(!this.ie)return false;var a=document.domain,e=window.location.hostname;return a!=e&&a!="["+e+"]"},secure:location.protocol==
"https:"};a.gecko=navigator.product=="Gecko"&&!a.webkit&&!a.opera;if(a.webkit)b.indexOf("chrome")>-1?a.chrome=true:a.safari=true;var e=0;if(a.ie){e=a.quirks||!document.documentMode?parseFloat(b.match(/msie (\d+)/)[1]):document.documentMode;a.ie9Compat=e==9;a.ie8Compat=e==8;a.ie7Compat=e==7;a.ie6Compat=e<7||a.quirks}if(a.gecko){var d=b.match(/rv:([\d\.]+)/);if(d){d=d[1].split(".");e=d[0]*1E4+(d[1]||0)*100+(d[2]||0)*1}}a.opera&&(e=parseFloat(c.version()));a.air&&(e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]));
a.webkit&&(e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]));a.version=e;a.isCompatible=a.iOS&&e>=534||!a.mobile&&(a.ie&&e>6||a.gecko&&e>=10801||a.opera&&e>=9.5||a.air&&e>=1||a.webkit&&e>=522||false);a.hidpi=window.devicePixelRatio>=2;a.cssClass="cke_browser_"+(a.ie?"ie":a.gecko?"gecko":a.opera?"opera":a.webkit?"webkit":"unknown");if(a.quirks)a.cssClass=a.cssClass+" cke_browser_quirks";if(a.ie){a.cssClass=a.cssClass+(" cke_browser_ie"+(a.quirks||a.version<7?"6":a.version));if(a.quirks)a.cssClass=a.cssClass+
" cke_browser_iequirks"}if(a.gecko)if(e<10900)a.cssClass=a.cssClass+" cke_browser_gecko18";else if(e<=11E3)a.cssClass=a.cssClass+" cke_browser_gecko19";if(a.air)a.cssClass=a.cssClass+" cke_browser_air";if(a.iOS)a.cssClass=a.cssClass+" cke_browser_ios";if(a.hidpi)a.cssClass=a.cssClass+" cke_hidpi";return a}());
"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 b=document.createElement("script");b.type="text/javascript";b.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(b)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(b){(this._.pending||(this._.pending=[])).push(b)};(function(){CKEDITOR.domReady(function(){var b=
CKEDITOR.loadFullCore,c=CKEDITOR.loadFullCoreTimeout;if(b){CKEDITOR.status="basic_ready";b&&b._load?b():c&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},c*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={};
(function(){var b=[],c=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.opera?"-o-":CKEDITOR.env.ie?"-ms-":"";CKEDITOR.on("reset",function(){b=[]});CKEDITOR.tools={arrayCompare:function(a,e){if(!a&&!e)return true;if(!a||!e||a.length!=e.length)return false;for(var b=0;b<a.length;b++)if(a[b]!=e[b])return false;return true},clone:function(a){var e;if(a&&a instanceof Array){e=[];for(var b=0;b<a.length;b++)e[b]=CKEDITOR.tools.clone(a[b]);return e}if(a===null||typeof a!="object"||
a instanceof String||a instanceof Number||a instanceof Boolean||a instanceof Date||a instanceof RegExp)return a;e=new a.constructor;for(b in a)e[b]=CKEDITOR.tools.clone(a[b]);return e},capitalize:function(a){return a.charAt(0).toUpperCase()+a.substring(1).toLowerCase()},extend:function(a){var b=arguments.length,d,c;if(typeof(d=arguments[b-1])=="boolean")b--;else if(typeof(d=arguments[b-2])=="boolean"){c=arguments[b-1];b=b-2}for(var f=1;f<b;f++){var j=arguments[f],i;for(i in j)if(d===true||a[i]==void 0)if(!c||
i in c)a[i]=j[i]}return a},prototypedCopy:function(a){var b=function(){};b.prototype=a;return new b},copy:function(a){var b={},d;for(d in a)b[d]=a[d];return b},isArray:function(a){return!!a&&a instanceof Array},isEmpty:function(a){for(var b in a)if(a.hasOwnProperty(b))return false;return true},cssVendorPrefix:function(a,b,d){if(d)return c+a+":"+b+";"+a+":"+b;d={};d[a]=b;d[c+a]=b;return d},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b=typeof a.cssFloat!="undefined"?"cssFloat":
typeof a.styleFloat!="undefined"?"styleFloat":"float";return function(a){return a=="float"?b:a.replace(/-./g,function(a){return a.substr(1).toUpperCase()})}}(),buildStyleHtml:function(a){for(var a=[].concat(a),b,d=[],c=0;c<a.length;c++)if(b=a[c])/@import|[{}]/.test(b)?d.push("<style>"+b+"</style>"):d.push('<link type="text/css" rel=stylesheet href="'+b+'">');return d.join("")},htmlEncode:function(a){return(""+a).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;")},htmlEncodeAttr:function(a){return a.replace(/"/g,
"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},getNextNumber:function(){var a=0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(a,b){var d=b(a);d.prototype=a.prototype;return d},setTimeout:function(a,b,d,c,f){f||(f=window);d||(d=f);return f.setTimeout(function(){c?a.apply(d,[].concat(c)):a.apply(d)},b||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(b){return b.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;
return function(b){return b.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(b){return b.replace(a,"")}}(),indexOf:function(a,b){if(typeof b=="function")for(var d=0,c=a.length;d<c;d++){if(b(a[d]))return d}else{if(a.indexOf)return a.indexOf(b);d=0;for(c=a.length;d<c;d++)if(a[d]===b)return d}return-1},search:function(a,b){var d=CKEDITOR.tools.indexOf(a,b);return d>=0?a[d]:null},bind:function(a,b){return function(){return a.apply(b,arguments)}},createClass:function(a){var b=a.$,
d=a.base,c=a.privates||a._,f=a.proto,a=a.statics;!b&&(b=function(){d&&this.base.apply(this,arguments)});if(c)var j=b,b=function(){var a=this._||(this._={}),b;for(b in c){var e=c[b];a[b]=typeof e=="function"?CKEDITOR.tools.bind(e,this):e}j.apply(this,arguments)};if(d){b.prototype=this.prototypedCopy(d.prototype);b.prototype.constructor=b;b.base=d;b.baseProto=d.prototype;b.prototype.base=function(){this.base=d.prototype.base;d.apply(this,arguments);this.base=arguments.callee}}f&&this.extend(b.prototype,
f,true);a&&this.extend(b,a,true);return b},addFunction:function(a,e){return b.push(function(){return a.apply(e||this,arguments)})-1},removeFunction:function(a){b[a]=null},callFunction:function(a){var e=b[a];return e&&e.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,b;return function(d){b=CKEDITOR.tools.trim(d+"")+"px";return a.test(b)?b:d||""}}(),convertToPx:function(){var a;return function(b){if(!a){a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"></div>',
CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(b)){a.setStyle("width",b);return a.$.clientWidth}return b}}(),repeat:function(a,b){return Array(b+1).join(a)},tryThese:function(){for(var a,b=0,d=arguments.length;b<d;b++){var c=arguments[b];try{a=c();break}catch(f){}}return a},genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var b=arguments,d=this;window.setTimeout(function(){a.apply(d,b)},0)}},normalizeCssText:function(a,
b){var d=[],c,f=CKEDITOR.tools.parseCssText(a,true,b);for(c in f)d.push(c+":"+f[c]);d.sort();return d.length?d.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,f){a=[b,c,f];for(b=0;b<3;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);return"#"+a.join("")})},parseCssText:function(a,b,d){var c={};if(d){d=new CKEDITOR.dom.element("span");d.setAttribute("style",a);a=CKEDITOR.tools.convertRgbToHex(d.getAttribute("style")||
"")}if(!a||a==";")return c;a.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,d,i){if(b){d=d.toLowerCase();d=="font-family"&&(i=i.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,","));i=CKEDITOR.tools.trim(i)}c[d]=i});return c},writeCssText:function(a,b){var d,c=[];for(d in a)c.push(d+":"+a[d]);b&&c.sort();return c.join("; ")},objectCompare:function(a,b,d){var c;if(!a&&!b)return true;if(!a||!b)return false;for(c in a)if(a[c]!=b[c])return false;if(!d)for(c in b)if(a[c]!=
b[c])return false;return true},objectKeys:function(a){var b=[],d;for(d in a)b.push(d);return b},convertArrayToObject:function(a,b){var d={};arguments.length==1&&(b=true);for(var c=0,f=a.length;c<f;++c)d[a[c]]=b;return d},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(b){a=a?a.replace(/.+?(?:\.|$)/,""):document.domain;if(!a)break;document.domain=a}return!!a}}})();
CKEDITOR.dtd=function(){var b=CKEDITOR.tools.extend,c=function(a,b){for(var e=CKEDITOR.tools.clone(a),d=1;d<arguments.length;d++){var b=arguments[d],c;for(c in b)delete e[c]}return e},a={},e={},d={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},h={command:1,link:1,meta:1,noscript:1,script:1,style:1},f={},j={"#":1},i={center:1,dir:1,noframes:1};
b(a,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},j,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});b(e,d,a,i);c={a:c(a,{a:1,button:1}),abbr:a,address:e,
area:f,article:b({style:1},e),aside:b({style:1},e),audio:b({source:1,track:1},e),b:a,base:f,bdi:a,bdo:a,blockquote:e,body:e,br:f,button:c(a,{a:1,button:1}),canvas:a,caption:e,cite:a,code:a,col:f,colgroup:{col:1},command:f,datalist:b({option:1},a),dd:e,del:a,details:b({summary:1},e),dfn:a,div:b({style:1},e),dl:{dt:1,dd:1},dt:e,em:a,embed:f,fieldset:b({legend:1},e),figcaption:e,figure:b({figcaption:1},e),footer:e,form:e,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,head:b({title:1,base:1},h),header:e,hgroup:{h1:1,
h2:1,h3:1,h4:1,h5:1,h6:1},hr:f,html:b({head:1,body:1},e,h),i:a,iframe:j,img:f,input:f,ins:a,kbd:a,keygen:f,label:a,legend:a,li:e,link:f,map:e,mark:a,menu:b({li:1},e),meta:f,meter:c(a,{meter:1}),nav:e,noscript:b({link:1,meta:1,style:1},a),object:b({param:1},a),ol:{li:1},optgroup:{option:1},option:j,output:a,p:a,param:f,pre:a,progress:c(a,{progress:1}),q:a,rp:a,rt:a,ruby:b({rp:1,rt:1},a),s:a,samp:a,script:j,section:b({style:1},e),select:{optgroup:1,option:1},small:a,source:f,span:a,strong:a,style:j,
sub:a,summary:a,sup:a,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:e,textarea:j,tfoot:{tr:1},th:e,thead:{tr:1},time:c(a,{time:1}),title:j,tr:{th:1,td:1},track:f,u:a,ul:{li:1},"var":a,video:b({source:1,track:1},e),wbr:f,acronym:a,applet:b({param:1},e),basefont:f,big:a,center:e,dialog:f,dir:{li:1},font:a,isindex:f,noframes:e,strike:a,tt:a};b(c,{$block:b({audio:1,dd:1,dt:1,li:1,video:1},d,i),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
fieldset:1,figure:1,footer:1,form:1,header:1,hgroup:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1},$inline:a,$list:{dl:1,ol:1,
ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:b({body:1,head:1,html:1},c.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,
sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return c}();CKEDITOR.dom.event=function(b){this.$=b};
CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var b=this.getKey();if(this.$.ctrlKey||this.$.metaKey)b=b+CKEDITOR.CTRL;this.$.shiftKey&&(b=b+CKEDITOR.SHIFT);this.$.altKey&&(b=b+CKEDITOR.ALT);return b},preventDefault:function(b){var c=this.$;c.preventDefault?c.preventDefault():c.returnValue=false;b&&this.stopPropagation()},stopPropagation:function(){var b=this.$;b.stopPropagation?b.stopPropagation():b.cancelBubble=true},getTarget:function(){var b=
this.$.target||this.$.srcElement;return b?new CKEDITOR.dom.node(b):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var b=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(b.documentElement.scrollLeft||b.body.scrollLeft),y:this.$.pageY||this.$.clientY+(b.documentElement.scrollTop||b.body.scrollTop)}}};CKEDITOR.CTRL=1114112;CKEDITOR.SHIFT=2228224;CKEDITOR.ALT=4456448;CKEDITOR.EVENT_PHASE_CAPTURING=1;CKEDITOR.EVENT_PHASE_AT_TARGET=2;
CKEDITOR.EVENT_PHASE_BUBBLING=3;CKEDITOR.dom.domObject=function(b){if(b)this.$=b};
CKEDITOR.dom.domObject.prototype=function(){var b=function(b,a){return function(e){typeof CKEDITOR!="undefined"&&b.fire(a,new CKEDITOR.dom.event(e))}};return{getPrivate:function(){var b;if(!(b=this.getCustomData("_")))this.setCustomData("_",b={});return b},on:function(c){var a=this.getCustomData("_cke_nativeListeners");if(!a){a={};this.setCustomData("_cke_nativeListeners",a)}if(!a[c]){a=a[c]=b(this,c);this.$.addEventListener?this.$.addEventListener(c,a,!!CKEDITOR.event.useCapture):this.$.attachEvent&&
this.$.attachEvent("on"+c,a)}return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(b){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(b)){var a=this.getCustomData("_cke_nativeListeners"),e=a&&a[b];if(e){this.$.removeEventListener?this.$.removeEventListener(b,e,false):this.$.detachEvent&&this.$.detachEvent("on"+b,e);delete a[b]}}},removeAllListeners:function(){var b=this.getCustomData("_cke_nativeListeners"),a;for(a in b){var e=b[a];this.$.detachEvent?
this.$.detachEvent("on"+a,e):this.$.removeEventListener&&this.$.removeEventListener(a,e,false);delete b[a]}}}}();
(function(b){var c={};CKEDITOR.on("reset",function(){c={}});b.equals=function(a){try{return a&&a.$===this.$}catch(b){return false}};b.setCustomData=function(a,b){var d=this.getUniqueId();(c[d]||(c[d]={}))[a]=b;return this};b.getCustomData=function(a){var b=this.$["data-cke-expando"];return(b=b&&c[b])&&a in b?b[a]:null};b.removeCustomData=function(a){var b=this.$["data-cke-expando"],b=b&&c[b],d,h;if(b){d=b[a];h=a in b;delete b[a]}return h?d:null};b.clearCustomData=function(){this.removeAllListeners();
var a=this.$["data-cke-expando"];a&&delete c[a]};b.getUniqueId=function(){return this.$["data-cke-expando"]||(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(b)})(CKEDITOR.dom.domObject.prototype);
CKEDITOR.dom.node=function(b){return b?new CKEDITOR.dom[b.nodeType==CKEDITOR.NODE_DOCUMENT?"document":b.nodeType==CKEDITOR.NODE_ELEMENT?"element":b.nodeType==CKEDITOR.NODE_TEXT?"text":b.nodeType==CKEDITOR.NODE_COMMENT?"comment":b.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?"documentFragment":"domObject"](b):this};CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject;CKEDITOR.NODE_ELEMENT=1;CKEDITOR.NODE_DOCUMENT=9;CKEDITOR.NODE_TEXT=3;CKEDITOR.NODE_COMMENT=8;CKEDITOR.NODE_DOCUMENT_FRAGMENT=11;
CKEDITOR.POSITION_IDENTICAL=0;CKEDITOR.POSITION_DISCONNECTED=1;CKEDITOR.POSITION_FOLLOWING=2;CKEDITOR.POSITION_PRECEDING=4;CKEDITOR.POSITION_IS_CONTAINED=8;CKEDITOR.POSITION_CONTAINS=16;
CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(b,c){b.append(this,c);return b},clone:function(b,c){var a=this.$.cloneNode(b),e=function(a){a["data-cke-expando"]&&(a["data-cke-expando"]=false);if(a.nodeType==CKEDITOR.NODE_ELEMENT){c||a.removeAttribute("id",false);if(b)for(var a=a.childNodes,h=0;h<a.length;h++)e(a[h])}};e(a);return new CKEDITOR.dom.node(a)},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(b){b.$.parentNode.insertBefore(this.$,
b.$.nextSibling);return b},insertBefore:function(b){b.$.parentNode.insertBefore(this.$,b.$);return b},insertBeforeMe:function(b){this.$.parentNode.insertBefore(b.$,this.$);return b},getAddress:function(b){for(var c=[],a=this.getDocument().$.documentElement,e=this.$;e&&e!=a;){var d=e.parentNode;d&&c.unshift(this.getIndex.call({$:e},b));e=d}return c},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(b){var c=this.$,a=-1,
e;if(!this.$.parentNode)return a;do if(!b||!(c!=this.$&&c.nodeType==CKEDITOR.NODE_TEXT&&(e||!c.nodeValue))){a++;e=c.nodeType==CKEDITOR.NODE_TEXT}while(c=c.previousSibling);return a},getNextSourceNode:function(b,c,a){if(a&&!a.call)var e=a,a=function(a){return!a.equals(e)};var b=!b&&this.getFirst&&this.getFirst(),d;if(!b){if(this.type==CKEDITOR.NODE_ELEMENT&&a&&a(this,true)===false)return null;b=this.getNext()}for(;!b&&(d=(d||this).getParent());){if(a&&a(d,true)===false)return null;b=d.getNext()}return!b||
a&&a(b)===false?null:c&&c!=b.type?b.getNextSourceNode(false,c,a):b},getPreviousSourceNode:function(b,c,a){if(a&&!a.call)var e=a,a=function(a){return!a.equals(e)};var b=!b&&this.getLast&&this.getLast(),d;if(!b){if(this.type==CKEDITOR.NODE_ELEMENT&&a&&a(this,true)===false)return null;b=this.getPrevious()}for(;!b&&(d=(d||this).getParent());){if(a&&a(d,true)===false)return null;b=d.getPrevious()}return!b||a&&a(b)===false?null:c&&b.type!=c?b.getPreviousSourceNode(false,c,a):b},getPrevious:function(b){var c=
this.$,a;do a=(c=c.previousSibling)&&c.nodeType!=10&&new CKEDITOR.dom.node(c);while(a&&b&&!b(a));return a},getNext:function(b){var c=this.$,a;do a=(c=c.nextSibling)&&new CKEDITOR.dom.node(c);while(a&&b&&!b(a));return a},getParent:function(b){var c=this.$.parentNode;return c&&(c.nodeType==CKEDITOR.NODE_ELEMENT||b&&c.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(c):null},getParents:function(b){var c=this,a=[];do a[b?"push":"unshift"](c);while(c=c.getParent());return a},getCommonAncestor:function(b){if(b.equals(this))return this;
if(b.contains&&b.contains(this))return b;var c=this.contains?this:this.getParent();do if(c.contains(b))return c;while(c=c.getParent());return null},getPosition:function(b){var c=this.$,a=b.$;if(c.compareDocumentPosition)return c.compareDocumentPosition(a);if(c==a)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&b.type==CKEDITOR.NODE_ELEMENT){if(c.contains){if(c.contains(a))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(a.contains(c))return CKEDITOR.POSITION_IS_CONTAINED+
CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in c)return c.sourceIndex<0||a.sourceIndex<0?CKEDITOR.POSITION_DISCONNECTED:c.sourceIndex<a.sourceIndex?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING}for(var c=this.getAddress(),b=b.getAddress(),a=Math.min(c.length,b.length),e=0;e<=a-1;e++)if(c[e]!=b[e]){if(e<a)return c[e]<b[e]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;break}return c.length<b.length?CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+
CKEDITOR.POSITION_FOLLOWING},getAscendant:function(b,c){var a=this.$,e;if(!c)a=a.parentNode;for(;a;){if(a.nodeName&&(e=a.nodeName.toLowerCase(),typeof b=="string"?e==b:e in b))return new CKEDITOR.dom.node(a);try{a=a.parentNode}catch(d){a=null}}return null},hasAscendant:function(b,c){var a=this.$;if(!c)a=a.parentNode;for(;a;){if(a.nodeName&&a.nodeName.toLowerCase()==b)return true;a=a.parentNode}return false},move:function(b,c){b.append(this.remove(),c)},remove:function(b){var c=this.$,a=c.parentNode;
if(a){if(b)for(;b=c.firstChild;)a.insertBefore(c.removeChild(b),c);a.removeChild(c)}return this},replace:function(b){this.insertBefore(b);b.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var b;this.getFirst&&(b=this.getFirst());){if(b.type==CKEDITOR.NODE_TEXT){var c=CKEDITOR.tools.ltrim(b.getText()),a=b.getLength();if(c){if(c.length<a){b.split(a-c.length);this.$.removeChild(this.$.firstChild)}}else{b.remove();continue}}break}},rtrim:function(){for(var b;this.getLast&&(b=
this.getLast());){if(b.type==CKEDITOR.NODE_TEXT){var c=CKEDITOR.tools.rtrim(b.getText()),a=b.getLength();if(c){if(c.length<a){b.split(c.length);this.$.lastChild.parentNode.removeChild(this.$.lastChild)}}else{b.remove();continue}}break}if(!CKEDITOR.env.ie&&!CKEDITOR.env.opera)(b=this.$.lastChild)&&(b.type==1&&b.nodeName.toLowerCase()=="br")&&b.parentNode.removeChild(b)},isReadOnly:function(){var b=this;this.type!=CKEDITOR.NODE_ELEMENT&&(b=this.getParent());if(b&&typeof b.$.isContentEditable!="undefined")return!(b.$.isContentEditable||
b.data("cke-editable"));for(;b;){if(b.data("cke-editable"))break;if(b.getAttribute("contentEditable")=="false")return true;if(b.getAttribute("contentEditable")=="true")break;b=b.getParent()}return!b}});CKEDITOR.dom.window=function(b){CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject;
CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},getViewPaneSize:function(){var b=this.$.document,c=b.compatMode=="CSS1Compat";return{width:(c?b.documentElement.clientWidth:b.body.clientWidth)||0,height:(c?b.documentElement.clientHeight:b.body.clientHeight)||0}},getScrollPosition:function(){var b=this.$;if("pageXOffset"in b)return{x:b.pageXOffset||0,y:b.pageYOffset||0};b=b.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||
b.body.scrollTop||0}},getFrame:function(){var b=this.$.frameElement;return b?new CKEDITOR.dom.element.get(b):null}});CKEDITOR.dom.document=function(b){CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject;
CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(b){if(this.$.createStyleSheet)this.$.createStyleSheet(b);else{var c=new CKEDITOR.dom.element("link");c.setAttributes({rel:"stylesheet",type:"text/css",href:b});this.getHead().append(c)}},appendStyleText:function(b){if(this.$.createStyleSheet){var c=this.$.createStyleSheet("");c.cssText=b}else{var a=new CKEDITOR.dom.element("style",this);a.append(new CKEDITOR.dom.text(b,this));this.getHead().append(a)}return c||
a.$.sheet},createElement:function(b,c){var a=new CKEDITOR.dom.element(b,this);if(c){c.attributes&&a.setAttributes(c.attributes);c.styles&&a.setStyles(c.styles)}return a},createText:function(b){return new CKEDITOR.dom.text(b,this)},focus:function(){this.getWindow().focus()},getActive:function(){return new CKEDITOR.dom.element(this.$.activeElement)},getById:function(b){return(b=this.$.getElementById(b))?new CKEDITOR.dom.element(b):null},getByAddress:function(b,c){for(var a=this.$.documentElement,e=
0;a&&e<b.length;e++){var d=b[e];if(c)for(var h=-1,f=0;f<a.childNodes.length;f++){var j=a.childNodes[f];if(!(c===true&&j.nodeType==3&&j.previousSibling&&j.previousSibling.nodeType==3)){h++;if(h==d){a=j;break}}}else a=a.childNodes[d]}return a?new CKEDITOR.dom.node(a):null},getElementsByTag:function(b,c){if((!CKEDITOR.env.ie||document.documentMode>8)&&c)b=c+":"+b;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(b))},getHead:function(){var b=this.$.getElementsByTagName("head")[0];return b=
b?new CKEDITOR.dom.element(b):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(b){this.$.open("text/html","replace");CKEDITOR.env.ie&&(b=b.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$&\n<script data-cke-temp="1">('+CKEDITOR.tools.fixDomain+
")();<\/script>"));this.$.write(b);this.$.close()}});CKEDITOR.dom.nodeList=function(b){this.$=b};CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(b){if(b<0||b>=this.$.length)return null;return(b=this.$[b])?new CKEDITOR.dom.node(b):null}};CKEDITOR.dom.element=function(b,c){typeof b=="string"&&(b=(c?c.$:document).createElement(b));CKEDITOR.dom.domObject.call(this,b)};
CKEDITOR.dom.element.get=function(b){return(b=typeof b=="string"?document.getElementById(b)||document.getElementsByName(b)[0]:b)&&(b.$?b:new CKEDITOR.dom.element(b))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(b,c){var a=new CKEDITOR.dom.element("div",c);a.setHtml(b);return a.getFirst().remove()};
CKEDITOR.dom.element.setMarker=function(b,c,a,e){var d=c.getCustomData("list_marker_id")||c.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),h=c.getCustomData("list_marker_names")||c.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");b[d]=c;h[a]=1;return c.setCustomData(a,e)};CKEDITOR.dom.element.clearAllMarkers=function(b){for(var c in b)CKEDITOR.dom.element.clearMarkers(b,b[c],1)};
CKEDITOR.dom.element.clearMarkers=function(b,c,a){var e=c.getCustomData("list_marker_names"),d=c.getCustomData("list_marker_id"),h;for(h in e)c.removeCustomData(h);c.removeCustomData("list_marker_names");if(a){c.removeCustomData("list_marker_id");delete b[d]}};
(function(){function b(a){for(var b=0,d=0,h=c[a].length;d<h;d++)b=b+(parseInt(this.getComputedStyle(c[a][d])||0,10)||0);return b}CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:function(a){var b=this.$.className;b&&(RegExp("(?:^|\\s)"+a+"(?:\\s|$)","").test(b)||(b=b+(" "+a)));this.$.className=b||a},removeClass:function(a){var b=this.getAttribute("class");if(b){a=RegExp("(?:^|\\s+)"+a+"(?=\\s|$)","i");if(a.test(b))(b=b.replace(a,"").replace(/^\s+/,""))?this.setAttribute("class",
b):this.removeAttribute("class")}return this},hasClass:function(a){return RegExp("(?:^|\\s+)"+a+"(?=\\s|$)","").test(this.getAttribute("class"))},append:function(a,b){typeof a=="string"&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){this.$.text!=
void 0?this.$.text=this.$.text+a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(){for(var a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();if(!a||!a.is||!a.is("br")){a=CKEDITOR.env.opera?this.getDocument().createText(""):this.getDocument().createElement("br");CKEDITOR.env.gecko&&a.setAttribute("type","_moz");this.append(a)}},breakParent:function(a){var b=new CKEDITOR.dom.range(this.getDocument());b.setStartAfter(this);b.setEndAfter(a);
a=b.extractContents();b.insertNode(this.remove());a.insertAfterNode(this)},contains:CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):b!=a.$&&b.contains(a.$)}:function(a){return!!(this.$.compareDocumentPosition(a.$)&16)},focus:function(){function a(){try{this.$.focus()}catch(a){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,
""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(true));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:function(){var a=function(a){return this.$.innerHTML=a};return CKEDITOR.env.ie&&CKEDITOR.env.version<9?function(a){try{return this.$.innerHTML=
a}catch(b){this.$.innerHTML="";var c=new CKEDITOR.dom.element("body",this.getDocument());c.$.innerHTML=a;for(c=c.getChildren();c.count();)this.append(c.getItem(0));return a}}:a}(),setText:function(a){CKEDITOR.dom.element.prototype.setText=this.$.innerText!=void 0?function(a){return this.$.innerText=a}:function(a){return this.$.textContent=a};return this.setText(a)},getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?
function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":a=this.$.getAttribute(a,2);a!==0&&this.$.tabIndex===0&&(a=null);return a;case "checked":a=this.$.attributes.getNamedItem(a);return(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?
this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:CKEDITOR.env.ie?function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]}:function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,
getTabIndex:CKEDITOR.env.ie?function(){var a=this.$.tabIndex;a===0&&(!CKEDITOR.dtd.$tabIndex[this.getName()]&&parseInt(this.getAttribute("tabindex"),10)!==0)&&(a=-1);return a}:CKEDITOR.env.webkit?function(){var a=this.$.tabIndex;if(a==void 0){a=parseInt(this.getAttribute("tabindex"),10);isNaN(a)&&(a=-1)}return a}:function(){return this.$.tabIndex},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||
null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&!(document.documentMode>8)){var b=this.$.scopeName;b!="HTML"&&(a=b.toLowerCase()+":"+a)}return(this.getName=function(){return a})()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&(a&&!a(b))&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&(a&&!a(b))&&
(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if(typeof arguments[0]=="object")return!!arguments[0][a];for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return true;return false},isEditable:function(a){var b=this.getName();if(this.isReadOnly()||this.getComputedStyle("display")=="none"||this.getComputedStyle("visibility")=="hidden"||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&
(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount())return false;if(a!==false){a=CKEDITOR.dtd[b]||CKEDITOR.dtd.span;return!(!a||!a["#"])}return true},isIdentical:function(a){var b=this.clone(0,1),a=a.clone(0,1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode){b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText);
a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText);return b.$.isEqualNode(a.$)}b=b.getOuterHtml();a=a.getOuterHtml();if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&this.is("a")){var d=this.getParent();if(d.type==CKEDITOR.NODE_ELEMENT){d=d.clone();d.setHtml(b);b=d.getHtml();d.setHtml(a);a=d.getHtml()}}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&this.getComputedStyle("visibility")!="hidden",b,d;if(a&&(CKEDITOR.env.webkit||CKEDITOR.env.opera)){b=
this.getWindow();if(!b.equals(CKEDITOR.document.getWindow())&&(d=b.$.frameElement))a=(new CKEDITOR.dom.element(d)).isVisible()}return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return false;for(var a=this.getChildren(),b=0,d=a.count();b<d;b++){var c=a.getItem(b);if(!(c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-bookmark"))&&(c.type==CKEDITOR.NODE_ELEMENT&&!c.isEmptyInlineRemoveable()||c.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(c.getText())))return false}return true},
hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var d=a[b];switch(d.nodeName){case "class":if(this.getAttribute("class"))return true;case "data-cke-expando":continue;default:if(d.specified)return true}}return false}:function(){var a=this.$.attributes,b=a.length,d={"data-cke-expando":1,_moz_dirty:1};return b>0&&(b>2||!d[a[0].nodeName]||b==2&&!d[a[1].nodeName])},hasAttribute:function(){function a(a){a=this.$.attributes.getNamedItem(a);
return!(!a||!a.specified)}return CKEDITOR.env.ie&&CKEDITOR.env.version<8?function(b){return b=="name"?!!this.$.name:a.call(this,b)}:a}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var d=this.$,a=a.$;if(d!=a){var c;if(b)for(;c=d.lastChild;)a.insertBefore(d.removeChild(c),a.firstChild);else for(;c=d.firstChild;)a.appendChild(d.removeChild(c))}},mergeSiblings:function(){function a(a,b,c){if(b&&b.type==CKEDITOR.NODE_ELEMENT){for(var f=[];b.data("cke-bookmark")||b.isEmptyInlineRemoveable();){f.push(b);
b=c?b.getNext():b.getPrevious();if(!b||b.type!=CKEDITOR.NODE_ELEMENT)return}if(a.isIdentical(b)){for(var j=c?a.getLast():a.getFirst();f.length;)f.shift().move(a,!c);b.moveChildren(a,!c);b.remove();j&&j.type==CKEDITOR.NODE_ELEMENT&&j.mergeSiblings()}}}return function(b){if(b===false||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a")){a(this,this.getNext(),true);a(this,this.getPrevious())}}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,
b){this.$.setAttribute(a,b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(b,c){b=="class"?this.$.className=c:b=="style"?this.$.style.cssText=c:b=="tabindex"?this.$.tabIndex=c:b=="checked"?this.$.checked=c:b=="contenteditable"?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if(b=="src"&&c.match(/^http:\/\//))try{a.apply(this,arguments)}catch(h){}else a.apply(this,arguments);
return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(a){a=="class"?a="className":a=="tabindex"?a="tabIndex":a=="contenteditable"&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;b<
a.length;b++)this.removeAttribute(a[b]);else for(b in a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=this.$.style;if(!b.removeProperty&&(a=="border"||a=="margin"||a=="padding")){var c=["top","left","right","bottom"],h;a=="border"&&(h=["color","style","width"]);for(var b=[],f=0;f<c.length;f++)if(h)for(var j=0;j<h.length;j++)b.push([a,c[f],h[j]].join("-"));else b.push([a,c[f]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}else{b.removeProperty?b.removeProperty(a):
b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a));this.$.style.cssText||this.removeAttribute("style")}},setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){if(CKEDITOR.env.ie&&CKEDITOR.env.version<9){a=Math.round(a*100);this.setStyle("filter",a>=100?"":"progid:DXImageTransform.Microsoft.Alpha(opacity="+a+")")}else this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
"none"));if(CKEDITOR.env.ie||CKEDITOR.env.opera){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),c=0,h=b.count();c<h;c++){a=b.getItem(c);a.setAttribute("unselectable","on")}}},getPositionedAncestor:function(){for(var a=this;a.getName()!="html";){if(a.getComputedStyle("position")!="static")return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,h=this.getDocument(),f=h.getBody(),j=h.$.compatMode=="BackCompat";if(document.documentElement.getBoundingClientRect){var i=
this.$.getBoundingClientRect(),l=h.$.documentElement,n=l.clientTop||f.$.clientTop||0,o=l.clientLeft||f.$.clientLeft||0,q=true;if(CKEDITOR.env.ie){q=h.getDocumentElement().contains(this);h=h.getBody().contains(this);q=j&&h||!j&&q}if(q){b=i.left+(!j&&l.scrollLeft||f.$.scrollLeft);b=b-o;c=i.top+(!j&&l.scrollTop||f.$.scrollTop);c=c-n}}else{f=this;for(h=null;f&&!(f.getName()=="body"||f.getName()=="html");){b=b+(f.$.offsetLeft-f.$.scrollLeft);c=c+(f.$.offsetTop-f.$.scrollTop);if(!f.equals(this)){b=b+(f.$.clientLeft||
0);c=c+(f.$.clientTop||0)}for(;h&&!h.equals(f);){b=b-h.$.scrollLeft;c=c-h.$.scrollTop;h=h.getParent()}h=f;f=(i=f.$.offsetParent)?new CKEDITOR.dom.element(i):null}}if(a){f=this.getWindow();h=a.getWindow();if(!f.equals(h)&&f.$.frameElement){a=(new CKEDITOR.dom.element(f.$.frameElement)).getDocumentPosition(a);b=b+a.x;c=c+a.y}}if(!document.documentElement.getBoundingClientRect&&CKEDITOR.env.gecko&&!j){b=b+(this.$.clientLeft?1:0);c=c+(this.$.clientTop?1:0)}return{x:b,y:c}},scrollIntoView:function(a){var b=
this.getParent();if(b){do{(b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1);if(b.is("html")){var c=b.getWindow();try{var h=c.$.frameElement;h&&(b=new CKEDITOR.dom.element(h))}catch(f){}}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var h,f,j,i;function l(b,g){if(/body|html/.test(a.getName()))a.getWindow().$.scrollBy(b,g);else{a.$.scrollLeft=a.$.scrollLeft+b;a.$.scrollTop=a.$.scrollTop+g}}
function n(a,b){var g={x:0,y:0};if(!a.is(q?"body":"html")){var c=a.$.getBoundingClientRect();g.x=c.left;g.y=c.top}c=a.getWindow();if(!c.equals(b)){c=n(CKEDITOR.dom.element.get(c.$.frameElement),b);g.x=g.x+c.x;g.y=g.y+c.y}return g}function o(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());j=a.getDocument();var q=j.$.compatMode=="BackCompat";a instanceof CKEDITOR.dom.window&&(a=q?j.getBody():j.getDocumentElement());j=a.getWindow();f=n(this,j);var k=n(a,j),g=this.$.offsetHeight;
h=this.$.offsetWidth;var p=a.$.clientHeight,v=a.$.clientWidth;j=f.x-o(this,"left")-k.x||0;i=f.y-o(this,"top")-k.y||0;h=f.x+h+o(this,"right")-(k.x+v)||0;f=f.y+g+o(this,"bottom")-(k.y+p)||0;if(i<0||f>0)l(0,b===true?i:b===false?f:i<0?i:f);if(c&&(j<0||h>0))l(j<0?j:h,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",true);c&&this.removeAttribute("aria-disabled");
break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",true);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off");this.removeClass(b+"_on");this.removeClass(b+"_disabled");c&&this.removeAttribute("aria-pressed");c&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},
copyAttributes:function(a,b){for(var c=this.$.attributes,b=b||{},h=0;h<c.length;h++){var f=c[h],j=f.nodeName.toLowerCase(),i;if(!(j in b))if(j=="checked"&&(i=this.getAttribute(j)))a.setAttribute(j,i);else if(f.specified||CKEDITOR.env.ie&&f.nodeValue&&j=="value"){i=this.getAttribute(j);if(i===null)i=f.nodeValue;a.setAttribute(j,i)}}if(this.$.style.cssText!=="")a.$.style.cssText=this.$.style.cssText},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument(),a=new CKEDITOR.dom.element(a,
b);this.copyAttributes(a);this.moveChildren(a);this.getParent()&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$}},getChild:function(){function a(a,b){var c=a.childNodes;if(b>=0&&b<c.length)return c[b]}return function(b){var c=this.$;if(b.slice)for(;b.length>0&&c;)c=a(c,b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){this.on("contextmenu",
function(a){a.data.getTarget().hasClass("cke_enable_context_menu")||a.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(b===void 0)return this.getAttribute(a);b===false?this.removeAttribute(a):this.setAttribute(a,b);return null},getEditor:function(){var a=CKEDITOR.instances,
b,c;for(b in a){c=a[b];if(c.element.equals(this)&&c.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return c}return null}});var c={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,c,d){if(typeof c=="number"){if(d&&(!CKEDITOR.env.ie||!CKEDITOR.env.quirks))c=c-b.call(this,a);this.setStyle(a,c+"px")}};CKEDITOR.dom.element.prototype.getSize=function(a,
c){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;c&&(d=d-b.call(this,a));return d}})();CKEDITOR.dom.documentFragment=function(b){b=b||CKEDITOR.document;this.$=b.type==CKEDITOR.NODE_DOCUMENT?b.$.createDocumentFragment():b};
CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(b){b=b.$;b.parentNode.insertBefore(this.$,b.nextSibling)}},!0,{append:1,appendBogus:1,getFirst:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});
(function(){function b(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed){this.end();return null}c.optimize()}var d,n=c.startContainer;d=c.endContainer;var o=c.startOffset,e=c.endOffset,k,g=this.guard,p=this.type,h=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var u=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),m=d.type==CKEDITOR.NODE_ELEMENT?d.getChild(e):d.getNext();this._.guardLTR=function(a,b){return(!b||!u.equals(a))&&(!m||
!a.equals(m))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var E=n.type==CKEDITOR.NODE_ELEMENT?n:n.getParent(),A=n.type==CKEDITOR.NODE_ELEMENT?o?n.getChild(o-1):null:n.getPrevious();this._.guardRTL=function(a,b){return(!b||!E.equals(a))&&(!A||!a.equals(A))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var r=a?this._.guardRTL:this._.guardLTR;k=g?function(a,b){return r(a,b)===false?false:g(a,b)}:r;if(this.current)d=this.current[h](false,p,k);else{if(a)d.type==
CKEDITOR.NODE_ELEMENT&&(d=e>0?d.getChild(e-1):k(d,true)===false?null:d.getPreviousSourceNode(true,p,k));else{d=n;if(d.type==CKEDITOR.NODE_ELEMENT&&!(d=d.getChild(o)))d=k(n,true)===false?null:n.getNextSourceNode(true,p,k)}d&&k(d)===false&&(d=null)}for(;d&&!this._.end;){this.current=d;if(!this.evaluator||this.evaluator(d)!==false){if(!b)return d}else if(b&&this.evaluator)return false;d=d[h](false,p,k)}this.end();return this.current=null}function c(a){for(var c,d=null;c=b.call(this,a);)d=c;return d}
CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=a;this._={}},proto:{end:function(){this._.end=1},next:function(){return b.call(this)},previous:function(){return b.call(this,1)},checkForward:function(){return b.call(this,0,1)!==false},checkBackward:function(){return b.call(this,1,1)!==false},lastForward:function(){return c.call(this)},lastBackward:function(){return c.call(this,1)},reset:function(){delete this.current;this._={}}}});var a={block:1,"list-item":1,table:1,"table-row-group":1,
"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(b){b=b?CKEDITOR.tools.extend({},CKEDITOR.dtd.$block,b||{}):CKEDITOR.dtd.$block;return this.getComputedStyle("float")=="none"&&a[this.getComputedStyle("display")]||b[this.getName()]};CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=
function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&a.getName()=="span"&&a.data("cke-bookmark")}return function(d){var n,o;n=d&&d.type!=CKEDITOR.NODE_ELEMENT&&(o=d.getParent())&&c(o);n=a?n:n||c(d);return!!(b^n)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()=="");return!!(a^c)}};CKEDITOR.dom.walker.invisible=
function(a){var b=CKEDITOR.dom.walker.whitespaces();return function(c){if(b(c))c=1;else{c.type==CKEDITOR.NODE_TEXT&&(c=c.getParent());c=!c.$.offsetHeight}return!!(a^c)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!d(a)&&!h(a)}return function(c){var d=!CKEDITOR.env.ie?c.is&&c.is("br"):c.getText&&e.test(c.getText());if(d){d=c.getParent();c=c.getNext(b);d=d.isBlockBoundary()&&(!c||c.type==CKEDITOR.NODE_ELEMENT&&
c.isBlockBoundary())}return!!(a^d)}};var e=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,d=CKEDITOR.dom.walker.whitespaces(),h=CKEDITOR.dom.walker.bookmark();CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(h(a)||d(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty));return a&&(!CKEDITOR.env.ie?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:false}})();
CKEDITOR.dom.range=function(b){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=true;var c=b instanceof CKEDITOR.dom.document;this.document=c?b:b.getDocument();this.root=c?b.getBody():b};
(function(){function b(){var a=false,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(true),k=CKEDITOR.dom.walker.bogus();return function(g){if(c(g)||b(g))return true;if(k(g)&&!a)return a=true;return g.type==CKEDITOR.NODE_TEXT&&(g.hasAscendant("pre")||CKEDITOR.tools.trim(g.getText()).length)||g.type==CKEDITOR.NODE_ELEMENT&&!g.is(h)?false:true}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(k){return c(k)||b(k)?true:!a&&f(k)||
k.type==CKEDITOR.NODE_ELEMENT&&k.is(CKEDITOR.dtd.$removeEmpty)}}function a(a){return!j(a)&&!i(a)}var e=function(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset},d=function(a,b,c,k){a.optimizeBookmark();var g=a.startContainer,d=a.endContainer,e=a.startOffset,h=a.endOffset,f,i;if(d.type==CKEDITOR.NODE_TEXT)d=d.split(h);else if(d.getChildCount()>0)if(h>=d.getChildCount()){d=d.append(a.document.createText(""));i=true}else d=d.getChild(h);
if(g.type==CKEDITOR.NODE_TEXT){g.split(e);g.equals(d)&&(d=g.getNext())}else if(e)if(e>=g.getChildCount()){g=g.append(a.document.createText(""));f=true}else g=g.getChild(e).getPrevious();else{g=g.append(a.document.createText(""),1);f=true}var e=g.getParents(),h=d.getParents(),j,r,x;for(j=0;j<e.length;j++){r=e[j];x=h[j];if(!r.equals(x))break}for(var l=c,s,C,y,t=j;t<e.length;t++){s=e[t];l&&!s.equals(g)&&(C=l.append(s.clone()));for(s=s.getNext();s;){if(s.equals(h[t])||s.equals(d))break;y=s.getNext();
if(b==2)l.append(s.clone(true));else{s.remove();b==1&&l.append(s)}s=y}l&&(l=C)}l=c;for(c=j;c<h.length;c++){s=h[c];b>0&&!s.equals(d)&&(C=l.append(s.clone()));if(!e[c]||s.$.parentNode!=e[c].$.parentNode)for(s=s.getPrevious();s;){if(s.equals(e[c])||s.equals(g))break;y=s.getPrevious();if(b==2)l.$.insertBefore(s.$.cloneNode(true),l.$.firstChild);else{s.remove();b==1&&l.$.insertBefore(s.$,l.$.firstChild)}s=y}l&&(l=C)}if(b==2){r=a.startContainer;if(r.type==CKEDITOR.NODE_TEXT){r.$.data=r.$.data+r.$.nextSibling.data;
r.$.parentNode.removeChild(r.$.nextSibling)}a=a.endContainer;if(a.type==CKEDITOR.NODE_TEXT&&a.$.nextSibling){a.$.data=a.$.data+a.$.nextSibling.data;a.$.parentNode.removeChild(a.$.nextSibling)}}else{if(r&&x&&(g.$.parentNode!=r.$.parentNode||d.$.parentNode!=x.$.parentNode)){b=x.getIndex();f&&x.$.parentNode==g.$.parentNode&&b--;if(k&&r.type==CKEDITOR.NODE_ELEMENT){k=CKEDITOR.dom.element.createFromHtml('<span data-cke-bookmark="1" style="display:none">&nbsp;</span>',a.document);k.insertAfter(r);r.mergeSiblings(false);
a.moveToBookmark({startNode:k})}else a.setStart(x.getParent(),b)}a.collapse(true)}f&&g.remove();i&&d.$.parentNode&&d.remove()},h={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},f=CKEDITOR.dom.walker.bogus(),j=new CKEDITOR.dom.walker.whitespaces,i=new CKEDITOR.dom.walker.bookmark,l=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/;CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);
a.startContainer=this.startContainer;a.startOffset=this.startOffset;a.endContainer=this.endContainer;a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){if(a){this.endContainer=this.startContainer;this.endOffset=this.startOffset}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset}this.collapsed=true},cloneContents:function(){var a=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,2,a);return a},deleteContents:function(a){this.collapsed||
d(this,0,null,a)},extractContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,1,b,a);return b},createBookmark:function(a){var b,c,d,g,p=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("&nbsp;");if(a){d="cke_bm_"+CKEDITOR.tools.getNextNumber();b.setAttribute("id",d+(p?"C":"S"))}if(!p){c=b.clone();c.setHtml("&nbsp;");a&&c.setAttribute("id",d+"E");g=this.clone();g.collapse();g.insertNode(c)}g=
this.clone();g.collapse(true);g.insertNode(b);if(c){this.setStartAfter(b);this.setEndBefore(c)}else this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?d+(p?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:p}},createBookmark2:function(a){var b=this.startContainer,c=this.endContainer,d=this.startOffset,g=this.endOffset,p=this.collapsed,e,h;if(!b||!c)return{start:0,end:0};if(a){if(b.type==CKEDITOR.NODE_ELEMENT){if((e=b.getChild(d))&&e.type==CKEDITOR.NODE_TEXT&&d>0&&e.getPrevious().type==
CKEDITOR.NODE_TEXT){b=e;d=0}e&&e.type==CKEDITOR.NODE_ELEMENT&&(d=e.getIndex(1))}for(;b.type==CKEDITOR.NODE_TEXT&&(h=b.getPrevious())&&h.type==CKEDITOR.NODE_TEXT;){b=h;d=d+h.getLength()}if(!p){if(c.type==CKEDITOR.NODE_ELEMENT){if((e=c.getChild(g))&&e.type==CKEDITOR.NODE_TEXT&&g>0&&e.getPrevious().type==CKEDITOR.NODE_TEXT){c=e;g=0}e&&e.type==CKEDITOR.NODE_ELEMENT&&(g=e.getIndex(1))}for(;c.type==CKEDITOR.NODE_TEXT&&(h=c.getPrevious())&&h.type==CKEDITOR.NODE_TEXT;){c=h;g=g+h.getLength()}}}return{start:b.getAddress(a),
end:p?null:c.getAddress(a),startOffset:d,endOffset:g,normalized:a,collapsed:p,is2:true}},moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized),a=a.endOffset;this.setStart(b,c);d?this.setEnd(d,a):this.collapse(true)}else{b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode;a=c?this.document.getById(a.endNode):a.endNode;this.setStartBefore(b);b.remove();if(a){this.setEndBefore(a);
a.remove()}else this.collapse(true)}},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,d=this.endOffset,g;if(a.type==CKEDITOR.NODE_ELEMENT){g=a.getChildCount();if(g>c)a=a.getChild(c);else if(g<1)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}}if(b.type==CKEDITOR.NODE_ELEMENT){g=b.getChildCount();if(g>d)b=b.getChild(d).getPreviousSourceNode(true);else if(g<1)b=b.getPreviousSourceNode();
else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=
a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&(a.is("span")&&a.data("cke-bookmark"))&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&(b.is&&b.is("span")&&b.data("cke-bookmark"))&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var c=this.startContainer,
d=this.startOffset,g=this.collapsed;if((!a||g)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength()){d=c.getIndex()+1;c=c.getParent()}else{var e=c.split(d),d=c.getIndex()+1,c=c.getParent();if(this.startContainer.equals(this.endContainer))this.setEnd(e,this.endOffset-this.startOffset);else if(c.equals(this.endContainer))this.endOffset=this.endOffset+1}else{d=c.getIndex();c=c.getParent()}this.setStart(c,d);if(g){this.collapse(true);return}}c=this.endContainer;d=this.endOffset;if(!b&&!g&&c&&c.type==
CKEDITOR.NODE_TEXT){if(d){d>=c.getLength()||c.split(d);d=c.getIndex()+1}else d=c.getIndex();c=c.getParent();this.setEnd(c,d)}},enlarge:function(a,b){switch(a){case CKEDITOR.ENLARGE_INLINE:var c=1;case CKEDITOR.ENLARGE_ELEMENT:if(this.collapsed)break;var d=this.getCommonAncestor(),g=this.root,e,h,f,m,i,j=false,r,x;r=this.startContainer;x=this.startOffset;if(r.type==CKEDITOR.NODE_TEXT){if(x){r=!CKEDITOR.tools.trim(r.substring(0,x)).length&&r;j=!!r}if(r&&!(m=r.getPrevious()))f=r.getParent()}else{x&&
(m=r.getChild(x-1)||r.getLast());m||(f=r)}for(;f||m;){if(f&&!m){!i&&f.equals(d)&&(i=true);if(c?f.isBlockBoundary():!g.contains(f))break;if(!j||f.getComputedStyle("display")!="inline"){j=false;i?e=f:this.setStartBefore(f)}m=f.getPrevious()}for(;m;){r=false;if(m.type==CKEDITOR.NODE_COMMENT)m=m.getPrevious();else{if(m.type==CKEDITOR.NODE_TEXT){x=m.getText();/[^\s\ufeff]/.test(x)&&(m=null);r=/[\s\ufeff]$/.test(x)}else if((m.$.offsetWidth>0||b&&m.is("br"))&&!m.data("cke-bookmark"))if(j&&CKEDITOR.dtd.$removeEmpty[m.getName()]){x=
m.getText();if(/[^\s\ufeff]/.test(x))m=null;else for(var l=m.$.getElementsByTagName("*"),s=0,C;C=l[s++];)if(!CKEDITOR.dtd.$removeEmpty[C.nodeName.toLowerCase()]){m=null;break}m&&(r=!!x.length)}else m=null;r&&(j?i?e=f:f&&this.setStartBefore(f):j=true);if(m){r=m.getPrevious();if(!f&&!r){f=m;m=null;break}m=r}else f=null}}f&&(f=f.getParent())}r=this.endContainer;x=this.endOffset;f=m=null;i=j=false;if(r.type==CKEDITOR.NODE_TEXT){r=!CKEDITOR.tools.trim(r.substring(x)).length&&r;j=!(r&&r.getLength());if(r&&
!(m=r.getNext()))f=r.getParent()}else(m=r.getChild(x))||(f=r);for(;f||m;){if(f&&!m){!i&&f.equals(d)&&(i=true);if(c?f.isBlockBoundary():!g.contains(f))break;if(!j||f.getComputedStyle("display")!="inline"){j=false;i?h=f:f&&this.setEndAfter(f)}m=f.getNext()}for(;m;){r=false;if(m.type==CKEDITOR.NODE_TEXT){x=m.getText();/[^\s\ufeff]/.test(x)&&(m=null);r=/^[\s\ufeff]/.test(x)}else if(m.type==CKEDITOR.NODE_ELEMENT){if((m.$.offsetWidth>0||b&&m.is("br"))&&!m.data("cke-bookmark"))if(j&&CKEDITOR.dtd.$removeEmpty[m.getName()]){x=
m.getText();if(/[^\s\ufeff]/.test(x))m=null;else{l=m.$.getElementsByTagName("*");for(s=0;C=l[s++];)if(!CKEDITOR.dtd.$removeEmpty[C.nodeName.toLowerCase()]){m=null;break}}m&&(r=!!x.length)}else m=null}else r=1;r&&j&&(i?h=f:this.setEndAfter(f));if(m){r=m.getNext();if(!f&&!r){f=m;m=null;break}m=r}else f=null}f&&(f=f.getParent())}if(e&&h){d=e.contains(h)?h:e;this.setStartBefore(d);this.setEndAfter(d)}break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:f=new CKEDITOR.dom.range(this.root);
g=this.root;f.setStartAt(g,CKEDITOR.POSITION_AFTER_START);f.setEnd(this.startContainer,this.startOffset);f=new CKEDITOR.dom.walker(f);var y,t,w=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),I=function(a){var b=w(a);b||(y=a);return b},c=function(a){var b=I(a);!b&&(a.is&&a.is("br"))&&(t=a);return b};f.guard=I;f=f.lastBackward();y=y||g;this.setStartAt(y,!y.is("br")&&(!f&&this.checkStartOfBlock()||f&&y.contains(f))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);
if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){f=this.clone();f=new CKEDITOR.dom.walker(f);var G=CKEDITOR.dom.walker.whitespaces(),D=CKEDITOR.dom.walker.bookmark();f.evaluator=function(a){return!G(a)&&!D(a)};if((f=f.previous())&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("br"))break}f=this.clone();f.collapse();f.setEndAt(g,CKEDITOR.POSITION_BEFORE_END);f=new CKEDITOR.dom.walker(f);f.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?c:I;y=null;f=f.lastForward();y=y||g;this.setEndAt(y,!f&&this.checkEndOfBlock()||f&&
y.contains(f)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);t&&this.setEndAfter(t)}},shrink:function(a,b,c){if(!this.collapsed){var a=a||CKEDITOR.SHRINK_TEXT,d=this.clone(),g=this.startContainer,f=this.endContainer,e=this.startOffset,h=this.endOffset,m=1,i=1;if(g&&g.type==CKEDITOR.NODE_TEXT)if(e)if(e>=g.getLength())d.setStartAfter(g);else{d.setStartBefore(g);m=0}else d.setStartBefore(g);if(f&&f.type==CKEDITOR.NODE_TEXT)if(h)if(h>=f.getLength())d.setEndAfter(f);else{d.setEndAfter(f);
i=0}else d.setEndBefore(f);var d=new CKEDITOR.dom.walker(d),j=CKEDITOR.dom.walker.bookmark();d.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var r;d.guard=function(b,g){if(j(b))return true;if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||g&&b.equals(r)||c===false&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary())return false;!g&&b.type==CKEDITOR.NODE_ELEMENT&&(r=b);return true};if(m)(g=d[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":
"next"]())&&this.setStartAt(g,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);if(i){d.reset();(d=d[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(d,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END)}return!(!m&&!i)}},insertNode:function(a){this.optimizeBookmark();this.trim(false,true);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},
moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(true)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]){b=a.getIndex();a=a.getParent()}this.startContainer=a;this.startOffset=b;if(!this.endContainer){this.endContainer=
a;this.endOffset=b}e(this)},setEnd:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]){b=a.getIndex()+1;a=a.getParent()}this.endContainer=a;this.endOffset=b;if(!this.startContainer){this.startContainer=a;this.startOffset=b}e(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),
a.getIndex())},setStartAt:function(a,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setStart(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==CKEDITOR.NODE_TEXT?this.setStart(a,a.getLength()):this.setStart(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(a)}e(this)},setEndAt:function(a,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setEnd(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==
CKEDITOR.NODE_TEXT?this.setEnd(a,a.getLength()):this.setEnd(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(a)}e(this)},fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(d);d.trim();CKEDITOR.env.ie||d.appendBogus();this.insertNode(d);this.moveToBookmark(c);return d},splitBlock:function(a){var b=
new CKEDITOR.dom.elementPath(this.startContainer,this.root),c=new CKEDITOR.dom.elementPath(this.endContainer,this.root),d=b.block,g=c.block,f=null;if(!b.blockLimit.equals(c.blockLimit))return null;if(a!="br"){if(!d){d=this.fixBlock(true,a);g=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block}g||(g=this.fixBlock(false,a))}a=d&&this.checkStartOfBlock();b=g&&this.checkEndOfBlock();this.deleteContents();if(d&&d.equals(g))if(b){f=new CKEDITOR.dom.elementPath(this.startContainer,this.root);
this.moveToPosition(g,CKEDITOR.POSITION_AFTER_END);g=null}else if(a){f=new CKEDITOR.dom.elementPath(this.startContainer,this.root);this.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d=null}else{g=this.splitElement(d);!CKEDITOR.env.ie&&!d.is("ul","ol")&&d.appendBogus()}return{previousBlock:d,nextBlock:g,wasStartOfBlock:a,wasEndOfBlock:b,elementPath:f}},splitElement:function(a){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var b=this.extractContents(),c=a.clone(false);
b.appendTo(c);c.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return c},removeEmptyBlocksAtEnd:function(){function a(d){return function(a){return b(a)||(c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable())||d.is("table")&&a.is("caption")?false:true}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(false);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),f=d.block||d.blockLimit,e;f&&!f.equals(d.root)&&!f.getFirst(a(f));){e=
f.getParent();this[b?"setEndAt":"setStartAt"](f,CKEDITOR.POSITION_AFTER_END);f.remove(1);f=e}this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,f=this.clone();f.collapse(d);f[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);f=new CKEDITOR.dom.walker(f);
f.evaluator=c(d);return f[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;if(CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT){a=CKEDITOR.tools.ltrim(a.substring(0,c));l.test(a)&&this.trim(0,1)}this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);c=this.clone();c.collapse(true);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=
this.endContainer,c=this.endOffset;if(CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT){a=CKEDITOR.tools.rtrim(a.substring(c));l.test(a)&&this.trim(1,0)}this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(false);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);
c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==CKEDITOR.NODE_ELEMENT){if(b.getAttribute("contentEditable")=="false"&&!b.data("cke-editable"))return 0;if(b.is("html")||b.getAttribute("contentEditable")=="true"&&(b.contains(c)||b.equals(c)))break}b=
b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(b,c){if(b.type==CKEDITOR.NODE_ELEMENT&&!b.isEditable(false)){this.moveToPosition(b,c?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);return true}for(var d=0;b;){if(b.type==CKEDITOR.NODE_TEXT){c&&this.checkEndOfBlock()&&l.test(b.getText())?this.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(b,c?CKEDITOR.POSITION_AFTER_END:
CKEDITOR.POSITION_BEFORE_START);d=1;break}if(b.type==CKEDITOR.NODE_ELEMENT)if(b.isEditable()){this.moveToPosition(b,c?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START);d=1}else c&&(b.is("br")&&this.checkEndOfBlock())&&this.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START);var f=b,g=d,e=void 0;f.type==CKEDITOR.NODE_ELEMENT&&f.isEditable(false)&&(e=f[c?"getLast":"getFirst"](a));!g&&!e&&(e=f[c?"getPrevious":"getNext"](a));b=e}return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},
moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,true)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(false,true),c=CKEDITOR.dom.walker.whitespaces(true);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=
this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("<span>&nbsp;</span>",this.document),b,c,d,g=this.clone();g.optimize();if(d=g.startContainer.type==CKEDITOR.NODE_TEXT){c=g.startContainer.getText();b=g.startContainer.split(g.startOffset);
a.insertAfter(g.startContainer)}else g.insertNode(a);a.scrollIntoView();if(d){g.startContainer.setText(c);b.remove()}a.remove()}}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;
(function(){function b(a){if(!(arguments.length<1)){this.range=a;this.forceBrBreak=0;this.enlargeBr=1;this.enforceRealBlocks=0;this._||(this._={})}}function c(a,b,c){for(a=a.getNextSourceNode(b,null,c);!e(a);)a=a.getNextSourceNode(b,null,c);return a}var a=/^[\r\n\t ]+$/,e=CKEDITOR.dom.walker.bookmark(false,true),d=CKEDITOR.dom.walker.whitespaces(true),h=function(a){return e(a)&&d(a)};b.prototype={getNextParagraph:function(b){b=b||"p";if(!CKEDITOR.dtd[this.range.root.getName()][b])return null;var d,
i,l,n,o,q;if(!this._.started){i=this.range.clone();i.shrink(CKEDITOR.NODE_ELEMENT,true);n=i.endContainer.hasAscendant("pre",true)||i.startContainer.hasAscendant("pre",true);i.enlarge(this.forceBrBreak&&!n||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);if(!i.collapsed){n=new CKEDITOR.dom.walker(i.clone());var k=CKEDITOR.dom.walker.bookmark(true,true);n.evaluator=k;this._.nextNode=n.next();n=new CKEDITOR.dom.walker(i.clone());n.evaluator=k;n=n.previous();this._.lastNode=
n.getNextSourceNode(true);if(this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()){k=this.range.clone();k.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END);if(k.checkEndOfBlock()){k=new CKEDITOR.dom.elementPath(k.endContainer,k.root);this._.lastNode=(k.block||k.blockLimit).getNextSourceNode(true)}}if(!this._.lastNode){this._.lastNode=this._.docEndMarker=i.document.createText("");this._.lastNode.insertAfter(n)}i=
null}this._.started=1}k=this._.nextNode;n=this._.lastNode;for(this._.nextNode=null;k;){var g=0,p=k.hasAscendant("pre"),v=k.type!=CKEDITOR.NODE_ELEMENT,u=0;if(v)k.type==CKEDITOR.NODE_TEXT&&a.test(k.getText())&&(v=0);else{var m=k.getName();if(k.isBlockBoundary(this.forceBrBreak&&!p&&{br:1})){if(m=="br")v=1;else if(!i&&!k.getChildCount()&&m!="hr"){d=k;l=k.equals(n);break}if(i){i.setEndAt(k,CKEDITOR.POSITION_BEFORE_START);if(m!="br")this._.nextNode=k}g=1}else{if(k.getFirst()){if(!i){i=this.range.clone();
i.setStartAt(k,CKEDITOR.POSITION_BEFORE_START)}k=k.getFirst();continue}v=1}}if(v&&!i){i=this.range.clone();i.setStartAt(k,CKEDITOR.POSITION_BEFORE_START)}l=(!g||v)&&k.equals(n);if(i&&!g)for(;!k.getNext(h)&&!l;){m=k.getParent();if(m.isBlockBoundary(this.forceBrBreak&&!p&&{br:1})){g=1;v=0;l||m.equals(n);i.setEndAt(m,CKEDITOR.POSITION_BEFORE_END);break}k=m;v=1;l=k.equals(n);u=1}v&&i.setEndAt(k,CKEDITOR.POSITION_AFTER_END);k=c(k,u,n);if((l=!k)||g&&i)break}if(!d){if(!i){this._.docEndMarker&&this._.docEndMarker.remove();
return this._.nextNode=null}d=new CKEDITOR.dom.elementPath(i.startContainer,i.root);k=d.blockLimit;g={div:1,th:1,td:1};d=d.block;if(!d&&k&&!this.enforceRealBlocks&&g[k.getName()]&&i.checkStartOfBlock()&&i.checkEndOfBlock()&&!k.equals(i.root))d=k;else if(!d||this.enforceRealBlocks&&d.getName()=="li"){d=this.range.document.createElement(b);i.extractContents().appendTo(d);d.trim();i.insertNode(d);o=q=true}else if(d.getName()!="li"){if(!i.checkStartOfBlock()||!i.checkEndOfBlock()){d=d.clone(false);i.extractContents().appendTo(d);
d.trim();q=i.splitBlock();o=!q.wasStartOfBlock;q=!q.wasEndOfBlock;i.insertNode(d)}}else if(!l)this._.nextNode=d.equals(n)?null:c(i.getBoundaryNodes().endNode,1,n)}if(o)(i=d.getPrevious())&&i.type==CKEDITOR.NODE_ELEMENT&&(i.getName()=="br"?i.remove():i.getLast()&&i.getLast().$.nodeName.toLowerCase()=="br"&&i.getLast().remove());if(q)(i=d.getLast())&&i.type==CKEDITOR.NODE_ELEMENT&&i.getName()=="br"&&(CKEDITOR.env.ie||i.getPrevious(e)||i.getNext(e))&&i.remove();if(!this._.nextNode)this._.nextNode=l||
d.equals(n)||!n?null:c(d,1,n);return d}};CKEDITOR.dom.range.prototype.createIterator=function(){return new b(this)}})();
CKEDITOR.command=function(b,c){this.uiItems=[];this.exec=function(a){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return false;this.editorFocus&&b.focus();return this.fire("exec")===false?true:c.exec.call(this,b,a)!==false};this.refresh=function(a,b){if(!this.readOnly&&a.readOnly)return true;if(this.context&&!b.isContextFor(this.context)){this.disable();return true}this.enable();return this.fire("refresh",{editor:a,path:b})===false?true:c.refresh&&c.refresh.apply(this,arguments)!==
false};var a;this.checkAllowed=function(){return typeof a=="boolean"?a:a=b.filter.checkFeature(this)};CKEDITOR.tools.extend(this,c,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!c.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)};
CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(!this.preserveState||typeof this.previousState=="undefined"?CKEDITOR.TRISTATE_OFF:this.previousState)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(b){if(this.state==b||!this.checkAllowed())return false;this.previousState=this.state;this.state=b;this.fire("state");return true},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?this.setState(CKEDITOR.TRISTATE_ON):
this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3;
CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"<!DOCTYPE html>",bodyId:"",bodyClass:"",fullPage:!1,height:200,extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]};
(function(){function b(a,b,g,f,e){var h=b.name;if((f||typeof a.elements!="function"||a.elements(h))&&(!a.match||a.match(b))){if(f=!e){a:if(a.nothingRequired)f=true;else{if(e=a.requiredClasses){h=b.classes;for(f=0;f<e.length;++f)if(CKEDITOR.tools.indexOf(h,e[f])==-1){f=false;break a}}f=d(b.styles,a.requiredStyles)&&d(b.attributes,a.requiredAttributes)}f=!f}if(!f){if(!a.propertiesOnly)g.valid=true;if(!g.allAttributes)g.allAttributes=c(a.attributes,b.attributes,g.validAttributes);if(!g.allStyles)g.allStyles=
c(a.styles,b.styles,g.validStyles);if(!g.allClasses){a=a.classes;b=b.classes;f=g.validClasses;if(a)if(a===true)b=true;else{for(var e=0,h=b.length,p;e<h;++e){p=b[e];f[p]||(f[p]=a(p))}b=false}else b=false;g.allClasses=b}}}}function c(a,b,c){if(!a)return false;if(a===true)return true;for(var d in b)c[d]||(c[d]=a(d,b[d]));return false}function a(a,b){if(!a)return false;if(a===true)return a;if(typeof a=="string"){a=x(a);return a=="*"?true:CKEDITOR.tools.convertArrayToObject(a.split(b))}if(CKEDITOR.tools.isArray(a))return a.length?
CKEDITOR.tools.convertArrayToObject(a):false;var c={},d=0,g;for(g in a){c[g]=a[g];d++}return d?c:false}function e(a){if(a._.filterFunction)return a._.filterFunction;var c=/^cke:(object|embed|param)$/,d=/^(object|embed|param)$/;return a._.filterFunction=function(g,f,e,h,k,m,t){var o=g.name,v,u=false;if(k)g.name=o=o.replace(c,"$1");if(e=e&&e[o]){i(g);for(o=0;o<e.length;++o)p(a,g,e[o]);l(g)}if(f){var o=g.name,e=f.elements[o],j=f.generic,f={valid:false,validAttributes:{},validClasses:{},validStyles:{},
allAttributes:false,allClasses:false,allStyles:false};if(!e&&!j){h.push(g);return true}i(g);if(e){o=0;for(v=e.length;o<v;++o)b(e[o],g,f,true,m)}if(j){o=0;for(v=j.length;o<v;++o)b(j[o],g,f,false,m)}if(!f.valid){h.push(g);return true}m=f.validAttributes;o=f.validStyles;e=f.validClasses;v=g.attributes;var j=g.styles,r=v["class"],w=v.style,q,x,A=[],s=[],E=/^data-cke-/,z=false;delete v.style;delete v["class"];if(!f.allAttributes)for(q in v)if(!m[q])if(E.test(q)){if(q!=(x=q.replace(/^data-cke-saved-/,""))&&
!m[x]){delete v[q];z=true}}else{delete v[q];z=true}if(f.allStyles){if(w)v.style=w}else{for(q in j)o[q]?A.push(q+":"+j[q]):z=true;if(A.length)v.style=A.sort().join("; ")}if(f.allClasses)r&&(v["class"]=r);else{for(q in e)e[q]&&s.push(q);s.length&&(v["class"]=s.sort().join(" "));r&&s.length<r.split(/\s+/).length&&(z=true)}z&&(u=true);if(!t&&!n(g)){h.push(g);return true}}if(k)g.name=g.name.replace(d,"cke:$1");return u}}function d(a,b){if(!b)return true;for(var c=0;c<b.length;++c)if(!(b[c]in a))return false;
return true}function h(a){if(!a)return{};for(var a=a.split(/\s*,\s*/).sort(),b={};a.length;)b[a.shift()]=z;return b}function f(a){for(var b,c,g,d,f={},e=1,a=x(a);b=a.match(y);){if(c=b[2]){g=j(c,"styles");d=j(c,"attrs");c=j(c,"classes")}else g=d=c=null;f["$"+e++]={elements:b[1],classes:c,styles:g,attributes:d};a=a.slice(b[0].length)}return f}function j(a,b){var c=a.match(t[b]);return c?x(c[1]):null}function i(a){if(!a.styles)a.styles=CKEDITOR.tools.parseCssText(a.attributes.style||"",1);if(!a.classes)a.classes=
a.attributes["class"]?a.attributes["class"].split(/\s+/):[]}function l(a){var b=a.attributes,c;delete b.style;delete b["class"];if(c=CKEDITOR.tools.writeCssText(a.styles,true))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function n(a){switch(a.name){case "a":if(!a.children.length&&!a.attributes.name)return false;break;case "img":if(!a.attributes.src)return false}return true}function o(a){return!a?false:a===true?true:function(b){return b in a}}function q(){return new CKEDITOR.htmlParser.element("br")}
function k(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.name=="br"||A.$block[a.name])}function g(a,b,c){var g=a.name;if(A.$empty[g]||!a.children.length)if(g=="hr"&&b=="br")a.replaceWith(q());else{a.parent&&c.push({check:"it",el:a.parent});a.remove()}else if(A.$block[g]||g=="tr")if(b=="br"){if(a.previous&&!k(a.previous)){b=q();b.insertBefore(a)}if(a.next&&!k(a.next)){b=q();b.insertAfter(a)}a.replaceWithChildren()}else{var g=a.children,d;b:{d=A[b];for(var f=0,e=g.length,h;f<e;++f){h=g[f];if(h.type==
CKEDITOR.NODE_ELEMENT&&!d[h.name]){d=false;break b}}d=true}if(d){a.name=b;a.attributes={};c.push({check:"parent-down",el:a})}else{d=a.parent;for(var f=d.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||d.name=="body",p,e=g.length;e>0;){h=g[--e];if(f&&(h.type==CKEDITOR.NODE_TEXT||h.type==CKEDITOR.NODE_ELEMENT&&A.$inline[h.name])){if(!p){p=new CKEDITOR.htmlParser.element(b);p.insertAfter(a);c.push({check:"parent-down",el:p})}p.add(h,0)}else{p=null;h.insertAfter(a);d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(h.type==
CKEDITOR.NODE_ELEMENT&&!A[d.name][h.name])&&c.push({check:"el-up",el:h})}}a.remove()}}else if(g=="style")a.remove();else{a.parent&&c.push({check:"it",el:a.parent});a.replaceWithChildren()}}function p(a,b,c){var g,d;for(g=0;g<c.length;++g){d=c[g];if((!d.check||a.check(d.check,false))&&(!d.left||d.left(b))){d.right(b,w);break}}}function v(a,b){var c=b.getDefinition(),g=c.attributes,d=c.styles,f,e,h,p;if(a.name!=c.element)return false;for(f in g)if(f=="class"){c=g[f].split(/\s+/);for(h=a.classes.join("|");p=
c.pop();)if(h.indexOf(p)==-1)return false}else if(a.attributes[f]!=g[f])return false;for(e in d)if(a.styles[e]!=d[e])return false;return true}function u(a,b){var c,g;if(typeof a=="string")c=a;else if(a instanceof CKEDITOR.style)g=a;else{c=a[0];g=a[1]}return[{element:c,left:g,right:function(a,c){c.transform(a,b)}}]}function m(a){return function(b){return v(b,a)}}function E(a){return function(b,c){c[a](b)}}var A=CKEDITOR.dtd,r=CKEDITOR.tools.copy,x=CKEDITOR.tools.trim,z="cke-test";CKEDITOR.filter=function(a){this.allowedContent=
[];this.disabled=false;this.editor=null;this.enterMode=CKEDITOR.ENTER_P;this._={rules:{},transformations:{},cachedTests:{}};if(a instanceof CKEDITOR.editor){var b=this.editor=a;this.customConfig=true;var a=b.config.allowedContent,c;if(a===true)this.disabled=true;else{if(!a)this.customConfig=false;this.enterMode=c=b.blockless?CKEDITOR.ENTER_BR:b.config.enterMode;var g=["br"],d=b.blockless?CKEDITOR.ENTER_BR:b.config.shiftEnterMode;(c==CKEDITOR.ENTER_P||d==CKEDITOR.ENTER_P)&&g.push("p");(c==CKEDITOR.ENTER_DIV||
d==CKEDITOR.ENTER_DIV)&&g.push("div");this.allow(g.join(" "),"default",1);this.allow(a,"config",1);this.allow(b.config.extraAllowedContent,"extra",1);this._.toHtmlListener=b.on("toHtml",function(a){this.applyTo(a.data.dataValue,true,a.data.dontFilter)&&b.fire("dataFiltered")},this,null,6);this._.toDataFormatListener=b.on("toDataFormat",function(a){this.applyTo(a.data.dataValue,false,true)},this,null,11)}}else{this.customConfig=false;this.allow(a,"default",1)}};CKEDITOR.filter.prototype={allow:function(b,
c,g){if(this.disabled||this.customConfig&&!g||!b)return false;this._.cachedChecks={};var d,e;if(typeof b=="string")b=f(b);else if(b instanceof CKEDITOR.style){e=b.getDefinition();g={};b=e.attributes;g[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.objectKeys(e.styles)};if(b){b=r(b);e.classes=b["class"]?b["class"].split(/\s+/):null;e.requiredClasses=e.classes;delete b["class"];e.attributes=b;e.requiredAttributes=b&&CKEDITOR.tools.objectKeys(b)}b=g}else if(CKEDITOR.tools.isArray(b)){for(d=
0;d<b.length;++d)e=this.allow(b[d],c,g);return e}var h,g=[];for(h in b){e=b[h];e=typeof e=="boolean"?{}:typeof e=="function"?{match:e}:r(e);if(h.charAt(0)!="$")e.elements=h;if(c)e.featureName=c.toLowerCase();var p=e;p.elements=a(p.elements,/\s+/)||null;p.propertiesOnly=p.propertiesOnly||p.elements===true;var k=/\s*,\s*/,m=void 0;for(m in s){p[m]=a(p[m],k)||null;var t=p,i=C[m],v=a(p[C[m]],k),j=p[m],u=[],q=true,w=void 0;v?q=false:v={};for(w in j)if(w.charAt(0)=="!"){w=w.slice(1);u.push(w);v[w]=true;
q=false}for(;w=u.pop();){j[w]=j["!"+w];delete j["!"+w]}t[i]=(q?false:v)||null}p.match=p.match||null;this.allowedContent.push(e);g.push(e)}c=this._.rules;h=c.elements||{};b=c.generic||[];e=0;for(p=g.length;e<p;++e){k=r(g[e]);m=k.classes===true||k.styles===true||k.attributes===true;t=k;i=void 0;for(i in s)t[i]=o(t[i]);v=true;for(i in C){i=C[i];t[i]=CKEDITOR.tools.objectKeys(t[i]);t[i]&&(v=false)}t.nothingRequired=v;if(k.elements===true||k.elements===null){k.elements=o(k.elements);b[m?"unshift":"push"](k)}else{t=
k.elements;delete k.elements;for(d in t)if(h[d])h[d][m?"unshift":"push"](k);else h[d]=[k]}}c.elements=h;c.generic=b.length?b:null;return true},applyTo:function(a,b,c){var d=[],f=!c&&this._.rules,h=this._.transformations,p=e(this),k=this.editor&&this.editor.config.protectedSource,m=false;a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if(!b||!(a.name=="span"&&~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-")))p(a,f,h,d,b)&&(m=true)}else if(a.type==CKEDITOR.NODE_COMMENT&&
a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var g=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];var e,o,t;if(k)for(o=0;o<k.length;++o)if((t=g.match(k[o]))&&t[0].length==g.length){c=true;break a}g=CKEDITOR.htmlParser.fragment.fromHtml(g);g.children.length==1&&(e=g.children[0]).type==CKEDITOR.NODE_ELEMENT&&p(e,f,h,c,b);c=!c.length}c||d.push(a)}},null,true);d.length&&(m=true);for(var o,t,a=[],c=["p","br","div"][this.enterMode-1];o=d.pop();)o.type==CKEDITOR.NODE_ELEMENT?
g(o,c,a):o.remove();for(;t=a.pop();){o=t.el;if(o.parent)switch(t.check){case "it":A.$removeEmpty[o.name]&&!o.children.length?g(o,c,a):n(o)||g(o,c,a);break;case "el-up":o.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT&&!A[o.parent.name][o.name]&&g(o,c,a);break;case "parent-down":o.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT&&!A[o.parent.name][o.name]&&g(o.parent,c,a)}}return m},checkFeature:function(a){if(this.disabled||!a)return true;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||
this.check(a.requiredContent)},disable:function(){this.disabled=true;this._.toHtmlListener&&this._.toHtmlListener.removeListener();this._.toDataFormatListener&&this._.toDataFormatListener.removeListener()},addContentForms:function(a){if(!this.disabled&&a){var b,c,g=[],d;for(b=0;b<a.length&&!d;++b){c=a[b];if((typeof c=="string"||c instanceof CKEDITOR.style)&&this.check(c))d=c}if(d){for(b=0;b<a.length;++b)g.push(u(a[b],d));this.addTransformations(g)}}},addFeature:function(a){if(this.disabled||!a)return true;
a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);this.addContentForms(a.contentForms);return this.customConfig&&a.requiredContent?this.check(a.requiredContent):true},addTransformations:function(a){var b,c;if(!this.disabled&&a){var g=this._.transformations,d;for(d=0;d<a.length;++d){b=a[d];var e=void 0,f=void 0,h=void 0,p=void 0,k=void 0,o=void 0;c=[];for(f=0;f<b.length;++f){h=b[f];if(typeof h=="string"){h=h.split(/\s*:\s*/);
p=h[0];k=null;o=h[1]}else{p=h.check;k=h.left;o=h.right}if(!e){e=h;e=e.element?e.element:p?p.match(/^([a-z0-9]+)/i)[0]:e.left.getDefinition().element}k instanceof CKEDITOR.style&&(k=m(k));c.push({check:p==e?null:p,left:k,right:typeof o=="string"?E(o):o})}b=e;g[b]||(g[b]=[]);g[b].push(c)}}},check:function(a,b,c){if(this.disabled)return true;if(CKEDITOR.tools.isArray(a)){for(var g=a.length;g--;)if(this.check(a[g],b,c))return true;return false}var d,k;if(typeof a=="string"){k=a+"<"+(b===false?"0":"1")+
(c?"1":"0")+">";if(k in this._.cachedChecks)return this._.cachedChecks[k];g=f(a).$1;d=g.styles;var o=g.classes;g.name=g.elements;g.classes=o=o?o.split(/\s*,\s*/):[];g.styles=h(d);g.attributes=h(g.attributes);g.children=[];o.length&&(g.attributes["class"]=o.join(" "));if(d)g.attributes.style=CKEDITOR.tools.writeCssText(g.styles);d=g}else{g=a.getDefinition();d=g.styles;o=g.attributes||{};if(d){d=r(d);o.style=CKEDITOR.tools.writeCssText(d,true)}else d={};d={name:g.element,attributes:o,classes:o["class"]?
o["class"].split(/\s+/):[],styles:d,children:[]}}var o=CKEDITOR.tools.clone(d),m=[],t;if(b!==false&&(t=this._.transformations[d.name])){for(g=0;g<t.length;++g)p(this,d,t[g]);l(d)}e(this)(o,this._.rules,b===false?false:this._.transformations,m,false,!c,!c);b=m.length>0?false:CKEDITOR.tools.objectCompare(d.attributes,o.attributes,true)?true:false;typeof a=="string"&&(this._.cachedChecks[k]=b);return b}};var s={styles:1,attributes:1,classes:1},C={styles:"requiredStyles",attributes:"requiredAttributes",
classes:"requiredClasses"},y=/^([a-z0-9*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,t={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},w=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var g=a.attributes[b];
if(g){/^\d+$/.test(g)&&(g=g+"px");a.styles[c]=g}}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var g=a.styles[b],d=g&&g.match(/^(\d+)(?:\.\d*)?px$/);d?a.attributes[c]=d[1]:g==z&&(a.attributes[c]=z)}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if(b=="left"||b=="right")a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];
if(b=="left"||b=="right")a.attributes.align=b}delete a.styles["float"]},matchesStyle:v,transform:function(a,b){if(typeof b=="string")a.name=b;else{var c=b.getDefinition(),g=c.styles,d=c.attributes,e,f,h,p;a.name=c.element;for(e in d)if(e=="class"){c=a.classes.join("|");for(h=d[e].split(/\s+/);p=h.pop();)c.indexOf(p)==-1&&a.classes.push(p)}else a.attributes[e]=d[e];for(f in g)a.styles[f]=g[f]}}}})();
(function(){CKEDITOR.focusManager=function(b){if(b.focusManager)return b.focusManager;this.hasFocus=false;this.currentActive=null;this._={editor:b};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(){this._.timer&&clearTimeout(this._.timer);if(!this.hasFocus&&!this._.locked){var b=CKEDITOR.currentInstance;b&&b.focusManager.blur(1);this.hasFocus=true;(b=this._.editor.container)&&b.addClass("cke_focus");this._.editor.fire("focus")}},lock:function(){this._.locked=
1},unlock:function(){delete this._.locked},blur:function(b){function c(){if(this.hasFocus){this.hasFocus=false;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var a=CKEDITOR.focusManager._.blurDelay;b||!a?c.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;c.call(this)},a,this)}},add:function(b,c){var a=b.getCustomData("focusmanager");if(!a||a!=this){a&&a.remove(b);var a=
"focus",e="blur";if(c)if(CKEDITOR.env.ie){a="focusin";e="focusout"}else CKEDITOR.event.useCapture=1;var d={blur:function(){b.equals(this.currentActive)&&this.blur()},focus:function(){this.currentActive=b;this.focus()}};b.on(a,d.focus,this);b.on(e,d.blur,this);if(c)CKEDITOR.event.useCapture=0;b.setCustomData("focusmanager",this);b.setCustomData("focusmanager_handlers",d)}},remove:function(b){b.removeCustomData("focusmanager");var c=b.removeCustomData("focusmanager_handlers");b.removeListener("blur",
c.blur);b.removeListener("focus",c.focus)}}})();CKEDITOR.keystrokeHandler=function(b){if(b.keystrokeHandler)return b.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:b};return this};
(function(){var b,c=function(a){var a=a.data,c=a.getKeystroke(),h=this.keystrokes[c],f=this._.editor;b=f.fire("key",{keyCode:c})===false;if(!b){h&&(b=f.execCommand(h,{from:"keystrokeHandler"})!==false);b||(b=!!this.blockedKeystrokes[c])}b&&a.preventDefault(true);return!b},a=function(a){if(b){b=false;a.data.preventDefault(true)}};CKEDITOR.keystrokeHandler.prototype={attach:function(b){b.on("keydown",c,this);if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)b.on("keypress",a,this)}}})();
(function(){CKEDITOR.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},load:function(b,c,a){if(!b||!CKEDITOR.lang.languages[b])b=this.detect(c,b);this[b]?a(b,this[b]):CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+
b+".js"),function(){a(b,this[b])},this)},detect:function(b,c){var a=this.languages,c=c||navigator.userLanguage||navigator.language||b,e=c.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),d=e[1],e=e[2];a[d+"-"+e]?d=d+"-"+e:a[d]||(d=null);CKEDITOR.lang.detect=d?function(){return d}:function(a){return a};return d||b}}})();
CKEDITOR.scriptLoader=function(){var b={},c={};return{load:function(a,e,d,h){var f=typeof a=="string";f&&(a=[a]);d||(d=CKEDITOR);var j=a.length,i=[],l=[],n=function(a){e&&(f?e.call(d,a):e.call(d,i,l))};if(j===0)n(true);else{var o=function(a,b){(b?i:l).push(a);if(--j<=0){h&&CKEDITOR.document.getDocumentElement().removeStyle("cursor");n(b)}},q=function(a,g){b[a]=1;var d=c[a];delete c[a];for(var f=0;f<d.length;f++)d[f](a,g)},k=function(a){if(b[a])o(a,true);else{var g=c[a]||(c[a]=[]);g.push(o);if(!(g.length>
1)){var d=new CKEDITOR.dom.element("script");d.setAttributes({type:"text/javascript",src:a});if(e)if(CKEDITOR.env.ie)d.$.onreadystatechange=function(){if(d.$.readyState=="loaded"||d.$.readyState=="complete"){d.$.onreadystatechange=null;q(a,true)}};else{d.$.onload=function(){setTimeout(function(){q(a,true)},0)};d.$.onerror=function(){q(a,false)}}d.appendTo(CKEDITOR.document.getHead())}}};h&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var g=0;g<j;g++)k(a[g])}},queue:function(){function a(){var a;
(a=b[0])&&this.load(a.scriptUrl,a.callback,CKEDITOR,0)}var b=[];return function(c,h){var f=this;b.push({scriptUrl:c,callback:function(){h&&h.apply(this,arguments);b.shift();a.call(f)}});b.length==1&&a.call(this)}}()}}();CKEDITOR.resourceManager=function(b,c){this.basePath=b;this.fileName=c;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
CKEDITOR.resourceManager.prototype={add:function(b,c){if(this.registered[b])throw'[CKEDITOR.resourceManager.add] The resource name "'+b+'" is already registered.';var a=this.registered[b]=c||{};a.name=b;a.path=this.getPath(b);CKEDITOR.fire(b+CKEDITOR.tools.capitalize(this.fileName)+"Ready",a);return this.get(b)},get:function(b){return this.registered[b]||null},getPath:function(b){var c=this.externals[b];return CKEDITOR.getUrl(c&&c.dir||this.basePath+b+"/")},getFilePath:function(b){var c=this.externals[b];
return CKEDITOR.getUrl(this.getPath(b)+(c&&typeof c.file=="string"?c.file:this.fileName+".js"))},addExternal:function(b,c,a){for(var b=b.split(","),e=0;e<b.length;e++)this.externals[b[e]]={dir:c,file:a}},load:function(b,c,a){CKEDITOR.tools.isArray(b)||(b=b?[b]:[]);for(var e=this.loaded,d=this.registered,h=[],f={},j={},i=0;i<b.length;i++){var l=b[i];if(l)if(!e[l]&&!d[l]){var n=this.getFilePath(l);h.push(n);n in f||(f[n]=[]);f[n].push(l)}else j[l]=this.get(l)}CKEDITOR.scriptLoader.load(h,function(b,
d){if(d.length)throw'[CKEDITOR.resourceManager.load] Resource name "'+f[d[0]].join(",")+'" was not found at "'+d[0]+'".';for(var h=0;h<b.length;h++)for(var g=f[b[h]],p=0;p<g.length;p++){var i=g[p];j[i]=this.get(i);e[i]=1}c.call(a,j)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(b){var c={};return function(a,e,d){var h={},f=function(a){b.call(this,a,function(a){CKEDITOR.tools.extend(h,a);var b=[],j;for(j in a){var o=a[j],q=o&&o.requires;if(!c[j]){if(o.icons)for(var k=o.icons.split(","),g=k.length;g--;)CKEDITOR.skin.addIcon(k[g],o.path+"icons/"+(CKEDITOR.env.hidpi&&o.hidpi?"hidpi/":"")+k[g]+".png");c[j]=1}if(q){q.split&&(q=q.split(","));for(o=0;o<q.length;o++)h[q[o]]||b.push(q[o])}}if(b.length)f.call(this,
b);else{for(j in h){o=h[j];if(o.onLoad&&!o.onLoad._called){o.onLoad()===false&&delete h[j];o.onLoad._called=1}}e&&e.call(d||window,h)}},this)};f.call(this,a)}});CKEDITOR.plugins.setLang=function(b,c,a){var e=this.get(b),b=e.langEntries||(e.langEntries={}),e=e.lang||(e.lang=[]);e.split&&(e=e.split(","));CKEDITOR.tools.indexOf(e,c)==-1&&e.push(c);b[c]=a};CKEDITOR.ui=function(b){if(b.ui)return b.ui;this.items={};this.instances={};this.editor=b;this._={handlers:{}};return this};
CKEDITOR.ui.prototype={add:function(b,c,a){a.name=b.toLowerCase();var e=this.items[b]={type:c,command:a.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(e,a)},get:function(b){return this.instances[b]},create:function(b){var c=this.items[b],a=c&&this._.handlers[c.type],e=c&&c.command&&this.editor.getCommand(c.command),a=a&&a.create.apply(this,c.args);this.instances[b]=a;e&&e.uiItems.push(a);if(a&&!a.type)a.type=c.type;return a},addHandler:function(b,c){this._.handlers[b]=
c},space:function(b){return CKEDITOR.document.getById(this.spaceId(b))},spaceId:function(b){return this.editor.id+"_"+b}};CKEDITOR.event.implementOn(CKEDITOR.ui);
(function(){function b(b,e,h){CKEDITOR.event.call(this);b=b&&CKEDITOR.tools.clone(b);if(e!==void 0){if(e instanceof CKEDITOR.dom.element){if(!h)throw Error("One of the element modes must be specified.");}else throw Error("Expect element of type CKEDITOR.dom.element.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&h==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");if(!(h==CKEDITOR.ELEMENT_MODE_INLINE?e.is(CKEDITOR.dtd.$editable)||e.is("textarea"):h==CKEDITOR.ELEMENT_MODE_REPLACE?
!e.is(CKEDITOR.dtd.$nonBodyContent):1))throw Error('The specified element mode is not supported on element: "'+e.getName()+'".');this.element=e;this.elementMode=h;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(e.getId()||e.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||c();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);
this.focusManager=new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly",a);this.on("selectionChange",d);this.on("mode",a);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){f(this,b)},0,this)}function c(){do var a="editor"+ ++q;while(CKEDITOR.instances[a]);return a}function a(){var a=this.commands,b;for(b in a)e(this,a[b])}
function e(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function d(a){var b=this.commands,c=a.editor,d=a.data.path,e;for(e in b){a=b[e];a.contextSensitive&&a.refresh(c,d)}}function h(a){var b=a.config.customConfig;if(!b)return false;var b=CKEDITOR.getUrl(b),c=k[b]||(k[b]={});if(c.fn){c.fn.call(a,a.config);(CKEDITOR.getUrl(a.config.customConfig)==b||!h(a))&&a.fireOnce("customConfigLoaded")}else CKEDITOR.scriptLoader.queue(b,function(){c.fn=
CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};h(a)});return true}function f(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,true);delete a.config.on}a.readOnly=!(!a.config.readOnly&&!(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.is("textarea")?a.element.hasAttribute("disabled"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&a.element.hasAttribute("disabled")));a.blockless=a.elementMode==
CKEDITOR.ELEMENT_MODE_INLINE?!(a.element.is("textarea")||CKEDITOR.dtd[a.element.getName()].p):false;a.tabIndex=a.config.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;if(a.config.skin)CKEDITOR.skinName=a.config.skin;a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=new CKEDITOR.filter(a);j(a)});if(b&&b.customConfig!=void 0)a.config.customConfig=b.customConfig;h(a)||a.fireOnce("customConfigLoaded")}function j(a){CKEDITOR.skin.loadPart("editor",function(){i(a)})}
function i(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,c){var d=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);a.title=typeof d=="string"||d===false?d:[a.lang.editor,a.name].join(", ");if(CKEDITOR.env.gecko&&CKEDITOR.env.version<10900&&a.lang.dir=="rtl")a.lang.dir="ltr";if(!a.config.contentsLangDirection)a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir;a.fire("langLoaded");l(a)})}function l(a){a.getStylesSet(function(b){a.once("loaded",
function(){a.fire("stylesSet",{styles:b})},null,null,1);n(a)})}function n(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e=b.removePlugins;if(d)var f=RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?=,|$)","g"),c=c.replace(f,""),c=c+(","+d);if(e)var h=RegExp("(?:^|,)(?:"+e.replace(/\s*,\s*/g,"|")+")(?=,|$)","g"),c=c.replace(h,"");CKEDITOR.env.air&&(c=c+",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],e=[],f=[];a.plugins=c;for(var k in c){var o=c[k],m=o.lang,i=null,j=o.requires,
v;CKEDITOR.tools.isArray(j)&&(j=j.join(","));if(j&&(v=j.match(h)))for(;j=v.pop();)CKEDITOR.tools.setTimeout(function(a,b){throw Error('Plugin "'+a.replace(",","")+'" cannot be removed from the plugins list, because it\'s required by "'+b+'" plugin.');},0,null,[j,k]);if(m&&!a.lang[k]){m.split&&(m=m.split(","));if(CKEDITOR.tools.indexOf(m,a.langCode)>=0)i=a.langCode;else{i=a.langCode.replace(/-.*/,"");i=i!=a.langCode&&CKEDITOR.tools.indexOf(m,i)>=0?i:CKEDITOR.tools.indexOf(m,"en")>=0?"en":m[0]}if(!o.langEntries||
!o.langEntries[i])f.push(CKEDITOR.getUrl(o.path+"lang/"+i+".js"));else{a.lang[k]=o.langEntries[i];i=null}}e.push(i);d.push(o)}CKEDITOR.scriptLoader.load(f,function(){for(var c=["beforeInit","init","afterInit"],f=0;f<c.length;f++)for(var h=0;h<d.length;h++){var k=d[h];f===0&&(e[h]&&k.lang&&k.langEntries)&&(a.lang[k.name]=k.langEntries[e[h]]);if(k[c[f]])k[c[f]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(h=0;h<a.config.blockedKeystrokes.length;h++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[h]]=
1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function o(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return true}return false}b.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=b;var q=0,k={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,
b);this.mode&&e(this,c);return this.commands[a]=c},_attachToForm:function(){var a=this,b=a.element,c=new CKEDITOR.dom.element(b.$.form);if(b.is("textarea")&&c){var d=function(c){a.updateElement();a._.required&&(!b.getValue()&&a.fire("required")===false)&&c.data.preventDefault()};c.on("submit",d);if(!c.$.submit.nodeName&&!c.$.submit.length)c.$.submit=CKEDITOR.tools.override(c.$.submit,function(a){return function(b){d(new CKEDITOR.dom.event(b));a.apply?a.apply(this,arguments):a()}});a.on("destroy",
function(){c.removeListener("submit",d)})}},destroy:function(a){this.fire("beforeDestroy");!a&&o.call(this);this.editable(null);this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){return(a=a||this.getSelection().getStartElement())?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,
b){var c=this.getCommand(a),d={name:a,commandData:b,command:c};if(c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&this.fire("beforeCommandExec",d)!==true){d.returnValue=c.exec(d.commandData);if(!c.async&&this.fire("afterCommandExec",d)!==true)return d.returnValue}return false},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;if(typeof b!="string")b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():
b.getHtml():"";b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");if(typeof a!="string"){var b=this.element;b&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a=b.is("textarea")?b.getValue():b.getHtml())}return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){if(b)this.on("dataReady",function(a){a.removeListener();b.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;
!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=a==void 0||a;if(this.readOnly!=a){this.readOnly=a;this.keystrokeHandler.blockedKeystrokes[8]=+a;this.editable().setReadOnly(a);this.fire("readOnly")}},insertHtml:function(a,b){this.fire("insertHtml",{dataValue:a,mode:b})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return this.status=="ready"&&this._.previousValue!==
this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return o.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],c,d,f=b.length;f--;){c=b[f];d=0;if(CKEDITOR.tools.isArray(c)){d=c[1];c=c[0]}d?a[c]=d:delete a[c]}},addFeature:function(a){return this.filter.addFeature(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;
CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)--\>)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))","g")}};
(function(){var b=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,c={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(a){for(var e,d,h=0,f;e=this._.htmlPartsRegex.exec(a);){d=e.index;if(d>h){h=a.substring(h,d);if(f)f.push(h);else this.onText(h)}h=
this._.htmlPartsRegex.lastIndex;if(d=e[1]){d=d.toLowerCase();if(f&&CKEDITOR.dtd.$cdata[d]){this.onCDATA(f.join(""));f=null}if(!f){this.onTagClose(d);continue}}if(f)f.push(e[0]);else if(d=e[3]){d=d.toLowerCase();if(!/="/.test(d)){var j={},i;e=e[4];var l=!!(e&&e.charAt(e.length-1)=="/");if(e)for(;i=b.exec(e);){var n=i[1].toLowerCase();i=i[2]||i[3]||i[4]||"";j[n]=!i&&c[n]?n:i}this.onTagOpen(d,j,l);!f&&CKEDITOR.dtd.$cdata[d]&&(f=[])}}else if(d=e[2])this.onComment(d)}if(a.length>h)this.onText(a.substring(h,
a.length))}}})();
CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(b){this._.output.push("<",b)},openTagClose:function(b,c){c?this._.output.push(" />"):this._.output.push(">")},attribute:function(b,c){typeof c=="string"&&(c=CKEDITOR.tools.htmlEncodeAttr(c));this._.output.push(" ",b,'="',c,'"')},closeTag:function(b){this._.output.push("</",b,">")},text:function(b){this._.output.push(b)},comment:function(b){this._.output.push("<\!--",b,"--\>")},write:function(b){this._.output.push(b)},
reset:function(){this._.output=[];this._.indent=false},getHtml:function(b){var c=this._.output.join("");b&&this.reset();return c}}});"use strict";
(function(){CKEDITOR.htmlParser.node=function(){};CKEDITOR.htmlParser.node.prototype={remove:function(){var b=this.parent.children,c=CKEDITOR.tools.indexOf(b,this),a=this.previous,e=this.next;a&&(a.next=e);e&&(e.previous=a);b.splice(c,1);this.parent=null},replaceWith:function(b){var c=this.parent.children,a=CKEDITOR.tools.indexOf(c,this),e=b.previous=this.previous,d=b.next=this.next;e&&(e.next=b);d&&(d.previous=b);c[a]=b;b.parent=this.parent;this.parent=null},insertAfter:function(b){var c=b.parent.children,
a=CKEDITOR.tools.indexOf(c,b),e=b.next;c.splice(a+1,0,this);this.next=b.next;this.previous=b;b.next=this;e&&(e.previous=this);this.parent=b.parent},insertBefore:function(b){var c=b.parent.children,a=CKEDITOR.tools.indexOf(c,b);c.splice(a,0,this);this.next=b;(this.previous=b.previous)&&(b.previous.next=this);b.previous=this;this.parent=b.parent}}})();"use strict";CKEDITOR.htmlParser.comment=function(b){this.value=b;this._={isBlockLike:false}};
CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_COMMENT,filter:function(b){var c=this.value;if(!(c=b.onComment(c,this))){this.remove();return false}if(typeof c!="string"){this.replaceWith(c);return false}this.value=c;return true},writeHtml:function(b,c){c&&this.filter(c);b.comment(this.value)}});"use strict";
(function(){CKEDITOR.htmlParser.text=function(b){this.value=b;this._={isBlockLike:false}};CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(b){if(!(this.value=b.onText(this.value,this))){this.remove();return false}},writeHtml:function(b,c){c&&this.filter(c);b.text(this.value)}})})();"use strict";
(function(){CKEDITOR.htmlParser.cdata=function(b){this.value=b};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(b){b.write(this.value)}})})();"use strict";CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false}};
(function(){function b(a){return a.name=="a"&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var c=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),a={ol:1,ul:1},e=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1});CKEDITOR.htmlParser.fragment.fromHtml=function(d,h,f){function j(a){var b;if(p.length>0)for(var c=0;c<p.length;c++){var d=p[c],g=d.name,f=CKEDITOR.dtd[g],e=u.name&&
CKEDITOR.dtd[u.name];if((!e||e[g])&&(!a||!f||f[a]||!CKEDITOR.dtd[a])){if(!b){i();b=1}d=d.clone();d.parent=u;u=d;p.splice(c,1);c--}else if(g==u.name){n(u,u.parent,1);c--}}}function i(){for(;v.length;)n(v.shift(),u)}function l(a){if(a._.isBlockLike&&a.name!="pre"&&a.name!="textarea"){var b=a.children.length,c=a.children[b-1],d;if(c&&c.type==CKEDITOR.NODE_TEXT)(d=CKEDITOR.tools.rtrim(c.value))?c.value=d:a.children.length=b-1}}function n(a,c,d){var c=c||u||g,e=u;if(a.previous===void 0){if(o(c,a)){u=c;
k.onTagOpen(f,{});a.returnPoint=c=u}l(a);(!b(a)||a.children.length)&&c.add(a);a.name=="pre"&&(E=false);a.name=="textarea"&&(m=false)}if(a.returnPoint){u=a.returnPoint;delete a.returnPoint}else u=d?c:e}function o(a,b){if((a==g||a.name=="body")&&f&&(!a.name||CKEDITOR.dtd[a.name][f])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function q(a,b){return a in CKEDITOR.dtd.$listItem||
a in CKEDITOR.dtd.$tableContent?a==b||a=="dt"&&b=="dd"||a=="dd"&&b=="dt":false}var k=new CKEDITOR.htmlParser,g=h instanceof CKEDITOR.htmlParser.element?h:typeof h=="string"?new CKEDITOR.htmlParser.element(h):new CKEDITOR.htmlParser.fragment,p=[],v=[],u=g,m=g.name=="textarea",E=g.name=="pre";k.onTagOpen=function(d,g,f,h){g=new CKEDITOR.htmlParser.element(d,g);if(g.isUnknown&&f)g.isEmpty=true;g.isOptionalClose=h;if(b(g))p.push(g);else{if(d=="pre")E=true;else{if(d=="br"&&E){u.add(new CKEDITOR.htmlParser.text("\n"));
return}d=="textarea"&&(m=true)}if(d=="br")v.push(g);else{for(;;){h=(f=u.name)?CKEDITOR.dtd[f]||(u._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e;if(!g.isUnknown&&!u.isUnknown&&!h[d])if(u.isOptionalClose)k.onTagClose(f);else if(d in a&&f in a){f=u.children;(f=f[f.length-1])&&f.name=="li"||n(f=new CKEDITOR.htmlParser.element("li"),u);!g.returnPoint&&(g.returnPoint=u);u=f}else if(d in CKEDITOR.dtd.$listItem&&!q(d,f))k.onTagOpen(d=="li"?"ul":"dl",{},0,1);else if(f in c&&!q(d,f)){!g.returnPoint&&
(g.returnPoint=u);u=u.parent}else{f in CKEDITOR.dtd.$inline&&p.unshift(u);if(u.parent)n(u,u.parent,1);else{g.isOrphan=1;break}}else break}j(d);i();g.parent=u;g.isEmpty?n(g):u=g}}};k.onTagClose=function(a){for(var b=p.length-1;b>=0;b--)if(a==p[b].name){p.splice(b,1);return}for(var c=[],d=[],e=u;e!=g&&e.name!=a;){e._.isBlockLike||d.unshift(e);c.push(e);e=e.returnPoint||e.parent}if(e!=g){for(b=0;b<c.length;b++){var h=c[b];n(h,h.parent)}u=e;e._.isBlockLike&&i();n(e,e.parent);if(e==u)u=u.parent;p=p.concat(d)}a==
"body"&&(f=false)};k.onText=function(b){if((!u._.hasInlineStarted||v.length)&&!E&&!m){b=CKEDITOR.tools.ltrim(b);if(b.length===0)return}var d=u.name,g=d?CKEDITOR.dtd[d]||(u._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):e;if(!m&&!g["#"]&&d in c){k.onTagOpen(d in a?"li":d=="dl"?"dd":d=="table"?"tr":d=="tr"?"td":"");k.onText(b)}else{i();j();!E&&!m&&(b=b.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));b=new CKEDITOR.htmlParser.text(b);if(o(u,b))this.onTagOpen(f,{},0,1);u.add(b)}};k.onCDATA=function(a){u.add(new CKEDITOR.htmlParser.cdata(a))};
k.onComment=function(a){i();j();u.add(new CKEDITOR.htmlParser.comment(a))};k.parse(d);for(i(!CKEDITOR.env.ie&&1);u!=g;)n(u,u.parent,1);l(g);return g};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=b>0?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT){c.value=CKEDITOR.tools.rtrim(c.value);if(c.value.length===0){this.children.pop();this.add(a);return}}c.next=a}a.previous=c;a.parent=this;
this.children.splice(b,0,a);if(!this._.hasInlineStarted)this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike},filter:function(a){a.onRoot(this);this.filterChildren(a)},filterChildren:function(a,b){if(this.childrenFilteredBy!=a.id){if(b&&!this.parent)a.onRoot(this);this.childrenFilteredBy=a.id;for(var c=0;c<this.children.length;c++)this.children[c].filter(a)===false&&c--}},writeHtml:function(a,b){b&&this.filter(b);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,
b,c){if(c&&!this.parent&&b)b.onRoot(this);b&&this.filterChildren(b);for(var b=0,c=this.children,e=c.length;b<e;b++)c[b].writeHtml(a)},forEach:function(a,b,c){!c&&(!b||this.type==b)&&a(this);for(var c=this.children,e,i=0,l=c.length;i<l;i++){e=c[i];e.type==CKEDITOR.NODE_ELEMENT?e.forEach(a,b):(!b||e.type==b)&&a(e)}}}})();
(function(){function b(a,b){for(var c=0;a&&c<b.length;c++)var d=b[c],a=a.replace(d[0],d[1]);return a}function c(a,b,c){typeof b=="function"&&(b=[b]);var d,e;e=a.length;var n=b&&b.length;if(n){for(d=0;d<e&&a[d].pri<=c;d++);for(e=n-1;e>=0;e--)if(n=b[e]){n.pri=c;a.splice(d,0,n)}}}function a(a,b,c){if(b)for(var d in b){var l=a[d];a[d]=e(l,b[d],c);l||a.$length++}}function e(a,b,e){if(b){b.pri=e;if(a){if(a.splice)c(a,b,e);else{a=a.pri>e?[b,a]:[a,b];a.filter=d}return a}return b.filter=b}}function d(a){for(var b=
a.type||a instanceof CKEDITOR.htmlParser.fragment,c=0;c<this.length;c++){if(b)var d=a.type,e=a.name;var n=this[c].apply(window,arguments);if(n===false)return n;if(b){if(n&&(n.name!=e||n.type!=d))return n}else if(typeof n!="string")return n;n!=void 0&&(a=n)}return a}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(a){this.id=CKEDITOR.tools.getNextNumber();this._={elementNames:[],attributeNames:[],elements:{$length:0},attributes:{$length:0}};a&&this.addRules(a,10)},proto:{addRules:function(b,
d){typeof d!="number"&&(d=10);c(this._.elementNames,b.elementNames,d);c(this._.attributeNames,b.attributeNames,d);a(this._.elements,b.elements,d);a(this._.attributes,b.attributes,d);this._.text=e(this._.text,b.text,d)||this._.text;this._.comment=e(this._.comment,b.comment,d)||this._.comment;this._.root=e(this._.root,b.root,d)||this._.root},applyTo:function(a){a.filter(this)},onElementName:function(a){return b(a,this._.elementNames)},onAttributeName:function(a){return b(a,this._.attributeNames)},onText:function(a){var b=
this._.text;return b?b.filter(a):a},onComment:function(a,b){var c=this._.comment;return c?c.filter(a,b):a},onRoot:function(a){var b=this._.root;return b?b.filter(a):a},onElement:function(a){for(var b=[this._.elements["^"],this._.elements[a.name],this._.elements.$],c,d=0;d<3;d++)if(c=b[d]){c=c.filter(a,this);if(c===false)return null;if(c&&c!=a)return this.onNode(c);if(a.parent&&!a.name)break}return a},onNode:function(a){var b=a.type;return b==CKEDITOR.NODE_ELEMENT?this.onElement(a):b==CKEDITOR.NODE_TEXT?
new CKEDITOR.htmlParser.text(this.onText(a.value)):b==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a.value)):null},onAttribute:function(a,b,c){if(b=this._.attributes[b]){a=b.filter(c,a,this);if(a===false)return false;if(typeof a!="undefined")return a}return c}}})})();
(function(){function b(b,c){function g(a){return a||CKEDITOR.env.ie?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function k(b,c){return function(d){if(d.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var f=[],k=a(d),p,t;if(k)for(o(k,1)&&f.push(k);k;){if(h(k)&&(p=e(k))&&o(p))if((t=e(p))&&!h(t))f.push(p);else{var q=p,j=g(m),w=q.parent.children,B=CKEDITOR.tools.indexOf(w,q);w.splice(B+1,0,j);w=q.next;q.next=j;j.previous=q;j.parent=q.parent;j.next=w;i(p)}k=k.previous}for(k=
0;k<f.length;k++)i(f[k]);if(f=CKEDITOR.env.opera&&!b||(typeof c=="function"?c(d)!==false:c))if(!m&&CKEDITOR.env.ie&&d.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)f=false;else if(!m&&CKEDITOR.env.ie&&(document.documentMode>7||d.name in CKEDITOR.dtd.tr||d.name in CKEDITOR.dtd.$listItem))f=false;else{f=a(d);f=!f||d.name=="form"&&f.name=="input"}f&&d.add(g(b))}}}function o(a,b){if((!m||!CKEDITOR.env.ie)&&a.type==CKEDITOR.NODE_ELEMENT&&a.name=="br"&&!a.attributes["data-cke-eol"])return true;var c;if(a.type==
CKEDITOR.NODE_TEXT&&(c=a.value.match(E))){if(c.index){f(a,new CKEDITOR.htmlParser.text(a.value.substring(0,c.index)));a.value=c[0]}if(CKEDITOR.env.ie&&m&&(!b||a.parent.name in t))return true;if(!m)if((c=a.previous)&&c.name=="br"||!c||h(c))return true}return false}var p={elements:{}},m=c=="html",t=CKEDITOR.tools.extend({},z),q;for(q in t)"#"in r[q]||delete t[q];for(q in t)p.elements[q]=k(m,b.config.fillEmptyBlocks!==false);p.root=k(m);p.elements.br=function(a){return function(b){if(b.parent.type!=
CKEDITOR.NODE_DOCUMENT_FRAGMENT){var c=b.attributes;if("data-cke-bogus"in c||"data-cke-eol"in c)delete c["data-cke-bogus"];else{for(c=b.next;c&&d(c);)c=c.next;var k=e(b);!c&&h(b.parent)?j(b.parent,g(a)):h(c)&&(k&&!h(k))&&f(c,g(a))}}}}(m);return p}function c(a){return a.enterMode!=CKEDITOR.ENTER_BR&&a.autoParagraph!==false?a.enterMode==CKEDITOR.ENTER_DIV?"div":"p":false}function a(a){for(a=a.children[a.children.length-1];a&&d(a);)a=a.previous;return a}function e(a){for(a=a.previous;a&&d(a);)a=a.previous;
return a}function d(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function h(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in z||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function f(a,b){var c=a.parent.children,d=CKEDITOR.tools.indexOf(c,a);c.splice(d,0,b);c=a.previous;a.previous=b;b.next=a;b.parent=a.parent;if(c){b.previous=c;c.next=b}}function j(a,b){var c=a.children[a.children.length-1];a.children.push(b);
b.parent=a;if(c){c.next=b;b.previous=c}}function i(a){var b=a.parent.children,c=CKEDITOR.tools.indexOf(b,a),d=a.previous,a=a.next;d&&(d.next=a);a&&(a.previous=d);b.splice(c,1)}function l(a){var b=a.parent;return b?CKEDITOR.tools.indexOf(b.children,a):-1}function n(a){a=a.attributes;a.contenteditable!="false"&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function o(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}
function q(a){return a.replace(t,function(a,b,c){return"<"+b+c.replace(w,function(a,b){if(!/^on/.test(b)&&c.indexOf("data-cke-saved-"+b)==-1){a=a.slice(1);return" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a}return a})+">"})}function k(a,b){return a.replace(b,function(a,b,c){a.indexOf("<textarea")===0&&(a=b+v(c).replace(/</g,"&lt;").replace(/>/g,"&gt;")+"</textarea>");return"<cke:encoded>"+encodeURIComponent(a)+"</cke:encoded>"})}function g(a){return a.replace(D,function(a,b){return decodeURIComponent(b)})}
function p(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,function(a){return"<\!--"+A+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\>"})}function v(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)})}function u(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 m(a,
b){for(var c=[],d=b.config.protectedSource,g=b._.dataStore||(b._.dataStore={id:1}),e=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g,d=[/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi].concat(d),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(c.push(a)-1)+"--\>"}),f=0;f<d.length;f++)a=a.replace(d[f],function(a){a=a.replace(e,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"<\!--{cke_temp}"+(c.push(a)-1)+"--\>"});a=a.replace(e,function(a,b,d){return"<\!--"+
A+(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){g[g.id]=decodeURIComponent(b);return"{cke_protected_"+g.id++ +"}"})})}CKEDITOR.htmlDataProcessor=function(a){var d,e,f=this;this.editor=a;this.dataFilter=d=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;d.addRules(s);d.addRules(b(a,
"data"));e.addRules(C);e.addRules(b(a,"html"));a.on("toHtml",function(b){var b=b.data,d=b.dataValue,d=m(d,a),d=k(d,G),d=q(d),d=k(d,I),d=d.replace(Q,"$1cke:$2"),d=d.replace(F,"<cke:$1$2></cke:$1>"),d=CKEDITOR.env.opera?d:d.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),e=b.context||a.editable().getName(),f;if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&e=="pre"){e="div";d="<pre>"+d+"</pre>";f=1}e=a.document.createElement(e);e.setHtml("a"+d);d=e.getHtml().substr(1);d=d.replace(RegExp(" data-cke-"+CKEDITOR.rnd+
"-","ig")," ");f&&(d=d.replace(/^<pre>|<\/pre>$/gi,""));d=d.replace(L,"$1$2");d=g(d);d=v(d);b.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,b.context,b.fixForBody===false?false:c(a.config))},null,null,5);a.on("toHtml",function(a){a.data.dataValue.filterChildren(f.dataFilter,true)},null,null,10);a.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=p(b)},null,null,15);a.on("toDataFormat",function(b){b.data.dataValue=
CKEDITOR.htmlParser.fragment.fromHtml(b.data.dataValue,a.editable().getName(),c(a.config))},null,null,5);a.on("toDataFormat",function(a){a.data.dataValue.filterChildren(f.htmlFilter,true)},null,null,10);a.on("toDataFormat",function(b){var c=b.data.dataValue,d=f.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(true);c=v(c);c=u(c,a);b.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var g=this.editor;!b&&b!==null&&(b=g.editable().getName());return g.fire("toHtml",
{dataValue:a,context:b,fixForBody:c,dontFilter:!!d}).dataValue},toDataFormat:function(a){return this.editor.fire("toDataFormat",{dataValue:a}).dataValue}};var E=/(?:&nbsp;|\xa0)$/,A="{cke_protected}",r=CKEDITOR.dtd,x=["caption","colgroup","col","thead","tfoot","tbody"],z=CKEDITOR.tools.extend({},r.$blockLimit,r.$block),s={elements:{},attributeNames:[[/^on/,"data-cke-pa-on"]]},C={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,g=0;g<c.length;g++){d="data-cke-saved-"+c[g];d in b&&delete b[c[g]]}}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(x,a.name);d=CKEDITOR.tools.indexOf(x,b.name)}if(!(c>-1&&d>-1&&c!=d)){c=l(a);d=l(b)}return c>d?1:-1})},embed:function(a){var b=a.parent;if(b&&b.name=="object"){var c=
b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},param:function(a){a.children=[];a.isEmpty=true;return a},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false},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];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&&j(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""}},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||false}}};if(CKEDITOR.env.ie)C.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})};for(var y in{input:1,
textarea:1}){s.elements[y]=n;C.elements[y]=o}var t=/<(a|area|img|input|source)\b([^>]*)>/gi,w=/\s(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,I=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,G=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,D=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,Q=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,L=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,F=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();
"use strict";CKEDITOR.htmlParser.element=function(b,c){this.name=b;this.attributes=c||{};this.children=[];var a=b||"",e=a.match(/^cke:(.*)/);e&&(a=e[1]);a=!(!CKEDITOR.dtd.$nonBodyContent[a]&&!CKEDITOR.dtd.$block[a]&&!CKEDITOR.dtd.$listItem[a]&&!CKEDITOR.dtd.$tableContent[a]&&!(CKEDITOR.dtd.$nonEditable[a]||a=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[b];this.isUnknown=!CKEDITOR.dtd[b];this._={isBlockLike:a,hasInlineStarted:this.isEmpty||!a}};
CKEDITOR.htmlParser.cssStyle=function(b){var c={};((b instanceof CKEDITOR.htmlParser.element?b.attributes.style:b)||"").replace(/&quot;/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,b,d){b=="font-family"&&(d=d.replace(/["']/g,""));c[b.toLowerCase()]=d});return{rules:c,populate:function(a){var b=this.toString();if(b)a instanceof CKEDITOR.dom.element?a.setAttribute("style",b):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=b:a.style=b},toString:function(){var a=[],b;
for(b in c)c[b]&&a.push(b,":",c[b],";");return a.join("")}}};
(function(){var b=function(a,b){a=a[0];b=b[0];return a<b?-1:a>b?1:0},c=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:c.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a){var b=this,c,h;if(!b.parent)a.onRoot(b);for(;;){c=b.name;if(!(h=a.onElementName(c))){this.remove();return false}b.name=h;if(!(b=a.onElement(b))){this.remove();return false}if(b!==
this){this.replaceWith(b);return false}if(b.name==c)break;if(b.type!=CKEDITOR.NODE_ELEMENT){this.replaceWith(b);return false}if(!b.name){this.replaceWithChildren();return false}}c=b.attributes;var f,j;for(f in c){j=f;for(h=c[f];;)if(j=a.onAttributeName(f))if(j!=f){delete c[f];f=j}else break;else{delete c[f];break}j&&((h=a.onAttribute(b,j,h))===false?delete c[j]:c[j]=h)}b.isEmpty||this.filterChildren(a);return true},filterChildren:c.filterChildren,writeHtml:function(a,c){c&&this.filter(c);var d=this.name,
h=[],f=this.attributes,j,i;a.openTag(d,f);for(j in f)h.push([j,f[j]]);a.sortAttributes&&h.sort(b);j=0;for(i=h.length;j<i;j++){f=h[j];a.attribute(f[0],f[1])}a.openTagClose(d,this.isEmpty);this.writeChildrenHtml(a);this.isEmpty||a.closeTag(d)},writeChildrenHtml:c.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);this.remove()},forEach:c.forEach})})();
(function(){var b={};CKEDITOR.template=function(c){if(b[c])this.output=b[c];else{var a=c.replace(/'/g,"\\'").replace(/{([^}]+)}/g,function(a,b){return"',data['"+b+"']==undefined?'{"+b+"}':data['"+b+"'],'"});this.output=b[c]=Function("data","buffer","return buffer?buffer.push('"+a+"'):['"+a+"'].join('');")}}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
CKEDITOR.add=function(b){CKEDITOR.instances[b.name]=b;b.on("focus",function(){if(CKEDITOR.currentInstance!=b){CKEDITOR.currentInstance=b;CKEDITOR.fire("currentInstance")}});b.on("blur",function(){if(CKEDITOR.currentInstance==b){CKEDITOR.currentInstance=null;CKEDITOR.fire("currentInstance")}});CKEDITOR.fire("instance",null,b)};CKEDITOR.remove=function(b){delete CKEDITOR.instances[b.name]};
(function(){var b={};CKEDITOR.addTemplate=function(c,a){var e=b[c];if(e)return e;e={name:c,source:a};CKEDITOR.fire("template",e);return b[c]=new CKEDITOR.template(e.source)};CKEDITOR.getTemplate=function(c){return b[c]}})();(function(){var b=[];CKEDITOR.addCss=function(c){b.push(c)};CKEDITOR.getCss=function(){return b.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(b,c){if(!CKEDITOR.env.isCompatible)return null;b=CKEDITOR.dom.element.get(b);if(b.getEditor())throw'The editor instance "'+b.getEditor().name+'" is already attached to the provided element.';var a=new CKEDITOR.editor(c,b,CKEDITOR.ELEMENT_MODE_INLINE),e=b.is("textarea")?b:null;if(e){a.setData(e.getValue(),null,true);b=CKEDITOR.dom.element.createFromHtml('<div contenteditable="'+!!a.readOnly+'" class="cke_textarea_inline">'+e.getValue()+"</div>",CKEDITOR.document);
b.insertAfter(e);e.hide();e.$.form&&a._attachToForm()}else a.setData(b.getHtml(),null,true);a.on("loaded",function(){a.fire("uiReady");a.editable(b);a.container=b;a.setData(a.getData(1));a.resetDirty();a.fire("contentDom");a.mode="wysiwyg";a.fire("mode");a.status="ready";a.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,a)},null,null,1E4);a.on("destroy",function(){if(e){a.container.clearCustomData();a.container.remove();e.show()}a.element.clearCustomData();delete a.element});return a};
CKEDITOR.inlineAll=function(){var b,c,a;for(a in CKEDITOR.dtd.$editable)for(var e=CKEDITOR.document.getElementsByTag(a),d=0,h=e.count();d<h;d++){b=e.getItem(d);if(b.getAttribute("contenteditable")=="true"){c={element:b,config:{}};CKEDITOR.fire("inline",c)!==false&&CKEDITOR.inline(b,c.config)}}};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor";
(function(){function b(b,e,f,j){if(!CKEDITOR.env.isCompatible)return null;b=CKEDITOR.dom.element.get(b);if(b.getEditor())throw'The editor instance "'+b.getEditor().name+'" is already attached to the provided element.';var i=new CKEDITOR.editor(e,b,j);if(j==CKEDITOR.ELEMENT_MODE_REPLACE){b.setStyle("visibility","hidden");i._.required=b.hasAttribute("required");b.removeAttribute("required")}f&&i.setData(f,null,true);i.on("loaded",function(){a(i);j==CKEDITOR.ELEMENT_MODE_REPLACE&&(i.config.autoUpdateElement&&
b.$.form)&&i._attachToForm();i.setMode(i.config.startupMode,function(){i.resetDirty();i.status="ready";i.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,i)})});i.on("destroy",c);return i}function c(){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 a(a){var b=a.name,c=a.element,j=a.elementMode,
i=a.fire("uiSpace",{space:"top",html:""}).html,l=a.fire("uiSpace",{space:"bottom",html:""}).html;e||(e=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"><span id="cke_{name}_arialbl" class="cke_voice_label">{voiceLabel}</span><{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation"></{outerEl}>{bottomHtml}</{outerEl}></{outerEl}>'));
b=CKEDITOR.dom.element.createFromHtml(e.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:[a.lang.editor,a.name].join(", "),topHtml:i?'<span id="'+a.ui.spaceId("top")+'" class="cke_top cke_reset_all" role="presentation" style="height:auto">'+i+"</span>":"",contentId:a.ui.spaceId("contents"),bottomHtml:l?'<span id="'+a.ui.spaceId("bottom")+'" class="cke_bottom cke_reset_all" role="presentation">'+l+"</span>":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(j==CKEDITOR.ELEMENT_MODE_REPLACE){c.hide();
b.insertAfter(c)}else c.append(b);a.container=b;i&&a.ui.space("top").unselectable();l&&a.ui.space("bottom").unselectable();c=a.config.width;j=a.config.height;c&&b.setStyle("width",CKEDITOR.tools.cssLength(c));j&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(j));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(a,c){return b(a,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(a,c,e){return b(a,
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 i=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;i!==void 0&&!i&&c.resetDirty();setTimeout(function(){c.fire("mode");b&&b.call(c)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,c,e){var i=this.container,l=this.ui.space("contents"),n=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement,
e=e?i.getChild(1):i;e.setSize("width",a,true);n&&(n.style.width="1%");l.setStyle("height",Math.max(b-(c?0:(e.$.offsetHeight||0)-(l.$.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 e;CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
(function(){function b(b){var c=b.editor,d=c.editable(),g=b.data.path,e=g.blockLimit,f=b.data.selection.getRanges()[0],h=c.config.enterMode;if(CKEDITOR.env.gecko){var m=g.block||g.blockLimit||g.root,i=m&&m.getLast(a);m&&(m.isBlockBoundary()&&(!i||!(i.type==CKEDITOR.NODE_ELEMENT&&i.isBlockBoundary()))&&!m.is("pre")&&!m.getBogus())&&m.appendBogus()}if(c.config.autoParagraph!==false&&h!=CKEDITOR.ENTER_BR&&f.collapsed&&d.equals(e)&&!g.block){d=f.clone();d.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);g=new CKEDITOR.dom.walker(d);
g.guard=function(b){return!a(b)||b.type==CKEDITOR.NODE_COMMENT||b.isReadOnly()};if(!g.checkForward()||d.checkStartOfBlock()&&d.checkEndOfBlock()){c=f.fixBlock(true,c.config.enterMode==CKEDITOR.ENTER_DIV?"div":"p");if(CKEDITOR.env.ie)(c=c.getFirst(a))&&(c.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(c.getText()).match(/^(?:&nbsp;|\xa0)$/))&&c.remove();f.select();b.cancel()}}}function c(a){var b=a.data.getTarget();if(b.is("input")){b=b.getAttribute("type");(b=="submit"||b=="reset")&&a.data.preventDefault()}}
function a(a){return i(a)&&l(a)}function e(a,b){return function(c){var d=CKEDITOR.dom.element.get(c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget);(!d||!b.equals(d)&&!b.contains(d))&&a.call(this,c)}}function d(b){var c,d=b.getRanges()[0],b=b.root,g=d.startPath(),e={table:1,ul:1,ol:1,dl:1},f=CKEDITOR.dom.walker.bogus();if(g.contains(e)){var h=d.clone();h.collapse(1);h.setStartAt(b,CKEDITOR.POSITION_AFTER_START);h=new CKEDITOR.dom.walker(h);g=function(b,d){return function(b,g){g&&(b.type==
CKEDITOR.NODE_ELEMENT&&b.is(e))&&(c=b);if(a(b)&&!g&&(!d||!f(b)))return false}};h.guard=g(h);h.checkBackward();if(c){h=d.clone();h.collapse();h.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);h=new CKEDITOR.dom.walker(h);h.guard=g(h,1);c=0;h.checkForward();return c}}return null}function h(a){a.editor.focus();a.editor.fire("saveSnapshot")}function f(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(){this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]();CKEDITOR.env.safari&&!this.isInline()&&(CKEDITOR.document.getActive().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=e(b,this);c[0]=a;c[1]=b}return CKEDITOR.dom.element.prototype.on.apply(this,
c)},attachListener:function(a,b,c,d,e,f){!this._.listeners&&(this._.listeners=[]);var h=Array.prototype.slice.call(arguments,1);this._.listeners.push(a.on.apply(a,h))},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);n(this,b||"html",a)},insertText:function(a){h(this);var b=this.editor,c=b.getSelection().getStartElement().hasAscendant("pre",true)?CKEDITOR.ENTER_BR:b.config.enterMode,b=c==CKEDITOR.ENTER_BR,d=CKEDITOR.tools,a=d.htmlEncode(a.replace(/\r\n/g,
"\n")),a=a.replace(/\t/g,"&nbsp;&nbsp; &nbsp;"),c=c==CKEDITOR.ENTER_P?"p":"div";if(!b){var e=/\n{2}/g;if(e.test(a))var f="<"+c+">",i="</"+c+">",a=f+a.replace(e,function(){return i+f})+i}a=a.replace(/\n/g,"<br>");b||(a=a.replace(RegExp("<br>(?=</"+c+">)"),function(a){return d.repeat(a,2)}));a=a.replace(/^ | $/g,"&nbsp;");a=a.replace(/(>|\s) /g,function(a,b){return b+"&nbsp;"}).replace(/ (?=<)/g,"&nbsp;");n(this,"text",a)},insertElement:function(b){h(this);for(var c=this.editor,d=c.config.enterMode,
g=c.getSelection(),e=g.getRanges(),i=b.getName(),j=CKEDITOR.dtd.$block[i],m,n,l,r=e.length-1;r>=0;r--){m=e[r];if(!m.checkReadOnly()){m.deleteContents(1);n=!r&&b||b.clone(1);var x,z;if(j)for(;(x=m.getCommonAncestor(0,1))&&(z=CKEDITOR.dtd[x.getName()])&&(!z||!z[i]);)if(x.getName()in CKEDITOR.dtd.span)m.splitElement(x);else if(m.checkStartOfBlock()&&m.checkEndOfBlock()){m.setStartBefore(x);m.collapse(true);x.remove()}else m.splitBlock(d==CKEDITOR.ENTER_DIV?"div":"p",c.editable());m.insertNode(n);l||
(l=n)}}if(l){m.moveToPosition(l,CKEDITOR.POSITION_AFTER_END);if(j)if((b=l.getNext(a))&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(CKEDITOR.dtd.$block))b.getDtd()["#"]?m.moveToElementEditStart(b):m.moveToElementEditEnd(l);else if(!b&&d!=CKEDITOR.ENTER_BR){b=m.fixBlock(true,d==CKEDITOR.ENTER_DIV?"div":"p");m.moveToElementEditStart(b)}}g.selectRanges([m]);f(this,CKEDITOR.env.opera)},setData:function(a,b){!b&&this.editor.dataProcessor&&(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.editor.fire("dataReady")},
getData:function(a){var b=this.getHtml();!a&&this.editor.dataProcessor&&(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(j,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 b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var e=a.config.contentsLangDirection;this.getDirection(1)!=e&&this.changeAttr("dir",e);var g=CKEDITOR.getCss();if(g){e=b.getHead();if(!e.getCustomData("stylesheet")){g=b.appendStyleText(g);g=new CKEDITOR.dom.element(g.ownerNode||g.owningElement);e.setCustomData("stylesheet",g);g.data("cke-temp",1)}}e=
b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",e+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){var a=a.data,b=a.getTarget();b.is("a")&&(a.$.button!=2&&b.isReadOnly())&&a.preventDefault()});this.attachListener(a,"key",function(b){if(a.readOnly)return true;var c=b.data.keyCode,g;if(c in{8:1,46:1}){var e=a.getSelection(),b=e.getRanges()[0],f=b.startPath(),k,h,j,c=c==8;if(e=d(e)){a.fire("saveSnapshot");
b.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START);e.remove();b.select();a.fire("saveSnapshot");g=1}else if(b.collapsed)if((k=f.block)&&b[c?"checkStartOfBlock":"checkEndOfBlock"]()&&(j=k[c?"getPrevious":"getNext"](i))&&j.is("table")){a.fire("saveSnapshot");b[c?"checkEndOfBlock":"checkStartOfBlock"]()&&k.remove();b["moveToElementEdit"+(c?"End":"Start")](j);b.select();a.fire("saveSnapshot");g=1}else if(f.blockLimit&&f.blockLimit.is("td")&&(h=f.blockLimit.getAscendant("table"))&&b.checkBoundaryOfElement(h,
c?CKEDITOR.START:CKEDITOR.END)&&(j=h[c?"getPrevious":"getNext"](i))){a.fire("saveSnapshot");b["moveToElementEdit"+(c?"End":"Start")](j);b.checkStartOfBlock()&&b.checkEndOfBlock()?j.remove():b.select();a.fire("saveSnapshot");g=1}else if((h=f.contains(["td","th","caption"]))&&b.checkBoundaryOfElement(h,c?CKEDITOR.START:CKEDITOR.END))g=1}return!g});CKEDITOR.env.ie&&this.attachListener(this,"click",c);!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(j,"")){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()}}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=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,i=CKEDITOR.dom.walker.whitespaces(true),l=CKEDITOR.dom.walker.bookmark(false,true);CKEDITOR.on("instanceLoaded",function(a){var c=a.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(a){if(!c.readOnly){var d=c.getSelection();if(d&&!d.isLocked){d=c.checkDirty();c.fire("lockSnapshot");b(a);c.fire("unlockSnapshot");!d&&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 d=CKEDITOR.tools.getNextId(),e=CKEDITOR.dom.element.createFromHtml('<span id="'+d+'" class="cke_voice_label">'+this.lang.common.editorHelp+"</span>");c.append(e);a.changeAttr("aria-describedby",d)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");
var n=function(){function b(a){return a.type==CKEDITOR.NODE_ELEMENT}function c(a,d){var g,e,f,h,k=[],m=d.range.startContainer;g=d.range.startPath();for(var m=i[m.getName()],p=0,j=a.getChildren(),n=j.count(),l=-1,v=-1,E=0,A=g.contains(i.$list);p<n;++p){g=j.getItem(p);if(b(g)){f=g.getName();if(A&&f in CKEDITOR.dtd.$list)k=k.concat(c(g,d));else{h=!!m[f];if(f=="br"&&g.data("cke-eol")&&(!p||p==n-1)){E=(e=p?k[p-1].node:j.getItem(p+1))&&(!b(e)||!e.is("br"));e=e&&b(e)&&i.$block[e.getName()]}l==-1&&!h&&(l=
p);h||(v=p);k.push({isElement:1,isLineBreak:E,isBlock:g.isBlockBoundary(),hasBlockSibling:e,node:g,name:f,allowed:h});e=E=0}}else k.push({isElement:0,node:g,allowed:1})}if(l>-1)k[l].firstNotAllowed=1;if(v>-1)k[v].lastNotAllowed=1;return k}function d(a,c){var g=[],e=a.getChildren(),f=e.count(),h,m=0,p=i[c],j=!a.is(i.$inline)||a.is("br");for(j&&g.push(" ");m<f;m++){h=e.getItem(m);b(h)&&!h.is(p)?g=g.concat(d(h,c)):g.push(h)}j&&g.push(" ");return g}function g(a){return a&&b(a)&&(a.is(i.$removeEmpty)||
a.is("a")&&!a.isBlockBoundary())}function e(a,c,d,g){var f=a.clone(),h,k;f.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);if((h=(new CKEDITOR.dom.walker(f)).next())&&b(h)&&m[h.getName()]&&(k=h.getPrevious())&&b(k)&&!k.getParent().equals(a.startContainer)&&d.contains(k)&&g.contains(h)&&h.isIdentical(k)){h.moveChildren(k);h.remove();e(a,c,d,g)}}function h(a,c){function d(a,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&b(a)&&a.is("br")){a.remove();return 1}}var g=c.endContainer.getChild(c.endOffset),e=c.endContainer.getChild(c.endOffset-
1);g&&d(g,a[a.length-1]);if(e&&d(e,a[0])){c.setEnd(c.endContainer,c.endOffset-1);c.collapse()}}var i=CKEDITOR.dtd,m={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},j={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({},i.$inline);delete n.br;return function(m,l,z){var s=m.editor;m.getDocument();var C=s.getSelection().getRanges()[0],y=false;if(l=="unfiltered_html"){l="html";y=true}if(!C.checkReadOnly()){var t=(new CKEDITOR.dom.elementPath(C.startContainer,
C.root)).blockLimit||C.root,l={type:l,dontFilter:y,editable:m,editor:s,range:C,blockLimit:t,mergeCandidates:[],zombies:[]},s=l.range,y=l.mergeCandidates,w,I,G,D;if(l.type=="text"&&s.shrink(CKEDITOR.SHRINK_ELEMENT,true,false)){w=CKEDITOR.dom.element.createFromHtml("<span>&nbsp;</span>",s.document);s.insertNode(w);s.setStartAfter(w)}I=new CKEDITOR.dom.elementPath(s.startContainer);l.endPath=G=new CKEDITOR.dom.elementPath(s.endContainer);if(!s.collapsed){var t=G.block||G.blockLimit,Q=s.getCommonAncestor();
t&&(!t.equals(Q)&&!t.contains(Q)&&s.checkEndOfBlock())&&l.zombies.push(t);s.deleteContents()}for(;(D=b(s.startContainer)&&s.startContainer.getChild(s.startOffset-1))&&b(D)&&D.isBlockBoundary()&&I.contains(D);)s.moveToPosition(D,CKEDITOR.POSITION_BEFORE_END);e(s,l.blockLimit,I,G);if(w){s.setEndBefore(w);s.collapse();w.remove()}w=s.startPath();if(t=w.contains(g,false,1)){s.splitElement(t);l.inlineStylesRoot=t;l.inlineStylesPeak=w.lastElement}w=s.createBookmark();(t=w.startNode.getPrevious(a))&&b(t)&&
g(t)&&y.push(t);(t=w.startNode.getNext(a))&&b(t)&&g(t)&&y.push(t);for(t=w.startNode;(t=t.getParent())&&g(t);)y.push(t);s.moveToBookmark(w);if(w=z){w=l.range;if(l.type=="text"&&l.inlineStylesRoot){D=l.inlineStylesPeak;s=D.getDocument().createText("{cke-peak}");for(y=l.inlineStylesRoot.getParent();!D.equals(y);){s=s.appendTo(D.clone());D=D.getParent()}z=s.getOuterHtml().split("{cke-peak}").join(z)}D=l.blockLimit.getName();if(/^\s+|\s+$/.test(z)&&"span"in CKEDITOR.dtd[D])var L='<span data-cke-marker="1">&nbsp;</span>',
z=L+z+L;z=l.editor.dataProcessor.toHtml(z,null,false,l.dontFilter);D=w.document.createElement("body");D.setHtml(z);if(L){D.getFirst().remove();D.getLast().remove()}if((L=w.startPath().block)&&!(L.getChildCount()==1&&L.getBogus()))a:{var F;if(D.getChildCount()==1&&b(F=D.getFirst())&&F.is(j)){L=F.getElementsByTag("*");w=0;for(y=L.count();w<y;w++){s=L.getItem(w);if(!s.is(n))break a}F.moveChildren(F.getParent(1));F.remove()}}l.dataWrapper=D;w=z}if(w){F=l.range;var L=F.document,B,z=l.blockLimit;w=0;var J;
D=[];var H,N,y=s=0,K,O;I=F.startContainer;var t=l.endPath.elements[0],P;G=t.getPosition(I);Q=!!t.getCommonAncestor(I)&&G!=CKEDITOR.POSITION_IDENTICAL&&!(G&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);I=c(l.dataWrapper,l);for(h(I,F);w<I.length;w++){G=I[w];if(B=G.isLineBreak){B=F;K=z;var M=void 0,R=void 0;if(G.hasBlockSibling)B=1;else{M=B.startContainer.getAscendant(i.$block,1);if(!M||!M.is({div:1,p:1}))B=0;else{R=M.getPosition(K);if(R==CKEDITOR.POSITION_IDENTICAL||R==CKEDITOR.POSITION_CONTAINS)B=
0;else{K=B.splitElement(M);B.moveToPosition(K,CKEDITOR.POSITION_AFTER_START);B=1}}}}if(B)y=w>0;else{B=F.startPath();if(!G.isBlock&&(N=l.editor.config.enterMode!=CKEDITOR.ENTER_BR&&l.editor.config.autoParagraph!==false?l.editor.config.enterMode==CKEDITOR.ENTER_DIV?"div":"p":false)&&!B.block&&B.blockLimit&&B.blockLimit.equals(F.root)){N=L.createElement(N);!CKEDITOR.env.ie&&N.appendBogus();F.insertNode(N);!CKEDITOR.env.ie&&(J=N.getBogus())&&J.remove();F.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END)}if((B=
F.startPath().block)&&!B.equals(H)){if(J=B.getBogus()){J.remove();D.push(B)}H=B}G.firstNotAllowed&&(s=1);if(s&&G.isElement){B=F.startContainer;for(K=null;B&&!i[B.getName()][G.name];){if(B.equals(z)){B=null;break}K=B;B=B.getParent()}if(B){if(K){O=F.splitElement(K);l.zombies.push(O);l.zombies.push(K)}}else{K=z.getName();P=!w;B=w==I.length-1;K=d(G.node,K);for(var M=[],R=K.length,T=0,U=void 0,V=0,W=-1;T<R;T++){U=K[T];if(U==" "){if(!V&&(!P||T)){M.push(new CKEDITOR.dom.text(" "));W=M.length}V=1}else{M.push(U);
V=0}}B&&W==M.length&&M.pop();P=M}}if(P){for(;B=P.pop();)F.insertNode(B);P=0}else F.insertNode(G.node);if(G.lastNotAllowed&&w<I.length-1){(O=Q?t:O)&&F.setEndAt(O,CKEDITOR.POSITION_AFTER_START);s=0}F.collapse()}}l.dontMoveCaret=y;l.bogusNeededBlocks=D}J=l.range;var S;O=l.bogusNeededBlocks;for(P=J.createBookmark();H=l.zombies.pop();)if(H.getParent()){N=J.clone();N.moveToElementEditStart(H);N.removeEmptyBlocksAtEnd()}if(O)for(;H=O.pop();)H.append(CKEDITOR.env.ie?J.document.createText(" "):J.document.createElement("br"));
for(;H=l.mergeCandidates.pop();)H.mergeSiblings();J.moveToBookmark(P);if(!l.dontMoveCaret){for(H=b(J.startContainer)&&J.startContainer.getChild(J.startOffset-1);H&&b(H)&&!H.is(i.$empty);){if(H.isBlockBoundary())J.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END);else{if(g(H)&&H.getHtml().match(/(\s|&nbsp;)$/g)){S=null;break}S=J.clone();S.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END)}H=H.getLast(a)}S&&J.moveToRange(S)}C.select();f(m)}}}()})();
(function(){function b(){var a=this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){this.fire("selectionCheck",a);var b=this.elementPath();if(!b.compare(this._.selectionPreviousPath)){this._.selectionPreviousPath=b;this.fire("selectionChange",{selection:a,path:b})}}}function c(){l=true;if(!i){a.call(this);i=CKEDITOR.tools.setTimeout(a,200,this)}}function a(){i=null;if(l){CKEDITOR.tools.setTimeout(b,0,this);l=false}}function e(a){function b(c,d){return!c||c.type==CKEDITOR.NODE_TEXT?false:
a.clone()["moveToElementEdit"+(d?"End":"Start")](c)}if(!(a.root instanceof CKEDITOR.editable))return false;var c=a.startContainer,d=a.getPreviousNode(n,null,c),e=a.getNextNode(n,null,c);return b(d)||b(e,1)||!d&&!e&&!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?true:false}function d(a){return a.getCustomData("cke-fillingChar")}function h(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(b!==false){var d,e=a.getDocument().getSelection().getNative(),h=e&&e.type!="None"&&
e.getRangeAt(0);if(c.getLength()>1&&h&&h.intersectsNode(c.$)){d=[e.anchorOffset,e.focusOffset];h=e.focusNode==c.$&&e.focusOffset>0;e.anchorNode==c.$&&e.anchorOffset>0&&d[0]--;h&&d[1]--;var i;h=e;if(!h.isCollapsed){i=h.getRangeAt(0);i.setStart(h.anchorNode,h.anchorOffset);i.setEnd(h.focusNode,h.focusOffset);i=i.collapsed}i&&d.unshift(d.pop())}}c.setText(f(c.getText()));if(d){c=e.getRangeAt(0);c.setStart(c.startContainer,d[0]);c.setEnd(c.startContainer,d[1]);e.removeAllRanges();e.addRange(c)}}}function f(a){return a.replace(/\u200B( )?/g,
function(a){return a[1]?" ":""})}function j(a,b,c){var d=a.on("focus",function(a){a.cancel()},null,null,-100);if(CKEDITOR.env.ie)var e=a.getDocument().on("selectionchange",function(a){a.cancel()},null,null,-100);else{var f=new CKEDITOR.dom.range(a);f.moveToElementEditStart(a);var h=a.getDocument().$.createRange();h.setStart(f.startContainer.$,f.startOffset);h.collapse(1);b.removeAllRanges();b.addRange(h)}c&&a.focus();d.removeListener();e&&e.removeListener()}var i,l,n=CKEDITOR.dom.walker.invisible(1);
CKEDITOR.on("instanceCreated",function(a){function d(){var a=e.getSelection();a&&a.removeAllRanges()}var e=a.editor;e.define("selectionChange",{errorProof:1});e.on("contentDom",function(){var a=e.document,d=CKEDITOR.document,g=e.editable(),f=a.getBody(),k=a.getDocumentElement(),i=g.isInline(),j;CKEDITOR.env.gecko&&g.attachListener(g,"focus",function(a){a.removeListener();if(j!==0){a=e.getSelection().getNative();if(a.isCollapsed&&a.anchorNode==g.$){a=e.createRange();a.moveToElementEditStart(g);a.select()}}},
null,null,-2);g.attachListener(g,"focus",function(){e.unlockSelection(j);j=0},null,null,-1);g.attachListener(g,"mousedown",function(){j=0});if(CKEDITOR.env.ie||CKEDITOR.env.opera||i){var l,n=function(){l=e.getSelection(1);l.lock()};o?g.attachListener(g,"beforedeactivate",n,null,null,-1):g.attachListener(e,"selectionCheck",n,null,null,-1);g.attachListener(g,"blur",function(){e.lockSelection(l);j=1},null,null,-1)}if(CKEDITOR.env.ie&&!i){var q;g.attachListener(g,"mousedown",function(a){a.data.$.button==
2&&e.document.$.selection.type=="None"&&(q=e.window.getScrollPosition())});g.attachListener(g,"mouseup",function(a){if(a.data.$.button==2&&q){e.document.$.documentElement.scrollLeft=q.x;e.document.$.documentElement.scrollTop=q.y}q=null});if(a.$.compatMode!="BackCompat"){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)k.on("mousedown",function(a){function b(a){a=a.data.$;if(e){var c=f.$.createTextRange();try{c.moveToPoint(a.x,a.y)}catch(d){}e.setEndPoint(h.compareEndPoints("StartToStart",c)<0?"EndToEnd":
"StartToStart",c);e.select()}}function c(){k.removeListener("mousemove",b);d.removeListener("mouseup",c);k.removeListener("mouseup",c);e.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<k.$.clientHeight&&a.$.x<k.$.clientWidth){var e=f.$.createTextRange();try{e.moveToPoint(a.$.x,a.$.y)}catch(g){}var h=e.duplicate();k.on("mousemove",b);d.on("mouseup",c);k.on("mouseup",c)}});if(CKEDITOR.env.version>7){k.on("mousedown",function(a){if(a.data.getTarget().is("html")){d.on("mouseup",y);k.on("mouseup",
y)}});var y=function(){d.removeListener("mouseup",y);k.removeListener("mouseup",y);var b=CKEDITOR.document.$.selection,c=b.createRange();b.type!="None"&&c.parentElement().ownerDocument==a.$&&c.select()}}}}g.attachListener(g,"selectionchange",b,e);g.attachListener(g,"keyup",c,e);g.attachListener(g,"focus",function(){e.forceNextSelectionCheck();e.selectionChange(1)});if(i?CKEDITOR.env.webkit||CKEDITOR.env.gecko:CKEDITOR.env.opera){var t;g.attachListener(g,"mousedown",function(){t=1});g.attachListener(a.getDocumentElement(),
"mouseup",function(){t&&c.call(e);t=0})}else g.attachListener(CKEDITOR.env.ie?g:a.getDocumentElement(),"mouseup",c,e);CKEDITOR.env.webkit&&g.attachListener(a,"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:h(g)}},null,null,-1)});e.on("contentDomUnload",e.forceNextSelectionCheck,e);e.on("dataReady",function(){e.selectionChange(1)});CKEDITOR.env.ie9Compat&&e.on("beforeDestroy",d,null,null,9);CKEDITOR.env.webkit&&e.on("setData",
d);e.on("contentDomUnload",function(){e.unlockSelection()})});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")?h(a):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){h(b.editable())},null,null,-1);var c,e,a=function(){var a=b.editable();if(a)if(a=d(a)){var h=b.document.$.defaultView.getSelection();h.type=="Caret"&&h.anchorNode==a.$&&(e=1);c=a.getText();a.setText(f(c))}},
i=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",i);b.on("beforeGetData",a,null,null,0);b.on("getData",i)}});CKEDITOR.editor.prototype.selectionChange=function(a){(a?b:c).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){if(this._.savedSelection&&!a)return this._.savedSelection;return(a=this.editable())?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 o=typeof window.getSelection!="function";CKEDITOR.dom.selection=function(a){var b=a instanceof CKEDITOR.dom.element;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=a=b?a:this.document.getBody();
this.isLocked=0;this._={cache:{}};b=o?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)&&j(a,b);else if(CKEDITOR.env.gecko)b&&(this.document.getActive().equals(a)&&b.anchorNode&&b.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT)&&j(a,b,true);else if(CKEDITOR.env.ie){var c;try{c=this.document.getActive()}catch(d){}if(o)b.type=="None"&&(c&&c.equals(this.document.getDocumentElement()))&&
j(a,null,true);else{(b=b&&b.anchorNode)&&(b=new CKEDITOR.dom.node(b));c&&(c.equals(this.document.getDocumentElement())&&b&&(a.equals(b)||a.contains(b)))&&j(a,null,true)}}c=this.getNative();var e,f;if(c)if(c.getRangeAt)e=(f=c.rangeCount&&c.getRangeAt(0))&&new CKEDITOR.dom.node(f.commonAncestorContainer);else{try{f=c.createRange()}catch(h){}e=f&&CKEDITOR.dom.element.get(f.item&&f.item(0)||f.parentElement())}if(!e||!a.equals(e)&&!a.contains(e)){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 q={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=o?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:o?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&&q[d.childNodes[c.startOffset].nodeName.toLowerCase()])b=CKEDITOR.SELECTION_ELEMENT}return a.type=b},getRanges:function(){var a=o?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(),e=d.ownerDocument;if(!d.hasChildNodes())return{container:d,offset:0};for(var f=d.children,h,i,k=b.duplicate(),j=0,l=f.length-1,n=-1,t,o;j<=l;){n=Math.floor((j+l)/2);h=f[n];k.moveToElementText(h);
t=k.compareEndPoints("StartToStart",b);if(t>0)l=n-1;else if(t<0)j=n+1;else{if(CKEDITOR.env.ie9Compat&&h.tagName=="BR"){f=e.defaultView.getSelection();return{container:f[c?"anchorNode":"focusNode"],offset:f[c?"anchorOffset":"focusOffset"]}}return{container:d,offset:a(h)}}}if(n==-1||n==f.length-1&&t<0){k.moveToElementText(d);k.setEndPoint("StartToStart",b);e=k.text.replace(/(\r\n|\r)/g,"\n").length;f=d.childNodes;if(!e){h=f[f.length-1];return h.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:f.length}:
{container:h,offset:h.nodeValue.length}}for(d=f.length;e>0&&d>0;){i=f[--d];if(i.nodeType==CKEDITOR.NODE_TEXT){o=i;e=e-i.nodeValue.length}}return{container:o,offset:-e}}k.collapse(t>0?true:false);k.setEndPoint(t>0?"StartToStart":"EndToStart",b);e=k.text.replace(/(\r\n|\r)/g,"\n").length;if(!e)return{container:d,offset:a(h)+(t>0?0:1)};for(;e>0;)try{i=h[t>0?"previousSibling":"nextSibling"];if(i.nodeType==CKEDITOR.NODE_TEXT){e=e-i.nodeValue.length;o=i}h=i}catch(p){return{container:d,offset:a(h)}}return{container:o,
offset:t>0?-e:o.nodeValue.length+e}};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 g=c.item(e),f=g.parentNode,h=0,a=new CKEDITOR.dom.range(this.root);h<f.childNodes.length&&f.childNodes[h]!=g;h++);a.setStart(new CKEDITOR.dom.node(f),h);a.setEnd(new CKEDITOR.dom.node(f),h+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,h;b;){if((h=b.type==CKEDITOR.NODE_ELEMENT)&&b.is("body")||!b.isReadOnly())break;h&&b.getAttribute("contentEditable")=="false"&&f.setStartAfter(b);b=b.getParent()}b=
f.startContainer;h=f.endContainer;var i=f.startOffset,j=f.endOffset,l=f.clone();b&&b.type==CKEDITOR.NODE_TEXT&&(i>=b.getLength()?l.setStartAfter(b):l.setStartBefore(b));h&&h.type==CKEDITOR.NODE_TEXT&&(j?l.setEndAfter(h):l.setEndBefore(h));b=new CKEDITOR.dom.walker(l);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(l.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],c,d,e=2;e&&(!(c=a.getEnclosedNode())||!(c.type==CKEDITOR.NODE_ELEMENT&&q[c.getName()]&&(d=c)));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return 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=o?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();this.isLocked=0;this.reset();if(a)(a=b||c[0]&&c[0].getCommonAncestor())&&a.getAscendant("body",1)&&(b?this.selectElement(b):this.selectRanges(c))}},reset:function(){this._.cache={}},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){if(a.length)if(this.isLocked){var b=
CKEDITOR.document.getActive();this.unlock();this.selectRanges(a);this.lock();!b.equals(this.root)&&b.focus()}else{if(o){var c=CKEDITOR.dom.walker.whitespaces(true),d=/\ufeff|\u00a0/,f={table:1,tbody:1,tr:1};if(a.length>1){b=a[a.length-1];a[0].setEnd(b.endContainer,b.endOffset)}var b=a[0],a=b.collapsed,i,j,l,n=b.getEnclosedNode();if(n&&n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in q&&(!n.is("a")||!n.getText()))try{l=n.$.createControlRange();l.addElement(n.$);l.select();return}catch(x){}(b.startContainer.type==
CKEDITOR.NODE_ELEMENT&&b.startContainer.getName()in f||b.endContainer.type==CKEDITOR.NODE_ELEMENT&&b.endContainer.getName()in f)&&b.shrink(CKEDITOR.NODE_ELEMENT,true);l=b.createBookmark();var f=l.startNode,z;if(!a)z=l.endNode;l=b.document.$.body.createTextRange();l.moveToElementText(f.$);l.moveStart("character",1);if(z){d=b.document.$.body.createTextRange();d.moveToElementText(z.$);l.setEndPoint("EndToEnd",d);l.moveEnd("character",-1)}else{i=f.getNext(c);j=f.hasAscendant("pre");i=!(i&&i.getText&&
i.getText().match(d))&&(j||!f.hasPrevious()||f.getPrevious().is&&f.getPrevious().is("br"));j=b.document.createElement("span");j.setHtml("&#65279;");j.insertBefore(f);i&&b.document.createText("").insertBefore(f)}b.setStartBefore(f);f.remove();if(a){if(i){l.moveStart("character",-1);l.select();b.document.$.selection.clear()}else l.select();b.moveToPosition(j,CKEDITOR.POSITION_BEFORE_START);j.remove()}else{b.setEndBefore(z);z.remove();l.select()}}else{z=this.getNative();if(!z)return;if(CKEDITOR.env.opera){b=
this.document.$.createRange();b.selectNodeContents(this.root.$);z.addRange(b)}this.removeAllRanges();for(d=0;d<a.length;d++){if(d<a.length-1){b=a[d];l=a[d+1];j=b.clone();j.setStart(b.endContainer,b.endOffset);j.setEnd(l.startContainer,l.startOffset);if(!j.collapsed){j.shrink(CKEDITOR.NODE_ELEMENT,true);i=j.getCommonAncestor();j=j.getEnclosedNode();if(i.isReadOnly()||j&&j.isReadOnly()){l.setStart(b.startContainer,b.startOffset);a.splice(d--,1);continue}}}b=a[d];l=this.document.$.createRange();i=b.startContainer;
if(CKEDITOR.env.opera&&b.collapsed&&i.type==CKEDITOR.NODE_ELEMENT){j=i.getChild(b.startOffset-1);c=i.getChild(b.startOffset);if(!j&&!c&&i.is(CKEDITOR.dtd.$removeEmpty)||j&&j.type==CKEDITOR.NODE_ELEMENT||c&&c.type==CKEDITOR.NODE_ELEMENT){b.insertNode(this.document.createText(""));b.collapse(1)}}if(b.collapsed&&CKEDITOR.env.webkit&&e(b)){i=this.root;h(i,false);j=i.getDocument().createText("");i.setCustomData("cke-fillingChar",j);b.insertNode(j);if((i=j.getNext())&&!j.getPrevious()&&i.type==CKEDITOR.NODE_ELEMENT&&
i.getName()=="br"){h(this.root);b.moveToPosition(i,CKEDITOR.POSITION_BEFORE_START)}else b.moveToPosition(j,CKEDITOR.POSITION_AFTER_END)}l.setStart(b.startContainer.$,b.startOffset);try{l.setEnd(b.endContainer.$,b.endOffset)}catch(s){if(s.toString().indexOf("NS_ERROR_ILLEGAL_VALUE")>=0){b.collapse(1);l.setEnd(b.endContainer.$,b.endOffset)}else throw s;}z.addRange(l)}}this.reset();this.root.fire("selectionchange")}},createBookmarks:function(a){return this.getRanges().createBookmarks(a)},createBookmarks2:function(a){return this.getRanges().createBookmarks2(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)}this.selectRanges(b);return this},getCommonAncestor:function(){var a=this.getRanges();return 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[o?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}})();
CKEDITOR.editor.prototype.attachStyleStateChange=function(b,c){var a=this._.styleStateChangeCallbacks;if(!a){a=this._.styleStateChangeCallbacks=[];this.on("selectionChange",function(b){for(var c=0;c<a.length;c++){var h=a[c],f=h.style.checkActive(b.data.path)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;h.fn.call(this,f)}})}a.push({style:b,fn:c})};CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
(function(){function b(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 c(a){var c=a.document;if(a.collapsed){c=p(this,c);a.insertNode(c);a.moveToPosition(c,CKEDITOR.POSITION_BEFORE_END)}else{var d=this.element,e=this._.definition,f,g=e.ignoreReadonly,h=g||e.includeReadonly;h==void 0&&(h=a.root.getCustomData("cke_includeReadonly"));var i=CKEDITOR.dtd[d]||
(f=true,CKEDITOR.dtd.span);a.enlarge(CKEDITOR.ENLARGE_INLINE,1);a.trim();var j=a.createBookmark(),l=j.startNode,k=j.endNode,n=l,o;if(!g){var m=a.getCommonAncestor(),g=b(l,m),m=b(k,m);g&&(n=g.getNextSourceNode(true));m&&(k=m)}for(n.getPosition(k)==CKEDITOR.POSITION_FOLLOWING&&(n=0);n;){g=false;if(n.equals(k)){n=null;g=true}else{var r=n.type,s=r==CKEDITOR.NODE_ELEMENT?n.getName():null,m=s&&n.getAttribute("contentEditable")=="false",u=s&&n.getAttribute("data-nostyle");if(s&&n.data("cke-bookmark")){n=
n.getNextSourceNode(true);continue}if(!s||i[s]&&!u&&(!m||h)&&(n.getPosition(k)|CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED&&(!e.childRule||e.childRule(n))){var v=n.getParent();if(v&&((v.getDtd()||CKEDITOR.dtd.span)[d]||f)&&(!e.parentRule||e.parentRule(v))){if(!o&&(!s||!CKEDITOR.dtd.$removeEmpty[s]||(n.getPosition(k)|CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|
CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED)){o=a.clone();o.setStartBefore(n)}if(r==CKEDITOR.NODE_TEXT||m||r==CKEDITOR.NODE_ELEMENT&&!n.getChildCount()){for(var r=n,x;(g=!r.getNext(C))&&(x=r.getParent(),i[x.getName()])&&(x.getPosition(l)|CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_FOLLOWING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED&&(!e.childRule||
e.childRule(x));)r=x;o.setEndAfter(r)}}else g=true}else g=true;n=n.getNextSourceNode(u||m&&!h)}if(g&&o&&!o.collapsed){for(var g=p(this,c),m=g.hasAttributes(),u=o.getCommonAncestor(),r={},s={},v={},z={},y,A,E;g&&u;){if(u.getName()==d){for(y in e.attributes)if(!z[y]&&(E=u.getAttribute(A)))g.getAttribute(y)==E?s[y]=1:z[y]=1;for(A in e.styles)if(!v[A]&&(E=u.getStyle(A)))g.getStyle(A)==E?r[A]=1:v[A]=1}u=u.getParent()}for(y in s)g.removeAttribute(y);for(A in r)g.removeStyle(A);m&&!g.hasAttributes()&&(g=
null);if(g){o.extractContents().appendTo(g);q.call(this,g);o.insertNode(g);g.mergeSiblings();CKEDITOR.env.ie||g.$.normalize()}else{g=new CKEDITOR.dom.element("span");o.extractContents().appendTo(g);o.insertNode(g);q.call(this,g);g.remove(true)}o=null}}a.moveToBookmark(j);a.shrink(CKEDITOR.SHRINK_TEXT)}}function a(a){a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var b=a.createBookmark(),c=b.startNode;if(a.collapsed){for(var d=new CKEDITOR.dom.elementPath(c.getParent(),a.root),e,f=0,g;f<d.elements.length&&(g=
d.elements[f]);f++){if(g==d.block||g==d.blockLimit)break;if(this.checkElementRemovable(g)){var h;if(a.collapsed&&(a.checkBoundaryOfElement(g,CKEDITOR.END)||(h=a.checkBoundaryOfElement(g,CKEDITOR.START)))){e=g;e.match=h?"start":"end"}else{g.mergeSiblings();g.getName()==this.element?o.call(this,g):k(g,m(this)[g.getName()])}}}if(e){g=c;for(f=0;;f++){h=d.elements[f];if(h.equals(e))break;else if(h.match)continue;else h=h.clone();h.append(g);g=h}g[e.match=="start"?"insertBefore":"insertAfter"](e)}}else{var i=
b.endNode,j=this,d=function(){for(var a=new CKEDITOR.dom.elementPath(c.getParent()),b=new CKEDITOR.dom.elementPath(i.getParent()),d=null,e=null,f=0;f<a.elements.length;f++){var g=a.elements[f];if(g==a.block||g==a.blockLimit)break;j.checkElementRemovable(g)&&(d=g)}for(f=0;f<b.elements.length;f++){g=b.elements[f];if(g==b.block||g==b.blockLimit)break;j.checkElementRemovable(g)&&(e=g)}e&&i.breakParent(e);d&&c.breakParent(d)};d();for(e=c;!e.equals(i);){f=e.getNextSourceNode();if(e.type==CKEDITOR.NODE_ELEMENT&&
this.checkElementRemovable(e)){e.getName()==this.element?o.call(this,e):k(e,m(this)[e.getName()]);if(f.type==CKEDITOR.NODE_ELEMENT&&f.contains(c)){d();f=c.getNext()}}e=f}}a.moveToBookmark(b)}function e(a){var b=a.getEnclosedNode()||a.getCommonAncestor(false,true);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&v(a,this)}function d(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;d=c.getNextParagraph();)if(!d.isReadOnly()){var f=p(this,e,d);j(d,f)}a.moveToBookmark(b)}function f(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=true;c.enlargeBr=
this._.enterMode!=CKEDITOR.ENTER_BR;for(var d;d=c.getNextParagraph();)if(this.checkElementRemovable(d))if(d.is("pre")){var e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div");e&&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=l(f,
/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");f=f.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+|&nbsp;)/g," ");f=f.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="<pre>"+f+"</pre>";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(f);b=e}else f?b=n(c?[a.getHtml()]:i(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,j;if((j=c.getPrevious(y))&&j.is&&j.is("pre")){d=l(j.getHtml(),/\n$/,"")+
"\n\n"+l(c.getHtml(),/^\n/,"");CKEDITOR.env.ie?c.$.outerHTML="<pre>"+d+"</pre>":c.setHtml(d);j.remove()}}else c&&g(b)}function i(a){a.getName();var b=[];l(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"</pre>"+c+"<pre>"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function l(a,b,c){var d="",e="",a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<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 n(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=l(e,/^[ \t]*\n/,""),e=l(e,/\n$/,""),e=l(e,/^[ \t]+|[ \t]+$/g,function(a,b){return a.length==1?"&nbsp;":b?" "+CKEDITOR.tools.repeat("&nbsp;",a.length-1):CKEDITOR.tools.repeat("&nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"<br>"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("&nbsp;",
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){var b=this._.definition,c=b.attributes,b=b.styles,d=m(this)[a.getName()],e=CKEDITOR.tools.isEmpty(c)&&CKEDITOR.tools.isEmpty(b),f;for(f in c)if(!((f=="class"||this._.definition.fullMatch)&&a.getAttribute(f)!=E(f,c[f]))){e=a.hasAttribute(f);a.removeAttribute(f)}for(var h in b)if(!(this._.definition.fullMatch&&a.getStyle(h)!=E(h,b[h],true))){e=e||!!a.getStyle(h);a.removeStyle(h)}k(a,d,r[a.getName()]);
e&&(this._.definition.alwaysRemoveElement?g(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?g(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function q(a){for(var b=m(this),c=a.getElementsByTag(this.element),d=c.count();--d>=0;)o.call(this,c.getItem(d));for(var e in b)if(e!=this.element){c=a.getElementsByTag(e);for(d=c.count()-1;d>=0;d--){var f=c.getItem(d);k(f,b[e])}}}function k(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 h=b[d][1];(h===null||h.test&&h.test(f)||typeof h=="string"&&f==h)&&a.removeAttribute(e)}}c||g(a)}function g(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(y),d=a.getNext(y);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 p(a,b,c){var d;d=a.element;d=="*"&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=v(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function v(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 u(a,b){for(var c in a)a[c]=a[c].replace(s,function(a,c){return b[c]})}function m(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 E(a,
b,c){var d=new CKEDITOR.dom.element("span");d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function A(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 r={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},x={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},z=/\s*(?:;\s*|$)/,s=/#\((.+?)\)/g,C=CKEDITOR.dom.walker.bookmark(0,1),y=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);u(a.attributes,b);u(a.styles,
b)}c=this.element=a.element?typeof a.element=="string"?a.element.toLowerCase():a.element:"*";this.type=a.type||(r[c]?CKEDITOR.STYLE_BLOCK:x[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.call(a,this.getSelection())};CKEDITOR.editor.prototype.removeStyle=function(a){A.call(a,this.getSelection(),1)};CKEDITOR.style.prototype={apply:function(a){A.call(this,a.getSelection())},
remove:function(a){A.call(this,a.getSelection(),1)},applyToRange:function(a){return(this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?h:this.type==CKEDITOR.STYLE_OBJECT?e:null).call(this,a)},removeFromRange:function(b){return(this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?a:this.type==CKEDITOR.STYLE_BLOCK?f:this.type==CKEDITOR.STYLE_OBJECT?d:null).call(this,b)},applyToObject:function(a){v(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){switch(this.type){case CKEDITOR.STYLE_OBJECT:return a.contains(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=m(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,"</",d,">");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(z,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(z,";");f=="inherit"?d=d+g:c=c+g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,true));return a._ST=c+d}})();CKEDITOR.styleCommand=function(b,c){this.requiredContent=this.allowedContent=this.style=b;CKEDITOR.tools.extend(this,c,true)};
CKEDITOR.styleCommand.prototype.exec=function(b){b.focus();this.state==CKEDITOR.TRISTATE_OFF?b.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&b.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(b,c,a){CKEDITOR.stylesSet.addExternal(b,c,"");CKEDITOR.stylesSet.load(b,a)};
CKEDITOR.editor.prototype.getStylesSet=function(b){if(this._.stylesDefinitions)b(this._.stylesDefinitions);else{var c=this,a=c.config.stylesCombo_stylesSet||c.config.stylesSet;if(a===false)b(null);else if(a instanceof Array){c._.stylesDefinitions=a;b(a)}else{a||(a="default");var a=a.split(":"),e=a[0];CKEDITOR.stylesSet.addExternal(e,a[1]?a.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(e,function(a){c._.stylesDefinitions=a[e];b(c._.stylesDefinitions)})}}};
CKEDITOR.dom.comment=function(b,c){typeof b=="string"&&(b=(c?c.$:document).createComment(b));CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"<\!--"+this.$.nodeValue+"--\>"}});
(function(){var b={},c;for(c in CKEDITOR.dtd.$blockLimit)c in CKEDITOR.dtd.$list||(b[c]=1);var a={};for(c in CKEDITOR.dtd.$block)c in CKEDITOR.dtd.$blockLimit||c in CKEDITOR.dtd.$empty||(a[c]=1);CKEDITOR.dom.elementPath=function(c,d){var h=null,f=null,j=[],d=d||c.getDocument().getBody(),i=c;do if(i.type==CKEDITOR.NODE_ELEMENT){j.push(i);if(!this.lastElement){this.lastElement=i;if(i.is(CKEDITOR.dtd.$object))continue}var l=i.getName();if(!f){!h&&a[l]&&(h=i);if(b[l]){var n;if(n=!h){if(l=l=="div"){a:{l=
i.getChildren();n=0;for(var o=l.count();n<o;n++){var q=l.getItem(n);if(q.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[q.getName()]){l=true;break a}}l=false}l=!l&&!i.equals(d)}n=l}n?h=i:f=i}}if(i.equals(d))break}while(i=i.getParent());this.block=h;this.blockLimit=f;this.root=d;this.elements=j}})();
CKEDITOR.dom.elementPath.prototype={compare:function(b){var c=this.elements,b=b&&b.elements;if(!b||c.length!=b.length)return false;for(var a=0;a<c.length;a++)if(!c[a].equals(b[a]))return false;return true},contains:function(b,c,a){var e;typeof b=="string"&&(e=function(a){return a.getName()==b});b instanceof CKEDITOR.dom.element?e=function(a){return a.equals(b)}:CKEDITOR.tools.isArray(b)?e=function(a){return CKEDITOR.tools.indexOf(b,a.getName())>-1}:typeof b=="function"?e=b:typeof b=="object"&&(e=
function(a){return a.getName()in b});var d=this.elements,h=d.length;c&&h--;if(a){d=Array.prototype.slice.call(d,0);d.reverse()}for(c=0;c<h;c++)if(e(d[c]))return d[c];return null},isContextFor:function(b){var c;if(b in CKEDITOR.dtd.$block){c=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit;return!!c.getDtd()[b]}return true},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
CKEDITOR.dom.text=function(b,c){typeof b=="string"&&(b=(c?c.$:document).createTextNode(b));this.$=b};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(b){this.$.nodeValue=b},split:function(b){var c=this.$.parentNode,a=c.childNodes.length,e=this.getLength(),d=this.getDocument(),h=new CKEDITOR.dom.text(this.$.splitText(b),d);if(c.childNodes.length==a)if(b>=e){h=d.createText("");h.insertAfter(this)}else{b=d.createText("");b.insertAfter(h);b.remove()}return h},substring:function(b,
c){return typeof c!="number"?this.$.nodeValue.substr(b):this.$.nodeValue.substring(b,c)}});
(function(){function b(a,b,c){var h=a.serializable,f=b[c?"endContainer":"startContainer"],j=c?"endOffset":"startOffset",i=h?b.document.getById(a.startNode):a.startNode,a=h?b.document.getById(a.endNode):a.endNode;if(f.equals(i.getPrevious())){b.startOffset=b.startOffset-f.getLength()-a.getPrevious().getLength();f=a.getNext()}else if(f.equals(a.getPrevious())){b.startOffset=b.startOffset-f.getLength();f=a.getNext()}f.equals(i.getParent())&&b[j]++;f.equals(a.getParent())&&b[j]++;b[c?"endContainer":"startContainer"]=
f;return b}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,c)};var c={createIterator:function(){var a=this,b=CKEDITOR.dom.walker.bookmark(),c=[],h;return{getNextRange:function(f){h=h==void 0?0:h+1;var j=a[h];if(j&&a.length>1){if(!h)for(var i=a.length-1;i>=0;i--)c.unshift(a[i].createBookmark(true));if(f)for(var l=0;a[h+l+1];){for(var n=j.document,f=0,i=n.getById(c[l].endNode),n=n.getById(c[l+
1].startNode);;){i=i.getNextSourceNode(false);if(n.equals(i))f=1;else if(b(i)||i.type==CKEDITOR.NODE_ELEMENT&&i.isBlockBoundary())continue;break}if(!f)break;l++}for(j.moveToBookmark(c.shift());l--;){i=a[++h];i.moveToBookmark(c.shift());j.setEnd(i.endContainer,i.endOffset)}}return j}}},createBookmarks:function(a){for(var c=[],d,h=0;h<this.length;h++){c.push(d=this[h].createBookmark(a,true));for(var f=h+1;f<this.length;f++){this[f]=b(d,this[f]);this[f]=b(d,this[f],true)}}return c},createBookmarks2:function(a){for(var b=
[],c=0;c<this.length;c++)b.push(this[c].createBookmark2(a));return b},moveToBookmarks:function(a){for(var b=0;b<this.length;b++)this[b].moveToBookmark(a[b])}}})();
(function(){function b(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function c(a){var c=CKEDITOR.skin["ua_"+a],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),e=0,f;e<c.length;e++){f=c[e];if(d.ie&&(f.replace(/^ie/,"")==d.version||d.quirks&&f=="iequirks"))f="ie";if(d[f]){a=a+("_"+c[e]);break}}return CKEDITOR.getUrl(b()+a+".css")}function a(a,b){if(!h[a]){CKEDITOR.document.appendStyleSheet(c(a));h[a]=1}b&&b()}
function e(a){var b=a.getById(f);if(!b){b=a.getHead().append("style");b.setAttribute("id",f);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 h=0;h<a.length;h++)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[h].$.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?
a[h].$.styleSheet.cssText=a[h].$.styleSheet.cssText+f:a[h].$.innerHTML=a[h].$.innerHTML+f}}var h={};CKEDITOR.skin={path:b,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(b()+"skin.js"),function(){a(c,d)}):a(c,d)},getPath:function(a){return CKEDITOR.getUrl(c(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=e(CKEDITOR.document);return(this.setUiColor=function(a){var c=CKEDITOR.skin.chameleon,e=[[i,a]];this.uiColor=a;d([b],c(this,"editor"),e);d(j,c(this,
"panel"),e)}).call(this,a)}});var f="cke_ui_color",j=[],i=/\$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=e(a);j.push(a);var c=b.getUiColor();c&&d([a],CKEDITOR.skin.chameleon(b,"panel"),[[i,c]])}};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 b=CKEDITOR.dom.element.createFromHtml('<div style="width:0px;height:0px;position:absolute;left:-10000px;border: 1px solid;border-color: red blue;"></div>',CKEDITOR.document);b.appendTo(CKEDITOR.document.getHead());try{CKEDITOR.env.hc=b.getComputedStyle("border-top-color")==b.getComputedStyle("border-right-color")}catch(c){CKEDITOR.env.hc=false}b.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(b=CKEDITOR._.pending){delete CKEDITOR._.pending;for(var a=0;a<b.length;a++){CKEDITOR.editor.prototype.constructor.apply(b[a][0],b[a][1]);CKEDITOR.add(b[a][0])}}})();/*
Copyright (c) 2003-2013, 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('<label class="cke_dialog_ui_labeled_label'+d+'" ',' id="'+c.labelId+'"',c.inputId?' for="'+c.inputId+'"':"",(a.labelStyle?' style="'+a.labelStyle+'"':"")+">",a.label,"</label>",'<div class="cke_dialog_ui_labeled_content"'+(a.controlStyle?' style="'+a.controlStyle+'"':"")+' role="presentation">',e.call(this,b,a),"</div>"):(d={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'<label class="cke_dialog_ui_labeled_label'+d+'" id="'+c.labelId+'" for="'+c.inputId+'"'+
(a.labelStyle?' style="'+a.labelStyle+'"':"")+">"+CKEDITOR.tools.htmlEncode(a.label)+"</span>"},{type:"html",html:'<span class="cke_dialog_ui_labeled_content"'+(a.controlStyle?' style="'+a.controlStyle+'"':"")+">"+e.call(this,b,a)+"</span>"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,d,f));return f.join("")})}},textInput:function(b,a,d){if(!(3>arguments.length)){i.call(this,a);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",c={"class":"cke_dialog_ui_input_"+a.type,id:e,type:a.type};
a.validate&&(this.validate=a.validate);a.maxLength&&(c.maxlength=a.maxLength);a.size&&(c.size=a.size);a.inputStyle&&(c.style=a.inputStyle);var f=this,h=!1;b.on("load",function(){f.getInputElement().on("keydown",function(a){a.data.getKeystroke()==13&&(h=true)});f.getInputElement().on("keyup",function(a){if(a.data.getKeystroke()==13&&h){b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0);h=false}},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var b=
['<div class="cke_dialog_ui_input_',a.type,'" role="presentation"'];a.width&&b.push('style="width:'+a.width+'" ');b.push("><input ");c["aria-labelledby"]=this._.labelId;this._.required&&(c["aria-required"]=this._.required);for(var d in c)b.push(d+'="'+c[d]+'" ');b.push(" /></div>");return b.join("")})}},textarea:function(b,a,d){if(!(3>arguments.length)){i.call(this,a);var e=this,c=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",f={};a.validate&&(this.validate=a.validate);f.rows=a.rows||5;f.cols=
a.cols||20;f["class"]="cke_dialog_ui_input_textarea "+(a["class"]||"");"undefined"!=typeof a.inputStyle&&(f.style=a.inputStyle);a.dir&&(f.dir=a.dir);CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){f["aria-labelledby"]=this._.labelId;this._.required&&(f["aria-required"]=this._.required);var a=['<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea id="',c,'" '],b;for(b in f)a.push(b+'="'+CKEDITOR.tools.htmlEncode(f[b])+'" ');a.push(">",CKEDITOR.tools.htmlEncode(e._["default"]),
"</textarea></div>");return a.join("")})}},checkbox:function(b,a,d){if(!(3>arguments.length)){var e=i.call(this,a,{"default":!!a["default"]});a.validate&&(this.validate=a.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"span",null,null,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},true),d=[],h=CKEDITOR.tools.getNextId()+"_label",g={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":h};p(c);if(a["default"])g.checked=
"checked";if(typeof c.inputStyle!="undefined")c.style=c.inputStyle;e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,c,d,"input",null,g);d.push(' <label id="',h,'" for="',g.id,'"'+(a.labelStyle?' style="'+a.labelStyle+'"':"")+">",CKEDITOR.tools.htmlEncode(a.label),"</label>");return d.join("")})}},radio:function(b,a,d){if(!(3>arguments.length)){i.call(this,a);this._["default"]||(this._["default"]=this._.initValue=a.items[0][1]);a.validate&&(this.validate=a.valdiate);var e=[],c=this;CKEDITOR.ui.dialog.labeledElement.call(this,
b,a,d,function(){for(var d=[],h=[],g=a.id?a.id+"_radio":CKEDITOR.tools.getNextId()+"_radio",k=0;k<a.items.length;k++){var j=a.items[k],i=j[2]!==void 0?j[2]:j[0],l=j[1]!==void 0?j[1]:j[0],m=CKEDITOR.tools.getNextId()+"_radio_input",n=m+"_label",m=CKEDITOR.tools.extend({},a,{id:m,title:null,type:null},true),i=CKEDITOR.tools.extend({},m,{title:i},true),o={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:l,"aria-labelledby":n},q=[];if(c._["default"]==l)o.checked="checked";p(m);p(i);if(typeof m.inputStyle!=
"undefined")m.style=m.inputStyle;e.push(new CKEDITOR.ui.dialog.uiElement(b,m,q,"input",null,o));q.push(" ");new CKEDITOR.ui.dialog.uiElement(b,i,q,"label",null,{id:n,"for":o.id},j[0]);d.push(q.join(""))}new CKEDITOR.ui.dialog.hbox(b,e,d,h);return h.join("")});this._.children=e}},button:function(b,a,d){if(arguments.length){"function"==typeof a&&(a=a(b.getParentEditor()));i.call(this,a,{disabled:a.disabled||!1});CKEDITOR.event.implementOn(this);var e=this;b.on("load",function(){var a=this.getElement();
(function(){a.on("click",e.click,e);a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(e.click(),a.data.preventDefault())})})();a.unselectable()},this);var c=CKEDITOR.tools.extend({},a);delete c.style;var f=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"a",null,{style:a.style,href:"javascript:void(0)",title:a.label,hidefocus:"true","class":a["class"],role:"button","aria-labelledby":f},'<span id="'+f+'" class="cke_dialog_ui_button">'+CKEDITOR.tools.htmlEncode(a.label)+
"</span>")}},select:function(b,a,d){if(!(3>arguments.length)){var e=i.call(this,a);a.validate&&(this.validate=a.validate);e.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_select":CKEDITOR.tools.getNextId()+"_select"},true),d=[],h=[],g={id:e.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};d.push('<div class="cke_dialog_ui_input_',a.type,'" role="presentation"');
a.width&&d.push('style="width:'+a.width+'" ');d.push(">");if(a.size!=void 0)g.size=a.size;if(a.multiple!=void 0)g.multiple=a.multiple;p(c);for(var k=0,j;k<a.items.length&&(j=a.items[k]);k++)h.push('<option value="',CKEDITOR.tools.htmlEncode(j[1]!==void 0?j[1]:j[0]).replace(/"/g,"&quot;"),'" /> ',CKEDITOR.tools.htmlEncode(j[0]));if(typeof c.inputStyle!="undefined")c.style=c.inputStyle;e.select=new CKEDITOR.ui.dialog.uiElement(b,c,d,"select",null,g,h.join(""));d.push("</div>");return d.join("")})}},
file:function(b,a,d){if(!(3>arguments.length)){void 0===a["default"]&&(a["default"]="");var e=CKEDITOR.tools.extend(i.call(this,a),{definition:a,buttons:[]});a.validate&&(this.validate=a.validate);b.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){e.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var b=['<iframe frameborder="0" allowtransparency="0" class="cke_dialog_ui_input_file" role="presentation" id="',
e.frameId,'" title="',a.label,'" src="javascript:void('];b.push(CKEDITOR.env.ie?"(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"})()":"0");b.push(')"></iframe>');return b.join("")})}},fileButton:function(b,a,d){if(!(3>arguments.length)){i.call(this,a);var e=this;a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),f=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d=
a["for"];if(!f||f.call(this,c)!==false){b.getContentElement(d[0],d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,d=/\/$/;return function(e,c,f){if(!(3>arguments.length)){var h=[],g=c.html;"<"!=g.charAt(0)&&(g="<span>"+g+"</span>");var k=c.focus;if(k){var j=this.focus;this.focus=function(){("function"==
typeof k?k:j).call(this);this.fire("focus")};c.isFocusable&&(this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,e,c,h,"span",null,null,"");h=h.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);f.push([g[1]," ",h[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,e,c){var f=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,e,"fieldset",null,null,function(){var a=[];f&&a.push("<legend"+
(c.labelStyle?' style="'+c.labelStyle+'"':"")+">"+f+"</legend>");for(var b=0;b<d.length;b++)a.push(d[b]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setLabel:function(b){var a=CKEDITOR.document.getById(this._.labelId);1>a.getChildCount()?(new CKEDITOR.dom.text(b,CKEDITOR.document)).appendTo(a):a.getChild(0).$.nodeValue=b;return this},getLabel:function(){var b=
CKEDITOR.document.getById(this._.labelId);return!b||1>b.getChildCount()?"":b.getChild(0).getText()},eventProcessors:o},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return!this._.disabled?this.fire("click",{dialog:this._.dialog}):!1},enable:function(){this._.disabled=!1;var b=this.getElement();b&&b.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},
isEnabled:function(){return!this._.disabled},eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(b,a){this.on("click",function(){a.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},
focus:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&a.$.focus()},0)},select:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&(a.$.focus(),a.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(b){!b&&(b="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=
CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var e=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),c=this.getInputElement().$;e.$.text=b;e.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(e.$):c.add(e.$,null):c.add(e.$,d);return this},remove:function(b){this.getInputElement().$.remove(b);return this},clear:function(){for(var b=this.getInputElement().$;0<
b.length;)b.remove(0);return this},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(b,a){this.getInputElement().$.checked=b;!a&&this.fire("change",{value:b})},getValue:function(){return this.getInputElement().$.checked},accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(b,a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return o.onChange.apply(this,
arguments);b.on("load",function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;"checked"==b.propertyName&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",a);return null}},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setValue:function(b,a){for(var d=this._.children,e,c=0;c<d.length&&(e=d[c]);c++)e.getElement().$.checked=e.getValue()==b;!a&&this.fire("change",{value:b})},
getValue:function(){for(var b=this._.children,a=0;a<b.length;a++)if(b[a].getElement().$.checked)return b[a].getValue();return null},accessKeyUp:function(){var b=this._.children,a;for(a=0;a<b.length;a++)if(b[a].getElement().$.checked){b[a].getElement().focus();return}b[0].getElement().focus()},eventProcessors:{onChange:function(b,a){if(CKEDITOR.env.ie)b.on("load",function(){for(var a=this._.children,b=this,c=0;c<a.length;c++)a[c].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&
this.$.checked&&b.fire("change",{value:this.getAttribute("value")})})},this),this.on("change",a);else return o.onChange.apply(this,arguments);return null}},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,n,{getInputElement:function(){var b=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<b.$.forms.length?new CKEDITOR.dom.element(b.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();
return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(b){var a=/^on([A-Z]\w+)/,d,e=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},c;for(c in b)if(d=c.match(a))this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,b[c]):e(this,this._.dialog,d[1].toLowerCase(),b[c]);return this},reset:function(){function b(){d.$.open();var b="";e.size&&(b=e.size-(CKEDITOR.env.ie?7:0));var i=a.frameId+"_input";
d.$.write(['<html dir="'+g+'" lang="'+k+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+g+'" lang="'+k+'" action="',CKEDITOR.tools.htmlEncode(e.action),'"><label id="',a.labelId,'" for="',i,'" style="display:none">',CKEDITOR.tools.htmlEncode(e.label),'</label><input id="',i,'" aria-labelledby="',a.labelId,'" type="file" name="',CKEDITOR.tools.htmlEncode(e.id||"cke_upload"),'" size="',CKEDITOR.tools.htmlEncode(0<
b?b:""),'" /></form></body></html><script>',CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"","window.parent.CKEDITOR.tools.callFunction("+f+");","window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction("+h+")}","<\/script>"].join(""));d.$.close();for(b=0;b<c.length;b++)c[b].enable()}var a=this._,d=CKEDITOR.document.getById(a.frameId).getFrameDocument(),e=a.definition,c=a.buttons,f=this.formLoadedNumber,h=this.formUnloadNumber,g=a.dialog._.editor.lang.dir,k=a.dialog._.editor.langCode;
f||(f=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),h=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(f);CKEDITOR.tools.removeFunction(h)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(b,
a){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",r);CKEDITOR.dialog.addUIElement("password",r);CKEDITOR.dialog.addUIElement("textarea",
l);CKEDITOR.dialog.addUIElement("checkbox",l);CKEDITOR.dialog.addUIElement("radio",l);CKEDITOR.dialog.addUIElement("button",l);CKEDITOR.dialog.addUIElement("select",l);CKEDITOR.dialog.addUIElement("file",l);CKEDITOR.dialog.addUIElement("fileButton",l);CKEDITOR.dialog.addUIElement("html",l);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var e=a.children,c,f=[],h=[],g=0;g<e.length&&(c=e[g]);g++){var i=[];f.push(i);h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,i))}return new CKEDITOR.ui.dialog[a.type](b,
h,f,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;
(function(){function p(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function u(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function q(a,b){for(var c=a.$.getElementsByTagName("input"),
d=0,e=c.length;d<e;d++){var g=new CKEDITOR.dom.element(c[d]);"text"==g.getAttribute("type").toLowerCase()&&(b?(g.setAttribute("value",g.getCustomData("fake_value")||""),g.removeCustomData("fake_value")):(g.setCustomData("fake_value",g.getAttribute("value")),g.setAttribute("value","")))}}function P(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
function Q(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function R(a){var a=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",S).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),b=a.getChild([0,0,0,0,0]),c=b.getChild(0),d=b.getChild(1);if(CKEDITOR.env.ie&&!CKEDITOR.env.ie6Compat){var e=
"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())";CKEDITOR.dom.element.createFromHtml('<iframe frameBorder="0" class="cke_iframe_shim" src="'+e+'" tabIndex="-1"></iframe>').appendTo(b.getParent())}c.unselectable();d.unselectable();return{element:a,parts:{dialog:a.getChild(0),title:c,close:d,tabs:b.getChild(2),contents:b.getChild([3,0,0,0]),footer:b.getChild([3,0,1,0])}}}function H(a,b,c){this.element=b;this.focusIndex=c;this.tabIndex=
0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function T(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();c.on("resize",b);a.on("hide",function(){c.removeListener("resize",b)})}function I(a,b){this._=
{dialog:a};CKEDITOR.tools.extend(this,b)}function U(a){function b(b){var c=a.getSize(),h=CKEDITOR.document.getWindow().getViewPaneSize(),o=b.data.$.screenX,i=b.data.$.screenY,n=o-d.x,l=i-d.y;d={x:o,y:i};e.x+=n;e.y+=l;a.move(e.x+k[3]<f?-k[3]:e.x-k[1]>h.width-c.width-f?h.width-c.width+("rtl"==g.lang.dir?0:k[1]):e.x,e.y+k[0]<f?-k[0]:e.y-k[2]>h.height-c.height-f?h.height-c.height+k[2]:e.y,1);b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mousemove",b);CKEDITOR.document.removeListener("mouseup",
c);if(CKEDITOR.env.ie6Compat){var a=r.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var d=null,e=null;a.getElement().getFirst();var g=a.getParentEditor(),f=g.config.dialog_magnetDistance,k=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof f&&(f=20);a.parts.title.on("mousedown",function(f){d={x:f.data.$.screenX,y:f.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);e=a.getPosition();if(CKEDITOR.env.ie6Compat){var j=
r.getChild(0).getFrameDocument();j.on("mousemove",b);j.on("mouseup",c)}f.data.preventDefault()},a)}function V(a){var b,c;function d(e){var d="rtl"==k.lang.dir,i=o.width,D=o.height,E=i+(e.data.$.screenX-b)*(d?-1:1)*(a._.moved?1:2),n=D+(e.data.$.screenY-c)*(a._.moved?1:2),x=a._.element.getFirst(),x=d&&x.getComputedStyle("right"),y=a.getPosition();y.y+n>h.height&&(n=h.height-y.y);if((d?x:y.x)+E>h.width)E=h.width-(d?x:y.x);if(f==CKEDITOR.DIALOG_RESIZE_WIDTH||f==CKEDITOR.DIALOG_RESIZE_BOTH)i=Math.max(g.minWidth||
0,E-m);if(f==CKEDITOR.DIALOG_RESIZE_HEIGHT||f==CKEDITOR.DIALOG_RESIZE_BOTH)D=Math.max(g.minHeight||0,n-j);a.resize(i,D);a._.moved||a.layout();e.data.preventDefault()}function e(){CKEDITOR.document.removeListener("mouseup",e);CKEDITOR.document.removeListener("mousemove",d);i&&(i.remove(),i=null);if(CKEDITOR.env.ie6Compat){var a=r.getChild(0).getFrameDocument();a.removeListener("mouseup",e);a.removeListener("mousemove",d)}}var g=a.definition,f=g.resizable;if(f!=CKEDITOR.DIALOG_RESIZE_NONE){var k=a.getParentEditor(),
m,j,h,o,i,n=CKEDITOR.tools.addFunction(function(f){o=a.getSize();var g=a.parts.contents;g.$.getElementsByTagName("iframe").length&&(i=CKEDITOR.dom.element.createFromHtml('<div class="cke_dialog_resize_cover" style="height: 100%; position: absolute; width: 100%;"></div>'),g.append(i));j=o.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.opera||CKEDITOR.env.ie&&CKEDITOR.env.quirks));m=o.width-a.parts.contents.getSize("width",1);b=f.screenX;c=f.screenY;h=CKEDITOR.document.getWindow().getViewPaneSize();
CKEDITOR.document.on("mousemove",d);CKEDITOR.document.on("mouseup",e);CKEDITOR.env.ie6Compat&&(g=r.getChild(0).getFrameDocument(),g.on("mousemove",d),g.on("mouseup",e));f.preventDefault&&f.preventDefault()});a.on("load",function(){var b="";f==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":f==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('<div class="cke_resizer'+b+" cke_resizer_"+k.lang.dir+'" title="'+CKEDITOR.tools.htmlEncode(k.lang.common.resize)+
'" onmousedown="CKEDITOR.tools.callFunction('+n+', event )">'+("ltr"==k.lang.dir?"◢":"◣")+"</div>");a.parts.footer.append(b,1)});k.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function F(a){a.data.preventDefault(1)}function J(a){var b=CKEDITOR.document.getWindow(),c=a.config,d=c.dialog_backgroundCoverColor||"white",e=c.dialog_backgroundCoverOpacity,g=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,e,g),f=w[c];f?f.show():(g=['<div tabIndex="-1" style="position: ',CKEDITOR.env.ie6Compat?
"absolute":"fixed","; z-index: ",g,"; top: 0px; left: 0px; ",!CKEDITOR.env.ie6Compat?"background-color: "+d:"",'" class="cke_dialog_background_cover">'],CKEDITOR.env.ie6Compat&&(d="<html><body style=\\'background-color:"+d+";\\'></body></html>",g.push('<iframe hidefocus="true" frameborder="0" id="cke_dialog_background_iframe" src="javascript:'),g.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),g.push('" style="position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0)"></iframe>')),
g.push("</div>"),f=CKEDITOR.dom.element.createFromHtml(g.join("")),f.setOpacity(void 0!=e?e:0.5),f.on("keydown",F),f.on("keypress",F),f.on("keyup",F),f.appendTo(CKEDITOR.document.getBody()),w[c]=f);a.focusManager.add(f);r=f;var a=function(){var a=b.getViewPaneSize();f.setStyles({width:a.width+"px",height:a.height+"px"})},k=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;f.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do{a=c.getPosition();c.move(a.x,a.y)}while(c=c._.parentDialog)
}};G=a;b.on("resize",a);a();(!CKEDITOR.env.mac||!CKEDITOR.env.webkit)&&f.focus();if(CKEDITOR.env.ie6Compat){var m=function(){k();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){m.prevScrollHandler=window.onscroll||function(){};window.onscroll=m},0);k()}}function K(a){r&&(a.focusManager.remove(r),a=CKEDITOR.document.getWindow(),r.hide(),a.removeListener("resize",G),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||
null},0),G=null)}var s=CKEDITOR.tools.cssLength,S='<div class="cke_reset_all {editorId} {editorDialogClass} {hidpi}" dir="{langDir}" lang="{langCode}" role="dialog" aria-labelledby="cke_dialog_title_{id}"><table class="cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="cke_dialog_body" role="presentation"><div id="cke_dialog_title_{id}" class="cke_dialog_title" role="presentation"></div><a id="cke_dialog_close_button_{id}" class="cke_dialog_close_button" href="javascript:void(0)" title="{closeTitle}" role="button"><span class="cke_label">X</span></a><div id="cke_dialog_tabs_{id}" class="cke_dialog_tabs" role="tablist"></div><table class="cke_dialog_contents" role="presentation"><tr><td id="cke_dialog_contents_{id}" class="cke_dialog_contents_body" role="presentation"></td></tr><tr><td id="cke_dialog_footer_{id}" class="cke_dialog_footer" role="presentation"></td></tr></table></div></td></tr></table></div>';
CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function d(a){var b=l._.focusList,a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;try{b[c].getInputElement().$.blur()}catch(f){}for(var d=c=(c+a+b.length)%b.length;a&&!b[d].isFocusable()&&!(d=(d+a+b.length)%b.length,d==c););b[d].focus();"text"==b[d].type&&b[d].select()}}function e(b){if(l==
CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),f="rtl"==a.lang.dir;o=i=0;if(9==c||c==CKEDITOR.SHIFT+9)c=c==CKEDITOR.SHIFT+9,l._.tabBarMode?(c=c?p.call(l):u.call(l),l.selectPage(c),l._.tabs[c][0].focus()):d(c?-1:1),o=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),o=1;else if((37==c||39==c)&&l._.tabBarMode)c=c==(f?39:37)?p.call(l):u.call(l),l.selectPage(c),l._.tabs[c][0].focus(),o=1;else if((13==c||32==c)&&l._.tabBarMode)this.selectPage(this._.currentTabId),
this._.tabBarMode=!1,this._.currentFocusIndex=-1,d(1),o=1;else if(13==c){c=b.data.getTarget();if(!c.is("a","button","select","textarea")&&(!c.is("input")||"button"!=c.$.type))(c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),o=1;i=1}else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),i=1;else return;g(b)}}function g(a){o?a.data.preventDefault(1):i&&a.data.stopPropagation()}var f=CKEDITOR.dialog._.dialogDefinitions[b],
k=CKEDITOR.tools.clone(W),m=a.config.dialog_buttonsOrder||"OS",j=a.lang.dir,h={},o,i;("OS"==m&&CKEDITOR.env.mac||"rtl"==m&&"ltr"==j||"ltr"==m&&"rtl"==j)&&k.buttons.reverse();f=CKEDITOR.tools.extend(f(a),k);f=CKEDITOR.tools.clone(f);f=new L(this,f);k=R(a);this._={editor:a,element:k.element,name:b,contentSize:{width:0,height:0},size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],
currentFocusIndex:0,hasFocus:!1};this.parts=k.parts;CKEDITOR.tools.setTimeout(function(){a.fire("ariaWidget",this.parts.contents)},0,this);k={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};k["rtl"==j?"right":"left"]=0;this.parts.dialog.setStyles(k);CKEDITOR.event.call(this);this.definition=f=CKEDITOR.fire("dialogDefinition",{name:b,definition:f},a).definition;if(!("removeDialogTabs"in a._)&&a.config.removeDialogTabs){k=a.config.removeDialogTabs.split(";");for(j=0;j<
k.length;j++)if(m=k[j].split(":"),2==m.length){var n=m[0];h[n]||(h[n]=[]);h[n].push(m[1])}a._.removeDialogTabs=h}if(a._.removeDialogTabs&&(h=a._.removeDialogTabs[b]))for(j=0;j<h.length;j++)f.removeContents(h[j]);if(f.onLoad)this.on("load",f.onLoad);if(f.onShow)this.on("show",f.onShow);if(f.onHide)this.on("hide",f.onHide);if(f.onOk)this.on("ok",function(b){a.fire("saveSnapshot");setTimeout(function(){a.fire("saveSnapshot")},0);!1===f.onOk.call(this,b)&&(b.data.hide=!1)});if(f.onCancel)this.on("cancel",
function(a){!1===f.onCancel.call(this,a)&&(a.data.hide=!1)});var l=this,C=function(a){var b=l._.contents,c=!1,d;for(d in b)for(var f in b[d])if(c=a.call(this,b[d][f]))return};this.on("ok",function(a){C(function(b){if(b.validate){var c=b.validate(this),d="string"==typeof c||!1===c;d&&(a.data.hide=!1,a.stop());P.call(b,!d,"string"==typeof c?c:void 0);return d}})},this,null,0);this.on("cancel",function(b){C(function(c){if(c.isChanged())return confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},
this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=d;var v=this._.element;a.focusManager.add(v,1);this.on("show",function(){v.on("keydown",e,this);if(CKEDITOR.env.opera||CKEDITOR.env.gecko)v.on("keypress",g,this)});this.on("hide",function(){v.removeListener("keydown",e);(CKEDITOR.env.opera||CKEDITOR.env.gecko)&&v.removeListener("keypress",g);C(function(a){Q.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",
e,this,null,0)});this.on("show",function(){c();if(a.config.dialog_startupFocusTab&&1<l._.pageCount)l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus();else if(!this._.hasFocus)if(this._.currentFocusIndex=-1,f.onFocus){var b=f.onFocus.call(this);b&&b.focus()}else d(1)},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);U(this);V(this);(new CKEDITOR.dom.text(f.title,CKEDITOR.document)).appendTo(this.parts.title);
for(j=0;j<f.contents.length;j++)(h=f.contents[j])&&this.addPage(h);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,d(1)),a.data.preventDefault())},this);j=[];h=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:f.buttons},j).getChild();this.parts.footer.setHtml(j.join(""));
for(j=0;j<h.length;j++)this._.buttons[h[j].id]=h[j]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){if(!this._.contentSize||!(this._.contentSize.width==a&&this._.contentSize.height==b))CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=
CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b}}}(),getSize:function(){var a=this._.element.getFirst();return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var d=this._.element.getFirst(),e="rtl"==this._.editor.lang.dir,g="fixed"==d.getComputedStyle("position");CKEDITOR.env.ie&&d.setStyle("zoom","100%");if(!g||!this._.position||!(this._.position.x==
a&&this._.position.y==b))this._.position={x:a,y:b},g||(g=CKEDITOR.document.getWindow().getScrollPosition(),a+=g.x,b+=g.y),e&&(g=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-g.width-a),b={top:(0<b?b:0)+"px"},b[e?"right":"left"]=(0<a?a:0)+"px",d.setStyles(b),c&&(this._.moved=1)},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;!a.getParent()||!a.getParent().equals(CKEDITOR.document.getBody())?a.appendTo(CKEDITOR.document.getBody()):
a.setStyle("display","block");if(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version){var c=this.parts.dialog;c.setStyle("position","absolute");setTimeout(function(){c.setStyle("position","fixed")},0)}this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);
this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,J(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",M);a.on(CKEDITOR.env.opera?"keypress":"keyup",N);this._.hasFocus=!1;CKEDITOR.tools.setTimeout(function(){this.layout();
T(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),d=(c.width-b.width)/2,e=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<e?e:0)>c.height||
b.width+(0<d?d:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:d,this._.moved?this._.position.y:e)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},
commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(X(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else K(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",M);a.removeListener(CKEDITOR.env.opera?"keypress":"keyup",N);var c=this._.editor;c.focus();setTimeout(function(){c.focusManager.unlock()},0)}delete this._.parentDialog;
this.foreach(function(a){a.resetInitValue&&a.resetInitValue()})}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title="'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",d=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),e=this._.contents[a.id]={},g=d.getChild(),f=0;d=g.shift();)!d.notAllowed&&("hbox"!=
d.type&&"vbox"!=d.type)&&f++,e[d.id]=d,"function"==typeof d.getChild&&g.push.apply(g,d.getChild());f||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");d=CKEDITOR.env;e="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['<a class="cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style="display:none"':"",' id="',e,'"',d.gecko&&10900<=d.version&&!d.hc?"":' href="javascript:void(0)"',' tabIndex="-1" hidefocus="true" role="tab">',
a.label,"</a>"].join(""));b.setAttribute("aria-labelledby",e);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&(O(this,this,"CTRL+"+a.accessKey,Y,Z),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!0!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=
this._.tabs[b][0],d=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),d.hide());d.setAttribute("aria-hidden",b!=a)}var e=this._.tabs[a];e[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(q(e[1]),e[1].show(),setTimeout(function(){q(e[1],1)},0)):e[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},
hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&(1!=this._.pageCount&&b.isVisible())&&(a==this._.currentTabId&&this.selectPage(p.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,
b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},
addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new H(this,a,b));else{this._.focusList.splice(b,0,new H(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){if(!this._.dialogDefinitions[a]||"function"==typeof b)this._.dialogDefinitions[a]=b},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},
isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(RegExp("(?:^|;)"+b+":"+c+"(?:$|;)","i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=
function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};
CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var W={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},z=function(a,b,c){for(var d=0,e;e=a[d];d++)if(e.id==b||c&&e[c]&&(e=z(e[c],b,c)))return e;return null},A=function(a,b,c,d,e){if(c){for(var g=0,f;f=a[g];g++){if(f.id==c)return a.splice(g,0,b),b;if(d&&f[d]&&(f=A(f[d],b,c,d,!0)))return f}if(e)return null}a.push(b);return b},
B=function(a,b,c){for(var d=0,e;e=a[d];d++){if(e.id==b)return a.splice(d,1);if(c&&e[c]&&(e=B(e[c],b,c)))return e}return null},L=function(a,b){this.dialog=a;for(var c=b.contents,d=0,e;e=c[d];d++)c[d]=e&&new I(a,e);CKEDITOR.tools.extend(this,b)};L.prototype={getContents:function(a){return z(this.contents,a)},getButton:function(a){return z(this.buttons,a)},addContents:function(a,b){return A(this.contents,a,b)},addButton:function(a,b){return A(this.buttons,a,b)},removeContents:function(a){B(this.contents,
a)},removeButton:function(a){B(this.buttons,a)}};I.prototype={get:function(a){return z(this.elements,a,"children")},add:function(a,b){return A(this.elements,a,b,"children")},remove:function(a){B(this.elements,a,"children")}};var G,w={},r,t={},M=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,d=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);if((b=t[(b?"CTRL+":"")+(c?"ALT+":"")+(d?"SHIFT+":"")+e])&&b.length)b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,
b.key),a.data.preventDefault()},N=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,d=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);if((b=t[(b?"CTRL+":"")+(c?"ALT+":"")+(d?"SHIFT+":"")+e])&&b.length)b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},O=function(a,b,c,d,e){(t[c]||(t[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:e||a.accessKeyUp,keydown:d||a.accessKeyDown})},X=function(a){for(var b in t){for(var c=t[b],d=c.length-
1;0<=d;d--)(c[d].dialog==a||c[d].uiElement==a)&&c.splice(d,1);0===c.length&&delete t[b]}},Z=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},Y=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,d,e,g,f){if(!(4>arguments.length)){var k=(d.call?d(b):d)||"div",m=["<",k," "],j=(e&&e.call?e(b):e)||{},h=(g&&g.call?g(b):g)||{},o=(f&&f.call?f.call(this,a,b):f)||"",i=this.domId=h.id||CKEDITOR.tools.getNextId()+"_uiElement";this.id=b.id;b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&
(j.display="none",this.notAllowed=!0);h.id=i;var n={};b.type&&(n["cke_dialog_ui_"+b.type]=1);b.className&&(n[b.className]=1);b.disabled&&(n.cke_disabled=1);for(var l=h["class"]&&h["class"].split?h["class"].split(" "):[],i=0;i<l.length;i++)l[i]&&(n[l[i]]=1);l=[];for(i in n)l.push(i);h["class"]=l.join(" ");b.title&&(h.title=b.title);n=(b.style||"").split(";");b.align&&(l=b.align,j["margin-left"]="left"==l?0:"auto",j["margin-right"]="right"==l?0:"auto");for(i in j)n.push(i+":"+j[i]);b.hidden&&n.push("display:none");
for(i=n.length-1;0<=i;i--)""===n[i]&&n.splice(i,1);0<n.length&&(h.style=(h.style?h.style+"; ":"")+n.join("; "));for(i in h)m.push(i+'="'+CKEDITOR.tools.htmlEncode(h[i])+'" ');m.push(">",o,"</",k,">");c.push(m.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,
b.setValue.call(this,c))}}));"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(b);this.accessKeyUp&&(this.accessKeyDown&&b.accessKey)&&O(this,a,"CTRL+"+b.accessKey);var p=this;a.on("load",function(){var b=p.getInputElement();if(b){var c=p.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&CKEDITOR.env.version<8?"cke_dialog_ui_focused":"";b.on("focus",
function(){a._.tabBarMode=false;a._.hasFocus=true;p.fire("focus");c&&this.addClass(c)});b.on("blur",function(){p.fire("blur");c&&this.removeClass(c)})}});this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=p.focusIndex}));CKEDITOR.tools.extend(this,b)}},hbox:function(a,b,c,d,e){if(!(4>arguments.length)){this._||(this._={});var g=this._.children=b,f=e&&e.widths||null,k=e&&e.height||null,m,j={role:"presentation"};
e&&e.align&&(j.align=e.align);CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"hbox"},d,"table",{},j,function(){var a=['<tbody><tr class="cke_dialog_ui_hbox">'];for(m=0;m<c.length;m++){var b="cke_dialog_ui_hbox_child",d=[];0===m&&(b="cke_dialog_ui_hbox_first");m==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('<td class="',b,'" role="presentation" ');f?f[m]&&d.push("width:"+s(f[m])):d.push("width:"+Math.floor(100/c.length)+"%");k&&d.push("height:"+s(k));e&&void 0!=e.padding&&d.push("padding:"+
s(e.padding));CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&g[m].align)&&d.push("text-align:"+g[m].align);0<d.length&&a.push('style="'+d.join("; ")+'" ');a.push(">",c[m],"</td>")}a.push("</tr></tbody>");return a.join("")})}},vbox:function(a,b,c,d,e){if(!(3>arguments.length)){this._||(this._={});var g=this._.children=b,f=e&&e.width||null,k=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},d,"div",null,{role:"presentation"},function(){var b=['<table role="presentation" cellspacing="0" border="0" '];
b.push('style="');e&&e.expand&&b.push("height:100%;");b.push("width:"+s(f||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align="',CKEDITOR.tools.htmlEncode(e&&e.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("><tbody>");for(var d=0;d<c.length;d++){var h=[];b.push('<tr><td role="presentation" ');f&&h.push("width:"+s(f||"100%"));k?h.push("height:"+s(k[d])):e&&e.expand&&h.push("height:"+Math.floor(100/c.length)+"%");e&&void 0!=e.padding&&h.push("padding:"+
s(e.padding));CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&g[d].align)&&h.push("text-align:"+g[d].align);0<h.length&&b.push('style="',h.join("; "),'" ');b.push(' class="cke_dialog_ui_vbox_child">',c[d],"</td></tr>")}b.push("</tbody></table>");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){this.getInputElement().setValue(a);
!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var b=
/^on([A-Z]\w+)/,c,d=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog,c[1].toLowerCase(),a[e]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();
this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return!this.isEnabled()||!this.isVisible()?!1:!0}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,d){for(var e=c.children,g,f=[],k=[],m=0;m<e.length&&(g=e[m]);m++){var j=[];f.push(j);k.push(CKEDITOR.dialog._.uiElementBuilders[g.type].build(a,g,j))}return new CKEDITOR.ui.dialog[c.type](a,
k,f,d,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){CKEDITOR.env.opera?CKEDITOR.tools.setTimeout(function(){a.openDialog(this.dialogName)},0,this):a.openDialog(this.dialogName)},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,
g=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c=void 0,d=CKEDITOR.VALIDATE_AND,e=[],g;for(g=0;g<a.length;g++)if("function"==typeof a[g])e.push(a[g]);else break;g<a.length&&"string"==typeof a[g]&&(c=a[g],g++);g<a.length&&"number"==typeof a[g]&&(d=a[g]);var i=d==CKEDITOR.VALIDATE_AND?!0:!1;for(g=0;g<e.length;g++)i=d==CKEDITOR.VALIDATE_AND?
i&&e[g](b):i||e[g](b);return!i?c:!0}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return!a.test(c)?b:!0}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return g.test(CKEDITOR.tools.trim(a))},
a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in w)w[c].remove();w={}}var a=a.editor._.storedDialogs,d;for(d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,d=CKEDITOR.dialog._.dialogDefinitions[a];
null===CKEDITOR.dialog._.currentTop&&J(this);if("function"==typeof d)c=this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==d)throw K(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof d&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(d),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,
b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(p){p.on("contentDom",function(){var u=p.editable();u.attachListener(u,"dblclick",function(q){if(p.readOnly)return!1;q={element:q.data.getTarget()};p.fire("doubleclick",q);q.dialog&&p.openDialog(q.dialog);return 1})})}});CKEDITOR.plugins.add("about",{requires:"dialog",init:function(a){var b=a.addCommand("about",new CKEDITOR.dialogCommand("about"));b.modes={wysiwyg:1,source:1};b.canUndo=!1;b.readOnly=1;a.ui.addButton&&a.ui.addButton("About",{label:a.lang.about.title,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,en:1,eo:1,es:1,et:1,fa:1,fi:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,ug:1,uk:1,vi:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a=b.langCode,a=c.availableLangs[a]?a:c.availableLangs[a.replace(/-.*/,
"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js")}})})();(function(){function f(c){var a=this.att,c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function g(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}var i={id:1,dir:1,classes:1,styles:1};CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",allowedContent:function(c){c||(c=i);var a=[];c.id&&a.push("id");c.dir&&a.push("dir");var b=
"";a.length&&(b+="["+a.join(",")+"]");c.classes&&(b+="(*)");c.styles&&(b+="{*}");return b},createAdvancedTab:function(c,a,b){a||(a=i);var d=c.lang.common,h={id:"advanced",label:d.advancedTab,title:d.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},e=[];if(a.id||a.dir)a.id&&e.push({id:"advId",att:"id",type:"text",requiredContent:b?b+"[id]":null,label:d.id,setup:f,commit:g}),a.dir&&e.push({id:"advLangDir",att:"dir",type:"select",requiredContent:b?b+"[dir]":null,label:d.langDir,"default":"",
style:"width:100%",items:[[d.notSet,""],[d.langDirLTR,"ltr"],[d.langDirRTL,"rtl"]],setup:f,commit:g}),h.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(e)});if(a.styles||a.classes)e=[],a.styles&&e.push({id:"advStyles",att:"style",type:"text",requiredContent:b?b+"{cke-xyz}":null,label:d.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(RegExp("(?:^|;)\\s*"+a+
"\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:f,commit:g}),a.classes&&e.push({type:"hbox",widths:["45%","55%"],children:[{id:"advCSSClasses",att:"class",type:"text",requiredContent:b?b+"(cke-xyz)":null,label:d.cssClasses,"default":"",setup:f,commit:g}]}),h.elements[0].children.push({type:"hbox",
widths:["50%","50%"],children:[].concat(e)});return h}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){var a=new CKEDITOR.style(a),f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==
a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},b=c.config,a=c.lang.basicstyles;d("Bold",a.bold,"bold",b.coreStyles_bold);d("Italic",a.italic,"italic",b.coreStyles_italic);d("Underline",a.underline,"underline",b.coreStyles_underline);d("Strike",a.strike,"strike",b.coreStyles_strike);d("Subscript",a.subscript,
"subscript",b.coreStyles_subscript);d("Superscript",a.superscript,"superscript",b.coreStyles_superscript);c.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};
CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){function n(a,f,d,b){if(!a.isReadOnly()&&!a.equals(d.editable())){CKEDITOR.dom.element.setMarker(b,a,"bidi_processed",1);for(var b=a,c=d.editable();(b=b.getParent())&&!b.equals(c);)if(b.getCustomData("bidi_processed")){a.removeStyle("direction");a.removeAttribute("dir");return}b="useComputedState"in d.config?d.config.useComputedState:1;if((b?a.getComputedStyle("direction"):a.getStyle("direction")||a.hasAttribute("dir"))!=f)a.removeStyle("direction"),b?(a.removeAttribute("dir"),f!=a.getComputedStyle("direction")&&
a.setAttribute("dir",f)):a.setAttribute("dir",f),d.forceNextSelectionCheck()}}function r(a,f,d){var b=a.getCommonAncestor(!1,!0),a=a.clone();a.enlarge(d==CKEDITOR.ENTER_BR?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);if(a.checkBoundaryOfElement(b,CKEDITOR.START)&&a.checkBoundaryOfElement(b,CKEDITOR.END)){for(var c;b&&b.type==CKEDITOR.NODE_ELEMENT&&(c=b.getParent())&&1==c.getChildCount()&&!(b.getName()in f);)b=c;return b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in f&&b}}function m(a){return{context:"p",
allowedContent:{"h1 h2 h3 h4 h5 h6 table ul ol blockquote div tr p div li td":{propertiesOnly:!0,attributes:"dir"}},requiredContent:"p[dir]",refresh:function(a,d){var b=a.config.useComputedState,c,b=void 0===b||b;if(!b){c=d.lastElement;for(var h=a.editable();c&&!(c.getName()in q||c.equals(h));){var e=c.getParent();if(!e)break;c=e}}c=c||d.block||d.blockLimit;c.equals(a.editable())&&(h=a.getSelection().getRanges()[0].getEnclosedNode())&&h.type==CKEDITOR.NODE_ELEMENT&&(c=h);c&&(b=b?c.getComputedStyle("direction"):
c.getStyle("direction")||c.getAttribute("dir"),a.getCommand("bidirtl").setState("rtl"==b?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),a.getCommand("bidiltr").setState("ltr"==b?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF));b=(d.block||d.blockLimit||a.editable()).getDirection(1);if(b!=(a._.selDir||a.lang.dir))a._.selDir=b,a.fire("contentDirChanged",b)},exec:function(f){var d=f.getSelection(),b=f.config.enterMode,c=d.getRanges();if(c&&c.length){for(var h={},e=d.createBookmarks(),c=c.createIterator(),g,
j=0;g=c.getNextRange(1);){var i=g.getEnclosedNode();if(!i||i&&!(i.type==CKEDITOR.NODE_ELEMENT&&i.getName()in o))i=r(g,p,b);i&&n(i,a,f,h);var k=new CKEDITOR.dom.walker(g),l=e[j].startNode,m=e[j++].endNode;k.evaluator=function(a){return!!(a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in p&&!(a.getName()==(b==CKEDITOR.ENTER_P?"p":"div")&&a.getParent().type==CKEDITOR.NODE_ELEMENT&&"blockquote"==a.getParent().getName())&&a.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&(a.getPosition(m)&CKEDITOR.POSITION_PRECEDING+
CKEDITOR.POSITION_CONTAINS)==CKEDITOR.POSITION_PRECEDING)};for(;i=k.next();)n(i,a,f,h);g=g.createIterator();for(g.enlargeBr=b!=CKEDITOR.ENTER_BR;i=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)n(i,a,f,h)}CKEDITOR.dom.element.clearAllMarkers(h);f.forceNextSelectionCheck();d.selectBookmarks(e);f.focus()}}}}function s(a){var f=a==j.setAttribute,d=a==j.removeAttribute,b=/\bdirection\s*:\s*(.*?)\s*(:?$|;)/;return function(c,h){if(!this.isReadOnly()){var e;if(e=c==(f||d?"dir":"direction")||"style"==
c&&(d||b.test(h))){a:{e=this;for(var g=e.getDocument().getBody().getParent();e;){if(e.equals(g)){e=!1;break a}e=e.getParent()}e=!0}e=!e}if(e&&(e=this.getDirection(1),g=a.apply(this,arguments),e!=this.getDirection(1)))return this.getDocument().fire("dirChanged",this),g}return a.apply(this,arguments)}}var p={table:1,ul:1,ol:1,blockquote:1,div:1},o={},q={};CKEDITOR.tools.extend(o,p,{tr:1,p:1,div:1,li:1});CKEDITOR.tools.extend(q,o,{td:1});CKEDITOR.plugins.add("bidi",{init:function(a){function f(b,c,d,
e,f){a.addCommand(d,new CKEDITOR.command(a,e));a.ui.addButton&&a.ui.addButton(b,{label:c,command:d,toolbar:"bidi,"+f})}if(!a.blockless){var d=a.lang.bidi;a.ui.addToolbarGroup&&a.ui.addToolbarGroup("bidi","align","paragraph");f("BidiLtr",d.ltr,"bidiltr",m("ltr"),10);f("BidiRtl",d.rtl,"bidirtl",m("rtl"),20);a.on("contentDom",function(){a.document.on("dirChanged",function(b){a.fire("dirChanged",{node:b.data,dir:b.data.getDirection(1)})})});a.on("contentDirChanged",function(b){var b=(a.lang.dir!=b.data?
"add":"remove")+"Class",c=a.ui.space(a.config.toolbarLocation);if(c)c[b]("cke_mixed_dir_content")})}}});for(var j=CKEDITOR.dom.element.prototype,l=["setStyle","removeStyle","setAttribute","removeAttribute"],k=0;k<l.length;k++)j[l[k]]=CKEDITOR.tools.override(j[l[k]],s)})();(function(){var k={exec:function(g){var a=g.getCommand("blockquote").state,i=g.getSelection(),c=i&&i.getRanges(!0)[0];if(c){var h=i.createBookmarks();if(CKEDITOR.env.ie){var e=h[0].startNode,b=h[0].endNode,d;if(e&&"blockquote"==e.getParent().getName())for(d=e;d=d.getNext();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){e.move(d,!0);break}if(b&&"blockquote"==b.getParent().getName())for(d=b;d=d.getPrevious();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){b.move(d);break}}var f=c.createIterator();
f.enlargeBr=g.config.enterMode!=CKEDITOR.ENTER_BR;if(a==CKEDITOR.TRISTATE_OFF){for(e=[];a=f.getNextParagraph();)e.push(a);1>e.length&&(a=g.document.createElement(g.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),b=h.shift(),c.insertNode(a),a.append(new CKEDITOR.dom.text("",g.document)),c.moveToBookmark(b),c.selectNodeContents(a),c.collapse(!0),b=c.createBookmark(),e.push(a),h.unshift(b));d=e[0].getParent();c=[];for(b=0;b<e.length;b++)a=e[b],d=d.getCommonAncestor(a.getParent());for(a={table:1,tbody:1,
tr:1,ol:1,ul:1};a[d.getName()];)d=d.getParent();for(b=null;0<e.length;){for(a=e.shift();!a.getParent().equals(d);)a=a.getParent();a.equals(b)||c.push(a);b=a}for(;0<c.length;)if(a=c.shift(),"blockquote"==a.getName()){for(b=new CKEDITOR.dom.documentFragment(g.document);a.getFirst();)b.append(a.getFirst().remove()),e.push(b.getLast());b.replace(a)}else e.push(a);c=g.document.createElement("blockquote");for(c.insertBefore(e[0]);0<e.length;)a=e.shift(),c.append(a)}else if(a==CKEDITOR.TRISTATE_ON){b=[];
for(d={};a=f.getNextParagraph();){for(e=c=null;a.getParent();){if("blockquote"==a.getParent().getName()){c=a.getParent();e=a;break}a=a.getParent()}c&&(e&&!e.getCustomData("blockquote_moveout"))&&(b.push(e),CKEDITOR.dom.element.setMarker(d,e,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(d);a=[];e=[];for(d={};0<b.length;)f=b.shift(),c=f.getParent(),f.getPrevious()?f.getNext()?(f.breakParent(f.getParent()),e.push(f.getNext())):f.remove().insertAfter(c):f.remove().insertBefore(c),c.getCustomData("blockquote_processed")||
(e.push(c),CKEDITOR.dom.element.setMarker(d,c,"blockquote_processed",!0)),a.push(f);CKEDITOR.dom.element.clearAllMarkers(d);for(b=e.length-1;0<=b;b--){c=e[b];a:{d=c;for(var f=0,k=d.getChildCount(),j=void 0;f<k&&(j=d.getChild(f));f++)if(j.type==CKEDITOR.NODE_ELEMENT&&j.isBlockBoundary()){d=!1;break a}d=!0}d&&c.remove()}if(g.config.enterMode==CKEDITOR.ENTER_BR)for(c=!0;a.length;)if(f=a.shift(),"div"==f.getName()){b=new CKEDITOR.dom.documentFragment(g.document);c&&(f.getPrevious()&&!(f.getPrevious().type==
CKEDITOR.NODE_ELEMENT&&f.getPrevious().isBlockBoundary()))&&b.append(g.document.createElement("br"));for(c=f.getNext()&&!(f.getNext().type==CKEDITOR.NODE_ELEMENT&&f.getNext().isBlockBoundary());f.getFirst();)f.getFirst().remove().appendTo(b);c&&b.append(g.document.createElement("br"));b.replace(f);c=!1}}i.selectBookmarks(h);g.focus()}},refresh:function(g,a){this.setState(g.elementPath(a.block||a.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",
allowedContent:"blockquote",requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(g){g.blockless||(g.addCommand("blockquote",k),g.ui.addButton&&g.ui.addButton("Blockquote",{label:g.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})})();(function(){function w(a){function b(){var d=a.editable();d.on(q,function(a){(!CKEDITOR.env.ie||!m)&&u(a)});CKEDITOR.env.ie&&d.on("paste",function(d){r||(f(),d.data.preventDefault(),u(d),k("paste")||a.openDialog("paste"))});CKEDITOR.env.ie&&(d.on("contextmenu",h,null,null,0),d.on("beforepaste",function(a){a.data&&!a.data.$.ctrlKey&&h()},null,null,0));d.on("beforecut",function(){!m&&l(a)});var v;d.attachListener(CKEDITOR.env.ie?d:a.document.getDocumentElement(),"mouseup",function(){v=setTimeout(function(){s()},
0)});a.on("destroy",function(){clearTimeout(v)});d.on("keyup",s)}function e(d){return{type:d,canUndo:"cut"==d,startDisabled:!0,exec:function(){"cut"==this.type&&l();var d;var b=this.type;if(CKEDITOR.env.ie)d=k(b);else try{d=a.document.$.execCommand(b,!1,null)}catch(c){d=!1}d||alert(a.lang.clipboard[this.type+"Error"]);return d}}}function c(){return{canUndo:!1,async:!0,exec:function(a,b){var c=function(b,c){b&&g(b.type,b.dataValue,!!c);a.fire("afterCommandExec",{name:"paste",command:e,returnValue:!!b})},
e=this;"string"==typeof b?c({type:"auto",dataValue:b},1):a.getClipboardData(c)}}}function f(){r=1;setTimeout(function(){r=0},100)}function h(){m=1;setTimeout(function(){m=0},10)}function k(d){var b=a.document,c=b.getBody(),e=!1,l=function(){e=!0};c.on(d,l);(7<CKEDITOR.env.version?b.$:b.$.selection.createRange()).execCommand(d);c.removeListener(d,l);return e}function g(d,b,c){d={type:d};if(c&&!a.fire("beforePaste",d)||!b)return!1;d.dataValue=b;return a.fire("paste",d)}function l(){if(CKEDITOR.env.ie&&
!CKEDITOR.env.quirks){var d=a.getSelection(),b,c,e;if(d.getType()==CKEDITOR.SELECTION_ELEMENT&&(b=d.getSelectedElement()))c=d.getRanges()[0],e=a.document.createText(""),e.insertBefore(b),c.setStartBefore(e),c.setEndAfter(b),d.selectRanges([c]),setTimeout(function(){b.getParent()&&(e.remove(),d.selectElement(b))},0)}}function i(d,b){var c=a.document,e=a.editable(),l=function(a){a.cancel()},i=CKEDITOR.env.gecko&&10902>=CKEDITOR.env.version,f;if(!c.getById("cke_pastebin")){var h=a.getSelection(),o=h.createBookmarks(),
j=new CKEDITOR.dom.element((CKEDITOR.env.webkit||e.is("body"))&&!CKEDITOR.env.ie&&!CKEDITOR.env.opera?"body":"div",c);j.setAttribute("id","cke_pastebin");CKEDITOR.env.opera&&j.appendBogus();var g=0,c=c.getWindow();i?(j.insertAfter(o[0].startNode),j.setStyle("display","inline")):(CKEDITOR.env.webkit?(e.append(j),j.addClass("cke_editable"),e.is("body")||(i="static"!=e.getComputedStyle("position")?e:CKEDITOR.dom.element.get(e.$.offsetParent),g=i.getDocumentPosition().y)):e.getAscendant(CKEDITOR.env.ie||
CKEDITOR.env.opera?"body":"html",1).append(j),j.setStyles({position:"absolute",top:c.getScrollPosition().y-g+10+"px",width:"1px",height:Math.max(1,c.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0}));(i=j.getParent().isReadOnly())?(j.setOpacity(0),j.setAttribute("contenteditable",!0)):j.setStyle("ltr"==a.config.contentsLangDirection?"left":"right","-1000px");a.on("selectionChange",l,null,null,0);CKEDITOR.env.webkit&&(f=e.once("blur",l,null,null,-100));i&&j.focus();i=new CKEDITOR.dom.range(j);
i.selectNodeContents(j);var k=i.select();CKEDITOR.env.ie&&(f=e.once("blur",function(){a.lockSelection(k)}));var m=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){if(CKEDITOR.env.webkit||CKEDITOR.env.opera)CKEDITOR.document[CKEDITOR.env.webkit?"getBody":"getDocumentElement"]().$.scrollTop=m;f&&f.removeListener();CKEDITOR.env.ie&&e.focus();h.selectBookmarks(o);j.remove();var d;if(CKEDITOR.env.webkit&&(d=j.getFirst())&&d.is&&d.hasClass("Apple-style-span"))j=d;a.removeListener("selectionChange",
l);b(j.getHtml())},0)}}function o(){if(CKEDITOR.env.ie){a.focus();f();var d=a.focusManager;d.lock();if(a.editable().fire(q)&&!k("paste"))return d.unlock(),!1;d.unlock()}else try{if(a.editable().fire(q)&&!a.document.$.execCommand("Paste",!1,null))throw 0;}catch(b){return!1}return!0}function p(d){if("wysiwyg"==a.mode)switch(d.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:d=a.editable();f();!CKEDITOR.env.ie&&d.fire("beforepaste");(CKEDITOR.env.opera||CKEDITOR.env.gecko&&10900>CKEDITOR.env.version)&&
d.fire("paste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:a.fire("saveSnapshot"),setTimeout(function(){a.fire("saveSnapshot")},0)}}function u(d){var b={type:"auto"},c=a.fire("beforePaste",b);i(d,function(a){a=a.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");c&&g(b.type,a,0,1)})}function s(){if("wysiwyg"==a.mode){var b=n("Paste");a.getCommand("cut").setState(n("Cut"));a.getCommand("copy").setState(n("Copy"));a.getCommand("paste").setState(b);a.fire("pasteState",b)}}function n(b){var c;
if(t&&b in{Paste:1,Cut:1})return CKEDITOR.TRISTATE_DISABLED;if("Paste"==b){CKEDITOR.env.ie&&(m=1);try{c=a.document.$.queryCommandEnabled(b)||CKEDITOR.env.webkit}catch(e){}m=0}else b=a.getSelection(),c=b.getRanges(),c=b.getType()!=CKEDITOR.SELECTION_NONE&&!(1==c.length&&c[0].collapsed);return c?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}var m=0,r=0,t=0,q=CKEDITOR.env.ie?"beforepaste":"paste";(function(){a.on("key",p);a.on("contentDom",b);a.on("selectionChange",function(a){t=a.data.selection.getRanges()[0].checkReadOnly();
s()});a.contextMenu&&a.contextMenu.addListener(function(a,b){t=b.getRanges()[0].checkReadOnly();return{cut:n("Cut"),copy:n("Copy"),paste:n("Paste")}})})();(function(){function b(c,e,d,l,i){var f=a.lang.clipboard[e];a.addCommand(e,d);a.ui.addButton&&a.ui.addButton(c,{label:f,command:e,toolbar:"clipboard,"+l});a.addMenuItems&&a.addMenuItem(e,{label:f,command:e,group:"clipboard",order:i})}b("Cut","cut",e("cut"),10,1);b("Copy","copy",e("copy"),20,4);b("Paste","paste",c(),30,8)})();a.getClipboardData=
function(b,c){function e(a){a.removeListener();a.cancel();c(a.data)}function l(a){a.removeListener();a.cancel();g=!0;c({type:h,dataValue:a.data})}function i(){this.customTitle=b&&b.title}var f=!1,h="auto",g=!1;c||(c=b,b=null);a.on("paste",e,null,null,0);a.on("beforePaste",function(a){a.removeListener();f=true;h=a.data.type},null,null,1E3);!1===o()&&(a.removeListener("paste",e),f&&a.fire("pasteDialog",i)?(a.on("pasteDialogCommit",l),a.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",
l);setTimeout(function(){g||c(null)},10)})):c(null))}}function x(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&!a.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!a.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko||CKEDITOR.env.opera){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";return"htmlifiedtext"}function y(a,b){function e(a){return CKEDITOR.tools.repeat("</p><p>",
~~(a/2))+(1==a%2?"<br>":"")}b=b.replace(/\s+/g," ").replace(/> +</g,"><").replace(/<br ?\/>/gi,"<br>");b=b.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()});if(b.match(/^[^<]$/))return b;CKEDITOR.env.webkit&&-1<b.indexOf("<div>")&&(b=b.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"<br>").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"<div></div>"),b.match(/<div>(<br>|)<\/div>/)&&(b="<p>"+b.replace(/(<div>(<br>|)<\/div>)+/g,function(a){return e(a.split("</div><div>").length+1)})+
"</p>"),b=b.replace(/<\/div><div>/g,"<br>"),b=b.replace(/<\/?div>/g,""));if((CKEDITOR.env.gecko||CKEDITOR.env.opera)&&a.enterMode!=CKEDITOR.ENTER_BR)CKEDITOR.env.gecko&&(b=b.replace(/^<br><br>$/,"<br>")),-1<b.indexOf("<br><br>")&&(b="<p>"+b.replace(/(<br>){2,}/g,function(a){return e(a.length/4)})+"</p>");return p(a,b)}function z(){var a=new CKEDITOR.htmlParser.filter,b={blockquote:1,dl:1,fieldset:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ol:1,p:1,table:1,ul:1},e=CKEDITOR.tools.extend({br:0},CKEDITOR.dtd.$inline),
c={p:1,br:1,"cke:br":1},f=CKEDITOR.dtd,h=CKEDITOR.tools.extend({area:1,basefont:1,embed:1,iframe:1,map:1,object:1,param:1},CKEDITOR.dtd.$nonBodyContent,CKEDITOR.dtd.$cdata),k=function(a){delete a.name;a.add(new CKEDITOR.htmlParser.text(" "))},g=function(a){for(var b=a,c;(b=b.next)&&b.name&&b.name.match(/^h\d$/);){c=new CKEDITOR.htmlParser.element("cke:br");c.isEmpty=!0;for(a.add(c);c=b.children.shift();)a.add(c)}};a.addRules({elements:{h1:g,h2:g,h3:g,h4:g,h5:g,h6:g,img:function(a){var a=CKEDITOR.tools.trim(a.attributes.alt||
""),b=" ";a&&!a.match(/(^http|\.(jpe?g|gif|png))/i)&&(b=" ["+a+"] ");return new CKEDITOR.htmlParser.text(b)},td:k,th:k,$:function(a){var i=a.name,g;if(h[i])return!1;delete a.attributes;if("br"==i)return a;if(b[i])a.name="p";else if(e[i])delete a.name;else if(f[i]){g=new CKEDITOR.htmlParser.element("cke:br");g.isEmpty=!0;if(CKEDITOR.dtd.$empty[i])return g;a.add(g,0);g=g.clone();g.isEmpty=!0;a.add(g);delete a.name}c[a.name]||delete a.name;return a}}});return a}function A(a,b,e){var b=new CKEDITOR.htmlParser.fragment.fromHtml(b),
c=new CKEDITOR.htmlParser.basicWriter;b.writeHtml(c,e);var b=c.getHtml(),b=b.replace(/\s*(<\/?[a-z:]+ ?\/?>)\s*/g,"$1").replace(/(<cke:br \/>){2,}/g,"<cke:br />").replace(/(<cke:br \/>)(<\/?p>|<br \/>)/g,"$2").replace(/(<\/?p>|<br \/>)(<cke:br \/>)/g,"$1").replace(/<(cke:)?br( \/)?>/g,"<br>").replace(/<p><\/p>/g,""),f=0,b=b.replace(/<\/?p>/g,function(a){if("<p>"==a){if(1<++f)return"</p><p>"}else if(0<--f)return"</p><p>";return a}).replace(/<p><\/p>/g,"");return p(a,b)}function p(a,b){a.enterMode==
CKEDITOR.ENTER_BR?b=b.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("<br>",2*(a.length/7))}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(b=b.replace(/<(\/)?p>/g,"<$1div>"));return b}CKEDITOR.plugins.add("clipboard",{requires:"dialog",init:function(a){var b;w(a);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));a.on("paste",function(a){var b=a.data.dataValue,f=CKEDITOR.dtd.$block;-1<b.indexOf("Apple-")&&(b=b.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi,
" "),"html"!=a.data.type&&(b=b.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"&nbsp;&nbsp; &nbsp;")})),-1<b.indexOf('<br class="Apple-interchange-newline">')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",b=b.replace(/<br class="Apple-interchange-newline">/,"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(b.match(/^<[^<]+cke_(editable|contents)/i)){var h,k,g=new CKEDITOR.dom.element("div");for(g.setHtml(b);1==g.getChildCount()&&(h=
g.getFirst())&&h.type==CKEDITOR.NODE_ELEMENT&&(h.hasClass("cke_editable")||h.hasClass("cke_contents"));)g=k=h;k&&(b=k.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?b=b.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(b,c){if(c.toLowerCase()in f){a.data.preSniffing="html";return"<"+c}return b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)><div><br><\/div>$/,function(b,c){if(c in f){a.data.endsWithEOL=1;return"</"+c+">"}return b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)<br>$/,"$1"));a.data.dataValue=b},null,
null,3);a.on("paste",function(e){var e=e.data,c=e.type,f=e.dataValue,h,k=a.config.clipboard_defaultContentType||"html";h="html"==c||"html"==e.preSniffing?"html":x(f);"htmlifiedtext"==h?f=y(a.config,f):"text"==c&&"html"==h&&(f=A(a.config,f,b||(b=z(a))));e.startsWithEOL&&(f='<br data-cke-eol="1">'+f);e.endsWithEOL&&(f+='<br data-cke-eol="1">');"auto"==c&&(c="html"==h||"html"==k?"html":"text");e.type=c;e.dataValue=f;delete e.preSniffing;delete e.startsWithEOL;delete e.endsWithEOL},null,null,6);a.on("paste",
function(b){b=b.data;a.insertHtml(b.dataValue,b.type);setTimeout(function(){a.fire("afterPaste")},0)},null,null,1E3);a.on("pasteDialog",function(b){setTimeout(function(){a.openDialog("paste",b.data)},0)})}})})();(function(){var c='<a id="{id}" class="cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&10900<=CKEDITOR.env.version&&!CKEDITOR.env.hc?"":'" href="javascript:void(\'{titleJs}\')"')+' title="{title}" tabindex="-1" hidefocus="true" role="button" aria-labelledby="{id}_label" aria-haspopup="{hasArrow}"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)c+=' onkeypress="return false;"';CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var c=
c+(' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},this);return false;"><span class="cke_button_icon cke_button__{iconName}_icon" style="{style}"'),c=c+'>&nbsp;</span><span id="{id}_label" class="cke_button_label cke_button__{name}_label">{label}</span>{arrowHtml}</a>',
m=CKEDITOR.addTemplate("buttonArrow",'<span class="cke_button_arrow">'+(CKEDITOR.env.hc?"&#9660;":"")+"</span>"),n=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
CKEDITOR.ui.button.prototype={render:function(a,b){var c=CKEDITOR.env,i=this._.id=CKEDITOR.tools.getNextId(),f="",e=this.command,l;this._.editor=a;var d={id:i,button:this,editor:a,focus:function(){CKEDITOR.document.getById(i).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},o=CKEDITOR.tools.addFunction(function(a){if(d.onkey)return a=new CKEDITOR.dom.event(a),!1!==d.onkey(d,a.getKeystroke())}),p=CKEDITOR.tools.addFunction(function(a){var b;d.onfocus&&(b=
!1!==d.onfocus(d,new CKEDITOR.dom.event(a)));CKEDITOR.env.gecko&&10900>CKEDITOR.env.version&&a.preventBubble();return b}),j=0,q=CKEDITOR.tools.addFunction(function(){if(CKEDITOR.env.opera){var b=a.editable();b.isInline()&&b.hasFocus&&(a.lockSelection(),j=1)}});d.clickFn=l=CKEDITOR.tools.addFunction(function(){j&&(a.unlockSelection(1),j=0);d.execute()});if(this.modes){var k={},g=function(){var b=a.mode;b&&(b=this.modes[b]?void 0!=k[b]?k[b]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,this.setState(a.readOnly&&
!this.readOnly?CKEDITOR.TRISTATE_DISABLED:b))};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(k[a.mode]=this._.state)},this);a.on("mode",g,this);!this.readOnly&&a.on("readOnly",g,this)}else if(e&&(e=a.getCommand(e)))e.on("state",function(){this.setState(e.state)},this),f+=e.state==CKEDITOR.TRISTATE_ON?"on":e.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=
c.getFirst(),b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(h,"rtl"==b,this.icon,this.iconOffset))},this);e||(f+="off");var h=g=this.name||this.command;this.icon&&!/\./.test(this.icon)&&(h=this.icon,this.icon=null);c={id:i,name:g,iconName:h,label:this.label,cls:this.className||"",state:f,title:this.title,titleJs:c.gecko&&10900<=c.version&&!c.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?
"true":"false",keydownFn:o,mousedownFn:q,focusFn:p,clickFn:l,style:CKEDITOR.skin.getIconStyle(h,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?m.output():""};n.output(c,b);if(this.onRender)this.onRender();return d},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),a==CKEDITOR.TRISTATE_ON?
b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;!this.allowedContent&&(!this.requiredContent&&this.command)&&(b=a.getCommand(this.command)||b);return this._.feature=b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated=
!0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()};
d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}});
CKEDITOR.UI_PANELBUTTON="panelbutton";(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var e=CKEDITOR.addTemplate("panel",
'<div lang="{langCode}" id="{id}" dir={dir} class="cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style="z-index:{z-index}" role="presentation">{frame}</div>'),f=CKEDITOR.addTemplate("panel-frame",'<iframe id="{id}" class="cke_panel_frame" role="presentation" frameborder="0" src="{src}"></iframe>'),g=CKEDITOR.addTemplate("panel-frame-inner",'<!DOCTYPE html><html class="cke_panel_container {env}" dir="{dir}" lang="{langCode}"><head>{css}</head><body class="cke_{dir}" style="margin:0;padding:0" onload="{onload}"></body></html>');
CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(g.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
b+");"},c)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("key"+(CKEDITOR.env.opera?"press":"down"),function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var c=
{editorId:a.id,id:this.id,langCode:a.langCode,dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};if(this.isFramed){var d=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";c.frame=f.output({id:this.id+"_frame",src:d})}d=e.output(c);b&&b.push(d);return d},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?
b:new CKEDITOR.ui.panel.block(this.getHolderElement(),b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){var a=this._.blocks[a],b=this._.currentBlock,c=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&(c.removeAttributes(b.attributes),b.hide());this._.currentBlock=a;c.setAttributes(a.attributes);CKEDITOR.fire("ariaWidget",c);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,
a);a.show();return a},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabIndex:-1,"class":"cke_panel_block",role:"presentation",tabindex:0},styles:{display:"none"}}));b&&CKEDITOR.tools.extend(this,b);this.element.setAttributes({"aria-label":this.attributes["aria-label"],title:this.attributes.title||this.attributes["aria-label"]});delete this.attributes["aria-label"];
delete this.attributes.title;this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=a),(CKEDITOR.env.webkit||CKEDITOR.env.opera)&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){(!this.onHide||!0!==this.onHide.call(this))&&this.element.setStyle("display","none")},onKeyDown:function(a){var b=
this.keys[a];switch(b){case "next":for(var a=this._.focusIndex,b=this.element.getElementsByTag("a"),c;c=b.getItem(++a);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=a;c.focus();break}return!1;case "prev":a=this._.focusIndex;for(b=this.element.getElementsByTag("a");0<a&&(c=b.getItem(--a));)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=a;c.focus();break}return!1;case "click":case "mouseup":return a=this._.focusIndex,(c=0<=a&&this.element.getElementsByTag("a").getItem(a))&&
(c.$[b]?c.$[b]():c.$["on"+b]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
(function(){function o(a,b,c,h,g){var g=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",h.css||"",g||""),e=i[g];e||(e=i[g]=new CKEDITOR.ui.panel(b,h),e.element=c.append(CKEDITOR.dom.element.createFromHtml(e.render(a),b)),e.element.setStyles({display:"none",position:"absolute"}));return e}var i={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,h){function g(){j.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
(b=CKEDITOR.document.getById("cke_"+a.name));var e=b.getDocument(),h=o(a,e,b,c,h||0),k=h.element,d=k.getFirst(),j=this;k.disableContextMenu();this.element=k;this._={editor:a,panel:h,parentElement:b,definition:c,document:e,iframe:d,children:[],dir:a.lang.dir};a.on("mode",g);a.on("resize",g);e.getWindow().on("resize",g)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,b)},getBlock:function(a){return this._.panel.getBlock(a)},
showBlock:function(a,b,c,h,g){var e=this._.panel,k=e.showBlock(a);this.allowBlur(!1);a=this._.editor.editable();this._.returnFocus=a.hasFocus?a:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);var d=this.element,a=this._.iframe,a=CKEDITOR.env.ie?a:new CKEDITOR.dom.window(a.$.contentWindow),j=d.getDocument(),i=this._.parentElement.getPositionedAncestor(),n=b.getDocumentPosition(j),j=i?i.getDocumentPosition(j):{x:0,y:0},m="rtl"==this._.dir,f=n.x+(h||0)-j.x,l=n.y+(g||0)-j.y;if(m&&(1==c||4==
c))f+=b.$.offsetWidth;else if(!m&&(2==c||3==c))f+=b.$.offsetWidth-1;if(3==c||4==c)l+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();d.setStyles({top:l+"px",left:0,display:""});d.setOpacity(0);d.getFirst().removeStyle("width");this._.editor.focusManager.add(a);this._.blurSet||(CKEDITOR.event.useCapture=!0,a.on("blur",function(a){this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&(this.visible&&!this._.activeChild)&&(delete this._.returnFocus,this.hide())},this),a.on("focus",
function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.event.useCapture=!1,this._.blurSet=1);e.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&this.onEscape(a)===false)return false},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){d.removeStyle("width");if(k.autoSize){var a=k.element.getDocument(),a=(CKEDITOR.env.webkit?k.element:a.getBody()).$.scrollWidth;CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&a>0)&&(a=a+((d.$.offsetWidth||0)-(d.$.clientWidth||
0)+3));d.setStyle("width",a+10+"px");a=k.element.$.scrollHeight;CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&a>0)&&(a=a+((d.$.offsetHeight||0)-(d.$.clientHeight||0)+3));d.setStyle("height",a+"px");e._.currentBlock.element.setStyle("display","none").removeStyle("display")}else d.removeStyle("height");m&&(f=f-d.$.offsetWidth);d.setStyle("left",f+"px");var b=e.element.getWindow(),a=d.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,g=a.height||a.bottom-a.top,h=m?a.right:b.width-a.left,
i=m?b.width-a.right:a.left;m?h<c&&(f=i>c?f+c:b.width>c?f-a.left:f-a.right+b.width):h<c&&(f=i>c?f-c:b.width>c?f-a.right+b.width:f-a.left);c=a.top;b.height-a.top<g&&(l=c>g?l-g:b.height>g?l-a.bottom+b.height:l-a.top);if(CKEDITOR.env.ie){b=a=new CKEDITOR.dom.element(d.$.offsetParent);b.getName()=="html"&&(b=b.getDocument().getBody());b.getComputedStyle("direction")=="rtl"&&(f=CKEDITOR.env.ie8Compat?f-d.getDocument().getDocumentElement().$.scrollLeft*2:f-(a.$.scrollWidth-a.$.clientWidth))}var a=d.getFirst(),
j;(j=a.getCustomData("activePanel"))&&j.onHide&&j.onHide.call(this,1);a.setCustomData("activePanel",this);d.setStyles({top:l+"px",left:f+"px"});d.setOpacity(1)},this);e.isLoaded?a():e.onLoad=a;CKEDITOR.tools.setTimeout(function(){this.focus();this.allowBlur(true);this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||
this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),
a.focus();delete this._.lastFocused;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!=a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,h,g,e){this._.activeChild==a&&a._.panel._.offsetParentId==c.getId()||(this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,h,g,e),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&
setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100))},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in i){var c=i[b];a?c.destroy():c.element.hide()}a&&(i={})})})();CKEDITOR.plugins.add("colorbutton",{requires:"panelbutton,floatpanel",init:function(c){function m(l,g,e,h){var k=new CKEDITOR.style(i["colorButton_"+g+"Style"]),j=CKEDITOR.tools.getNextId()+"_colorBox";c.ui.add(l,CKEDITOR.UI_PANELBUTTON,{label:e,title:e,modes:{wysiwyg:1},editorFocus:1,toolbar:"colors,"+h,allowedContent:k,requiredContent:k,panel:{css:CKEDITOR.skin.getPath("editor"),attributes:{role:"listbox","aria-label":f.panelTitle}},onBlock:function(a,b){b.autoSize=!0;b.element.addClass("cke_colorblock");
b.element.setHtml(o(a,g,j));b.element.getDocument().getBody().setStyle("overflow","hidden");CKEDITOR.ui.fire("ready",this);var d=b.keys,e="rtl"==c.lang.dir;d[e?37:39]="next";d[40]="next";d[9]="next";d[e?39:37]="prev";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d[32]="click"},onOpen:function(){var a=c.getSelection(),a=a&&a.getStartElement(),a=c.elementPath(a),b,a=a.block||a.blockLimit||c.document.getBody();do b=a&&a.getComputedStyle("back"==g?"background-color":"color")||"transparent";while("back"==g&&
"transparent"==b&&a&&(a=a.getParent()));if(!b||"transparent"==b)b="#ffffff";this._.panel._.iframe.getFrameDocument().getById(j).setStyle("background-color",b);return b}})}function o(l,g,e){var h=[],k=i.colorButton_colors.split(","),j=CKEDITOR.tools.addFunction(function(a,b){if("?"==a){var e=arguments.callee,d=function(a){this.removeListener("ok",d);this.removeListener("cancel",d);"ok"==a.name&&e(this.getContentElement("picker","selectedColor").getValue(),b)};c.openDialog("colordialog",function(){this.on("ok",
d);this.on("cancel",d)})}else{c.focus();l.hide();c.fire("saveSnapshot");c.removeStyle(new CKEDITOR.style(i["colorButton_"+b+"Style"],{color:"inherit"}));if(a){var f=i["colorButton_"+b+"Style"];f.childRule="back"==b?function(a){return n(a)}:function(a){return!(a.is("a")||a.getElementsByTag("a").count())||n(a)};c.applyStyle(new CKEDITOR.style(f,{color:a}))}c.fire("saveSnapshot")}});h.push('<a class="cke_colorauto" _cke_focus=1 hidefocus=true title="',f.auto,'" onclick="CKEDITOR.tools.callFunction(',
j,",null,'",g,"');return false;\" href=\"javascript:void('",f.auto,'\')" role="option"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" id="',e,'"></span></td><td colspan=7 align=center>',f.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');for(e=0;e<k.length;e++){0===e%8&&h.push("</tr><tr>");var a=k[e].split("/"),b=a[0],d=a[1]||b;a[1]||(b="#"+b.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));a=c.lang.colorbutton.colors[d]||
d;h.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',a,'" onclick="CKEDITOR.tools.callFunction(',j,",'",b,"','",g,"'); return false;\" href=\"javascript:void('",a,'\')" role="option"><span class="cke_colorbox" style="background-color:#',d,'"></span></a></td>')}(c.plugins.colordialog&&void 0===i.colorButton_enableMore||i.colorButton_enableMore)&&h.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',f.more,'" onclick="CKEDITOR.tools.callFunction(',
j,",'?','",g,"');return false;\" href=\"javascript:void('",f.more,"')\"",' role="option">',f.more,"</a></td>");h.push("</tr></table>");return h.join("")}function n(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var i=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(m("TextColor","fore",f.textColorTitle,10),m("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF";
CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};CKEDITOR.plugins.colordialog={requires:"dialog",init:function(b){b.addCommand("colordialog",new CKEDITOR.dialogCommand("colordialog"));CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(e,f){var c=function(a){this.removeListener("ok",c);this.removeListener("cancel",c);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;e.call(f,a)},d=function(a){a.on("ok",c);a.on("cancel",c)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)d(b._.storedDialogs.colordialog);
else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){d(this);b.onLoad=a;"function"==typeof a&&a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog);(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&&a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=
[],b=0,c=a.length;b<c;b++)f[a[b]]||(e.push(a[b]),f[a[b]]=1);e.length?CKEDITOR.scriptLoader.load(e,d):setTimeout(d,0)}})();CKEDITOR.config.templates_files=[CKEDITOR.getUrl("plugins/templates/templates/default.js")];CKEDITOR.config.templates_replaceContent=!0;CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(k){for(var g=k.config.menu_groups.split(","),m=k._.menuGroups={},l=k._.menuItems={},a=0;a<g.length;a++)m[g[a]]=a+1;k.addMenuGroup=function(b,a){m[b]=a||100};k.addMenuItem=function(a,c){m[c.group]&&(l[a]=new CKEDITOR.menuItem(this,a,c))};k.addMenuItems=function(a){for(var c in a)this.addMenuItem(c,a[c])};k.getMenuItem=function(a){return l[a]};k.removeMenuItem=function(a){delete l[a]}}});
(function(){function k(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.group?1:a.order<c.order?-1:a.order>c.order?1:0})}var g='<span class="cke_menuitem"><a id="{id}" class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}" title="{title}" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem" aria-haspopup="{hasPopup}" aria-disabled="{disabled}"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)g+=' onkeypress="return false;"';CKEDITOR.env.gecko&&
(g+=' onblur="this.style.cssText = this.style.cssText;"');var g=g+(' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},{index}); return false;">'),m=CKEDITOR.addTemplate("menuItem",g+'<span class="cke_menubutton_inner"><span class="cke_menubutton_icon"><span class="cke_button_icon cke_button__{iconName}_icon" style="{iconStyle}"></span></span><span class="cke_menubutton_label">{label}</span>{arrowHtml}</span></a></span>'),
l=CKEDITOR.addTemplate("menuArrow",'<span class="cke_menuarrow"><span>{label}</span></span>');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),j=c.block.attributes=c.attributes||{};!j.role&&(j.role="menu");this._.panelDefinition=c},_:{onShow:function(){var a=
this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),j=this._.listeners;this.removeAll();for(var e=0;e<j.length;e++){var i=j[e](b,a,c);if(i)for(var f in i){var h=this.editor.getMenuItem(f);if(h&&(!h.command||this.editor.getCommand(h.command).state))h.state=i[f],this.add(h)}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):27==a&&this.hide(1);return!1},
onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,c=this.items[a];if(c=c.getItems&&c.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var j in c){var e=this.editor.getMenuItem(j);e&&(e.state=c[j],b.add(e))}var i=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+(""+a));setTimeout(function(){b.show(i,
2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,c,j){if(!this.parent&&(this._.onShow(),!this.items.length))return;var b=b||("rtl"==this.editor.lang.dir?2:1),e=this.items,i=this.editor,f=this._.panel,h=this._.element;if(!f){f=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);f.onEscape=CKEDITOR.tools.bind(function(a){if(!1===
this._.onEscape(a))return!1},this);f.onShow=function(){f._.panel.getHolderElement().getParent().addClass("cke cke_reset_all")};f.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);h=f.addBlock(this.id,this._.panelDefinition.block);h.autoSize=!0;var d=h.keys;d[40]="next";d[9]="next";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d["rtl"==i.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";d[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(d[13]="mouseup");h=this._.element=
h.element;d=h.getDocument();d.getBody().setStyle("overflow","hidden");d.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,i.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=
this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}k(e);for(var d=i.elementPath(),d=['<div class="cke_menu'+(d&&d.direction()!=i.lang.dir?" cke_mixed_dir_content":"")+'" role="presentation">'],g=e.length,m=g&&e[0].group,l=0;l<g;l++){var n=e[l];m!=n.group&&(d.push('<div class="cke_menuseparator" role="separator"></div>'),m=n.group);n.render(this,l,d)}d.push("</div>");h.setHtml(d.join(""));CKEDITOR.ui.fire("ready",
this);this.parent?this.parent._.panel.showAsChild(f,this.id,a,b,c,j):f.showBlock(this.id,a,b,c,j);i.fire("menuShow",[f])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b});this.group=a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,c){var g=a.id+(""+
b),e="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,i=e==CKEDITOR.TRISTATE_ON?"on":e==CKEDITOR.TRISTATE_DISABLED?"disabled":"off",f=this.getItems,h="&#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",d=this.name;this.icon&&!/\./.test(this.icon)&&(d=this.icon);a={id:g,name:this.name,iconName:d,label:this.label,cls:this.className||"",state:i,hasPopup:f?"true":"false",disabled:e==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",
hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(d,"rtl"==this.editor.lang.dir,d==this.icon?null:this.icon,this.iconOffset),arrowHtml:f?l.output({label:h}):""};m.output(a,c)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(b){this.base.call(this,b,{panel:{className:"cke_menu_panel",attributes:{"aria-label":b.lang.contextmenu.options}}})},proto:{addTarget:function(b,d){if(CKEDITOR.env.opera&&!("oncontextmenu"in document.body)){var c;b.on("mousedown",function(a){a=a.data;if(2!=a.$.button)a.getKeystroke()==CKEDITOR.CTRL+1&&b.fire("contextmenu",a);else if(!d||!(CKEDITOR.env.mac?
a.$.metaKey:a.$.ctrlKey)){var g=a.getTarget();c||(g=g.getDocument(),c=g.createElement("input"),c.$.type="button",g.getBody().append(c));c.setAttribute("style","position:absolute;top:"+(a.$.clientY-2)+"px;left:"+(a.$.clientX-2)+"px;width:5px;height:5px;opacity:0.01")}});b.on("mouseup",function(a){c&&(c.remove(),c=void 0,b.fire("contextmenu",a.data))})}b.on("contextmenu",function(a){a=a.data;if(!d||!(CKEDITOR.env.webkit?e:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey)){a.preventDefault();var b=a.getTarget().getDocument(),
c=a.getTarget().getDocument().getDocumentElement(),f=!b.equals(CKEDITOR.document),b=b.getWindow().getScrollPosition(),h=f?a.$.clientX:a.$.pageX||b.x+a.$.clientX,i=f?a.$.clientY:a.$.pageY||b.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(c,null,h,i)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.opera)b.on("keypress",function(a){a=a.data;0===a.$.keyCode&&a.preventDefault()});if(CKEDITOR.env.webkit){var e,f=function(){e=0};b.on("keydown",function(a){e=CKEDITOR.env.mac?a.data.$.metaKey:
a.data.$.ctrlKey});b.on("keyup",f);b.on("contextmenu",f)}},open:function(b,d,c,e){this.editor.focus();b=b||CKEDITOR.document.getDocumentElement();this.editor.selectionChange(1);this.show(b,d,c,e)}}})},beforeInit:function(b){var d=b.contextMenu=new CKEDITOR.plugins.contextMenu(b);b.on("contentDom",function(){d.addTarget(b.editable(),!1!==b.config.browserContextMenuOnCtrl)});b.addCommand("contextMenu",{exec:function(){b.contextMenu.open(b.document.getBody())}});b.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");
b.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){CKEDITOR.plugins.add("div",{requires:"dialog",init:function(a){if(!a.blockless){var c=a.lang.div,b="div(*)";CKEDITOR.dialog.isTabEnabled(a,"editdiv","advanced")&&(b+=";div[dir,id,lang,title]{*}");a.addCommand("creatediv",new CKEDITOR.dialogCommand("creatediv",{allowedContent:b,requiredContent:"div",contextSensitive:!0,refresh:function(a,c){this.setState("div"in(a.config.div_wrapTable?c.root:c.blockLimit).getDtd()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}}));a.addCommand("editdiv",
new CKEDITOR.dialogCommand("editdiv",{requiredContent:"div"}));a.addCommand("removediv",{requiredContent:"div",exec:function(a){function c(b){if((b=CKEDITOR.plugins.div.getSurroundDiv(a,b))&&!b.data("cke-div-added"))f.push(b),b.data("cke-div-added")}for(var b=a.getSelection(),g=b&&b.getRanges(),e,h=b.createBookmarks(),f=[],d=0;d<g.length;d++)e=g[d],e.collapsed?c(b.getStartElement()):(e=new CKEDITOR.dom.walker(e),e.evaluator=c,e.lastForward());for(d=0;d<f.length;d++)f[d].remove(!0);b.selectBookmarks(h)}});
a.ui.addButton&&a.ui.addButton("CreateDiv",{label:c.toolbar,command:"creatediv",toolbar:"blocks,50"});a.addMenuItems&&(a.addMenuItems({editdiv:{label:c.edit,command:"editdiv",group:"div",order:1},removediv:{label:c.remove,command:"removediv",group:"div",order:5}}),a.contextMenu&&a.contextMenu.addListener(function(b){return!b||b.isReadOnly()?null:CKEDITOR.plugins.div.getSurroundDiv(a)?{editdiv:CKEDITOR.TRISTATE_OFF,removediv:CKEDITOR.TRISTATE_OFF}:null}));CKEDITOR.dialog.add("creatediv",this.path+
"dialogs/div.js");CKEDITOR.dialog.add("editdiv",this.path+"dialogs/div.js")}}});CKEDITOR.plugins.div={getSurroundDiv:function(a,c){var b=a.elementPath(c);return a.elementPath(b.blockLimit).contains("div",1)}}})();CKEDITOR.plugins.add("resize",{init:function(b){var f,g,n,o,a=b.config,q=b.ui.spaceId("resizer"),h=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0==a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0==a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0==a.resize_minWidth&&(a.resize_minWidth=750);void 0==a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var c=null,i=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,
l=("both"==a.resize_dir||"vertical"==a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,j=function(d){var e=f,m=g,c=e+(d.data.$.screenX-n)*("rtl"==h?-1:1),d=m+(d.data.$.screenY-o);i&&(e=Math.max(a.resize_minWidth,Math.min(c,a.resize_maxWidth)));l&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(i?e:null,m)},k=function(){CKEDITOR.document.removeListener("mousemove",j);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",j),b.document.removeListener("mouseup",
k))},p=CKEDITOR.tools.addFunction(function(d){c||(c=b.getResizable());f=c.$.offsetWidth||0;g=c.$.offsetHeight||0;n=d.screenX;o=d.screenY;a.resize_minWidth>f&&(a.resize_minWidth=f);a.resize_minHeight>g&&(a.resize_minHeight=g);CKEDITOR.document.on("mousemove",j);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",j),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",function(){CKEDITOR.tools.removeFunction(p)});b.on("uiSpace",function(a){if("bottom"==
a.data.space){var e="";i&&!l&&(e=" cke_resizer_horizontal");!i&&l&&(e=" cke_resizer_vertical");var c='<span id="'+q+'" class="cke_resizer'+e+" cke_resizer_"+h+'" title="'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown="CKEDITOR.tools.callFunction('+p+', event)">'+("ltr"==h?"◢":"◣")+"</span>";"ltr"==h&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){function w(a){function d(){for(var b=i(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||n(a),f=0;f<e.length;f++){var k=e[f];if("/"!=k){"string"==typeof k&&(k=e[f]={name:k});var j,d=k.groups;if(d)for(var h=0;h<d.length;h++)j=d[h],(j=b[j])&&c(k,j);(j=b[k.name])&&c(k,j)}}return e}function i(){var b={},c,f,e;for(c in a.ui.items)f=a.ui.items[c],e=f.toolbar||"others",e=e.split(","),f=e[0],e=parseInt(e[1]||-1,10),b[f]||(b[f]=[]),b[f].push({name:c,order:e});for(f in b)b[f]=b[f].sort(function(b,
a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var f;f=e.shift();)if(f="string"==typeof f?f:f.name,!b||-1==CKEDITOR.tools.indexOf(b,f))(f=a.ui.create(f))&&a.addFeature(f)&&c.items.push(f)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)),
h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function n(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list",
"indent","blocks","align"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var t=function(){this.toolbars=[];this.focusCommandExecuted=!1};t.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var i=0,c;c=d.items[i++];)if(c.focus){c.focus();return}};var x={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},
100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,i=function(c,h){var b,e="rtl"==a.lang.dir,g=a.config.toolbarGroupCycling,g=void 0===g||g;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)||(b=0);c&&c.focus();
return!1;case e?37:39:case 40:b=c;do b=b.next,!b&&g&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():i(c,9);return!1;case e?39:37:case 38:b=c;do b=b.previous,!b&&g&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,i(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener();a.toolbox=new t;var d=CKEDITOR.tools.getNextId(),
b=['<span id="',d,'" class="cke_voice_label">',a.lang.toolbar.toolbars,"</span>",'<span id="'+a.ui.spaceId("toolbox")+'" class="cke_toolbox" role="group" aria-labelledby="',d,'" onmousedown="return false;">'],d=!1!==a.config.toolbarStartupExpanded,e,g;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&b.push('<span class="cke_toolbox_main"'+(d?">":' style="display:none">'));for(var n=a.toolbox.toolbars,f=w(a),k=0;k<f.length;k++){var j,l=0,q,m=f[k],r;if(m)if(e&&(b.push("</span>"),
g=e=0),"/"===m)b.push('<span class="cke_toolbar_break"></span>');else{r=m.items||m;for(var s=0;s<r.length;s++){var o=r[s],u;if(o)if(o.type==CKEDITOR.UI_SEPARATOR)g=e&&o;else{u=!1!==o.canGroup;if(!l){j=CKEDITOR.tools.getNextId();l={id:j,items:[]};q=m.name&&(a.lang.toolbar.toolbarGroups[m.name]||m.name);b.push('<span id="',j,'" class="cke_toolbar"',q?' aria-labelledby="'+j+'_label"':"",' role="toolbar">');q&&b.push('<span id="',j,'_label" class="cke_voice_label">',q,"</span>");b.push('<span class="cke_toolbar_start"></span>');
var p=n.push(l)-1;0<p&&(l.previous=n[p-1],l.previous.next=l)}u?e||(b.push('<span class="cke_toolgroup" role="presentation">'),e=1):e&&(b.push("</span>"),e=0);j=function(c){c=c.render(a,b);p=l.items.push(c)-1;if(p>0){c.previous=l.items[p-1];c.previous.next=c}c.toolbar=l;c.onkey=i;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};g&&(j(g),g=0);j(o)}}e&&(b.push("</span>"),g=e=0);l&&b.push('<span class="cke_toolbar_end"></span></span>')}}a.config.toolbarCanCollapse&&b.push("</span>");if(a.config.toolbarCanCollapse&&
a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var v=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(v)});a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),e=b.ui.space("contents"),d=c.getParent(),f=parseInt(e.$.style.height,10),h=d.$.offsetHeight,g=a.hasClass("cke_toolbox_collapser_min");g?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",
b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(g?"▲":"◀");e.setStyle("height",f-(d.$.offsetHeight-h)+"px");b.fire("resize")},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('<a title="'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id="'+a.ui.spaceId("toolbar_collapser")+'" tabIndex="-1" class="cke_toolbox_collapser');
d||b.push(" cke_toolbox_collapser_min");b.push('" onclick="CKEDITOR.tools.callFunction('+v+')">','<span class="cke_arrow">&#9650;</span>',"</a>")}b.push("</span>");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,g;for(a=this.toolbox.toolbars;d<a.length;d++){e=a[d].items;for(b=0;b<e.length;b++)g=e[b],g.clickFn&&CKEDITOR.tools.removeFunction(g.clickFn),g.keyDownFn&&CKEDITOR.tools.removeFunction(g.keyDownFn)}}});a.on("uiReady",function(){var c=a.ui.space("toolbox");
c&&a.focusManager.add(c,1)});a.addCommand("toolbarFocus",x);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('<span class="cke_toolbar_separator" role="separator"></span>');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,i){var c=n(this.editor),h=0===d,b={name:a};if(i){if(i=CKEDITOR.tools.search(c,function(a){return a.name==i})){!i.groups&&(i.groups=
[]);if(d&&(d=CKEDITOR.tools.indexOf(i.groups,d),0<=d)){i.groups.splice(d+1,0,a);return}h?i.groups.splice(0,0,a):i.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){var h;function m(a,d){function o(b){b=a._.elementsPath.list[b];if(b.equals(a.editable())){var e=a.createRange();e.selectNodeContents(b);e.select()}else a.getSelection().selectElement(b);a.focus()}function p(){i&&i.setHtml(n);delete a._.elementsPath.list}var l=a.ui.spaceId("path"),i,q="cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_";a._.elementsPath={idBase:q,filters:[]};d.html+='<span id="'+l+'_label" class="cke_voice_label">'+a.lang.elementspath.eleLabel+'</span><span id="'+l+'" class="cke_path" role="group" aria-labelledby="'+
l+'_label">'+n+"</span>";a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)});var m=CKEDITOR.tools.addFunction(o),r=CKEDITOR.tools.addFunction(function(b,e){var c=a._.elementsPath.idBase,f,e=new CKEDITOR.dom.event(e);f="rtl"==a.lang.dir;switch(e.getKeystroke()){case f?39:37:case 9:return(f=CKEDITOR.document.getById(c+(b+1)))||(f=CKEDITOR.document.getById(c+"0")),f.focus(),!1;case f?37:39:case CKEDITOR.SHIFT+9:return(f=CKEDITOR.document.getById(c+(b-1)))||(f=CKEDITOR.document.getById(c+
(a._.elementsPath.list.length-1))),f.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return o(b),!1}return!0});a.on("selectionChange",function(b){for(var e=a.editable(),c=b.data.selection.getStartElement(),b=[],f=a._.elementsPath.list=[],d=a._.elementsPath.filters;c;){var j=0,g;g=c.data("cke-display-name")?c.data("cke-display-name"):c.data("cke-real-element-type")?c.data("cke-real-element-type"):c.getName();for(var k=0;k<d.length;k++){var h=d[k](c,g);if(!1===h){j=1;break}g=h||g}j||(j=f.push(c)-
1,k=a.lang.elementspath.eleTitle.replace(/%1/,g),g=s.output({id:q+j,label:k,text:g,jsTitle:"javascript:void('"+g+"')",index:j,keyDownFn:r,clickFn:m}),b.unshift(g));if(c.equals(e))break;c=c.getParent()}i||(i=CKEDITOR.document.getById(l));e=i;e.setHtml(b.join("")+n);a.fire("elementsPathUpdate",{space:e})});a.on("readOnly",p);a.on("contentDomUnload",p);a.addCommand("elementsPathFocus",h);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}h={editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+
"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}};var n='<span class="cke_path_empty">&nbsp;</span>',d="";if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)d+=' onkeypress="return false;"';CKEDITOR.env.gecko&&(d+=' onblur="this.style.cssText = this.style.cssText;"');var s=CKEDITOR.addTemplate("pathItem",'<a id="{id}" href="{jsTitle}" tabindex="-1" class="cke_path_item" title="{label}"'+(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version?' onfocus="event.preventBubble();"':"")+d+' hidefocus="true" onkeydown="return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick="CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role="button" aria-label="{label}">{text}</a>');
CKEDITOR.plugins.add("elementspath",{init:function(a){a.on("uiSpace",function(d){"bottom"==d.data.space&&m(a,d.data)})}})})();(function(){function l(e,c,b){b=e.config.forceEnterMode||b;if("wysiwyg"!=e.mode)return!1;c||(c=e.config.enterMode);e.elementPath().isContextFor("p")||(c=CKEDITOR.ENTER_BR,b=1);e.fire("saveSnapshot");c==CKEDITOR.ENTER_BR?o(e,c,null,b):p(e,c,null,b);e.fire("saveSnapshot");return!0}function q(e){for(var e=e.getSelection().getRanges(!0),c=e.length-1;0<c;c--)e[c].deleteContents();return e[0]}CKEDITOR.plugins.add("enterkey",{init:function(e){e.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(c){l(c)}});
e.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(c){"wysiwyg"==c.mode&&l(c,c.config.shiftEnterMode,1)}});e.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var t=CKEDITOR.dom.walker.whitespaces(),u=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(e,c,b,i){if(b=b||q(e)){var f=b.document,j=b.checkStartOfBlock(),h=b.checkEndOfBlock(),a=e.elementPath(b.startContainer).block,k=c==CKEDITOR.ENTER_DIV?"div":"p",d;if(j&&h){if(a&&(a.is("li")||
a.getParent().is("li"))){b=a.getParent();d=b.getParent();var i=!a.hasPrevious(),m=!a.hasNext(),k=e.getSelection(),g=k.createBookmarks(),j=a.getDirection(1),h=a.getAttribute("class"),n=a.getAttribute("style"),l=d.getDirection(1)!=j,e=e.config.enterMode!=CKEDITOR.ENTER_BR||l||n||h;if(d.is("li"))if(i||m)a[i?"insertBefore":"insertAfter"](d);else a.breakParent(d);else{if(e)if(d=f.createElement(c==CKEDITOR.ENTER_P?"p":"div"),l&&d.setAttribute("dir",j),n&&d.setAttribute("style",n),h&&d.setAttribute("class",
h),a.moveChildren(d),i||m)d[i?"insertBefore":"insertAfter"](b);else a.breakParent(b),d.insertAfter(b);else if(a.appendBogus(),i||m)for(;f=a[i?"getFirst":"getLast"]();)f[i?"insertBefore":"insertAfter"](b);else for(a.breakParent(b);f=a.getLast();)f.insertAfter(b);a.remove()}k.selectBookmarks(g);return}if(a&&a.getParent().is("blockquote")){a.breakParent(a.getParent());a.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||a.getPrevious().remove();a.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||
a.getNext().remove();b.moveToElementEditStart(a);b.select();return}}else if(a&&a.is("pre")&&!h){o(e,c,b,i);return}if(h=b.splitBlock(k)){c=h.previousBlock;a=h.nextBlock;e=h.wasStartOfBlock;j=h.wasEndOfBlock;if(a)g=a.getParent(),g.is("li")&&(a.breakParent(g),a.move(a.getNext(),1));else if(c&&(g=c.getParent())&&g.is("li"))c.breakParent(g),g=c.getNext(),b.moveToElementEditStart(g),c.move(c.getPrevious());if(!e&&!j)a.is("li")&&(d=b.clone(),d.selectNodeContents(a),d=new CKEDITOR.dom.walker(d),d.evaluator=
function(a){return!(u(a)||t(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))},(g=d.next())&&(g.type==CKEDITOR.NODE_ELEMENT&&g.is("ul","ol"))&&(CKEDITOR.env.ie?f.createText(" "):f.createElement("br")).insertBefore(g)),a&&b.moveToElementEditStart(a);else{if(c){if(c.is("li")||!r.test(c.getName())&&!c.is("pre"))d=c.clone()}else a&&(d=a.clone());d?i&&!d.is("li")&&d.renameNode(k):g&&g.is("li")?d=g:(d=f.createElement(k),c&&(m=c.getDirection())&&
d.setAttribute("dir",m));if(f=h.elementPath){i=0;for(k=f.elements.length;i<k;i++){g=f.elements[i];if(g.equals(f.block)||g.equals(f.blockLimit))break;CKEDITOR.dtd.$removeEmpty[g.getName()]&&(g=g.clone(),d.moveChildren(g),d.append(g))}}CKEDITOR.env.ie||d.appendBogus();d.getParent()||b.insertNode(d);d.is("li")&&d.removeAttribute("value");if(CKEDITOR.env.ie&&e&&(!j||!c.getChildCount()))b.moveToElementEditStart(j?c:d),b.select();b.moveToElementEditStart(e&&!j?a:d)}b.select();b.scrollIntoView()}}},enterBr:function(e,
c,b,i){if(b=b||q(e)){var f=b.document,j=b.checkEndOfBlock(),h=new CKEDITOR.dom.elementPath(e.getSelection().getStartElement()),a=h.block,h=a&&h.block.getName();!i&&"li"==h?p(e,c,b,i):(!i&&j&&r.test(h)?(j=a.getDirection())?(f=f.createElement("div"),f.setAttribute("dir",j),f.insertAfter(a),b.setStart(f,0)):(f.createElement("br").insertAfter(a),CKEDITOR.env.gecko&&f.createText("").insertAfter(a),b.setStartAt(a.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(a=
"pre"==h&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?f.createText("\r"):f.createElement("br"),b.deleteContents(),b.insertNode(a),CKEDITOR.env.ie?b.setStartAt(a,CKEDITOR.POSITION_AFTER_END):(f.createText("").insertAfter(a),j&&a.getParent().appendBogus(),a.getNext().$.nodeValue="",b.setStartAt(a.getNext(),CKEDITOR.POSITION_AFTER_START))),b.collapse(!0),b.select(),b.scrollIntoView())}}};var s=CKEDITOR.plugins.enterkey,o=s.enterBr,p=s.enterBlock,r=/^h[1-6]$/})();(function(){function j(a,b){var d={},e=[],f={nbsp:" ",shy:"­",gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},a=a.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(a,h){var c=b?"&"+h+";":f[h];d[c]=b?f[h]:"&"+h+";";e.push(c);return""});if(!b&&a){var a=a.split(","),c=document.createElement("div"),g;c.innerHTML="&"+a.join(";&")+";";g=c.innerHTML;c=null;for(c=0;c<g.length;c++){var i=g.charAt(c);d[i]="&"+a[c]+";";e.push(i)}}d.regex=e.join(b?"|":"");return d}CKEDITOR.plugins.add("entities",{afterInit:function(a){var b=
a.config;if(a=(a=a.dataProcessor)&&a.htmlFilter){var d=[];!1!==b.basicEntities&&d.push("nbsp,gt,lt,amp");b.entities&&(d.length&&d.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"),
b.entities_latin&&d.push("Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml"),b.entities_greek&&d.push("Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv"),
b.entities_additional&&d.push(b.entities_additional));var e=j(d.join(",")),f=e.regex?"["+e.regex+"]":"a^";delete e.regex;b.entities&&b.entities_processNumerical&&(f="[^ -~]|"+f);var f=RegExp(f,"g"),c=function(a){return b.entities_processNumerical=="force"||!e[a]?"&#"+a.charCodeAt(0)+";":e[a]},g=j("nbsp,gt,lt,amp,shy",!0),i=RegExp(g.regex,"g"),k=function(a){return g[a]};a.addRules({text:function(a){return a.replace(i,k).replace(f,c)}})}}})})();CKEDITOR.config.basicEntities=!0;
CKEDITOR.config.entities=!0;CKEDITOR.config.entities_latin=!0;CKEDITOR.config.entities_greek=!0;CKEDITOR.config.entities_additional="#39";CKEDITOR.plugins.add("popup");
CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{popup:function(e,a,b,d){a=a||"80%";b=b||"70%";"string"==typeof a&&(1<a.length&&"%"==a.substr(a.length-1,1))&&(a=parseInt(window.screen.width*parseInt(a,10)/100,10));"string"==typeof b&&(1<b.length&&"%"==b.substr(b.length-1,1))&&(b=parseInt(window.screen.height*parseInt(b,10)/100,10));640>a&&(a=640);420>b&&(b=420);var f=parseInt((window.screen.height-b)/2,10),g=parseInt((window.screen.width-a)/2,10),d=(d||"location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes")+",width="+
a+",height="+b+",top="+f+",left="+g,c=window.open("",null,d,!0);if(!c)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(c.moveTo(g,f),c.resizeTo(a,b)),c.focus(),c.location.href=e}catch(h){window.open(e,null,d,!0)}return!0}});(function(){function g(a,c){var d=[];if(c)for(var b in c)d.push(b+"="+encodeURIComponent(c[b]));else return a;return a+(-1!=a.indexOf("?")?"&":"?")+d.join("&")}function i(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function k(){var a=this.getDialog(),c=a.getParentEditor();c._.filebrowserSe=this;var d=c.config["filebrowser"+i(a.getName())+"WindowWidth"]||c.config.filebrowserWindowWidth||"80%",a=c.config["filebrowser"+i(a.getName())+"WindowHeight"]||c.config.filebrowserWindowHeight||"70%",
b=this.filebrowser.params||{};b.CKEditor=c.name;b.CKEditorFuncNum=c._.filebrowserFn;b.langCode||(b.langCode=c.langCode);b=g(this.filebrowser.url,b);c.popup(b,d,a,c.config.filebrowserWindowFeatures||c.config.fileBrowserWindowFeatures)}function l(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=this;return!a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value||!a.getContentElement(this["for"][0],this["for"][1]).getAction()?!1:!0}function m(a,c,d){var b=d.params||{};
b.CKEditor=a.name;b.CKEditorFuncNum=a._.filebrowserFn;b.langCode||(b.langCode=a.langCode);c.action=g(d.url,b);c.filebrowser=d}function j(a,c,d,b){if(b&&b.length)for(var e,g=b.length;g--;)if(e=b[g],("hbox"==e.type||"vbox"==e.type||"fieldset"==e.type)&&j(a,c,d,e.children),e.filebrowser)if("string"==typeof e.filebrowser&&(e.filebrowser={action:"fileButton"==e.type?"QuickUpload":"Browse",target:e.filebrowser}),"Browse"==e.filebrowser.action){var f=e.filebrowser.url;void 0===f&&(f=a.config["filebrowser"+
i(c)+"BrowseUrl"],void 0===f&&(f=a.config.filebrowserBrowseUrl));f&&(e.onClick=k,e.filebrowser.url=f,e.hidden=!1)}else if("QuickUpload"==e.filebrowser.action&&e["for"]&&(f=e.filebrowser.url,void 0===f&&(f=a.config["filebrowser"+i(c)+"UploadUrl"],void 0===f&&(f=a.config.filebrowserUploadUrl)),f)){var h=e.onClick;e.onClick=function(a){var b=a.sender;return h&&h.call(b,a)===false?false:l.call(b,a)};e.filebrowser.url=f;e.hidden=!1;m(a,d.getContents(e["for"][0]).get(e["for"][1]),e.filebrowser)}}function h(a,
c,d){if(-1!==d.indexOf(";")){for(var d=d.split(";"),b=0;b<d.length;b++)if(h(a,c,d[b]))return!0;return!1}return(a=a.getContents(c).get(d).filebrowser)&&a.url}function n(a,c){var d=this._.filebrowserSe.getDialog(),b=this._.filebrowserSe["for"],e=this._.filebrowserSe.filebrowser.onSelect;b&&d.getContentElement(b[0],b[1]).reset();if(!("function"==typeof c&&!1===c.call(this._.filebrowserSe))&&!(e&&!1===e.call(this._.filebrowserSe,a,c))&&("string"==typeof c&&c&&alert(c),a&&(b=this._.filebrowserSe,d=b.getDialog(),
b=b.filebrowser.target||null)))if(b=b.split(":"),e=d.getContentElement(b[0],b[1]))e.setValue(a),d.selectPage(b[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup",init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(n,a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){for(var c=a.data.definition,d,b=0;b<c.contents.length;++b)if(d=c.contents[b])j(a.editor,a.data.name,c,d.elements),d.hidden&&d.filebrowser&&(d.hidden=
!h(c,d.id,d.filebrowser))})})();CKEDITOR.plugins.add("find",{requires:"dialog",init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&&(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("replace",this.path+
"dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}};(function(){function g(a,b){var c=j.exec(a),d=j.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var i=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,j=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,l={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new i(a)).rules,a=b.attributes,d=c.width,c=
c.height;d&&(a.width=g(a.width,d));c&&(a.height=g(a.height,c))}return b}}},k=CKEDITOR.plugins.add("fakeobjects",{afterInit:function(a){(a=(a=a.dataProcessor)&&a.htmlFilter)&&a.addRules(l)}});CKEDITOR.editor.prototype.createFakeElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,b={"class":b,"data-cke-realelement":encodeURIComponent(a.getOuterHtml()),"data-cke-real-node-type":a.type,alt:e,title:e,align:a.getAttribute("align")||""};CKEDITOR.env.hc||(b.src=CKEDITOR.getUrl(k.path+
"images/spacer.gif"));c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,c=new i,d=a.getAttribute("width"),a=a.getAttribute("height"),d&&(c.rules.width=h(d)),a&&(c.rules.height=h(a)),c.populate(b));return this.document.createElement("img",{attributes:b})};CKEDITOR.editor.prototype.createFakeParserElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,f;f=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(f);f=f.getHtml();b={"class":b,"data-cke-realelement":encodeURIComponent(f),
"data-cke-real-node-type":a.type,alt:e,title:e,align:a.attributes.align||""};CKEDITOR.env.hc||(b.src=CKEDITOR.getUrl(k.path+"images/spacer.gif"));c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,d=a.attributes,a=new i,c=d.width,d=d.height,void 0!=c&&(a.rules.width=h(c)),void 0!=d&&(a.rules.height=h(d)),a.populate(b));return new CKEDITOR.htmlParser.element("img",b)};CKEDITOR.editor.prototype.restoreRealElement=function(a){if(a.data("cke-real-node-type")!=CKEDITOR.NODE_ELEMENT)return null;
var b=CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")),this.document);if(a.data("cke-resizable")){var c=a.getStyle("width"),a=a.getStyle("height");c&&b.setAttribute("width",g(b.getAttribute("width"),c));a&&b.setAttribute("height",g(b.getAttribute("height"),a))}return b}})();(function(){function d(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||f.test(a.src||"")}function e(a,b){return a.createFakeParserElement(b,"cke_flash","flash",!0)}var f=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},
init:function(a){var b="object[classid,codebase,height,hspace,vspace,width];param[name,value];embed[height,hspace,pluginspage,src,type,vspace,width]";CKEDITOR.dialog.isTabEnabled(a,"flash","properties")&&(b+=";object[align]; embed[allowscriptaccess,quality,scale,wmode]");CKEDITOR.dialog.isTabEnabled(a,"flash","advanced")&&(b+=";object[id]{*}; embed[bgcolor]{*}(*)");a.addCommand("flash",new CKEDITOR.dialogCommand("flash",{allowedContent:b,requiredContent:"embed"}));a.ui.addButton&&a.ui.addButton("Flash",
{label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},
afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!d(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!d(b.children[c]))break;return e(a,b)}return null}return e(a,b)},"cke:embed":function(b){return!d(b)?null:e(a,b)}}},5)}})})();CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1});(function(){function t(a){var e="left"==a?"pageXOffset":"pageYOffset";return e in g.$?g.$[e]:CKEDITOR.document.$.documentElement["left"==a?"scrollLeft":"scrollTop"]}function p(a){var e,f=a.config,p=f.floatSpaceDockedOffsetX||0,o=f.floatSpaceDockedOffsetY||0,u=f.floatSpacePinnedOffsetX||0,q=f.floatSpacePinnedOffsetY||0,i=function(c){function f(a,c,b){d.setStyle(c,s(b));d.setStyle("position",a)}function j(a){var c=r.getDocumentPosition();switch(a){case "top":f("absolute","top",c.y-l-o);break;case "pin":f("fixed",
"top",q);break;case "bottom":f("absolute","top",c.y+(b.height||b.bottom-b.top)+o)}e=a}var r=a.editable();if(r){"focus"==c.name&&d.show();d.removeStyle("left");d.removeStyle("right");var k=d.getClientRect(),b=r.getClientRect(),l=k.height,n=t("left");if(e){"top"==e&&k.top<q?j("pin"):"pin"==e?b.top>o+l?j("top"):b.bottom-k.bottom<l&&j("bottom"):"bottom"==e&&(b.top>o+l?j("top"):b.bottom>2*l+q&&j("pin"));var c=g.getViewPaneSize(),h=c.width/2,h=0<b.left&&b.right<c.width&&b.width>k.width?"rtl"==a.config.contentsLangDirection?
"right":"left":h-b.left>b.right-h?"left":"right",m;k.width>c.width?(h="left",m=0):(m="left"==h?0<b.left?b.left:0:b.right<c.width?c.width-b.right:0,m+k.width>c.width&&(h="left"==h?"right":"left",m=0));d.setStyle(h,s(("pin"==e?u:p)+m+("pin"==e?0:"left"==h?n:-n)))}else e="pin",j("pin"),i(c)}},f=CKEDITOR.document.getBody(),v={id:a.id,name:a.name,langDir:a.lang.dir,langCode:a.langCode},n=a.fire("uiSpace",{space:"top",html:""}).html;if(n){var d=f.append(CKEDITOR.dom.element.createFromHtml(w.output(CKEDITOR.tools.extend({topId:a.ui.spaceId("top"),
content:n,style:"display:none;z-index:"+(a.config.baseFloatZIndex-1)},v))));d.unselectable();d.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});a.on("focus",function(a){i(a);g.on("scroll",i);g.on("resize",i)});a.on("blur",function(){d.hide();g.removeListener("scroll",i);g.removeListener("resize",i)});a.on("destroy",function(){g.removeListener("scroll",i);g.removeListener("resize",i);d.clearCustomData();d.remove()});a.focusManager.hasFocus&&d.show();a.focusManager.add(d,
1)}}var w=CKEDITOR.addTemplate("floatcontainer",'<div id="cke_{name}" class="cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" title="'+(CKEDITOR.env.gecko?" ":"")+'" lang="{langCode}" role="application" style="{style}"><div class="cke_inner"><div id="{topId}" class="cke_top" role="presentation">{content}</div></div></div>');CKEDITOR.plugins.add("floatingspace",{init:function(a){a.on("loaded",function(){p(a)},null,null,20)}});var g=
CKEDITOR.document.getWindow(),s=CKEDITOR.tools.cssLength})();CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var e=CKEDITOR.addTemplate("panel-list",'<ul role="presentation" class="cke_panel_list">{items}</ul>'),f=CKEDITOR.addTemplate("panel-list-item",'<li id="{id}" class="cke_panel_listItem" role=presentation><a id="{id}_option" _cke_focus=1 hidefocus=true title="{title}" href="javascript:void(\'{val}\')" {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;" role="option">{text}</a></li>'),g=CKEDITOR.addTemplate("panel-list-group",
'<h1 id="{id}" class="cke_panel_grouptitle" role="presentation" >{label}</h1>');CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))};CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){var b=b||{},c=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&(c["aria-multiselectable"]=!0);!c.role&&(c.role="listbox");this.base.apply(this,arguments);this.element.setAttribute("role",
c.role);c=this.keys;c[40]="next";c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(c[13]="mouseup");this._.pendingHtml=[];this._.pendingList=[];this._.items={};this._.groups={}},_:{close:function(){if(this._.started){var a=e.output({items:this._.pendingList.join("")});this._.pendingList=[];this._.pendingHtml.push(a);delete this._.started}},getClick:function(){this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);
if(this.onClick)this.onClick(a,b)},this));return this._.click}},proto:{add:function(a,b,c){var d=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=d;a={id:d,val:a,onclick:CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:c||a,text:b||a};this._.pendingList.push(f.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(g.output({id:b,
label:a}))},commit:function(){this._.close();this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display","none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},
showAll:function(){var a=this._.items,b=this._.groups,c=this.element.getDocument(),d;for(d in a)c.getById(a[d]).setStyle("display","");for(var e in b)a=c.getById(b[e]),d=a.getNext(),a.setStyle("display",""),d&&"ul"==d.getName()&&d.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll();var a=this._.items[a],b=this.element.getDocument().getById(a);b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},
unmark:function(a){var b=this.element.getDocument(),a=this._.items[a],c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},
focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),c,d=-1;if(a)for(c=this.element.getDocument().getById(this._.items[a]).getFirst();a=b.getItem(++d);){if(a.equals(c)){this._.focusIndex=d;break}}else this.element.focus();c&&setTimeout(function(){c.focus()},0)}}})}});CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(c){c.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
(function(){var c='<span id="{id}" class="cke_combo cke_combo__{name} {cls}" role="presentation"><span id="{id}_label" class="cke_combo_label">{label}</span><a class="cke_combo_button" hidefocus=true title="{title}" tabindex="-1"'+(CKEDITOR.env.gecko&&10900<=CKEDITOR.env.version&&!CKEDITOR.env.hc?"":'" href="javascript:void(\'{titleJs}\')"')+' hidefocus="true" role="button" aria-labelledby="{id}_label" aria-haspopup="true"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)c+=' onkeypress="return false;"';
CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var c=c+(' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);" onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},this);return false;"><span id="{id}_text" class="cke_combo_text cke_combo_inlinelabel">{label}</span><span class="cke_combo_open"><span class="cke_combo_arrow">'+
(CKEDITOR.env.hc?"&#9660;":CKEDITOR.env.air?"&nbsp;":"")+"</span></span></a></span>"),h=CKEDITOR.addTemplate("combo",c);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";a.block={multiSelect:a.multiSelect,
attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function j(){var d=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;this.setState(a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:d);this.setValue("")}var c=CKEDITOR.env,g="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){i&&(a.unlockSelection(1),i=0);d.execute(b)},this),f=this,d={id:g,combo:this,
focus:function(){CKEDITOR.document.getById(g).getChild(1).focus()},execute:function(d){var b=f._;if(b.state!=CKEDITOR.TRISTATE_DISABLED)if(f.createPanel(a),b.on)b.panel.hide();else{f.commit();var c=f.getValue();c?b.list.mark(c):b.list.unmarkAll();b.panel.showBlock(f.id,new CKEDITOR.dom.element(d),4)}},clickFn:e};a.on("mode",j,this);!this.readOnly&&a.on("readOnly",j,this);var k=CKEDITOR.tools.addFunction(function(a,b){var a=new CKEDITOR.dom.event(a),c=a.getKeystroke();switch(c){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,
b);break;default:d.onkey(d,c)}a.preventDefault()}),l=CKEDITOR.tools.addFunction(function(){d.onfocus&&d.onfocus()}),i=0,m=CKEDITOR.tools.addFunction(function(){if(CKEDITOR.env.opera){var b=a.editable();b.isInline()&&b.hasFocus&&(a.lockSelection(),i=1)}});d.keyDownFn=k;c={id:g,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:c.gecko&&10900<=c.version&&!c.hc?"":(this.title||"").replace("'",""),keydownFn:k,mousedownFn:m,focusFn:l,clickFn:e};h.output(c,b);
if(this.onRender)this.onRender();return d},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,h=b.parent||CKEDITOR.document.getBody(),g="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,h,b),f=e.addListBlock(this.id,c),d=this;e.onShow=function(){this.element.addClass(g);d.setState(CKEDITOR.TRISTATE_ON);d._.on=1;d.editorFocus&&a.focus();if(d.onOpen)d.onOpen();f.focus(!f.multiSelect&&d.getValue())};e.onHide=function(b){this.element.removeClass(g);
d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};e.onEscape=function(){e.hide(1)};f.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);e.hide()};this._.panel=e;this._.list=f;e.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&(!a&&!b?(b=this.label,c.addClass("cke_combo_inlinelabel")):
c.removeClass("cke_combo_inlinelabel"),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a;this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),
this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=a}},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},
statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();(function(){function g(a,b,g,h,j,n,k,o){for(var p=a.config,l=new CKEDITOR.style(k),c=j.split(";"),j=[],f={},d=0;d<c.length;d++){var e=c[d];if(e){var e=e.split("/"),m={},i=c[d]=e[0];m[g]=j[d]=e[1]||i;f[i]=new CKEDITOR.style(k,m);f[i]._.definition.name=i}else c.splice(d--,1)}a.ui.addRichCombo(b,{label:h.label,title:h.panelTitle,toolbar:"styles,"+o,allowedContent:l,requiredContent:l,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(p.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}},
init:function(){this.startGroup(h.panelTitle);for(var a=0;a<c.length;a++){var b=c[a];this.add(b,f[b].buildPreview(),b)}},onClick:function(b){a.focus();a.fire("saveSnapshot");var c=f[b];a[this.getValue()==b?"removeStyle":"applyStyle"](c);a.fire("saveSnapshot")},onRender:function(){a.on("selectionChange",function(a){for(var b=this.getValue(),a=a.data.path.elements,c=0,d;c<a.length;c++){d=a[c];for(var e in f)if(f[e].checkElementMatch(d,!0)){e!=b&&this.setValue(e);return}}this.setValue("",n)},this)}})}
CKEDITOR.plugins.add("font",{requires:"richcombo",init:function(a){var b=a.config;g(a,"Font","family",a.lang.font,b.font_names,b.font_defaultLabel,b.font_style,30);g(a,"FontSize","size",a.lang.font.fontSize,b.fontSize_sizes,b.fontSize_defaultLabel,b.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif";
CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]};CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n");CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(b){var a=b.lang,e=0,h={email:1,password:1,search:1,tel:1,text:1,url:1},j={checkbox:"input[type,name,checked]",
radio:"input[type,name,checked]",textfield:"input[type,name,value,size,maxlength]",textarea:"textarea[cols,rows,name]",select:"select[name,size,multiple]; option[value,selected]",button:"input[type,name,value]",form:"form[action,name,id,enctype,target,method]",hiddenfield:"input[type,name,value]",imagebutton:"input[type,alt,src]{width,height,border,border-width,border-style,margin,float}"},k={checkbox:"input",radio:"input",textfield:"input",textarea:"textarea",select:"select",button:"input",form:"form",
hiddenfield:"input",imagebutton:"input"},d=function(g,c,h){var d={allowedContent:j[c],requiredContent:k[c]};"form"==c&&(d.context="form");b.addCommand(c,new CKEDITOR.dialogCommand(c,d));b.ui.addButton&&b.ui.addButton(g,{label:a.common[g.charAt(0).toLowerCase()+g.slice(1)],command:c,toolbar:"forms,"+(e+=10)});CKEDITOR.dialog.add(c,h)},f=this.path+"dialogs/";!b.blockless&&d("Form","form",f+"form.js");d("Checkbox","checkbox",f+"checkbox.js");d("Radio","radio",f+"radio.js");d("TextField","textfield",
f+"textfield.js");d("Textarea","textarea",f+"textarea.js");d("Select","select",f+"select.js");d("Button","button",f+"button.js");var i=CKEDITOR.plugins.get("image");i&&d("ImageButton","imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");d("HiddenField","hiddenfield",f+"hiddenfield.js");b.addMenuItems&&(d={checkbox:{label:a.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:a.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:a.forms.textfield.title,
command:"textfield",group:"textfield"},hiddenfield:{label:a.forms.hidden.title,command:"hiddenfield",group:"hiddenfield"},imagebutton:{label:a.image.titleButton,command:"imagebutton",group:"imagebutton"},button:{label:a.forms.button.title,command:"button",group:"button"},select:{label:a.forms.select.title,command:"select",group:"select"},textarea:{label:a.forms.textarea.title,command:"textarea",group:"textarea"}},!b.blockless&&(d.form={label:a.forms.form.menu,command:"form",group:"form"}),b.addMenuItems(d));
b.contextMenu&&(!b.blockless&&b.contextMenu.addListener(function(g,c,a){if((g=a.contains("form",1))&&!g.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}),b.contextMenu.addListener(function(a){if(a&&!a.isReadOnly()){var c=a.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var b=a.getAttribute("type")||"text";switch(b){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};
case "radio":return{radio:CKEDITOR.TRISTATE_OFF};case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[b])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c=="img"&&a.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));b.on("doubleclick",function(a){var c=a.data.element;if(!b.blockless&&c.is("form"))a.data.dialog="form";else if(c.is("select"))a.data.dialog="select";else if(c.is("textarea"))a.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")==
"hiddenfield")a.data.dialog="hiddenfield";else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":a.data.dialog="button";break;case "checkbox":a.data.dialog="checkbox";break;case "radio":a.data.dialog="radio";break;case "image":a.data.dialog="imagebutton"}if(h[c])a.data.dialog="textfield"}})},afterInit:function(b){var a=b.dataProcessor,e=a&&a.htmlFilter,a=a&&a.dataFilter;CKEDITOR.env.ie&&e&&e.addRules({elements:{input:function(a){var a=a.attributes,
b=a.type;b||(a.type="text");("checkbox"==b||"radio"==b)&&"on"==a.value&&delete a.value}}});a&&a.addRules({elements:{input:function(a){if("hidden"==a.attributes.type)return b.createFakeParserElement(a,"cke_hidden","hiddenfield")}}})}});
CKEDITOR.env.ie&&(CKEDITOR.dom.element.prototype.hasAttribute=CKEDITOR.tools.override(CKEDITOR.dom.element.prototype.hasAttribute,function(b){return function(a){this.$.attributes.getNamedItem(a);if("input"==this.getName())switch(a){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":var e=this.getAttribute("type");return"checkbox"==e||"radio"==e?"on"!=this.$.value:this.$.value}return b.apply(this,arguments)}}));CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var g=a.config,c=a.lang.format,k=g.format_tags.split(";"),d={},l=0,m=[],h=0;h<k.length;h++){var i=k[h],j=new CKEDITOR.style(g["format_"+i]);if(!a.filter.customConfig||a.filter.check(j))l++,d[i]=j,d[i]._.enterMode=a.config.enterMode,m.push(j)}0!==l&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:m,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(g.contentsCss),
multiSelect:!1,attributes:{"aria-label":c.panelTitle}},init:function(){this.startGroup(c.panelTitle);for(var a in d){var e=c["tag_"+a];this.add(a,d[a].buildPreview(e),e)}},onClick:function(b){a.focus();a.fire("saveSnapshot");var b=d[b],e=a.elementPath();a[b.checkActive(e)?"removeStyle":"applyStyle"](b);setTimeout(function(){a.fire("saveSnapshot")},0)},onRender:function(){a.on("selectionChange",function(b){var e=this.getValue(),b=b.data.path,c=!a.readOnly&&b.isContextFor("p");this[c?"enable":"disable"]();
if(c){for(var f in d)if(d[f].checkActive(b)){f!=e&&this.setValue(f,a.lang.format["tag_"+f]);return}this.setValue("")}},this)}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p={element:"p"};CKEDITOR.config.format_div={element:"div"};CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};
CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};CKEDITOR.plugins.add("htmlwriter",{init:function(b){var a=new CKEDITOR.htmlWriter;a.forceSimpleAmpersand=b.config.forceSimpleAmpersand;a.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=a}});
CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWriter,$:function(){this.base();this.indentationChars="\t";this.selfClosingEnd=" />";this.lineBreakChars="\n";this.sortAttributes=1;this._.indent=0;this._.indentation="";this._.inPre=0;this._.rules={};var b=CKEDITOR.dtd,a;for(a in CKEDITOR.tools.extend({},b.$nonBodyContent,b.$block,b.$listItem,b.$tableContent))this.setRules(a,{indent:!b[a]["#"],breakBeforeOpen:1,breakBeforeClose:!b[a]["#"],breakAfterClose:1,needsSpace:a in
b.$block&&!(a in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var a=this._.rules[b];this._.afterCloser&&(a&&a.needsSpace&&this._.needsSpace)&&this._.output.push("\n");this._.indent?this.indentation():a&&a.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("<",b);this._.afterCloser=0},
openTagClose:function(b,a){var c=this._.rules[b];a?(this._.output.push(this.selfClosingEnd),c&&c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push(">"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,a){"string"==typeof a&&(this.forceSimpleAmpersand&&(a=a.replace(/&amp;/g,"&")),a=CKEDITOR.tools.htmlEncodeAttr(a));this._.output.push(" ",b,'="',a,'"')},closeTag:function(b){var a=this._.rules[b];
a&&a.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));this._.indent?this.indentation():a&&a.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("</",b,">");"pre"==b&&(this._.inPre=0);a&&a.breakAfterClose&&(this.lineBreak(),this._.needsSpace=a.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&&this.indentation();
this._.output.push("<\!--",b,"--\>")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=a}}});(function(){var b={canUndo:!1,exec:function(a){var b=a.document.createElement("hr");a.insertElement(b)},allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(a){a.blockless||(a.addCommand("horizontalrule",b),a.ui.addButton&&a.ui.addButton("HorizontalRule",{label:a.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,
classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});
a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe",!0)}}})}})})();(function(){function k(a){var d=this.editor,b=a.document,c=b.body;(a=b.getElementById("cke_actscrpt"))&&a.parentNode.removeChild(a);(a=b.getElementById("cke_shimscrpt"))&&a.parentNode.removeChild(a);CKEDITOR.env.gecko&&(c.contentEditable=!1,2E4>CKEDITOR.env.version&&(c.innerHTML=c.innerHTML.replace(/^.*<\!-- cke-content-start --\>/,""),setTimeout(function(){var a=new CKEDITOR.dom.range(new CKEDITOR.dom.document(b));a.setStart(new CKEDITOR.dom.node(c),0);d.getSelection().selectRanges([a])},0)));c.contentEditable=
!0;CKEDITOR.env.ie&&(c.hideFocus=!0,c.disabled=!0,c.removeAttribute("disabled"));delete this._.isLoadingData;this.$=c;b=new CKEDITOR.dom.document(b);this.setup();CKEDITOR.env.ie&&(b.getDocumentElement().addClass(b.$.compatMode),d.config.enterMode!=CKEDITOR.ENTER_P&&b.on("selectionchange",function(){var a=b.getBody(),c=d.getSelection(),e=c&&c.getRanges()[0];e&&(a.getHtml().match(/^<p>&nbsp;<\/p>$/i)&&e.startContainer.equals(a))&&setTimeout(function(){e=d.getSelection().getRanges()[0];if(!e.startContainer.equals("body")){a.getFirst().remove(1);
e.moveToElementEditEnd(a);e.select()}},0)}));try{d.document.$.execCommand("2D-position",!1,!0)}catch(e){}try{d.document.$.execCommand("enableInlineTableEditing",!1,!d.config.disableNativeTableHandles)}catch(g){}if(d.config.disableObjectResizing)try{this.getDocument().$.execCommand("enableObjectResizing",!1,!1)}catch(f){this.attachListener(this,CKEDITOR.env.ie?"resizestart":"resize",function(a){a.data.preventDefault()})}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==d.document.$.compatMode)&&
this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(b==33||b==34)if(CKEDITOR.env.ie)setTimeout(function(){d.getSelection().scrollIntoView()},0);else if(d.window.$.innerHeight>this.$.offsetHeight){var c=d.createRange();c[b==33?"moveToElementEditStart":"moveToElementEditEnd"](this);c.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(b,"blur",function(){try{b.$.selection.empty()}catch(a){}});d.document.getElementsByTag("title").getItem(0).data("cke-title",
d.document.$.title);CKEDITOR.env.ie&&(d.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){d.fire("contentDom");if(this._.isPendingFocus){d.focus();this._.isPendingFocus=false}setTimeout(function(){d.fire("dataReady")},0);CKEDITOR.env.ie&&setTimeout(function(){if(d.document){var a=d.document.$.body;a.runtimeStyle.marginBottom="0px";a.runtimeStyle.marginBottom=""}},1E3)},0,this)}function l(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable=false]{min-height:0 !important}");
var d=[],b;for(b in CKEDITOR.dtd.$removeEmpty)d.push("html.CSS1Compat "+b+"[contenteditable=false]");a.push(d.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",
requiredContent:"body"});a.addMode("wysiwyg",function(d){function b(b){b&&b.removeListener();a.editable(new j(a,e.$.contentWindow.document.body));a.setData(a.getData(1),d)}var c="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",c=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent(c)+"}())":"",e=CKEDITOR.dom.element.createFromHtml('<iframe src="'+c+'" frameBorder="0"></iframe>');e.setStyles({width:"100%",
height:"100%"});e.addClass("cke_wysiwyg_frame cke_reset");var g=a.ui.space("contents");g.append(e);if(c=CKEDITOR.env.ie||CKEDITOR.env.gecko)e.on("load",b);var f=a.title,h=a.lang.common.editorHelp;f&&(CKEDITOR.env.ie&&(f+=", "+h),e.setAttribute("title",f));var f=CKEDITOR.tools.getNextId(),i=CKEDITOR.dom.element.createFromHtml('<span id="'+f+'" class="cke_voice_label">'+h+"</span>");g.append(i,1);a.on("beforeModeUnload",function(a){a.removeListener();i.remove()});e.setAttributes({"aria-describedby":f,
tabIndex:a.tabIndex,allowTransparency:"true"});!c&&b();CKEDITOR.env.webkit&&(c=function(){g.setStyle("width","100%");e.hide();e.setSize("width",g.getSize("width"));g.removeStyle("width");e.show()},e.setCustomData("onResize",c),CKEDITOR.document.getWindow().on("resize",c));a.fire("ariaWidget",e)})}});var j=CKEDITOR.tools.createClass({$:function(a){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(k,0,this,a)},this);this._.docTitle=
this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,d){var b=this.editor;if(d)this.setHtml(a),b.fire("dataReady");else{this._.isLoadingData=!0;b._.dataStore={id:1};var c=b.config,e=c.fullPage,g=c.docType,f=CKEDITOR.tools.buildStyleHtml(l()).replace(/<style>/,'<style data-cke-temp="1">');e||(f+=CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));var h=c.baseHref?'<base href="'+c.baseHref+'" data-cke-temp="1" />':"";e&&(a=a.replace(/<!DOCTYPE[^>]*>/i,
function(a){b.docType=g=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){b.xmlDeclaration=a;return""}));b.dataProcessor&&(a=b.dataProcessor.toHtml(a));e?(/<body[\s|>]/.test(a)||(a="<body>"+a),/<html[\s|>]/.test(a)||(a="<html>"+a+"</html>"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$&<title></title>")):a=a.replace(/<html[^>]*>/,"$&<head><title></title></head>"),h&&(a=a.replace(/<head>/,"$&"+h)),a=a.replace(/<\/head\s*>/,f+"$&"),a=g+a):a=c.docType+'<html dir="'+
c.contentsLangDirection+'" lang="'+(c.contentsLanguage||b.langCode)+'"><head><title>'+this._.docTitle+"</title>"+h+f+"</head><body"+(c.bodyId?' id="'+c.bodyId+'"':"")+(c.bodyClass?' class="'+c.bodyClass+'"':"")+">"+a+"</body></html>";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'<body contenteditable="true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$&<\!-- cke-content-start --\>")));c='<script id="cke_actscrpt" type="text/javascript"'+(CKEDITOR.env.ie?' defer="defer" ':"")+">var wasLoaded=0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+
this._.frameLoadedHandler+",window);wasLoaded=1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"<\/script>";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(c+='<script id="cke_shimscrpt">(function(){var e="abbr,article,aside,audio,bdi,canvas,data,datalist,details,figcaption,figure,footer,header,hgroup,mark,meter,nav,output,progress,section,summary,time,video".split(","),i=e.length;while(i--){document.createElement(e[i])}})()<\/script>');a=a.replace(/(?=\s*<\/(:?head)>)/,
c);this.clearCustomData();this.clearListeners();b.fire("contentDomUnload");var i=this.getDocument();try{i.write(a)}catch(j){setTimeout(function(){i.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();var a=this.editor,d=a.config,b=d.fullPage,c=b&&a.docType,e=b&&a.xmlDeclaration,g=this.getDocument(),b=b?g.getDocumentElement().getOuterHtml():g.getBody().getHtml();CKEDITOR.env.gecko&&d.enterMode!=CKEDITOR.ENTER_BR&&(b=b.replace(/<br>(?=\s*(:?$|<\/body>))/,""));a.dataProcessor&&(b=a.dataProcessor.toDataFormat(b));
e&&(b=e+"\n"+b);c&&(b=c+"\n"+b);return b},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:j.baseProto.focus.call(this)},detach:function(){var a=this.editor,d=a.document,b=a.window.getFrame();j.baseProto.detach.call(this);this.clearCustomData();d.getDocumentElement().clearCustomData();b.clearCustomData();CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);(d=b.removeCustomData("onResize"))&&d.removeListener();a.fire("contentDomUnload");b.remove()}}})})();
CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;CKEDITOR.config.contentsCss=CKEDITOR.basePath+"contents.css";(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}";
CKEDITOR.dialog.isTabEnabled(b,"image","advanced")&&(a="img[alt,dir,id,lang,longdesc,!src,title]{*}(*)");b.addCommand("image",new CKEDITOR.dialogCommand("image",{allowedContent:a,requiredContent:"img[alt,src]",contentTransformations:[["img{width}: sizeToStyle","img[width]: sizeToAttribute"],["img{float}: alignmentToStyle","img[align]: alignmentToAttribute"]]}));b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.common.image,command:"image",toolbar:"insert,10"});b.on("doubleclick",function(a){var b=
a.data.element;b.is("img")&&(!b.data("cke-realelement")&&!b.isReadOnly())&&(a.data.dialog="image")});b.addMenuItems&&b.addMenuItems({image:{label:b.lang.image.menu,command:"image",group:"image"}});b.contextMenu&&b.contextMenu.addListener(function(a){if(e(b,a))return{image:CKEDITOR.TRISTATE_OFF}})},afterInit:function(b){function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right"==a)d.on("exec",function(d){var c=e(b),g;c&&(g=f(c),g==a?(c.removeStyle("float"),a==f(c)&&c.removeAttribute("align")):
c.setStyle("float",a),d.cancel())});d.on("refresh",function(d){var c=e(b);c&&(c=f(c),this.setState(c==a?CKEDITOR.TRISTATE_ON:"right"==a||"left"==a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),d.cancel())})}}a("left");a("right");a("center");a("block")}})})();CKEDITOR.config.image_removeLinkByEmptyURL=!0;(function(){function k(a,b){var e,f;b.on("refresh",function(a){var b=[j],c;for(c in a.data.states)b.push(a.data.states[c]);this.setState(CKEDITOR.tools.search(b,m)?m:j)},b,null,100);b.on("exec",function(b){e=a.getSelection();f=e.createBookmarks(1);b.data||(b.data={});b.data.done=!1},b,null,0);b.on("exec",function(){a.forceNextSelectionCheck();e.selectBookmarks(f)},b,null,100)}var j=CKEDITOR.TRISTATE_DISABLED,m=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(a){var b=CKEDITOR.plugins.indent.genericDefinition;
k(a,a.addCommand("indent",new b(!0)));k(a,a.addCommand("outdent",new b));a.ui.addButton&&(a.ui.addButton("Indent",{label:a.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),a.ui.addButton("Outdent",{label:a.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"}));a.on("dirChanged",function(b){var f=a.createRange(),i=b.data.node;f.setStartBefore(i);f.setEndAfter(i);for(var l=new CKEDITOR.dom.walker(f),c;c=l.next();)if(c.type==CKEDITOR.NODE_ELEMENT)if(!c.equals(i)&&
c.getDirection()){f.setStartAfter(c);l=new CKEDITOR.dom.walker(f)}else{var d=a.config.indentClasses;if(d)for(var g=b.data.dir=="ltr"?["_rtl",""]:["","_rtl"],h=0;h<d.length;h++)if(c.hasClass(d[h]+g[0])){c.removeClass(d[h]+g[0]);c.addClass(d[h]+g[1])}d=c.getStyle("margin-right");g=c.getStyle("margin-left");d?c.setStyle("margin-left",d):c.removeStyle("margin-left");g?c.setStyle("margin-right",g):c.removeStyle("margin-right")}})}});CKEDITOR.plugins.indent={genericDefinition:function(a){this.isIndent=
!!a;this.startDisabled=!this.isIndent},specificDefinition:function(a,b,e){this.name=b;this.editor=a;this.jobs={};this.enterBr=a.config.enterMode==CKEDITOR.ENTER_BR;this.isIndent=!!e;this.relatedGlobal=e?"indent":"outdent";this.indentKey=e?9:CKEDITOR.SHIFT+9;this.database={}},registerCommands:function(a,b){a.on("pluginsLoaded",function(){for(var a in b)(function(a,b){var e=a.getCommand(b.relatedGlobal),c;for(c in b.jobs)e.on("exec",function(d){d.data.done||(a.fire("lockSnapshot"),b.execJob(a,c)&&(d.data.done=
!0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,c),e.on("refresh",function(d){d.data.states||(d.data.states={});d.data.states[b.name+"@"+c]=b.refreshJob(a,c,d.data.path)},this,null,c);a.addFeature(b)})(this,b[a])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype={execJob:function(a,b){var e=this.jobs[b];if(e.state!=j)return e.exec.call(this,a)},refreshJob:function(a,
b,e){b=this.jobs[b];b.state=b.refresh.call(this,a,e);return b.state},getContext:function(a){return a.contains(this.context)}}})();(function(){function h(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,f=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=f?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{var c=i(b,a),a=parseInt(b.getStyle(c),10),g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(f?1:-1)*g;if(0>a)return;a=Math.max(a,
0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function i(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var j=CKEDITOR.dtd.$listItem,l=CKEDITOR.dtd.$list,f=CKEDITOR.TRISTATE_DISABLED,k=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(b,c){a.specificDefinition.apply(this,
arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:!d?"margin-left,margin-right":null,classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(e.is(j))e=e.getParent();else if(e.getAscendant(j))return f;if(!this.enterBr&&!this.getContext(b))return f;if(d){var c;c=d;var e=e.$.className.match(this.classNameRegex),
g=this.isIndent;c=e?g?e[1]!=c.slice(-1):true:g;return c?k:f}return this.isIndent?k:e?CKEDITOR[(parseInt(e.getStyle(i(e)),10)||0)<=0?"TRISTATE_DISABLED":"TRISTATE_OFF"]:f},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges(1)[0],c;if(c=a.elementPath().contains(l))h.call(this,c,d);else{b=b.createIterator();a=a.config.enterMode;b.enforceRealBlocks=true;for(b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)h.call(this,c,d)}return true}}}}var a=CKEDITOR.plugins.indent,
d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?RegExp("(?:^|\\s+)("+d.join("|")+")(?=$|\\s)"):null})}})})();(function(){function s(e){function g(b){for(var f=d.startContainer,a=d.endContainer;f&&!f.getParent().equals(b);)f=f.getParent();for(;a&&!a.getParent().equals(b);)a=a.getParent();if(!f||!a)return!1;for(var h=f,f=[],c=!1;!c;)h.equals(a)&&(c=!0),f.push(h),h=h.getNext();if(1>f.length)return!1;h=b.getParents(!0);for(a=0;a<h.length;a++)if(h[a].getName&&k[h[a].getName()]){b=h[a];break}for(var h=n.isIndent?1:-1,a=f[0],f=f[f.length-1],c=CKEDITOR.plugins.list.listToArray(b,o),g=c[f.getCustomData("listarray_index")].indent,
a=a.getCustomData("listarray_index");a<=f.getCustomData("listarray_index");a++)if(c[a].indent+=h,0<h){var l=c[a].parent;c[a].parent=new CKEDITOR.dom.element(l.getName(),l.getDocument())}for(a=f.getCustomData("listarray_index")+1;a<c.length&&c[a].indent>g;a++)c[a].indent+=h;f=CKEDITOR.plugins.list.arrayToList(c,o,null,e.config.enterMode,b.getDirection());if(!n.isIndent){var i;if((i=b.getParent())&&i.is("li"))for(var h=f.listNode.getChildren(),m=[],j,a=h.count()-1;0<=a;a--)(j=h.getItem(a))&&(j.is&&
j.is("li"))&&m.push(j)}f&&f.listNode.replace(b);if(m&&m.length)for(a=0;a<m.length;a++){for(j=b=m[a];(j=j.getNext())&&j.is&&j.getName()in k;)CKEDITOR.env.ie&&!b.getFirst(function(a){return t(a)&&u(a)})&&b.append(d.document.createText(" ")),b.append(j);b.insertAfter(i)}return!0}for(var n=this,o=this.database,k=this.context,l=e.getSelection(),l=(l&&l.getRanges(1)).createIterator(),d;d=l.getNextRange();){for(var b=d.getCommonAncestor();b&&!(b.type==CKEDITOR.NODE_ELEMENT&&k[b.getName()]);)b=b.getParent();
b||(b=d.startPath().contains(k))&&d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);if(!b){var c=d.getEnclosedNode();c&&(c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in k)&&(d.setStartAt(c,CKEDITOR.POSITION_AFTER_START),d.setEndAt(c,CKEDITOR.POSITION_BEFORE_END),b=c)}b&&(d.startContainer.type==CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in k)&&(c=new CKEDITOR.dom.walker(d),c.evaluator=i,d.startContainer=c.next());b&&(d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in k)&&(c=new CKEDITOR.dom.walker(d),
c.evaluator=i,d.endContainer=c.previous());if(b)return g(b)}return 0}function p(e,g){g||(g=e.contains(this.context));return g&&e.block&&e.block.equals(g.getFirst(i))}function i(e){return e.type==CKEDITOR.NODE_ELEMENT&&e.is("li")}var t=CKEDITOR.dom.walker.whitespaces(!0),u=CKEDITOR.dom.walker.bookmark(!1,!0),q=CKEDITOR.TRISTATE_DISABLED,r=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(e){function g(e,g){i.specificDefinition.apply(this,arguments);this.requiredContent=
["ul","ol"];e.on("key",function(g){if("wysiwyg"==e.mode&&g.data.keyCode==this.indentKey){var d=this.getContext(e.elementPath());if(d&&(!this.isIndent||!p.call(this,e.elementPath(),d)))e.execCommand(this.relatedGlobal),g.cancel()}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(e,d){var b=this.getContext(d),c=p.call(this,d,b);return!b||!this.isIndent||c?q:r}:function(e,d){return!this.getContext(d)||this.isIndent?q:r},exec:CKEDITOR.tools.bind(s,this)}}var i=CKEDITOR.plugins.indent;
i.registerCommands(e,{indentlist:new g(e,"indentlist",!0),outdentlist:new g(e,"outdentlist")});CKEDITOR.tools.extend(g.prototype,i.specificDefinition.prototype,{context:{ol:1,ul:1}})}})})();CKEDITOR.plugins.add("smiley",{requires:"dialog",init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley",{allowedContent:"img[alt,height,!src,title,width]",requiredContent:"img"}));a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.gif sad_smile.gif wink_smile.gif teeth_smile.gif confused_smile.gif tongue_smile.gif embarrassed_smile.gif omg_smile.gif whatchutalkingabout_smile.gif angry_smile.gif angel_smile.gif shades_smile.gif devil_smile.gif cry_smile.gif lightbulb.gif thumbs_down.gif thumbs_up.gif heart.gif broken_heart.gif kiss.gif envelope.gif".split(" ");
CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";");(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function f(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";var c=a.config.justifyClasses,g=a.config.enterMode==
CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?=$|\\s)");this.requiredContent=g+"("+this.cssClassName+")"}else this.requiredContent=g+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName||
null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var g=new CKEDITOR.dom.walker(b),d;d=g.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),g=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0])));
e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}f.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var g=c.createBookmarks(),d=c.getRanges(!0),e=this.cssClassName,f,h,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){f=d[k].createIterator();for(f.enlargeBr=b!=CKEDITOR.ENTER_BR;h=f.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");){h.removeAttribute("align");h.removeStyle("text-align");
var j=e&&(h.$.className=CKEDITOR.tools.ltrim(h.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(h,!0)!=this.value);e?m?h.addClass(e):j||h.removeAttribute("class"):m&&h.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(g)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify",
{init:function(a){if(!a.blockless){var c=new f(a,"justifyleft","left"),b=new f(a,"justifycenter","center"),g=new f(a,"justifyright","right"),d=new f(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",g);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",
toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",j)}}})})();CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function b(b){return d.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var a="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",d=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+a+"padding-%1:18px;cursor:auto;}"+(CKEDITOR.env.ie?
"a.cke_anchor_empty{display:inline-block;}":"")+".%2 img.cke_anchor{"+a+"width:16px;min-height:15px;height:1.15em;vertical-align:"+(CKEDITOR.env.opera?"middle":"text-bottom")+";}";CKEDITOR.addCss(b("ltr")+b("rtl"))},init:function(b){var a="a[!href]";CKEDITOR.dialog.isTabEnabled(b,"link","advanced")&&(a=a.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)"));CKEDITOR.dialog.isTabEnabled(b,"link","target")&&(a=a.replace("]",",target,onclick]"));b.addCommand("link",new CKEDITOR.dialogCommand("link",
{allowedContent:a,requiredContent:"a[href]"}));b.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));b.addCommand("unlink",new CKEDITOR.unlinkCommand);b.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);b.setKeystroke(CKEDITOR.CTRL+76,"link");b.ui.addButton&&(b.ui.addButton("Link",{label:b.lang.link.toolbar,command:"link",toolbar:"links,10"}),b.ui.addButton("Unlink",{label:b.lang.link.unlink,command:"unlink",toolbar:"links,20"}),
b.ui.addButton("Anchor",{label:b.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");b.on("doubleclick",function(a){var c=CKEDITOR.plugins.link.getSelectedLink(b)||a.data.element;if(!c.isReadOnly())if(c.is("a")){a.data.dialog=c.getAttribute("name")&&(!c.getAttribute("href")||!c.getChildCount())?"anchor":"link";b.getSelection().selectElement(c)}else if(CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,
c))a.data.dialog="anchor"});b.addMenuItems&&b.addMenuItems({anchor:{label:b.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:b.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:b.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:b.lang.link.unlink,command:"unlink",group:"link",order:5}});b.contextMenu&&b.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,
a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(b)))return null;var c={};a.getAttribute("href")&&a.getChildCount()&&(c={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});if(a&&a.hasAttribute("name"))c.anchor=c.removeAnchor=CKEDITOR.TRISTATE_OFF;return c})},afterInit:function(b){var a=b.dataProcessor,d=a&&a.dataFilter,a=a&&a.htmlFilter,c=b._.elementsPath&&b._.elementsPath.filters;d&&d.addRules({elements:{a:function(a){var c=a.attributes;if(!c.name)return null;var d=!a.children.length;if(CKEDITOR.plugins.link.synAnchorSelector){var a=
d?"cke_anchor_empty":"cke_anchor",e=c["class"];if(c.name&&(!e||0>e.indexOf(a)))c["class"]=(e||"")+" "+a;d&&CKEDITOR.plugins.link.emptyAnchorFix&&(c.contenteditable="false",c["data-cke-editable"]=1)}else if(CKEDITOR.plugins.link.fakeAnchor&&d)return b.createFakeParserElement(a,"cke_anchor","anchor");return null}}});CKEDITOR.plugins.link.emptyAnchorFix&&a&&a.addRules({elements:{a:function(a){delete a.attributes.contenteditable}}});c&&c.push(function(a,c){if("a"==c&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,
a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});
CKEDITOR.plugins.link={getSelectedLink:function(b){var a=b.getSelection(),d=a.getSelectedElement();return d&&d.is("a")?d:(a=a.getRanges(!0)[0])?(a.shrink(CKEDITOR.SHRINK_TEXT),b.elementPath(a.getCommonAncestor()).contains("a",1)):null},fakeAnchor:CKEDITOR.env.opera||CKEDITOR.env.webkit,synAnchorSelector:CKEDITOR.env.ie,emptyAnchorFix:CKEDITOR.env.ie&&8>CKEDITOR.env.version,tryRestoreFakeAnchor:function(b,a){if(a&&a.data("cke-real-element-type")&&"anchor"==a.data("cke-real-element-type")){var d=b.restoreRealElement(a);
if(d.data("cke-saved-name"))return d}}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype={exec:function(b){var a=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});b.removeStyle(a)},refresh:function(b,a){var d=a.lastElement&&a.lastElement.getAscendant("a",!0);d&&"a"==d.getName()&&d.getAttribute("href")&&d.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]"};
CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(b){var a=b.getSelection(),d=a.createBookmarks(),c;if(a&&(c=a.getSelectedElement())&&(CKEDITOR.plugins.link.fakeAnchor&&!c.getChildCount()?CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,c):c.is("a")))c.remove(1);else if(c=CKEDITOR.plugins.link.getSelectedLink(b))c.hasAttribute("href")?(c.removeAttributes({name:1,"data-cke-saved-name":1}),c.removeClass("cke_anchor")):c.remove(1);a.selectBookmarks(d)},requiredContent:"a[name]"};
CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0});(function(){function C(c,j,f){function b(b){if((d=a[b?"getFirst":"getLast"]())&&(!d.is||!d.isBlockBoundary())&&(m=j.root[b?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))&&(!m.is||!m.isBlockBoundary({br:1})))c.document.createElement("br")[b?"insertBefore":"insertAfter"](d)}for(var i=CKEDITOR.plugins.list.listToArray(j.root,f),e=[],h=0;h<j.contents.length;h++){var g=j.contents[h];if((g=g.getAscendant("li",!0))&&!g.getCustomData("list_item_processed"))e.push(g),CKEDITOR.dom.element.setMarker(f,
g,"list_item_processed",!0)}g=null;for(h=0;h<e.length;h++)g=e[h].getCustomData("listarray_index"),i[g].indent=-1;for(h=g+1;h<i.length;h++)if(i[h].indent>i[h-1].indent+1){e=i[h-1].indent+1-i[h].indent;for(g=i[h].indent;i[h]&&i[h].indent>=g;)i[h].indent+=e,h++;h--}var a=CKEDITOR.plugins.list.arrayToList(i,f,null,c.config.enterMode,j.root.getAttribute("dir")).listNode,d,m;b(!0);b();a.replace(j.root)}function x(c,j){this.name=c;this.context=this.type=j;this.allowedContent=j+" li";this.requiredContent=
j}function y(c,j,f,b){for(var i,e;i=c[b?"getLast":"getFirst"](D);)(e=i.getDirection(1))!==j.getDirection(1)&&i.setAttribute("dir",e),i.remove(),f?i[b?"insertBefore":"insertAfter"](f):j.append(i,b)}function A(c){var j;(j=function(f){var b=c[f?"getPrevious":"getNext"](q);b&&(b.type==CKEDITOR.NODE_ELEMENT&&b.is(c.getName()))&&(y(c,b,null,!f),c.remove(),c=b)})();j(1)}function B(c){return c.type==CKEDITOR.NODE_ELEMENT&&(c.getName()in CKEDITOR.dtd.$block||c.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[c.getName()]["#"]}
function v(c,j,f){c.fire("saveSnapshot");f.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var b=f.extractContents();j.trim(!1,!0);var i=j.createBookmark(),e=new CKEDITOR.dom.elementPath(j.startContainer),h=e.block,e=e.lastElement.getAscendant("li",1)||h,g=new CKEDITOR.dom.elementPath(f.startContainer),a=g.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$list);h?(h=h.getBogus())&&h.remove():g&&(h=g.getPrevious(q))&&u(h)&&h.remove();(h=b.getLast())&&(h.type==CKEDITOR.NODE_ELEMENT&&h.is("br"))&&
h.remove();(h=j.startContainer.getChild(j.startOffset))?b.insertBefore(h):j.startContainer.append(b);if(a&&(b=w(a)))e.contains(a)?(y(b,a.getParent(),a),b.remove()):e.append(b);for(;f.checkStartOfBlock()&&f.checkEndOfBlock();)g=f.startPath(),b=g.block,b.is("li")&&(e=b.getParent(),b.equals(e.getLast(q))&&b.equals(e.getFirst(q))&&(b=e)),f.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START),b.remove();f=f.clone();b=c.editable();f.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);f=new CKEDITOR.dom.walker(f);f.evaluator=
function(a){return q(a)&&!u(a)};(f=f.next())&&(f.type==CKEDITOR.NODE_ELEMENT&&f.getName()in CKEDITOR.dtd.$list)&&A(f);j.moveToBookmark(i);j.select();c.fire("saveSnapshot")}function w(c){return(c=c.getLast(q))&&c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in r?c:null}var r={ol:1,ul:1},E=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.bookmark(),q=function(c){return!(E(c)||F(c))},u=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(c,j,f,b,i){if(!r[c.getName()])return[];b||
(b=0);f||(f=[]);for(var e=0,h=c.getChildCount();e<h;e++){var g=c.getChild(e);g.type==CKEDITOR.NODE_ELEMENT&&g.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(g,j,f,b+1);if("li"==g.$.nodeName.toLowerCase()){var a={parent:c,indent:b,element:g,contents:[]};i?a.grandparent=i:(a.grandparent=c.getParent(),a.grandparent&&"li"==a.grandparent.$.nodeName.toLowerCase()&&(a.grandparent=a.grandparent.getParent()));j&&CKEDITOR.dom.element.setMarker(j,g,"listarray_index",f.length);f.push(a);for(var d=
0,m=g.getChildCount(),k;d<m;d++)k=g.getChild(d),k.type==CKEDITOR.NODE_ELEMENT&&r[k.getName()]?CKEDITOR.plugins.list.listToArray(k,j,f,b+1,a.grandparent):a.contents.push(k)}}return f},arrayToList:function(c,j,f,b,i){f||(f=0);if(!c||c.length<f+1)return null;for(var e,h=c[f].parent.getDocument(),g=new CKEDITOR.dom.documentFragment(h),a=null,d=f,m=Math.max(c[f].indent,0),k=null,n,l,p=b==CKEDITOR.ENTER_P?"p":"div";;){var o=c[d];e=o.grandparent;n=o.element.getDirection(1);if(o.indent==m){if(!a||c[d].parent.getName()!=
a.getName())a=c[d].parent.clone(!1,1),i&&a.setAttribute("dir",i),g.append(a);k=a.append(o.element.clone(0,1));n!=a.getDirection(1)&&k.setAttribute("dir",n);for(e=0;e<o.contents.length;e++)k.append(o.contents[e].clone(1,1));d++}else if(o.indent==Math.max(m,0)+1)l=c[d-1].element.getDirection(1),d=CKEDITOR.plugins.list.arrayToList(c,null,d,b,l!=n?n:null),!k.getChildCount()&&(CKEDITOR.env.ie&&!(7<h.$.documentMode))&&k.append(h.createText(" ")),k.append(d.listNode),d=d.nextIndex;else if(-1==o.indent&&
!f&&e){r[e.getName()]?(k=o.element.clone(!1,!0),n!=e.getDirection(1)&&k.setAttribute("dir",n)):k=new CKEDITOR.dom.documentFragment(h);var a=e.getDirection(1)!=n,s=o.element,z=s.getAttribute("class"),u=s.getAttribute("style"),w=k.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(b!=CKEDITOR.ENTER_BR||a||u||z),t,x=o.contents.length;for(e=0;e<x;e++){t=o.contents[e];if(t.type==CKEDITOR.NODE_ELEMENT&&t.isBlockBoundary()){a&&!t.getDirection()&&t.setAttribute("dir",n);var v=t,y=s.getAttribute("style");y&&v.setAttribute("style",
y.replace(/([^;])$/,"$1;")+(v.getAttribute("style")||""));z&&t.addClass(z)}else w&&(l||(l=h.createElement(p),a&&l.setAttribute("dir",n)),u&&l.setAttribute("style",u),z&&l.setAttribute("class",z),l.append(t.clone(1,1)));k.append(l||t.clone(1,1))}k.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&d!=c.length-1&&((n=k.getLast())&&(n.type==CKEDITOR.NODE_ELEMENT&&"_moz"==n.getAttribute("type"))&&n.remove(),(!k.getLast(q)||!(n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in CKEDITOR.dtd.$block))&&k.append(h.createElement("br")));
n=k.$.nodeName.toLowerCase();!CKEDITOR.env.ie&&("div"==n||"p"==n)&&k.appendBogus();g.append(k);a=null;d++}else return null;l=null;if(c.length<=d||Math.max(c[d].indent,0)<m)break}if(j)for(c=g.getFirst();c;){if(c.type==CKEDITOR.NODE_ELEMENT&&(CKEDITOR.dom.element.clearMarkers(j,c),c.getName()in CKEDITOR.dtd.$listItem&&(f=c,h=i=b=void 0,b=f.getDirection()))){for(i=f.getParent();i&&!(h=i.getDirection());)i=i.getParent();b==h&&f.removeAttribute("dir")}c=c.getNextSourceNode()}return{listNode:g,nextIndex:d}}};
var G=/^h[1-6]$/,D=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);x.prototype={exec:function(c){this.refresh(c,c.elementPath());var j=c.config,f=c.getSelection(),b=f&&f.getRanges(!0);if(this.state==CKEDITOR.TRISTATE_OFF){var i=c.editable();if(i.getFirst(q)){var e=1==b.length&&b[0];(j=e&&e.getEnclosedNode())&&(j.is&&this.type==j.getName())&&this.setState(CKEDITOR.TRISTATE_ON)}else j.enterMode==CKEDITOR.ENTER_BR?i.appendBogus():b[0].fixBlock(1,j.enterMode==CKEDITOR.ENTER_P?"p":"div"),f.selectRanges(b)}for(var j=
f.createBookmarks(!0),i=[],h={},b=b.createIterator(),g=0;(e=b.getNextRange())&&++g;){var a=e.getBoundaryNodes(),d=a.startNode,m=a.endNode;d.type==CKEDITOR.NODE_ELEMENT&&"td"==d.getName()&&e.setStartAt(a.startNode,CKEDITOR.POSITION_AFTER_START);m.type==CKEDITOR.NODE_ELEMENT&&"td"==m.getName()&&e.setEndAt(a.endNode,CKEDITOR.POSITION_BEFORE_END);e=e.createIterator();for(e.forceBrBreak=this.state==CKEDITOR.TRISTATE_OFF;a=e.getNextParagraph();)if(!a.getCustomData("list_block")){CKEDITOR.dom.element.setMarker(h,
a,"list_block",1);for(var k=c.elementPath(a),d=k.elements,m=0,k=k.blockLimit,n,l=d.length-1;0<=l&&(n=d[l]);l--)if(r[n.getName()]&&k.contains(n)){k.removeCustomData("list_group_object_"+g);(d=n.getCustomData("list_group_object"))?d.contents.push(a):(d={root:n,contents:[a]},i.push(d),CKEDITOR.dom.element.setMarker(h,n,"list_group_object",d));m=1;break}m||(m=k,m.getCustomData("list_group_object_"+g)?m.getCustomData("list_group_object_"+g).contents.push(a):(d={root:m,contents:[a]},CKEDITOR.dom.element.setMarker(h,
m,"list_group_object_"+g,d),i.push(d)))}}for(n=[];0<i.length;)if(d=i.shift(),this.state==CKEDITOR.TRISTATE_OFF)if(r[d.root.getName()]){a=c;b=d;d=h;g=n;m=CKEDITOR.plugins.list.listToArray(b.root,d);k=[];for(e=0;e<b.contents.length;e++)if(l=b.contents[e],(l=l.getAscendant("li",!0))&&!l.getCustomData("list_item_processed"))k.push(l),CKEDITOR.dom.element.setMarker(d,l,"list_item_processed",!0);for(var l=b.root.getDocument(),p=void 0,o=void 0,e=0;e<k.length;e++){var s=k[e].getCustomData("listarray_index"),
p=m[s].parent;p.is(this.type)||(o=l.createElement(this.type),p.copyAttributes(o,{start:1,type:1}),o.removeStyle("list-style-type"),m[s].parent=o)}a=CKEDITOR.plugins.list.arrayToList(m,d,null,a.config.enterMode);d=void 0;m=a.listNode.getChildCount();for(e=0;e<m&&(d=a.listNode.getChild(e));e++)d.getName()==this.type&&g.push(d);a.listNode.replace(b.root)}else{m=c;a=d;e=n;k=a.contents;b=a.root.getDocument();g=[];1==k.length&&k[0].equals(a.root)&&(d=b.createElement("div"),k[0].moveChildren&&k[0].moveChildren(d),
k[0].append(d),k[0]=d);a=a.contents[0].getParent();for(l=0;l<k.length;l++)a=a.getCommonAncestor(k[l].getParent());p=m.config.useComputedState;m=d=void 0;p=void 0===p||p;for(l=0;l<k.length;l++)for(o=k[l];s=o.getParent();){if(s.equals(a)){g.push(o);!m&&o.getDirection()&&(m=1);o=o.getDirection(p);null!==d&&(d=d&&d!=o?null:o);break}o=s}if(!(1>g.length)){k=g[g.length-1].getNext();l=b.createElement(this.type);e.push(l);for(p=e=void 0;g.length;)e=g.shift(),p=b.createElement("li"),e.is("pre")||G.test(e.getName())?
e.appendTo(p):(e.copyAttributes(p),d&&e.getDirection()&&(p.removeStyle("direction"),p.removeAttribute("dir")),e.moveChildren(p),e.remove()),p.appendTo(l);d&&m&&l.setAttribute("dir",d);k?l.insertBefore(k):l.appendTo(a)}}else this.state==CKEDITOR.TRISTATE_ON&&r[d.root.getName()]&&C.call(this,c,d,h);for(l=0;l<n.length;l++)A(n[l]);CKEDITOR.dom.element.clearAllMarkers(h);f.selectBookmarks(j);c.focus()},refresh:function(c,j){var f=j.contains(r,1),b=j.blockLimit||j.root;f&&b.contains(f)?this.setState(f.is(this.type)?
CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indentlist",init:function(c){c.blockless||(c.addCommand("numberedlist",new x("numberedlist","ol")),c.addCommand("bulletedlist",new x("bulletedlist","ul")),c.ui.addButton&&(c.ui.addButton("NumberedList",{label:c.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),c.ui.addButton("BulletedList",{label:c.lang.list.bulletedlist,command:"bulletedlist",directional:!0,
toolbar:"list,20"})),c.on("key",function(j){var f=j.data.keyCode;if(c.mode=="wysiwyg"&&f in{8:1,46:1}){var b=c.getSelection().getRanges()[0],i=b.startPath();if(b.collapsed){var i=new CKEDITOR.dom.elementPath(b.startContainer),e=f==8,h=c.editable(),g=new CKEDITOR.dom.walker(b.clone());g.evaluator=function(a){return q(a)&&!u(a)};g.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};f=b.clone();if(e){var a,d;if((a=i.contains(r))&&b.checkBoundaryOfElement(a,CKEDITOR.START)&&
(a=a.getParent())&&a.is("li")&&(a=w(a))){d=a;a=a.getPrevious(q);f.moveToPosition(a&&u(a)?a:d,CKEDITOR.POSITION_BEFORE_START)}else{g.range.setStartAt(h,CKEDITOR.POSITION_AFTER_START);g.range.setEnd(b.startContainer,b.startOffset);if((a=g.previous())&&a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in r||a.is("li"))){if(!a.is("li")){g.range.selectNodeContents(a);g.reset();g.evaluator=B;a=g.previous()}d=a;f.moveToElementEditEnd(d)}}if(d){v(c,f,b);j.cancel()}else if((f=i.contains(r))&&b.checkBoundaryOfElement(f,
CKEDITOR.START)){d=f.getFirst(q);if(b.checkBoundaryOfElement(d,CKEDITOR.START)){a=f.getPrevious(q);if(w(d)){if(a){b.moveToElementEditEnd(a);b.select()}}else c.execCommand("outdent");j.cancel()}}}else if(d=i.contains("li")){g.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);h=(i=d.getLast(q))&&B(i)?i:d;d=0;if((a=g.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in r&&a.equals(i)){d=1;a=g.next()}else b.checkBoundaryOfElement(h,CKEDITOR.END)&&(d=1);if(d&&a){b=b.clone();b.moveToElementEditStart(a);v(c,
f,b);j.cancel()}}else{g.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);if((a=g.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(r)){a=a.getFirst(q);if(i.block&&b.checkStartOfBlock()&&b.checkEndOfBlock()){i.block.remove();b.moveToElementEditStart(a);b.select()}else if(w(a)){b.moveToElementEditStart(a);b.select()}else{b=b.clone();b.moveToElementEditStart(a);v(c,f,b)}j.cancel()}}setTimeout(function(){c.selectionChange(1)})}}}))}})})();(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);
a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};
a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function O(a,b,d){return m(b)&&m(d)&&d.equals(b.getNext(function(a){return!(z(a)||A(a)||p(a))}))}function u(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function I(a){var b=a.element,d;return b&&m(b)?(d=b.getAscendant(a.triggers,!0))&&!d.contains(a.editable)&&!d.equals(a.editable)?d:null:null}function ca(a,b,d){o(a,b);o(a,d);a=b.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function r(a,b,d){return b=b[d?"getPrevious":"getNext"](function(b){return b&&b.type==
CKEDITOR.NODE_TEXT&&!z(b)||m(b)&&!p(b)&&!v(a,b)})}function da(a){var b=a.doc,d=B('<span contenteditable="false" style="'+J+"position:absolute;border-top:1px dashed "+a.boxColor+'"></span>',b),e=this.path+"images/"+(n.hidpi?"hidpi/":"")+"icon.png";q(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[q(B('<span title="'+a.editor.lang.magicline.title+'" contenteditable="false">&#8629;</span>',b),{base:J+"height:17px;width:17px;"+(a.rtl?"left":"right")+
":17px;background:url("+e+") center no-repeat "+a.boxColor+";cursor:pointer;"+(n.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":"")+(n.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","2px",1),"top:-17px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","2px 2px 0px 0px",1),"top:-1px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","0px 0px 2px 2px",1)]}),q(B(P,b),{base:Q+"left:0px;border-left-color:"+a.boxColor+
";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),q(B(P,b),{base:Q+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){o(a,this);var b=a.holdDistance,c=this.size;return c&&a.mouse.y>c.top-b&&a.mouse.y<c.bottom+b&&a.mouse.x>
c.left-b&&a.mouse.x<c.right+b?!0:!1},place:function(){var b=a.view,c=a.editable,d=a.trigger,e=d.upper,g=d.lower,i=e||g,l=i.getParent(),k={};this.trigger=d;e&&o(a,e,!0);g&&o(a,g,!0);o(a,l,!0);a.inInlineMode&&C(a,!0);l.equals(c)?(k.left=b.scroll.x,k.right=-b.scroll.x,k.width=""):(k.left=i.size.left-i.size.margin.left+b.scroll.x-(a.inInlineMode?b.editable.left+b.editable.border.left:0),k.width=i.size.outerWidth+i.size.margin.left+i.size.margin.right+b.scroll.x,k.right="");e&&g?k.top=e.size.margin.bottom===
g.size.margin.top?0|e.size.bottom+e.size.margin.bottom/2:e.size.margin.bottom<g.size.margin.top?e.size.bottom+e.size.margin.bottom:e.size.bottom+e.size.margin.bottom-g.size.margin.top:e?g||(k.top=e.size.bottom+e.size.margin.bottom):k.top=g.size.top-g.size.margin.top;d.is(x)||k.top>b.scroll.y-15&&k.top<b.scroll.y+5?(k.top=a.inInlineMode?0:b.scroll.y,this.look(x)):d.is(y)||k.top>b.pane.bottom-5&&k.top<b.pane.bottom+15?(k.top=a.inInlineMode?b.editable.height+b.editable.padding.top+b.editable.padding.bottom:
b.pane.bottom-1,this.look(y)):(a.inInlineMode&&(k.top-=b.editable.top+b.editable.border.top),this.look(s));a.inInlineMode&&(k.top--,k.top+=b.editable.scroll.top,k.left+=b.editable.scroll.left);for(var R in k)k[R]=CKEDITOR.tools.cssLength(k[R]);this.setStyles(k)},look:function(a){if(this.oldLook!=a){for(var b=this.lineChildren.length,d;b--;)(d=this.lineChildren[b]).setAttribute("style",d.base+d.looks[0|a/2]);this.oldLook=a}},wrap:new K("span",a.doc)});for(b=d.lineChildren.length;b--;)d.lineChildren[b].appendTo(d);
d.look(s);d.appendTo(d.wrap);d.unselectable();d.lineChildren[0].on("mouseup",function(b){d.detach();L(a,function(b){var d=a.line.trigger;b[d.is(D)?"insertBefore":"insertAfter"](d.is(D)?d.lower:d.upper)},!0);a.editor.focus();!n.ie&&a.enterMode!=CKEDITOR.ENTER_BR&&a.hotNode.scrollIntoView();b.data.preventDefault(!0)});d.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=d}function L(a,b,d){var e=new CKEDITOR.dom.range(a.doc),f=a.editor,c;n.ie&&a.enterMode==CKEDITOR.ENTER_BR?c=a.doc.createText(E):
(c=new K(a.enterBehavior,a.doc),a.enterMode!=CKEDITOR.ENTER_BR&&a.doc.createText(E).appendTo(c));d&&f.fire("saveSnapshot");b(c);e.moveToPosition(c,CKEDITOR.POSITION_AFTER_START);f.getSelection().selectRanges([e]);a.hotNode=c;d&&f.fire("saveSnapshot")}function S(a,b){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function d(d){var f=n.ie&&9>n.version?" ":E,c=a.hotNode&&a.hotNode.getText()==f&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!b;L(a,function(f){c&&a.hotNode&&a.hotNode.remove();
f[b?"insertAfter":"insertBefore"](d);f.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!b});a.lastCmdDirection=!!b});!n.ie&&a.enterMode!=CKEDITOR.ENTER_BR&&a.hotNode.scrollIntoView();a.line.detach()}return function(e){e=e.getSelection().getStartElement();if((e=e.getAscendant(T,1))&&!e.equals(a.editable)&&!e.contains(a.editable)){a.element=e;var f=r(a,e,!b),c;m(f)&&f.is(a.triggers)&&f.is(ea)&&(!r(a,f,!b)||(c=r(a,f,!b))&&m(c)&&c.is(a.triggers))?d(f):(c=I(a,e),m(c)&&(r(a,c,!b)?(e=
r(a,c,!b))&&(m(e)&&e.is(a.triggers))&&d(c):d(c)))}}}()}}function v(a,b){if(!b||!(b.type==CKEDITOR.NODE_ELEMENT&&b.$))return!1;var d=a.line;return d.wrap.equals(b)||d.wrap.contains(b)}function m(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function p(a){if(!m(a))return!1;var b;if(!(b=U(a)))m(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1;return b}function U(a){return!!{absolute:1,fixed:1,relative:1}[a.getComputedStyle("position")]}function F(a,
b){return m(b)?b.is(a.triggers):null}function fa(a,b,d){b=b[d?"getLast":"getFirst"](function(b){return a.isRelevant(b)&&!b.is(ga)});if(!b)return!1;o(a,b);return d?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function V(a){var b=a.editable,d=a.mouse,e=a.view,f=a.triggerOffset;C(a);var c=d.y>(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),b=b[c?"getLast":"getFirst"](function(a){return!(z(a)||A(a))});if(!b)return null;v(a,b)&&(b=a.line.wrap[c?"getPrevious":
"getNext"](function(a){return!(z(a)||A(a))}));if(!m(b)||p(b)||!F(a,b))return null;o(a,b);return!c&&0<=b.size.top&&0<d.y&&d.y<b.size.top+f?(a=a.inInlineMode||0===e.scroll.y?x:s,new u([null,b,D,G,a])):c&&b.size.bottom<=e.pane.height&&d.y>b.size.bottom-f&&d.y<e.pane.height?(a=a.inInlineMode||b.size.bottom>e.pane.height-f&&b.size.bottom<e.pane.height?y:s,new u([b,null,W,G,a])):null}function X(a){var b=a.mouse,d=a.view,e=a.triggerOffset,f=I(a);if(!f)return null;o(a,f);var e=Math.min(e,0|f.size.outerHeight/
2),c=[],h,j;if(b.y>f.size.top-1&&b.y<f.size.top+e)j=!1;else if(b.y>f.size.bottom-e&&b.y<f.size.bottom+1)j=!0;else return null;if(p(f)||fa(a,f,j)||f.getParent().is(Y))return null;var g=r(a,f,!j);if(g){if(g&&g.type==CKEDITOR.NODE_TEXT)return null;if(m(g)){if(p(g)||!F(a,g)||g.getParent().is(Y))return null;c=[g,f][j?"reverse":"concat"]().concat([M,G])}}else f.equals(a.editable[j?"getLast":"getFirst"](a.isRelevant))?(C(a),j&&b.y>f.size.bottom-e&&b.y<d.pane.height&&f.size.bottom>d.pane.height-e&&f.size.bottom<
d.pane.height?h=y:0<b.y&&b.y<f.size.top+e&&(h=x)):h=s,c=[null,f][j?"reverse":"concat"]().concat([j?W:D,G,h,f.equals(a.editable[j?"getLast":"getFirst"](a.isRelevant))?j?y:x:s]);return 0 in c?new u(c):null}function N(a,b,d,e){for(var f=function(){var d=n.ie?b.$.currentStyle:a.win.$.getComputedStyle(b.$,"");return n.ie?function(a){return d[CKEDITOR.tools.cssStyleToDomStyle(a)]}:function(a){return d.getPropertyValue(a)}}(),c=b.getDocumentPosition(),h={},j={},g={},i={},l=t.length;l--;)h[t[l]]=parseInt(f("border-"+
t[l]+"-width"),10)||0,g[t[l]]=parseInt(f("padding-"+t[l]),10)||0,j[t[l]]=parseInt(f("margin-"+t[l]),10)||0;(!d||e)&&H(a,e);i.top=c.y-(d?0:a.view.scroll.y);i.left=c.x-(d?0:a.view.scroll.x);i.outerWidth=b.$.offsetWidth;i.outerHeight=b.$.offsetHeight;i.height=i.outerHeight-(g.top+g.bottom+h.top+h.bottom);i.width=i.outerWidth-(g.left+g.right+h.left+h.right);i.bottom=i.top+i.outerHeight;i.right=i.left+i.outerWidth;a.inInlineMode&&(i.scroll={top:b.$.scrollTop,left:b.$.scrollLeft});return q({border:h,padding:g,
margin:j,ignoreScroll:d},i,!0)}function o(a,b,d){if(!m(b))return b.size=null;if(b.size){if(b.size.ignoreScroll==d&&b.size.date>new Date-Z)return null}else b.size={};return q(b.size,N(a,b,d),{date:+new Date},!0)}function C(a,b){a.view.editable=N(a,a.editable,b,!0)}function H(a,b){a.view||(a.view={});var d=a.view;if(b||!(d&&d.date>new Date-Z)){var e=a.win,d=e.getScrollPosition(),e=e.getViewPaneSize();q(a.view,{scroll:{x:d.x,y:d.y,width:a.doc.$.documentElement.scrollWidth-e.width,height:a.doc.$.documentElement.scrollHeight-
e.height},pane:{width:e.width,height:e.height,bottom:e.height+d.y},date:+new Date},!0)}}function ha(a,b,d,e){for(var f=e,c=e,h=0,j=!1,g=!1,i=a.view.pane.height,l=a.mouse;l.y+h<i&&0<l.y-h;){j||(j=b(f,e));g||(g=b(c,e));!j&&0<l.y-h&&(f=d(a,{x:l.x,y:l.y-h}));!g&&l.y+h<i&&(c=d(a,{x:l.x,y:l.y+h}));if(j&&g)break;h+=2}return new u([f,c,null,null])}CKEDITOR.plugins.add("magicline",{init:function(a){var b={};b[CKEDITOR.ENTER_BR]="br";b[CKEDITOR.ENTER_P]="p";b[CKEDITOR.ENTER_DIV]="div";var d=a.config,e=d.magicline_triggerOffset||
30,f=d.enterMode,c={editor:a,enterBehavior:b[f],enterMode:f,triggerOffset:e,holdDistance:0|e*(d.magicline_holdDistance||0.5),boxColor:d.magicline_color||"#ff0000",rtl:"rtl"==d.contentsLangDirection,triggers:d.magicline_everywhere?T:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},h,j,g;c.isRelevant=function(a){return m(a)&&!v(c,a)&&!p(a)};a.on("contentDom",function(){var b=a.editable(),e=a.document,f=a.window;q(c,{editable:b,inInlineMode:b.isInline(),doc:e,win:f},!0);c.boundary=c.inInlineMode?
c.editable:c.doc.getDocumentElement();b.is(w.$inline)||(c.inInlineMode&&!U(b)&&b.setStyles({position:"relative",top:null,left:null}),da.call(this,c),H(c),b.attachListener(a,"beforeUndoImage",function(){c.line.detach()}),b.attachListener(a,"beforeGetData",function(){c.line.wrap.getParent()&&(c.line.detach(),a.once("getData",function(){c.line.attach()},null,null,1E3))},null,null,0),b.attachListener(c.inInlineMode?e:e.getWindow().getFrame(),"mouseout",function(b){if("wysiwyg"==a.mode)if(c.inInlineMode){var d=
b.data.$.clientX,b=b.data.$.clientY;H(c);C(c,!0);var e=c.view.editable,f=c.view.scroll;if(!(d>e.left-f.x&&d<e.right-f.x)||!(b>e.top-f.y&&b<e.bottom-f.y))clearTimeout(g),g=null,c.line.detach()}else clearTimeout(g),g=null,c.line.detach()}),b.attachListener(b,"keyup",function(){c.hiddenMode=0}),b.attachListener(b,"keydown",function(b){if("wysiwyg"==a.mode)switch(b=b.data.getKeystroke(),a.getSelection().getStartElement(),b){case 2228240:case 16:c.hiddenMode=1,c.line.detach()}}),b.attachListener(c.inInlineMode?
b:e,"mousemove",function(b){j=!0;if(!("wysiwyg"!=a.mode||a.readOnly||g)){var d={x:b.data.$.clientX,y:b.data.$.clientY};g=setTimeout(function(){c.mouse=d;g=c.trigger=null;H(c);if(j&&!c.hiddenMode&&a.focusManager.hasFocus&&!c.line.mouseNear()&&(c.element=$(c,!0)))(c.trigger=V(c)||X(c)||aa(c))?c.line.attach().place():(c.trigger=null,c.line.detach()),j=!1},30)}}),b.attachListener(f,"scroll",function(){"wysiwyg"==a.mode&&(c.line.detach(),n.webkit&&(c.hiddenMode=1,clearTimeout(h),h=setTimeout(function(){c.hiddenMode=
0},50)))}),b.attachListener(f,"mousedown",function(){"wysiwyg"==a.mode&&(c.line.detach(),c.hiddenMode=1)}),b.attachListener(f,"mouseup",function(){c.hiddenMode=0}),a.addCommand("accessPreviousSpace",S(c)),a.addCommand("accessNextSpace",S(c,!0)),a.setKeystroke([[d.magicline_keystrokePrevious,"accessPreviousSpace"],[d.magicline_keystrokeNext,"accessNextSpace"]]),a.on("loadSnapshot",function(){for(var b=a.document.getElementsByTag(c.enterBehavior),d,e=b.count();e--;)if((d=b.getItem(e)).hasAttribute("data-cke-magicline-hot")){c.hotNode=
d;c.lastCmdDirection="true"===d.getAttribute("data-cke-magicline-dir")?!0:!1;break}}),this.backdoor={accessFocusSpace:L,boxTrigger:u,isLine:v,getAscendantTrigger:I,getNonEmptyNeighbour:r,getSize:N,that:c,triggerEdge:X,triggerEditable:V,triggerExpand:aa})},this)}});var q=CKEDITOR.tools.extend,K=CKEDITOR.dom.element,B=K.createFromHtml,n=CKEDITOR.env,w=CKEDITOR.dtd,D=128,W=64,M=32,G=16,ba=8,x=4,y=2,s=1,E=" ",Y=w.$listItem,ga=w.$tableContent,ea=q({},w.$nonEditable,w.$empty),T=w.$block,Z=100,J="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",
Q=J+"border-color:transparent;display:block;border-style:solid;",P="<span>"+E+"</span>";u.prototype={set:function(a,b,d){this.properties=a+b+(d||s);return this},is:function(a){return(this.properties&a)==a}};var $=function(){return function(a,b,d){if(!a.mouse)return null;var e=a.doc,f=a.line.wrap,d=d||a.mouse,c=new CKEDITOR.dom.element(e.$.elementFromPoint(d.x,d.y));b&&v(a,c)&&(f.hide(),c=new CKEDITOR.dom.element(e.$.elementFromPoint(d.x,d.y)),f.show());return!c||!(c.type==CKEDITOR.NODE_ELEMENT&&c.$)||
n.ie&&9>n.version&&!a.boundary.equals(c)&&!a.boundary.contains(c)?null:c}}(),z=CKEDITOR.dom.walker.whitespaces(),A=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),aa=function(){function a(a){var e=a.element,f,c,h;if(!m(e)||e.contains(a.editable))return null;h=ha(a,function(a,b){return!b.equals(a)},function(a,b){return $(a,!0,b)},e);f=h.upper;c=h.lower;if(O(a,f,c))return h.set(M,ba);if(f&&e.contains(f))for(;!f.getParent().equals(e);)f=f.getParent();else f=e.getFirst(function(c){return b(a,c)});
if(c&&e.contains(c))for(;!c.getParent().equals(e);)c=c.getParent();else c=e.getLast(function(c){return b(a,c)});if(!f||!c)return null;o(a,f);o(a,c);if(!(a.mouse.y>f.size.top&&a.mouse.y<c.size.bottom))return null;for(var e=Number.MAX_VALUE,j,g,i,l;c&&!c.equals(f)&&(g=f.getNext(a.isRelevant));)j=Math.abs(ca(a,f,g)-a.mouse.y),j<e&&(e=j,i=f,l=g),f=g,o(a,f);if(!i||!l||!(a.mouse.y>i.size.top&&a.mouse.y<l.size.bottom))return null;h.upper=i;h.lower=l;return h.set(M,ba)}function b(a,b){return!(b&&b.type==
CKEDITOR.NODE_TEXT||A(b)||p(b)||v(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(b){var e=a(b),f;if(f=e){f=e.upper;var c=e.lower;f=!f||!c||p(c)||p(f)||c.equals(f)||f.equals(c)||c.contains(f)||f.contains(c)?!1:F(b,f)&&F(b,c)&&O(b,f,c)?!0:!1}return f?e:null}}(),t=["top","left","right","bottom"]})();CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+219;CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+221;(function(){function l(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var e=[],f=["style","className"],b=0;b<f.length;b++){var d=a.$.elements.namedItem(f[b]);d&&(d=new CKEDITOR.dom.element(d),e.push([d,d.nextSibling]),d.remove())}return e}function o(a,e){if(a&&!(a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())&&0<e.length)for(var f=e.length-1;0<=f;f--){var b=e[f][0],d=e[f][1];d?b.insertBefore(d):b.appendTo(a)}}function n(a,e){var f=l(a),b={},d=a.$;e||(b["class"]=d.className||
"",d.className="");b.inline=d.style.cssText||"";e||(d.style.cssText="position: static; overflow: visible");o(f);return b}function p(a,e){var f=l(a),b=a.$;"class"in e&&(b.className=e["class"]);"inline"in e&&(b.style.cssText=e.inline);o(f)}function q(a){if(!a.editable().isInline()){var e=CKEDITOR.instances,f;for(f in e){var b=e[f];"wysiwyg"==b.mode&&!b.readOnly&&(b=b.document.getBody(),b.setAttribute("contentEditable",!1),b.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),
a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function e(){var b=d.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f=a.lang,b=CKEDITOR.document,d=b.getWindow(),j,k,m,l=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var h=a.container.getChild(1),g=a.ui.space("contents");if("wysiwyg"==a.mode){var c=a.getSelection();j=c&&c.getRanges();
k=d.getScrollPosition()}else{var i=a.editable().$;j=!CKEDITOR.env.ie&&[i.selectionStart,i.selectionEnd];k=[i.scrollLeft,i.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",e);m=d.getScrollPosition();for(c=a.container;c=c.getParent();)c.setCustomData("maximize_saved_styles",n(c)),c.setStyle("z-index",a.config.baseFloatZIndex-5);g.setCustomData("maximize_saved_styles",n(g,!0));h.setCustomData("maximize_saved_styles",n(h,!0));g={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};
b.getDocumentElement().setStyles(g);!CKEDITOR.env.gecko&&b.getDocumentElement().setStyle("position","fixed");(!CKEDITOR.env.gecko||!CKEDITOR.env.quirks)&&b.getBody().setStyles(g);CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(0,0)},0):d.$.scrollTo(0,0);h.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");h.$.offsetLeft;h.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});h.addClass("cke_maximized");e();g=h.getDocumentPosition();h.setStyles({left:-1*
g.x+"px",top:-1*g.y+"px"});CKEDITOR.env.gecko&&q(a)}else if(this.state==CKEDITOR.TRISTATE_ON){d.removeListener("resize",e);g=[g,h];for(c=0;c<g.length;c++)p(g[c],g[c].getCustomData("maximize_saved_styles")),g[c].removeCustomData("maximize_saved_styles");for(c=a.container;c=c.getParent();)p(c,c.getCustomData("maximize_saved_styles")),c.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(m.x,m.y)},0):d.$.scrollTo(m.x,m.y);h.removeClass("cke_maximized");CKEDITOR.env.webkit&&
(h.setStyle("display","inline"),setTimeout(function(){h.setStyle("display","block")},0));a.fire("resize")}this.toggleState();if(c=this.uiItems[0])g=this.state==CKEDITOR.TRISTATE_OFF?f.maximize.maximize:f.maximize.minimize,c=CKEDITOR.document.getById(c._.id),c.getChild(1).setHtml(g),c.setAttribute("title",g),c.setAttribute("href",'javascript:void("'+g+'");');"wysiwyg"==a.mode?j?(CKEDITOR.env.gecko&&q(a),a.getSelection().selectRanges(j),(i=a.getSelection().getStartElement())&&i.scrollIntoView(!0)):
d.$.scrollTo(k.x,k.y):(j&&(i.selectionStart=j[0],i.selectionEnd=j[1]),i.scrollLeft=k[0],i.scrollTop=k[1]);j=k=null;l=this.state;a.fire("maximize",this.state)},canUndo:!1});a.ui.addButton&&a.ui.addButton("Maximize",{label:f.maximize.maximize,command:"maximize",toolbar:"tools,10"});a.on("mode",function(){var b=a.getCommand("maximize");b.setState(b.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:l)},null,null,100)}}})})();CKEDITOR.plugins.add("newpage",{init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage",command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}});CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",onLoad:function(){var a=["{","background: url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;","clear: both;width:100%; _width:99.9%;border-top: #999999 1px dotted;border-bottom: #999999 1px dotted;padding:0;height: 5px;cursor: default;}"].join("").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak"+a)},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&
a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak",toolbar:"insert,70"}),CKEDITOR.env.opera&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){var b=a.lang.pagebreak.alt,c=a.dataProcessor,a=c&&c.dataFilter;(c=c&&c.htmlFilter)&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak","");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;">&nbsp;</span>').children[0];
b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},5);a&&a.addRules({elements:{div:function(a){var c=a.attributes,e=c&&c.style,d=e&&1==a.children.length&&a.children[0];if((d=d&&"span"==d.name&&d.attributes.style)&&/page-break-after\s*:\s*always/i.test(e)&&/display\s*:\s*none/i.test(d))c.contenteditable="false",c["class"]="cke_pagebreak",c["data-cke-display-name"]="pagebreak",c["aria-label"]=b,c.title=b,a.children.length=0}}})}});
CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b=a.lang.pagebreak.alt,b=CKEDITOR.dom.element.createFromHtml('<div style="page-break-after: always;"contenteditable="false" title="'+b+'" aria-label="'+b+'" data-cke-display-name="pagebreak" class="cke_pagebreak"></div>',a.document);a.insertElement(b)},context:"div",allowedContent:{div:{styles:"!page-break-after"},span:{match:function(a){return(a=a.parent)&&"div"==a.name&&a.styles["page-break-after"]},styles:"display"}},requiredContent:"div{page-break-after}"};(function(){var c={canUndo:!1,async:!0,exec:function(a){a.getClipboardData({title:a.lang.pastetext.title},function(b){b&&a.fire("paste",{type:"text",dataValue:b.dataValue});a.fire("afterCommandExec",{name:"pastetext",command:c,returnValue:!!b})})}};CKEDITOR.plugins.add("pastetext",{requires:"clipboard",init:function(a){a.addCommand("pastetext",c);a.ui.addButton&&a.ui.addButton("PasteText",{label:a.lang.pastetext.button,command:"pastetext",toolbar:"clipboard,40"});if(a.config.forcePasteAsPlainText)a.on("beforePaste",
function(a){"html"!=a.data.type&&(a.data.type="text")});a.on("pasteState",function(b){a.getCommand("pastetext").setState(b.data)})}})})();(function(){function h(a,d,f){var b=CKEDITOR.cleanWord;b?f():(a=CKEDITOR.getUrl(a.config.pasteFromWordCleanupFile||d+"filter/default.js"),CKEDITOR.scriptLoader.load(a,f,null,!0));return!b}function i(a){a.data.type="html"}CKEDITOR.plugins.add("pastefromword",{requires:"clipboard",init:function(a){var d=0,f=this.path;a.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a){var e=this;d=1;a.once("beforePaste",i);a.getClipboardData({title:a.lang.pastefromword.title},function(c){c&&a.fire("paste",
{type:"html",dataValue:c.dataValue});a.fire("afterCommandExec",{name:"pastefromword",command:e,returnValue:!!c})})}});a.ui.addButton&&a.ui.addButton("PasteFromWord",{label:a.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});a.on("pasteState",function(b){a.getCommand("pastefromword").setState(b.data)});a.on("paste",function(b){var e=b.data,c=e.dataValue;if(c&&(d||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(c))){var g=h(a,f,function(){if(g)a.fire("paste",e);
else if(!a.config.pasteFromWordPromptCleanup||d||confirm(a.lang.pastefromword.confirmCleanup))e.dataValue=CKEDITOR.cleanWord(c,a)});g&&b.cancel()}},null,null,3)}})})();(function(){var h,i={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var g,b=a.config,e=b.baseHref?'<base href="'+b.baseHref+'"/>':"";if(b.fullPage)g=a.getData().replace(/<head>/,"$&"+e).replace(/[^>]*(?=<\/title>)/,"$& &mdash; "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));g=a.config.docType+'<html dir="'+a.config.contentsLangDirection+
'"><head>'+e+"<title>"+a.lang.preview.preview+"</title>"+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+"</head>"+(b+">")+a.getData()+"</body></html>"}e=640;b=420;d=80;try{var c=window.screen,e=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(i){}if(!a.fire("contentPreview",a={dataValue:g}))return!1;c="";CKEDITOR.env.ie&&(window._cke_htmlToLoad=a.dataValue,c="javascript:void( (function(){document.open();"+("("+CKEDITOR.tools.fixDomain+")();").replace(/\/\/.*?\n/g,
"").replace(/parent\./g,"window.opener.")+"document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )");CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a.dataValue,c=h+"preview.html");c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+e+",height="+b+",left="+d);if(!CKEDITOR.env.ie&&!CKEDITOR.env.gecko){var f=c.document;f.open();f.write(a.dataValue);f.close();CKEDITOR.env.webkit&&setTimeout(function(){f.body.innerHTML=
f.body.innerHTML+""},0)}return!0}};CKEDITOR.plugins.add("preview",{init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(h=this.path,a.addCommand("preview",i),a.ui.addButton&&a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview",toolbar:"document,40"}))}})})();CKEDITOR.plugins.add("print",{init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}});CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.opera||(CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print"))},canUndo:!1,readOnly:1,modes:{wysiwyg:!CKEDITOR.env.opera}};CKEDITOR.plugins.add("removeformat",{init:function(a){a.addCommand("removeFormat",CKEDITOR.plugins.removeformat.commands.removeformat);a.ui.addButton&&a.ui.addButton("RemoveFormat",{label:a.lang.removeformat.toolbar,command:"removeFormat",toolbar:"cleanup,10"})}});
CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(a){for(var h=a._.removeFormatRegex||(a._.removeFormatRegex=RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),e=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,k=a.getSelection().getRanges(1),l=k.createIterator(),c;c=l.getNextRange();){c.collapsed||c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var i=c.createBookmark(),b=i.startNode,j=i.endNode,
d=function(b){for(var c=a.elementPath(b),e=c.elements,d=1,g;(g=e[d])&&!g.equals(c.block)&&!g.equals(c.blockLimit);d++)h.test(g.getName())&&f(a,g)&&b.breakParent(g)};d(b);if(j){d(j);for(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);b&&!b.equals(j);)d=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),!("img"==b.getName()&&b.data("cke-realelement"))&&f(a,b)&&(h.test(b.getName())?b.remove(1):(b.removeAttributes(e),a.fire("removeFormatCleanup",b))),b=d}c.moveToBookmark(i)}a.forceNextSelectionCheck();a.getSelection().selectRanges(k)}}},
filter:function(a,h){for(var e=a._.removeFormatFilters||[],f=0;f<e.length;f++)if(!1===e[f](h))return!1;return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)};CKEDITOR.config.removeFormatTags="b,big,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var";CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){var b={readOnly:1,exec:function(a){if(a.fire("save")&&(a=a.element.$.form))try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save",b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})();(function(){CKEDITOR.plugins.add("selectall",{init:function(b){b.addCommand("selectAll",{modes:{wysiwyg:1,source:1},exec:function(a){var b=a.editable();if(b.is("textarea"))a=b.$,CKEDITOR.env.ie?a.createTextRange().execCommand("SelectAll"):(a.selectionStart=0,a.selectionEnd=a.value.length),a.focus();else{if(b.is("body"))a.document.$.execCommand("SelectAll",!1,null);else{var c=a.createRange();c.selectNodeContents(b);c.select()}a.forceNextSelectionCheck();a.selectionChange()}},canUndo:!1});b.ui.addButton&&
b.ui.addButton("SelectAll",{label:b.lang.selectall.toolbar,command:"selectAll",toolbar:"selection,10"})}})})();(function(){var d={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[b]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{onLoad:function(){function a(a){return".%1.%2 p,.%1.%2 div,.%1.%2 pre,.%1.%2 address,.%1.%2 blockquote,.%1.%2 h1,.%1.%2 h2,.%1.%2 h3,.%1.%2 h4,.%1.%2 h5,.%1.%2 h6{background-position: top %3;padding-%3: 8px;}".replace(/%1/g,
"cke_show_blocks").replace(/%2/g,"cke_contents_"+a).replace(/%3/g,"rtl"==a?"right":"left")}CKEDITOR.addCss(".%2 p,.%2 div,.%2 pre,.%2 address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 h6{background-repeat: no-repeat;border: 1px dotted gray;padding-top: 8px;}.%2 p{%1p.png);}.%2 div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 blockquote{%1blockquote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 h6{%1h6.png);}".replace(/%1/g,
"background-image: url("+CKEDITOR.getUrl(this.path)+"images/block_").replace(/%2/g,"cke_show_blocks ")+a("ltr")+a("rtl"))},init:function(a){if(!a.blockless){var b=a.addCommand("showblocks",d);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});if(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE){var c=
function(){b.refresh(a)};a.on("focus",c);a.on("blur",c)}a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)})}}})})();(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,;.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,;.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,;.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
"cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(a){var b=a.addCommand("showborders",f);b.canUndo=!1;!1!==a.config.startupShowBorders&&b.setState(CKEDITOR.TRISTATE_ON);a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)},null,null,100);a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.on("removeFormatCleanup",function(d){d=d.data;a.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&(d.is("table")&&(!d.hasAttribute("border")||
0>=parseInt(d.getAttribute("border"),10)))&&d.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor,a=b&&b.dataFilter,b=b&&b.htmlFilter;a&&a.addRules({elements:{table:function(a){var a=a.attributes,b=a["class"],c=parseInt(a.border,10);if((!c||0>=c)&&(!b||-1==b.indexOf("cke_show_border")))a["class"]=(b||"")+" cke_show_border"}}});b&&b.addRules({elements:{table:function(a){var a=a.attributes,b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;if("table"==b||"tableProperties"==b)if(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var e=parseInt(this.getValue(),10);c[!e||0>=e?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,
arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(b,c){a.apply(this,arguments);parseInt(c.getAttribute("border"),10)||c.addClass("cke_show_border")}})})})();(function(){CKEDITOR.plugins.add("sourcearea",{init:function(a){function d(){this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+"px");this.show()}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var e=CKEDITOR.plugins.sourcearea;a.addMode("source",function(e){var b=a.ui.space("contents").getDocument().createElement("textarea");b.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",
outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",a.config.sourceAreaTabSize||4)));b.setAttribute("dir","ltr");b.addClass("cke_source cke_reset cke_enable_context_menu");a.ui.space("contents").append(b);b=a.editable(new c(a,b));b.setData(a.getData(1));CKEDITOR.env.ie&&(b.attachListener(a,"resize",d,b),b.attachListener(CKEDITOR.document.getWindow(),"resize",d,b),CKEDITOR.tools.setTimeout(d,0,b));a.fire("ariaWidget",this);e()});a.addCommand("source",e.commands.source);a.ui.addButton&&
a.ui.addButton("Source",{label:a.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});a.on("mode",function(){a.getCommand("source").setState("source"==a.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)})}}});var c=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a);this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":
"remove")+"Attribute"]("readOnly","readonly")},detach:function(){c.baseProto.detach.call(this);this.clearCustomData();this.remove()}}})})();CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};CKEDITOR.plugins.add("specialchar",{availableLangs:{ar:1,bg:1,ca:1,cs:1,cy:1,de:1,el:1,en:1,eo:1,es:1,et:1,fa:1,fi:1,fr:1,"fr-ca":1,gl:1,he:1,hr:1,hu:1,id:1,it:1,ja:1,ku:1,lv:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ru:1,si:1,sk:1,sl:1,sq:1,sv:1,th:1,tr:1,ug:1,uk:1,vi:1,"zh-cn":1},requires:"dialog",init:function(a){var c=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js");a.addCommand("specialchar",{exec:function(){var b=a.langCode,b=c.availableLangs[b]?b:c.availableLangs[b.replace(/-.*/,
"")]?b.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+b+".js"),function(){CKEDITOR.tools.extend(a.lang.specialchar,c.langEntries[b]);a.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1});a.ui.addButton&&a.ui.addButton("SpecialChar",{label:a.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}});CKEDITOR.config.specialChars="! &quot; # $ % &amp; ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? @ 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 { | } ~ &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; &Aacute; &Acirc; &Atilde; &Auml; &Aring; &AElig; &Ccedil; &Egrave; &Eacute; &Ecirc; &Euml; &Igrave; &Iacute; &Icirc; &Iuml; &ETH; &Ntilde; &Ograve; &Oacute; &Ocirc; &Otilde; &Ouml; &times; &Oslash; &Ugrave; &Uacute; &Ucirc; &Uuml; &Yacute; &THORN; &szlig; &agrave; &aacute; &acirc; &atilde; &auml; &aring; &aelig; &ccedil; &egrave; &eacute; &ecirc; &euml; &igrave; &iacute; &icirc; &iuml; &eth; &ntilde; &ograve; &oacute; &ocirc; &otilde; &ouml; &divide; &oslash; &ugrave; &uacute; &ucirc; &uuml; &yacute; &thorn; &yuml; &OElig; &oelig; &#372; &#374 &#373 &#375; &sbquo; &#8219; &bdquo; &hellip; &trade; &#9658; &bull; &rarr; &rArr; &hArr; &diams; &asymp;".split(" ");CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var d=function(a){var b=this._;if(b.state!==CKEDITOR.TRISTATE_DISABLED){b.previousState=b.state;var c=b.menu;c||(c=b.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),c.onHide=CKEDITOR.tools.bind(function(){this.setState(this.modes&&this.modes[a.mode]?b.previousState:CKEDITOR.TRISTATE_DISABLED)},this),this.onMenu&&c.addListener(this.onMenu));b.on?c.hide():(this.setState(CKEDITOR.TRISTATE_ON),
setTimeout(function(){c.show(CKEDITOR.document.getById(b.id),4)},0))}};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(a){delete a.panel;this.base(a);this.hasArrow=!0;this.click=d},statics:{handler:{create:function(a){return new CKEDITOR.ui.menuButton(a)}}}})},beforeInit:function(d){d.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}});CKEDITOR.UI_MENUBUTTON="menubutton";(function(){function k(a,c){var b=0,d;for(d in c)if(c[d]==a){b=1;break}return b}var i="",r=function(){function a(){b.once("focus",f);b.once("blur",c)}function c(b){var b=b.editor,c=d.getScayt(b),f=b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE;c&&(d.setPaused(b,!c.disabled),d.setControlId(b,c.id),c.destroy(!0),delete d.instances[b.name],f&&a())}var b=this,f=function(){if(!("undefined"!=typeof d.instances[b.name]||null!=d.instances[b.name])){var a=b.config,c={};c.srcNodeRef="BODY"==b.editable().$.nodeName?
b.document.getWindow().$.frameElement:b.editable().$;c.assocApp="CKEDITOR."+CKEDITOR.version+"@"+CKEDITOR.revision;c.customerid=a.scayt_customerid||"1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2";c.customDictionaryIds=a.scayt_customDictionaryIds||"";c.userDictionaryName=a.scayt_userDictionaryName||"";c.sLang=a.scayt_sLang||"en_US";c.onLoad=function(){CKEDITOR.env.ie&&8>CKEDITOR.env.version||this.addStyle(this.selectorCss(),"padding-bottom: 2px !important;");b.editable().hasFocus&&
!d.isControlRestored(b)&&this.focus()};c.onBeforeChange=function(){d.getScayt(b)&&!b.checkDirty()&&setTimeout(function(){b.resetDirty()},0)};a=window.scayt_custom_params;if("object"==typeof a)for(var f in a)c[f]=a[f];d.getControlId(b)&&(c.id=d.getControlId(b));var o=new window.scayt(c);o.afterMarkupRemove.push(function(a){(new CKEDITOR.dom.element(a,o.document)).mergeSiblings()});if(c=d.instances[b.name])o.sLang=c.sLang,o.option(c.option()),o.paused=c.paused;d.instances[b.name]=o;try{o.setDisabled(!1===
d.isPaused(b))}catch(e){}b.fire("showScaytState")}};b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a():b.on("contentDom",f);b.on("contentDomUnload",function(){for(var a=CKEDITOR.document.getElementsByTag("script"),b=/^dojoIoScript(\d+)$/i,c=/^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i,d=0;d<a.count();d++){var f=a.getItem(d),e=f.getId(),h=f.getAttribute("src");e&&(h&&e.match(b)&&h.match(c))&&f.remove()}});b.on("beforeCommandExec",function(a){"source"==a.data.name&&"source"==
b.mode&&d.markControlRestore(b)});b.on("afterCommandExec",function(a){d.isScaytEnabled(b)&&"wysiwyg"==b.mode&&("undo"==a.data.name||"redo"==a.data.name)&&window.setTimeout(function(){d.getScayt(b).refresh()},10)});b.on("destroy",c);b.on("setData",c);b.on("insertElement",function(){var a=d.getScayt(b);d.isScaytEnabled(b)&&(CKEDITOR.env.ie&&b.getSelection().unlock(!0),window.setTimeout(function(){a.focus();a.refresh()},10))},this,null,50);b.on("insertHtml",function(){var a=d.getScayt(b);d.isScaytEnabled(b)&&
(CKEDITOR.env.ie&&b.getSelection().unlock(!0),window.setTimeout(function(){a.focus();a.refresh()},10))},this,null,50);b.on("scaytDialog",function(a){a.data.djConfig=window.djConfig;a.data.scayt_control=d.getScayt(b);a.data.tab=i;a.data.scayt=window.scayt});var e=b.dataProcessor;(e=e&&e.htmlFilter)&&e.addRules({elements:{span:function(a){if(a.attributes["data-scayt_word"]&&a.attributes["data-scaytid"])return delete a.name,a}}});e=CKEDITOR.plugins.undo.Image.prototype;e.equalsContent=CKEDITOR.tools.override(e.equalsContent,
function(a){return function(b){var c=this.contents,f=b.contents,e=d.getScayt(this.editor);e&&d.isScaytReady(this.editor)&&(this.contents=e.reset(c)||"",b.contents=e.reset(f)||"");e=a.apply(this,arguments);this.contents=c;b.contents=f;return e}});b.document&&(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||b.focusManager.hasFocus)&&f()};CKEDITOR.plugins.scayt={engineLoaded:!1,instances:{},controlInfo:{},setControlInfo:function(a,c){a&&(a.name&&"object"!=typeof this.controlInfo[a.name])&&(this.controlInfo[a.name]=
{});for(var b in c)this.controlInfo[a.name][b]=c[b]},isControlRestored:function(a){return a&&a.name&&this.controlInfo[a.name]?this.controlInfo[a.name].restored:!1},markControlRestore:function(a){this.setControlInfo(a,{restored:!0})},setControlId:function(a,c){this.setControlInfo(a,{id:c})},getControlId:function(a){return a&&a.name&&this.controlInfo[a.name]&&this.controlInfo[a.name].id?this.controlInfo[a.name].id:null},setPaused:function(a,c){this.setControlInfo(a,{paused:c})},isPaused:function(a){if(a&&
a.name&&this.controlInfo[a.name])return this.controlInfo[a.name].paused},getScayt:function(a){return this.instances[a.name]},isScaytReady:function(a){return!0===this.engineLoaded&&"undefined"!==typeof window.scayt&&this.getScayt(a)},isScaytEnabled:function(a){return(a=this.getScayt(a))?!1===a.disabled:!1},getUiTabs:function(a){var c=[],b=a.config.scayt_uiTabs||"1,1,1",b=b.split(",");b[3]="1";for(var d=0;4>d;d++)c[d]="undefined"!=typeof window.scayt&&"undefined"!=typeof window.scayt.uiTags?parseInt(b[d],
10)&&window.scayt.uiTags[d]:parseInt(b[d],10);"object"==typeof a.plugins.wsc?c.push(1):c.push(0);return c},loadEngine:function(a){if(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version||CKEDITOR.env.opera||CKEDITOR.env.air)return a.fire("showScaytState");if(!0===this.engineLoaded)return r.apply(a);if(-1==this.engineLoaded)return CKEDITOR.on("scaytReady",function(){r.apply(a)});CKEDITOR.on("scaytReady",r,a);CKEDITOR.on("scaytReady",function(){this.engineLoaded=!0},this,null,0);this.engineLoaded=-1;var c=
document.location.protocol,c=-1!=c.search(/https?:/)?c:"http:",c=a.config.scayt_srcUrl||c+"//svc.webspellchecker.net/scayt26/loader__base.js",b=d.parseUrl(c).path+"/";void 0==window.scayt?(CKEDITOR._djScaytConfig={baseUrl:b,addOnLoad:[function(){CKEDITOR.fireOnce("scaytReady")}],isDebug:!1},CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script",{attributes:{type:"text/javascript",async:"true",src:c}}))):CKEDITOR.fireOnce("scaytReady");return null},parseUrl:function(a){var c;return a.match&&
(c=a.match(/(.*)[\/\\](.*?\.\w+)$/))?{path:c[1],file:c[2]}:a}};var d=CKEDITOR.plugins.scayt,s=function(a,c,b,d,e,k,g){a.addCommand(d,e);a.addMenuItem(d,{label:b,command:d,group:k,order:g})},v={preserveState:!0,editorFocus:!1,canUndo:!1,exec:function(a){if(d.isScaytReady(a)){var c=d.isScaytEnabled(a);this.setState(c?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_ON);a=d.getScayt(a);a.focus();a.setDisabled(c)}else!a.config.scayt_autoStartup&&0<=d.engineLoaded&&(a.focus(),this.setState(CKEDITOR.TRISTATE_DISABLED),
d.loadEngine(a))}};CKEDITOR.plugins.add("scayt",{requires:"menubutton,dialog",beforeInit:function(a){var c=a.config.scayt_contextMenuItemsOrder||"suggest|moresuggest|control",b="";if((c=c.split("|"))&&c.length)for(var d=0;d<c.length;d++)b+="scayt_"+c[d]+(c.length!=parseInt(d,10)+1?",":"");a.config.menu_groups=b+","+a.config.menu_groups},checkEnvironment:function(){return CKEDITOR.env.opera||CKEDITOR.env.air?0:1},init:function(a){var c=a.dataProcessor&&a.dataProcessor.dataFilter,b={elements:{span:function(a){var b=
a.attributes;b&&b["data-scaytid"]&&delete a.name}}};c&&c.addRules(b);var f={},e={},p=a.addCommand("scaytcheck",v);CKEDITOR.dialog.add("scaytcheck",CKEDITOR.getUrl(this.path+"dialogs/options.js"));c=d.getUiTabs(a);a.addMenuGroup("scaytButton");a.addMenuGroup("scayt_suggest",-10);a.addMenuGroup("scayt_moresuggest",-9);a.addMenuGroup("scayt_control",-8);var b={},g=a.lang.scayt;b.scaytToggle={label:g.enable,command:"scaytcheck",group:"scaytButton"};1==c[0]&&(b.scaytOptions={label:g.options,group:"scaytButton",
onClick:function(){i="options";a.openDialog("scaytcheck")}});1==c[1]&&(b.scaytLangs={label:g.langs,group:"scaytButton",onClick:function(){i="langs";a.openDialog("scaytcheck")}});1==c[2]&&(b.scaytDict={label:g.dictionariesTab,group:"scaytButton",onClick:function(){i="dictionaries";a.openDialog("scaytcheck")}});b.scaytAbout={label:a.lang.scayt.about,group:"scaytButton",onClick:function(){i="about";a.openDialog("scaytcheck")}};1==c[4]&&(b.scaytWSC={label:a.lang.wsc.toolbar,group:"scaytButton",command:"checkspell"});
a.addMenuItems(b);a.ui.add("Scayt",CKEDITOR.UI_MENUBUTTON,{label:g.title,title:CKEDITOR.env.opera?g.opera_title:g.title,modes:{wysiwyg:this.checkEnvironment()},toolbar:"spellchecker,20",onRender:function(){p.on("state",function(){this.setState(p.state)},this)},onMenu:function(){var b=d.isScaytEnabled(a);a.getMenuItem("scaytToggle").label=g[b?"disable":"enable"];var c=d.getUiTabs(a);return{scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:b&&c[0]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:b&&
c[1]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytDict:b&&c[2]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:b&&c[3]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytWSC:c[4]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}});a.contextMenu&&a.addMenuItems&&a.contextMenu.addListener(function(b,c){if(!d.isScaytEnabled(a)||c.getRanges()[0].checkReadOnly())return null;var l=d.getScayt(a),q=l.getScaytNode();if(!q)return null;var h=l.getWord(q);if(!h)return null;var i=l.getLang(),
m=a.config.scayt_contextCommands||"all",h=window.scayt.getSuggestion(h,i),m=m.split("|"),n;for(n in f){delete a._.menuItems[n];delete a.commands[n]}for(n in e){delete a._.menuItems[n];delete a.commands[n]}if(!h||!h.length){s(a,"no_sugg",g.noSuggestions,"scayt_no_sugg",{exec:function(){}},"scayt_control",1,true);e.scayt_no_sugg=CKEDITOR.TRISTATE_OFF}else{f={};e={};n=a.config.scayt_moreSuggestions||"on";var i=false,u=a.config.scayt_maxSuggestions;typeof u!="number"&&(u=5);!u&&(u=h.length);for(var j=
0,p=h.length;j<p;j=j+1){var t="scayt_suggestion_"+h[j].replace(" ","_"),r=function(a,b){return{exec:function(){l.replace(a,b)}}}(q,h[j]);if(j<u){s(a,"button_"+t,h[j],t,r,"scayt_suggest",j+1);e[t]=CKEDITOR.TRISTATE_OFF}else if(n=="on"){s(a,"button_"+t,h[j],t,r,"scayt_moresuggest",j+1);f[t]=CKEDITOR.TRISTATE_OFF;i=true}}if(i){a.addMenuItem("scayt_moresuggest",{label:g.moreSuggestions,group:"scayt_moresuggest",order:10,getItems:function(){return f}});e.scayt_moresuggest=CKEDITOR.TRISTATE_OFF}}if(k("all",
m)||k("ignore",m)){s(a,"ignore",g.ignore,"scayt_ignore",{exec:function(){l.ignore(q)}},"scayt_control",2);e.scayt_ignore=CKEDITOR.TRISTATE_OFF}if(k("all",m)||k("ignoreall",m)){s(a,"ignore_all",g.ignoreAll,"scayt_ignore_all",{exec:function(){l.ignoreAll(q)}},"scayt_control",3);e.scayt_ignore_all=CKEDITOR.TRISTATE_OFF}if(k("all",m)||k("add",m)){s(a,"add_word",g.addWord,"scayt_add_word",{exec:function(){window.scayt.addWordToUserDictionary(q)}},"scayt_control",4);e.scayt_add_word=CKEDITOR.TRISTATE_OFF}l.fireOnContextMenu&&
l.fireOnContextMenu(a);return e});c=function(b){b.removeListener();CKEDITOR.env.opera||CKEDITOR.env.air?p.setState(CKEDITOR.TRISTATE_DISABLED):p.setState(d.isScaytEnabled(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)};a.on("showScaytState",c);a.on("instanceReady",c);if(a.config.scayt_autoStartup)a.on("instanceReady",function(){d.loadEngine(a)})},afterInit:function(a){var c,b=function(a){if(a.hasAttribute("data-scaytid"))return!1};a._.elementsPath&&(c=a._.elementsPath.filters)&&c.push(b);a.addRemoveFormatFilter&&
a.addRemoveFormatFilter(b)}})})();(function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(c){var j=c.config,f=c.lang.stylescombo,g={},i=[],k=[];c.on("stylesSet",function(b){if(b=b.data.styles){for(var a,h,d=0,e=b.length;d<e;d++)if(a=b[d],!(c.blockless&&a.element in CKEDITOR.dtd.$block)&&(h=a.name,a=new CKEDITOR.style(a),!c.filter.customConfig||c.filter.check(a)))a._name=h,a._.enterMode=j.enterMode,a._.weight=d+1E3*(a.type==CKEDITOR.STYLE_OBJECT?1:a.type==CKEDITOR.STYLE_BLOCK?2:3),g[h]=a,i.push(a),k.push(a);
i.sort(function(a,b){return a._.weight-b._.weight})}});c.ui.addRichCombo("Styles",{label:f.label,title:f.panelTitle,toolbar:"styles,10",allowedContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(j.contentsCss),multiSelect:!0,attributes:{"aria-label":f.panelTitle}},init:function(){var b,a,c,d,e,g;e=0;for(g=i.length;e<g;e++)b=i[e],a=b._name,d=b.type,d!=c&&(this.startGroup(f["panelTitle"+d]),c=d),this.add(a,b.type==CKEDITOR.STYLE_OBJECT?a:b.buildPreview(),a);this.commit()},onClick:function(b){c.focus();
c.fire("saveSnapshot");var b=g[b],a=c.elementPath();c[b.checkActive(a)?"removeStyle":"applyStyle"](b);c.fire("saveSnapshot")},onRender:function(){c.on("selectionChange",function(b){for(var a=this.getValue(),b=b.data.path.elements,c=0,d=b.length,e;c<d;c++){e=b[c];for(var f in g)if(g[f].checkElementRemovable(e,!0)){f!=a&&this.setValue(f);return}}this.setValue("")},this)},onOpen:function(){var b=c.getSelection().getSelectedElement(),b=c.elementPath(b),a=[0,0,0,0];this.showAll();this.unmarkAll();for(var h in g){var d=
g[h],e=d.type;e==CKEDITOR.STYLE_BLOCK&&!b.isContextFor(d.element)?this.hideItem(h):(d.checkActive(b)?this.mark(h):e==CKEDITOR.STYLE_OBJECT&&!d.checkApplicable(b)&&(this.hideItem(h),a[e]--),a[e]++)}a[CKEDITOR.STYLE_BLOCK]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_BLOCK]);a[CKEDITOR.STYLE_INLINE]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_INLINE]);a[CKEDITOR.STYLE_OBJECT]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_OBJECT])},reset:function(){g={};i=[]}})}})})();(function(){function i(c){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(d){if(d.editable().hasFocus){var e=d.getSelection(),b;if(b=(new CKEDITOR.dom.elementPath(e.getCommonAncestor(),e.root)).contains({td:1,th:1},1)){var e=d.createRange(),a=CKEDITOR.tools.tryThese(function(){var a=b.getParent().$.cells[b.$.cellIndex+(c?-1:1)];a.parentNode.parentNode;return a},function(){var a=b.getParent(),a=a.getAscendant("table").$.rows[a.$.rowIndex+(c?-1:1)];return a.cells[c?a.cells.length-1:
0]});if(!a&&!c){for(var f=b.getAscendant("table").$,a=b.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),d.document),g=0,h=a.length;g<h;g++){var i=f.append((new CKEDITOR.dom.element(a[g],d.document)).clone(!1,!1));!CKEDITOR.env.ie&&i.appendBogus()}e.moveToElementEditStart(f)}else if(a)a=new CKEDITOR.dom.element(a),e.moveToElementEditStart(a),(!e.checkStartOfBlock()||!e.checkEndOfBlock())&&e.selectNodeContents(a);else return!0;e.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,
source:1}},g={exec:function(c){c.container.focusNext(!0,c.tabIndex)}},f={exec:function(c){c.container.focusPrevious(!0,c.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(c){for(var d=!1!==c.config.enableTabKeyTools,e=c.config.tabSpaces||0,b="";e--;)b+=" ";if(b)c.on("key",function(a){9==a.data.keyCode&&(c.insertHtml(b),a.cancel())});if(d)c.on("key",function(a){(9==a.data.keyCode&&c.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&c.execCommand("selectPreviousCell"))&&a.cancel()});
c.addCommand("blur",CKEDITOR.tools.extend(g,h));c.addCommand("blurBack",CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",i());c.addCommand("selectPreviousCell",i(!0))}})})();
CKEDITOR.dom.element.prototype.focusNext=function(i,h){var g=void 0===h?this.getTabIndex():h,f,c,d,e,b,a;if(0>=g)for(b=this.getNextSourceNode(i,CKEDITOR.NODE_ELEMENT);b;){if(b.isVisible()&&0===b.getTabIndex()){d=b;break}b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(b=this.getDocument().getBody().getFirst();b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&b.equals(this)){if(c=!0,i){if(!(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(b)&&
(f=1);if(b.isVisible()&&!(0>(a=b.getTabIndex()))){if(f&&a==g){d=b;break}a>g&&(!d||!e||a<e)?(d=b,e=a):!d&&0===a&&(d=b,e=a)}}d&&d.focus()};
CKEDITOR.dom.element.prototype.focusPrevious=function(i,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,i){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}if(b<g&&(!d||b>e))d=a,e=b}}d&&d.focus()};CKEDITOR.plugins.add("table",{requires:"dialog",init:function(a){function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,e){this.setState(e.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var b=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];"+(a.plugins.dialogadvtab?
"table"+a.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"]]}));a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",d()));a.addCommand("tableDelete",d({exec:function(a){var c=a.elementPath().contains("table",1);if(c){var b=c.getParent();1==b.getChildCount()&&!b.is("body","td","th")&&(c=b);a=a.createRange();a.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);c.remove();a.select()}}}));
a.ui.addButton&&a.ui.addButton("Table",{label:b.toolbar,command:"table",toolbar:"insert,30"});CKEDITOR.dialog.add("table",this.path+"dialogs/table.js");CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js");a.addMenuItems&&a.addMenuItems({table:{label:b.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:b.deleteTable,command:"tableDelete",group:"table",order:1}});a.on("doubleclick",function(a){a.data.element.is("table")&&(a.data.dialog="tableProperties")});a.contextMenu&&
a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}});(function(){function p(e){function d(a){!(0<b.length)&&(a.type==CKEDITOR.NODE_ELEMENT&&y.test(a.getName())&&!a.getCustomData("selected_cell"))&&(CKEDITOR.dom.element.setMarker(c,a,"selected_cell",!0),b.push(a))}for(var e=e.getRanges(),b=[],c={},a=0;a<e.length;a++){var f=e[a];if(f.collapsed)f=f.getCommonAncestor(),(f=f.getAscendant("td",!0)||f.getAscendant("th",!0))&&b.push(f);else{var f=new CKEDITOR.dom.walker(f),g;for(f.guard=d;g=f.next();)if(g.type!=CKEDITOR.NODE_ELEMENT||!g.is(CKEDITOR.dtd.table))if((g=
g.getAscendant("td",!0)||g.getAscendant("th",!0))&&!g.getCustomData("selected_cell"))CKEDITOR.dom.element.setMarker(c,g,"selected_cell",!0),b.push(g)}}CKEDITOR.dom.element.clearAllMarkers(c);return b}function o(e,d){for(var b=p(e),c=b[0],a=c.getAscendant("table"),c=c.getDocument(),f=b[0].getParent(),g=f.$.rowIndex,b=b[b.length-1],h=b.getParent().$.rowIndex+b.$.rowSpan-1,b=new CKEDITOR.dom.element(a.$.rows[h]),g=d?g:h,f=d?f:b,b=CKEDITOR.tools.buildTableMap(a),a=b[g],g=d?b[g-1]:b[g+1],b=b[0].length,
c=c.createElement("tr"),h=0;a[h]&&h<b;h++){var i;1<a[h].rowSpan&&g&&a[h]==g[h]?(i=a[h],i.rowSpan+=1):(i=(new CKEDITOR.dom.element(a[h])).clone(),i.removeAttribute("rowSpan"),!CKEDITOR.env.ie&&i.appendBogus(),c.append(i),i=i.$);h+=i.colSpan-1}d?c.insertBefore(f):c.insertAfter(f)}function q(e){if(e instanceof CKEDITOR.dom.selection){for(var d=p(e),b=d[0].getAscendant("table"),c=CKEDITOR.tools.buildTableMap(b),e=d[0].getParent().$.rowIndex,d=d[d.length-1],a=d.getParent().$.rowIndex+d.$.rowSpan-1,d=[],
f=e;f<=a;f++){for(var g=c[f],h=new CKEDITOR.dom.element(b.$.rows[f]),i=0;i<g.length;i++){var j=new CKEDITOR.dom.element(g[i]),l=j.getParent().$.rowIndex;1==j.$.rowSpan?j.remove():(j.$.rowSpan-=1,l==f&&(l=c[f+1],l[i-1]?j.insertAfter(new CKEDITOR.dom.element(l[i-1])):(new CKEDITOR.dom.element(b.$.rows[f+1])).append(j,1)));i+=j.$.colSpan-1}d.push(h)}c=b.$.rows;b=new CKEDITOR.dom.element(c[a+1]||(0<e?c[e-1]:null)||b.$.parentNode);for(f=d.length;0<=f;f--)q(d[f]);return b}e instanceof CKEDITOR.dom.element&&
(b=e.getAscendant("table"),1==b.$.rows.length?b.remove():e.remove());return null}function r(e,d){for(var b=d?Infinity:0,c=0;c<e.length;c++){var a;a=e[c];for(var f=d,g=a.getParent().$.cells,h=0,i=0;i<g.length;i++){var j=g[i],h=h+(f?1:j.colSpan);if(j==a.$)break}a=h-1;if(d?a<b:a>b)b=a}return b}function k(e,d){for(var b=p(e),c=b[0].getAscendant("table"),a=r(b,1),b=r(b),a=d?a:b,f=CKEDITOR.tools.buildTableMap(c),c=[],b=[],g=f.length,h=0;h<g;h++)c.push(f[h][a]),b.push(d?f[h][a-1]:f[h][a+1]);for(h=0;h<g;h++)c[h]&&
(1<c[h].colSpan&&b[h]==c[h]?(a=c[h],a.colSpan+=1):(a=(new CKEDITOR.dom.element(c[h])).clone(),a.removeAttribute("colSpan"),!CKEDITOR.env.ie&&a.appendBogus(),a[d?"insertBefore":"insertAfter"].call(a,new CKEDITOR.dom.element(c[h])),a=a.$),h+=a.rowSpan-1)}function u(e,d){var b=e.getStartElement();if(b=b.getAscendant("td",1)||b.getAscendant("th",1)){var c=b.clone();CKEDITOR.env.ie||c.appendBogus();d?c.insertBefore(b):c.insertAfter(b)}}function t(e){if(e instanceof CKEDITOR.dom.selection){var e=p(e),d=
e[0]&&e[0].getAscendant("table"),b;a:{var c=0;b=e.length-1;for(var a={},f,g;f=e[c++];)CKEDITOR.dom.element.setMarker(a,f,"delete_cell",!0);for(c=0;f=e[c++];)if((g=f.getPrevious())&&!g.getCustomData("delete_cell")||(g=f.getNext())&&!g.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(a);b=g;break a}CKEDITOR.dom.element.clearAllMarkers(a);g=e[0].getParent();(g=g.getPrevious())?b=g.getLast():(g=e[b].getParent(),b=(g=g.getNext())?g.getChild(0):null)}for(g=e.length-1;0<=g;g--)t(e[g]);
b?m(b,!0):d&&d.remove()}else e instanceof CKEDITOR.dom.element&&(d=e.getParent(),1==d.getChildCount()?d.remove():e.remove())}function m(e,d){var b=new CKEDITOR.dom.range(e.getDocument());if(!b["moveToElementEdit"+(d?"End":"Start")](e))b.selectNodeContents(e),b.collapse(d?!1:!0);b.select(!0)}function v(e,d,b){e=e[d];if("undefined"==typeof b)return e;for(d=0;e&&d<e.length;d++){if(b.is&&e[d]==b.$)return d;if(d==b)return new CKEDITOR.dom.element(e[d])}return b.is?-1:null}function s(e,d,b){var c=p(e),
a;if((d?1!=c.length:2>c.length)||(a=e.getCommonAncestor())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))return!1;var f,e=c[0];a=e.getAscendant("table");var g=CKEDITOR.tools.buildTableMap(a),h=g.length,i=g[0].length,j=e.getParent().$.rowIndex,l=v(g,j,e);if(d){var n;try{var m=parseInt(e.getAttribute("rowspan"),10)||1;f=parseInt(e.getAttribute("colspan"),10)||1;n=g["up"==d?j-m:"down"==d?j+m:j]["left"==d?l-f:"right"==d?l+f:l]}catch(z){return!1}if(!n||e.$==n)return!1;c["up"==d||"left"==d?"unshift":"push"](new CKEDITOR.dom.element(n))}for(var d=
e.getDocument(),o=j,m=n=0,q=!b&&new CKEDITOR.dom.documentFragment(d),s=0,d=0;d<c.length;d++){f=c[d];var k=f.getParent(),t=f.getFirst(),r=f.$.colSpan,u=f.$.rowSpan,k=k.$.rowIndex,w=v(g,k,f),s=s+r*u,m=Math.max(m,w-l+r);n=Math.max(n,k-j+u);if(!b){r=f;(u=r.getBogus())&&u.remove();r.trim();if(f.getChildren().count()){if(k!=o&&t&&(!t.isBlockBoundary||!t.isBlockBoundary({br:1})))(o=q.getLast(CKEDITOR.dom.walker.whitespaces(!0)))&&(!o.is||!o.is("br"))&&q.append("br");f.moveChildren(q)}d?f.remove():f.setHtml("")}o=
k}if(b)return n*m==s;q.moveChildren(e);CKEDITOR.env.ie||e.appendBogus();m>=i?e.removeAttribute("rowSpan"):e.$.rowSpan=n;n>=h?e.removeAttribute("colSpan"):e.$.colSpan=m;b=new CKEDITOR.dom.nodeList(a.$.rows);c=b.count();for(d=c-1;0<=d;d--)a=b.getItem(d),a.$.cells.length||(a.remove(),c++);return e}function w(e,d){var b=p(e);if(1<b.length)return!1;if(d)return!0;var b=b[0],c=b.getParent(),a=c.getAscendant("table"),f=CKEDITOR.tools.buildTableMap(a),g=c.$.rowIndex,h=v(f,g,b),i=b.$.rowSpan,j;if(1<i){j=Math.ceil(i/
2);for(var i=Math.floor(i/2),c=g+j,a=new CKEDITOR.dom.element(a.$.rows[c]),f=v(f,c),l,c=b.clone(),g=0;g<f.length;g++)if(l=f[g],l.parentNode==a.$&&g>h){c.insertBefore(new CKEDITOR.dom.element(l));break}else l=null;l||a.append(c,!0)}else{i=j=1;a=c.clone();a.insertAfter(c);a.append(c=b.clone());l=v(f,g);for(h=0;h<l.length;h++)l[h].rowSpan++}CKEDITOR.env.ie||c.appendBogus();b.$.rowSpan=j;c.$.rowSpan=i;1==j&&b.removeAttribute("rowSpan");1==i&&c.removeAttribute("rowSpan");return c}function x(e,d){var b=
p(e);if(1<b.length)return!1;if(d)return!0;var b=b[0],c=b.getParent(),a=c.getAscendant("table"),a=CKEDITOR.tools.buildTableMap(a),f=v(a,c.$.rowIndex,b),g=b.$.colSpan;if(1<g)c=Math.ceil(g/2),g=Math.floor(g/2);else{for(var g=c=1,h=[],i=0;i<a.length;i++){var j=a[i];h.push(j[f]);1<j[f].rowSpan&&(i+=j[f].rowSpan-1)}for(a=0;a<h.length;a++)h[a].colSpan++}a=b.clone();a.insertAfter(b);CKEDITOR.env.ie||a.appendBogus();b.$.colSpan=c;a.$.colSpan=g;1==c&&b.removeAttribute("colSpan");1==g&&a.removeAttribute("colSpan");
return a}var y=/^(?:td|th)$/;CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(e){function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function b(a,b){var c=e.addCommand(a,b);e.addFeature(c)}var c=e.lang.table;b("cellProperties",new CKEDITOR.dialogCommand("cellProperties",d({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",
requiredContent:"table"})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");b("rowDelete",d({requiredContent:"table",exec:function(a){a=a.getSelection();m(q(a))}}));b("rowInsertBefore",d({requiredContent:"table",exec:function(a){a=a.getSelection();o(a,!0)}}));b("rowInsertAfter",d({requiredContent:"table",exec:function(a){a=a.getSelection();o(a)}}));b("columnDelete",d({requiredContent:"table",exec:function(a){for(var a=a.getSelection(),a=p(a),b=a[0],c=a[a.length-1],a=b.getAscendant("table"),
d=CKEDITOR.tools.buildTableMap(a),e,j,l=[],n=0,o=d.length;n<o;n++)for(var k=0,q=d[n].length;k<q;k++)d[n][k]==b.$&&(e=k),d[n][k]==c.$&&(j=k);for(n=e;n<=j;n++)for(k=0;k<d.length;k++)c=d[k],b=new CKEDITOR.dom.element(a.$.rows[k]),c=new CKEDITOR.dom.element(c[n]),c.$&&(1==c.$.colSpan?c.remove():c.$.colSpan-=1,k+=c.$.rowSpan-1,b.$.cells.length||l.push(b));j=a.$.rows[0]&&a.$.rows[0].cells;e=new CKEDITOR.dom.element(j[e]||(e?j[e-1]:a.$.parentNode));l.length==o&&a.remove();e&&m(e,!0)}}));b("columnInsertBefore",
d({requiredContent:"table",exec:function(a){a=a.getSelection();k(a,!0)}}));b("columnInsertAfter",d({requiredContent:"table",exec:function(a){a=a.getSelection();k(a)}}));b("cellDelete",d({requiredContent:"table",exec:function(a){a=a.getSelection();t(a)}}));b("cellMerge",d({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a){m(s(a.getSelection()),!0)}}));b("cellMergeRight",d({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){m(s(a.getSelection(),
"right"),!0)}}));b("cellMergeDown",d({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){m(s(a.getSelection(),"down"),!0)}}));b("cellVerticalSplit",d({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){m(w(a.getSelection()))}}));b("cellHorizontalSplit",d({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){m(x(a.getSelection()))}}));b("cellInsertBefore",d({requiredContent:"table",exec:function(a){a=a.getSelection();u(a,!0)}}));
b("cellInsertAfter",d({requiredContent:"table",exec:function(a){a=a.getSelection();u(a)}}));e.addMenuItems&&e.addMenuItems({tablecell:{label:c.cell.menu,group:"tablecell",order:1,getItems:function(){var a=e.getSelection(),b=p(a);return{tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:s(a,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:s(a,"right",!0)?CKEDITOR.TRISTATE_OFF:
CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:s(a,"down",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_vertical:w(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_horizontal:x(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_properties:0<b.length?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}},tablecell_insertBefore:{label:c.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:c.cell.insertAfter,
group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:c.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:c.cell.merge,group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:c.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:c.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:c.cell.splitHorizontal,group:"tablecell",
command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:c.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:c.cell.title,group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:c.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:c.row.insertBefore,
group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:c.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:c.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:c.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:c.column.insertBefore,
group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:c.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:c.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}});e.contextMenu&&e.contextMenu.addListener(function(a,b,c){return(a=c.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getSelectedCells:p};
CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})();CKEDITOR.tools.buildTableMap=function(p){for(var p=p.$.rows,o=-1,q=[],r=0;r<p.length;r++){o++;!q[o]&&(q[o]=[]);for(var k=-1,u=0;u<p[r].cells.length;u++){var t=p[r].cells[u];for(k++;q[o][k];)k++;for(var m=isNaN(t.colSpan)?1:t.colSpan,t=isNaN(t.rowSpan)?1:t.rowSpan,v=0;v<t;v++){q[o+v]||(q[o+v]=[]);for(var s=0;s<m;s++)q[o+v][k+s]=p[r].cells[u]}k+=m-1}}return q};(function(){function g(a){this.editor=a;this.reset()}CKEDITOR.plugins.add("undo",{init:function(a){function c(a){b.enabled&&!1!==a.data.command.canUndo&&b.save()}function d(){b.enabled=a.readOnly?!1:"wysiwyg"==a.mode;b.onChange()}var b=new g(a),e=a.addCommand("undo",{exec:function(){b.undo()&&(a.selectionChange(),this.fire("afterUndo"))},state:CKEDITOR.TRISTATE_DISABLED,canUndo:!1}),f=a.addCommand("redo",{exec:function(){b.redo()&&(a.selectionChange(),this.fire("afterRedo"))},state:CKEDITOR.TRISTATE_DISABLED,
canUndo:!1});a.setKeystroke([[CKEDITOR.CTRL+90,"undo"],[CKEDITOR.CTRL+89,"redo"],[CKEDITOR.CTRL+CKEDITOR.SHIFT+90,"redo"]]);b.onChange=function(){e.setState(b.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);f.setState(b.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",c);a.on("afterCommandExec",c);a.on("saveSnapshot",function(a){b.save(a.data&&a.data.contentOnly)});a.on("contentDom",function(){a.editable().on("keydown",function(a){a=a.data.getKey();
(8==a||46==a)&&b.type(a,0)});a.editable().on("keypress",function(a){b.type(a.data.getKey(),1)})});a.on("beforeModeUnload",function(){"wysiwyg"==a.mode&&b.save(!0)});a.on("mode",d);a.on("readOnly",d);a.ui.addButton&&(a.ui.addButton("Undo",{label:a.lang.undo.undo,command:"undo",toolbar:"undo,10"}),a.ui.addButton("Redo",{label:a.lang.undo.redo,command:"redo",toolbar:"undo,20"}));a.resetUndo=function(){b.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){b.currentImage&&b.update()});a.on("lockSnapshot",
b.lock,b);a.on("unlockSnapshot",b.unlock,b)}});CKEDITOR.plugins.undo={};var f=CKEDITOR.plugins.undo.Image=function(a){this.editor=a;a.fire("beforeUndoImage");var c=a.getSnapshot(),d=c&&a.getSelection();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,""));this.contents=c;this.bookmarks=d&&d.createBookmarks2(!0);a.fire("afterUndoImage")},h=/\b(?:href|src|name)="[^"]*?"/gi;f.prototype={equalsContent:function(a){var c=this.contents,a=a.contents;if(CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||
CKEDITOR.env.ie6Compat))c=c.replace(h,""),a=a.replace(h,"");return c!=a?!1:!0},equalsSelection:function(a){var c=this.bookmarks,a=a.bookmarks;if(c||a){if(!c||!a||c.length!=a.length)return!1;for(var d=0;d<c.length;d++){var b=c[d],e=a[d];if(b.startOffset!=e.startOffset||b.endOffset!=e.endOffset||!CKEDITOR.tools.arrayCompare(b.start,e.start)||!CKEDITOR.tools.arrayCompare(b.end,e.end))return!1}}return!0}};g.prototype={type:function(a,c){var d=!c&&a!=this.lastKeystroke,b=this.editor;if(!this.typing||c&&
!this.wasCharacter||d){var e=new f(b),g=this.snapshots.length;CKEDITOR.tools.setTimeout(function(){var a=b.getSnapshot();CKEDITOR.env.ie&&(a=a.replace(/\s+data-cke-expando=".*?"/g,""));e.contents!=a&&g==this.snapshots.length&&(this.typing=!0,this.save(!1,e,!1)||this.snapshots.splice(this.index+1,this.snapshots.length-this.index-1),this.hasUndo=!0,this.hasRedo=!1,this.modifiersCount=this.typesCount=1,this.onChange())},0,this)}this.lastKeystroke=a;(this.wasCharacter=c)?(this.modifiersCount=0,this.typesCount++,
25<this.typesCount?(this.save(!1,null,!1),this.typesCount=1):setTimeout(function(){b.fire("change")},0)):(this.typesCount=0,this.modifiersCount++,25<this.modifiersCount?(this.save(!1,null,!1),this.modifiersCount=1):setTimeout(function(){b.fire("change")},0))},reset:function(){this.lastKeystroke=0;this.snapshots=[];this.index=-1;this.limit=this.editor.config.undoStackSize||20;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.typing=!1;
delete this.lastKeystroke;this.modifiersCount=this.typesCount=0},fireChange:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,c,d){if(this.locked)return!1;var b=this.snapshots;c||(c=new f(this.editor));if(!1===c.contents)return!1;if(this.currentImage)if(c.equalsContent(this.currentImage)){if(a||c.equalsSelection(this.currentImage))return!1}else this.editor.fire("change");b.splice(this.index+1,b.length-this.index-
1);b.length==this.limit&&b.shift();this.index=b.push(c)-1;this.currentImage=c;!1!==d&&this.fireChange();return!0},restoreImage:function(a){var c=this.editor,d;a.bookmarks&&(c.focus(),d=c.getSelection());this.locked=1;this.editor.loadSnapshot(a.contents);a.bookmarks?d.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(d=this.editor.document.getBody().$.createTextRange(),d.collapse(!0),d.select());this.locked=0;this.index=a.index;this.update();this.fireChange();c.fire("change")},getNextImage:function(a){var c=
this.snapshots,d=this.currentImage,b;if(d)if(a)for(b=this.index-1;0<=b;b--){if(a=c[b],!d.equalsContent(a))return a.index=b,a}else for(b=this.index+1;b<c.length;b++)if(a=c[b],!d.equalsContent(a))return a.index=b,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),
this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(){this.locked||this.snapshots.splice(this.index,1,this.currentImage=new f(this.editor))},lock:function(){if(this.locked)this.locked.level++;else{var a=new f(this.editor);this.locked={update:this.currentImage&&this.currentImage.equalsContent(a)?a:null,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;this.locked=null;a&&!a.equalsContent(new f(this.editor))&&
this.update()}}}})();CKEDITOR.plugins.add("wsc",{requires:"dialog",parseConfig:function(a){a.config.wsc_onFinish="function"===typeof a.config.wsc_onFinish?a.config.wsc_onFinish:function(){};a.config.wsc_onClose="function"===typeof a.config.wsc_onClose?a.config.wsc_onClose:function(){};CKEDITOR.config.wsc_stack.push(a)},init:function(a){a.addCommand("checkspell",new CKEDITOR.dialogCommand("checkspell")).modes={wysiwyg:!CKEDITOR.env.opera&&!CKEDITOR.env.air&&document.domain==window.location.hostname};"undefined"==typeof a.plugins.scayt&&
a.ui.addButton&&a.ui.addButton("SpellChecker",{label:a.lang.wsc.toolbar,command:"checkspell",toolbar:"spellchecker,10"});CKEDITOR.dialog.add("checkspell",this.path+(CKEDITOR.env.ie&&8>=CKEDITOR.env.version?"dialogs/wsc_ie.js":window.postMessage?"dialogs/wsc.js":"dialogs/wsc_ie.js"))},beforeInit:function(a){this.parseConfig(a)}});CKEDITOR.config.wsc_stack=[];CKEDITOR.config.wsc_customerId=CKEDITOR.config.wsc_customerId||"1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk";
CKEDITOR.config.wsc_customDictionaryIds=CKEDITOR.config.wsc_customDictionaryIds||"";CKEDITOR.config.wsc_userDictionaryName=CKEDITOR.config.wsc_userDictionaryName||"";CKEDITOR.config.wsc_cmd=CKEDITOR.config.wsc_cmd||"spell";CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,colordialog,templates,menu,contextmenu,div,resize,toolbar,elementspath,enterkey,entities,popup,filebrowser,find,fakeobjects,flash,floatingspace,listblock,richcombo,font,forms,format,htmlwriter,horizontalrule,iframe,wysiwygarea,image,indent,indentblock,indentlist,smiley,justify,link,list,liststyle,magicline,maximize,newpage,pagebreak,pastetext,pastefromword,preview,print,removeformat,save,selectall,showblocks,showborders,sourcearea,specialchar,menubutton,scayt,stylescombo,tab,table,tabletools,undo,wsc';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('about,0,,bold,24,,italic,48,,strike,72,,subscript,96,,superscript,120,,underline,144,,bidiltr,168,,bidirtl,192,,blockquote,216,,copy-rtl,240,,copy,264,,cut-rtl,288,,cut,312,,paste-rtl,336,,paste,360,,bgcolor,384,,textcolor,408,,templates-rtl,432,,templates,456,,creatediv,480,,find-rtl,504,,find,528,,replace,552,,flash,576,,button,600,,checkbox,624,,form,648,,hiddenfield,672,,imagebutton,696,,radio,720,,select-rtl,744,,select,768,,textarea-rtl,792,,textarea,816,,textfield-rtl,840,,textfield,864,,horizontalrule,888,,iframe,912,,image,936,,indent-rtl,960,,indent,984,,outdent-rtl,1008,,outdent,1032,,smiley,1056,,justifyblock,1080,,justifycenter,1104,,justifyleft,1128,,justifyright,1152,,anchor-rtl,1176,,anchor,1200,,link,1224,,unlink,1248,,bulletedlist-rtl,1272,,bulletedlist,1296,,numberedlist-rtl,1320,,numberedlist,1344,,maximize,1368,,newpage-rtl,1392,,newpage,1416,,pagebreak-rtl,1440,,pagebreak,1464,,pastetext-rtl,1488,,pastetext,1512,,pastefromword-rtl,1536,,pastefromword,1560,,preview-rtl,1584,,preview,1608,,print,1632,,removeformat,1656,,save,1680,,selectall,1704,,showblocks-rtl,1728,,showblocks,1752,,source-rtl,1776,,source,1800,,specialchar,1824,,scayt,1848,,table,1872,,redo-rtl,1896,,redo,1920,,undo-rtl,1944,,undo,1968,,spellchecker,1992,','icons_hidpi.png');else setIcons('about,0,auto,bold,24,auto,italic,48,auto,strike,72,auto,subscript,96,auto,superscript,120,auto,underline,144,auto,bidiltr,168,auto,bidirtl,192,auto,blockquote,216,auto,copy-rtl,240,auto,copy,264,auto,cut-rtl,288,auto,cut,312,auto,paste-rtl,336,auto,paste,360,auto,bgcolor,384,auto,textcolor,408,auto,templates-rtl,432,auto,templates,456,auto,creatediv,480,auto,find-rtl,504,auto,find,528,auto,replace,552,auto,flash,576,auto,button,600,auto,checkbox,624,auto,form,648,auto,hiddenfield,672,auto,imagebutton,696,auto,radio,720,auto,select-rtl,744,auto,select,768,auto,textarea-rtl,792,auto,textarea,816,auto,textfield-rtl,840,auto,textfield,864,auto,horizontalrule,888,auto,iframe,912,auto,image,936,auto,indent-rtl,960,auto,indent,984,auto,outdent-rtl,1008,auto,outdent,1032,auto,smiley,1056,auto,justifyblock,1080,auto,justifycenter,1104,auto,justifyleft,1128,auto,justifyright,1152,auto,anchor-rtl,1176,auto,anchor,1200,auto,link,1224,auto,unlink,1248,auto,bulletedlist-rtl,1272,auto,bulletedlist,1296,auto,numberedlist-rtl,1320,auto,numberedlist,1344,auto,maximize,1368,auto,newpage-rtl,1392,auto,newpage,1416,auto,pagebreak-rtl,1440,auto,pagebreak,1464,auto,pastetext-rtl,1488,auto,pastetext,1512,auto,pastefromword-rtl,1536,auto,pastefromword,1560,auto,preview-rtl,1584,auto,preview,1608,auto,print,1632,auto,removeformat,1656,auto,save,1680,auto,selectall,1704,auto,showblocks-rtl,1728,auto,showblocks,1752,auto,source-rtl,1776,auto,source,1800,auto,specialchar,1824,auto,scayt,1848,auto,table,1872,auto,redo-rtl,1896,auto,redo,1920,auto,undo-rtl,1944,auto,undo,1968,auto,spellchecker,1992,auto','icons.png');})();CKEDITOR.lang.languages={"af":1,"sq":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"id":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"si":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
// Compressed version of core/ckeditor_base.js. See original for instructions.
/*jsl:ignore*/
window.CKEDITOR||(window.CKEDITOR=function(){var l=Math.floor(900*Math.random())+100,b=window.CKEDITOR_BASEPATH||"";if(!b)for(var g=document.getElementsByTagName("script"),e=0;e<g.length;e++){var h=g[e].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(h){b=h[1];break}}-1==b.indexOf(":/")&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+b:location.href.match(/^[^\?]*\/(?:)/)[0]+b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';var c=function(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",c,!1),j()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",c),j())}catch(a){}},j=function(){for(var a;a=f.shift();)a()},f=[],d={timestamp:"",version:"%VERSION%",revision:"%REV%",rnd:l,_:{pending:[]},status:"unloaded",basePath:b,getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(a){f.push(a);"complete"===document.readyState&&setTimeout(c,1);if(1==f.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",c);window.attachEvent("onload",c);a=!1;try{a=!window.frameElement}catch(b){}if(document.documentElement.doScroll&&a){var d=function(){try{document.documentElement.doScroll("left")}catch(a){setTimeout(d,1);return}c()};d()}}}},k=window.CKEDITOR_GETURL;if(k){var m=d.getUrl;d.getUrl=function(a){return k.call(d,a)||m.call(d,a)}}return d}());
/*jsl:end*/
if ( CKEDITOR.loader )
CKEDITOR.loader.load( 'ckeditor' );
else {
// Set the script name to be loaded by the loader.
CKEDITOR._autoLoad = 'ckeditor';
// Include the loader script.
if ( document.body && ( !document.readyState || document.readyState == 'complete' ) ) {
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = CKEDITOR.getUrl( 'core/loader.js' );
document.body.appendChild( script );
} else {
document.write( '<script type="text/javascript" src="' + CKEDITOR.getUrl( 'core/loader.js' ) + '"></script>' );
}
}
/**
* The skin to load for all created instances, it may be the name of the skin
* folder inside the editor installation path, or the name and the path separated
* by a comma.
*
* **Note:** This is a global configuration that applies to all instances.
*
* CKEDITOR.skinName = 'moono';
*
* CKEDITOR.skinName = 'myskin,/customstuff/myskin/';
*
* @cfg {String} [skinName='moono']
* @member CKEDITOR
*/
CKEDITOR.skinName = 'moono';

View File

@ -0,0 +1,71 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'fr';
// config.uiColor = '#AADC6E';
// %REMOVE_START%
config.plugins =
'about,' +
'a11yhelp,' +
'basicstyles,' +
'bidi,' +
'blockquote,' +
'clipboard,' +
'colorbutton,' +
'colordialog,' +
'contextmenu,' +
'dialogadvtab,' +
'div,' +
'elementspath,' +
'enterkey,' +
'entities,' +
'filebrowser,'+
'find,' +
'flash,' +
'floatingspace,' +
'font,' +
'format,' +
'forms,' +
'horizontalrule,' +
'htmlwriter,' +
'image,' +
'iframe,' +
'indentlist,' +
'indentblock,' +
'justify,' +
'link,' +
'list,' +
'liststyle,' +
'magicline,' +
'maximize,' +
'newpage,' +
'pagebreak,' +
'pastefromword,' +
'pastetext,' +
'preview,' +
'print,' +
'removeformat,' +
'resize,' +
'save,' +
'selectall,' +
'showblocks,' +
'showborders,' +
'smiley,' +
'sourcearea,' +
'specialchar,' +
'stylescombo,' +
'tab,' +
'table,' +
'tabletools,' +
'templates,' +
'toolbar,' +
'undo,' +
'wysiwygarea';
// %REMOVE_END%
};
// %LEAVE_UNMINIFIED% %REMOVE_LINE%

View File

@ -0,0 +1,103 @@
/*
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
body
{
/* Font */
font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
font-size: 12px;
/* Text color */
color: #333;
/* Remove the background color to make it transparent */
background-color: #fff;
margin: 20px;
}
.cke_editable
{
font-size: 13px;
line-height: 1.6em;
}
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;
}
a
{
color: #0782C1;
}
ol,ul,dl
{
/* IE7: reset rtl list margin. (#7334) */
*margin-right: 0px;
/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
padding: 0 40px;
}
h1,h2,h3,h4,h5,h6
{
font-weight: normal;
line-height: 1.2em;
}
hr
{
border: 0px;
border-top: 1px solid #ccc;
}
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;
}
img:hover {
opacity: .9;
filter: alpha(opacity = 90);
}
pre
{
white-space: pre-wrap; /* CSS 2.1 */
word-wrap: break-word; /* IE7 */
}
.marker {
background-color: Yellow;
}

View File

@ -0,0 +1,69 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview API initialization code.
*/
(function() {
// Disable HC detection in WebKit. (#5429)
if ( CKEDITOR.env.webkit )
CKEDITOR.env.hc = false;
else {
// Check whether high contrast is active by creating a colored border.
var hcDetect = CKEDITOR.dom.element.createFromHtml( '<div style="width:0px;height:0px;position:absolute;left:-10000px;' +
'border: 1px solid;border-color: red blue;"></div>', CKEDITOR.document );
hcDetect.appendTo( CKEDITOR.document.getHead() );
// Update CKEDITOR.env.
// Catch exception needed sometimes for FF. (#4230)
try {
CKEDITOR.env.hc = hcDetect.getComputedStyle( 'border-top-color' ) == hcDetect.getComputedStyle( 'border-right-color' );
} catch ( e ) {
CKEDITOR.env.hc = false;
}
hcDetect.remove();
}
if ( CKEDITOR.env.hc )
CKEDITOR.env.cssClass += ' cke_hc';
// Initially hide UI spaces when relevant skins are loading, later restored by skin css.
CKEDITOR.document.appendStyleText( '.cke{visibility:hidden;}' );
// Mark the editor as fully loaded.
CKEDITOR.status = 'loaded';
CKEDITOR.fireOnce( 'loaded' );
// Process all instances created by the "basic" implementation.
var pending = CKEDITOR._.pending;
if ( pending ) {
delete CKEDITOR._.pending;
for ( var i = 0; i < pending.length; i++ ) {
CKEDITOR.editor.prototype.constructor.apply( pending[ i ][ 0 ], pending[ i ][ 1 ] );
CKEDITOR.add( pending[ i ][ 0 ] );
}
}
})();
/**
* Indicates that CKEditor is running on a High Contrast environment.
*
* if ( CKEDITOR.env.hc )
* alert( 'You\'re running on High Contrast mode. The editor interface will get adapted to provide you a better experience.' );
*
* @property {Boolean} hc
* @member CKEDITOR.env
*/
/**
* Fired when a CKEDITOR core object is fully loaded and ready for interaction.
*
* @event loaded
* @member CKEDITOR
*/

View File

@ -0,0 +1,204 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Contains the third and last part of the {@link CKEDITOR} object
* definition.
*/
/** @class CKEDITOR */
// Remove the CKEDITOR.loadFullCore reference defined on ckeditor_basic.
delete CKEDITOR.loadFullCore;
/**
* Stores references to all editor instances created. The name of the properties
* in this object correspond to instance names, and their values contain the
* {@link CKEDITOR.editor} object representing them.
*
* alert( CKEDITOR.instances.editor1.name ); // 'editor1'
*
* @property {Object}
*/
CKEDITOR.instances = {};
/**
* The document of the window storing the CKEDITOR object.
*
* alert( CKEDITOR.document.getBody().getName() ); // 'body'
*
* @property {CKEDITOR.dom.document}
*/
CKEDITOR.document = new CKEDITOR.dom.document( document );
/**
* Adds an editor instance to the global {@link CKEDITOR} object. This function
* is available for internal use mainly.
*
* @param {CKEDITOR.editor} editor The editor instance to be added.
*/
CKEDITOR.add = function( editor ) {
CKEDITOR.instances[ editor.name ] = editor;
editor.on( 'focus', function() {
if ( CKEDITOR.currentInstance != editor ) {
CKEDITOR.currentInstance = editor;
CKEDITOR.fire( 'currentInstance' );
}
});
editor.on( 'blur', function() {
if ( CKEDITOR.currentInstance == editor ) {
CKEDITOR.currentInstance = null;
CKEDITOR.fire( 'currentInstance' );
}
});
CKEDITOR.fire( 'instance', null, editor );
};
/**
* Removes an editor instance from the global {@link CKEDITOR} object. This function
* is available for internal use only. External code must use {@link CKEDITOR.editor#method-destroy}.
*
* @private
* @param {CKEDITOR.editor} editor The editor instance to be removed.
*/
CKEDITOR.remove = function( editor ) {
delete CKEDITOR.instances[ editor.name ];
};
(function() {
var tpls = {};
/**
* Adds a named {@link CKEDITOR.template} instance to be reused among all editors.
* This will return the existing one if a template with same name is already
* defined. Additionally, it fires the "template" event to allow template source customization.
*
* @param {String} name The name which identifies a UI template.
* @param {String} source The source string for constructing this template.
* @returns {CKEDITOR.template} The created template instance.
*/
CKEDITOR.addTemplate = function( name, source ) {
var tpl = tpls[ name ];
if ( tpl )
return tpl;
// Make it possible to customize the template through event.
var params = { name: name, source: source };
CKEDITOR.fire( 'template', params );
return ( tpls[ name ] = new CKEDITOR.template( params.source ) );
};
/**
* Retrieves a defined template created with {@link CKEDITOR#addTemplate}.
*
* @param {String} name The template name.
*/
CKEDITOR.getTemplate = function( name ) {
return tpls[ name ];
};
})();
(function() {
var styles = [];
/**
* Adds CSS rules to be appended to the editor document.
* This method is mostly used by plugins to add custom styles to the editor
* document. For basic content styling the `contents.css` file should be
* used instead.
*
* **Note:** This function should be called before the creation of editor instances.
*
* // Add styles for all headings inside editable contents.
* CKEDITOR.addCss( '.cke_editable h1,.cke_editable h2,.cke_editable h3 { border-bottom: 1px dotted red }' );
*
* @param {String} css The style rules to be appended.
* @see CKEDITOR.config#contentsCss
*/
CKEDITOR.addCss = function( css ) {
styles.push( css );
};
/**
* Returns a string will all CSS rules passed to the {@link CKEDITOR#addCss} method.
*
* @returns {String} A string containing CSS rules.
*/
CKEDITOR.getCss = function() {
return styles.join( '\n' );
};
})();
// Perform global clean up to free as much memory as possible
// when there are no instances left
CKEDITOR.on( 'instanceDestroyed', function() {
if ( CKEDITOR.tools.isEmpty( this.instances ) )
CKEDITOR.fire( 'reset' );
});
// Load the bootstrap script.
CKEDITOR.loader.load( '_bootstrap' ); // %REMOVE_LINE%
// Tri-state constants.
/**
* Used to indicate the ON or ACTIVE state.
*
* @readonly
* @property {Number} [=1]
*/
CKEDITOR.TRISTATE_ON = 1;
/**
* Used to indicate the OFF or INACTIVE state.
*
* @readonly
* @property {Number} [=2]
*/
CKEDITOR.TRISTATE_OFF = 2;
/**
* Used to indicate the DISABLED state.
*
* @readonly
* @property {Number} [=0]
*/
CKEDITOR.TRISTATE_DISABLED = 0;
/**
* The editor which is currently active (has user focus).
*
* function showCurrentEditorName() {
* if ( CKEDITOR.currentInstance )
* alert( CKEDITOR.currentInstance.name );
* else
* alert( 'Please focus an editor first.' );
* }
*
* @property {CKEDITOR.editor} currentInstance
* @see CKEDITOR#event-currentInstance
*/
/**
* Fired when the CKEDITOR.currentInstance object reference changes. This may
* happen when setting the focus on different editor instances in the page.
*
* var editor; // A variable to store a reference to the current editor.
* CKEDITOR.on( 'currentInstance', function() {
* editor = CKEDITOR.currentInstance;
* } );
*
* @event currentInstance
*/
/**
* Fired when the last instance has been destroyed. This event is used to perform
* global memory cleanup.
*
* @event reset
*/

View File

@ -0,0 +1,317 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Contains the first and essential part of the {@link CKEDITOR}
* object definition.
*/
// #### Compressed Code
// Must be updated on changes in the script as well as updated in the
// ckeditor_source.js and ckeditor_basic_source.js files.
// window.CKEDITOR||(window.CKEDITOR=function(){var l=Math.floor(900*Math.random())+100,b=window.CKEDITOR_BASEPATH||"";if(!b)for(var g=document.getElementsByTagName("script"),e=0;e<g.length;e++){var h=g[e].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(h){b=h[1];break}}-1==b.indexOf(":/")&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+b:location.href.match(/^[^\?]*\/(?:)/)[0]+b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';var c=function(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",c,!1),j()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",c),j())}catch(a){}},j=function(){for(var a;a=f.shift();)a()},f=[],d={timestamp:"",version:"%VERSION%",revision:"%REV%",rnd:l,_:{pending:[]},status:"unloaded",basePath:b,getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(a){f.push(a);"complete"===document.readyState&&setTimeout(c,1);if(1==f.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",c,!1),window.addEventListener("load",c,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",c);window.attachEvent("onload",c);a=!1;try{a=!window.frameElement}catch(b){}if(document.documentElement.doScroll&&a){var d=function(){try{document.documentElement.doScroll("left")}catch(a){setTimeout(d,1);return}c()};d()}}}},k=window.CKEDITOR_GETURL;if(k){var m=d.getUrl;d.getUrl=function(a){return k.call(d,a)||m.call(d,a)}}return d}());
// The Closure Compiler online service should be used when updating this manually:
// http://closure-compiler.appspot.com/
// #### Raw code
// ATTENTION: read the above "Compressed Code" notes when changing this code.
if ( !window.CKEDITOR ) {
/**
* This is the API entry point. The entire CKEditor code runs under this object.
* @class CKEDITOR
* @singleton
*/
window.CKEDITOR = (function() {
var CKEDITOR = {
/**
* A constant string unique for each release of CKEditor. Its value
* is used, by default, to build the URL for all resources loaded
* by the editor code, guaranteeing clean cache results when
* upgrading.
*
* alert( CKEDITOR.timestamp ); // e.g. '87dm'
*/
timestamp: '', // %REMOVE_LINE%
/* // %REMOVE_LINE%
// The production implementation contains a fixed timestamp, unique
// for each release and generated by the releaser.
// (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
timestamp: '%TIMESTAMP%',
*/ // %REMOVE_LINE%
/**
* Contains the CKEditor version number.
*
* alert( CKEDITOR.version ); // e.g. 'CKEditor 3.4.1'
*/
version: '%VERSION%',
/**
* Contains the CKEditor revision number.
* The revision number is incremented automatically, following each
* modification to the CKEditor source code.
*
* alert( CKEDITOR.revision ); // e.g. '3975'
*/
revision: '%REV%',
/**
* A 3-digit random integer, valid for the entire life of the CKEDITOR object.
*
* alert( CKEDITOR.rnd ); // e.g. 319
*
* @property {Number}
*/
rnd: Math.floor( Math.random() * ( 999 /*Max*/ - 100 /*Min*/ + 1 ) ) + 100 /*Min*/,
/**
* Private object used to hold core stuff. It should not be used outside of
* the API code as properties defined here may change at any time
* without notice.
*
* @private
*/
_: {
pending: []
},
/**
* Indicates the API loading status. The following statuses are available:
*
* * **unloaded**: the API is not yet loaded.
* * **basic_loaded**: the basic API features are available.
* * **basic_ready**: the basic API is ready to load the full core code.
* * **loaded**: the API can be fully used.
*
* Example:
*
* if ( CKEDITOR.status == 'loaded' ) {
* // The API can now be fully used.
* doSomething();
* } else {
* // Wait for the full core to be loaded and fire its loading.
* CKEDITOR.on( 'load', doSomething );
* CKEDITOR.loadFullCore && CKEDITOR.loadFullCore();
* }
*/
status: 'unloaded',
/**
* The full URL for the CKEditor installation directory.
* It is possible to manually provide the base path by setting a
* global variable named `CKEDITOR_BASEPATH`. This global variable
* must be set **before** the editor script loading.
*
* alert( CKEDITOR.basePath ); // e.g. 'http://www.example.com/ckeditor/'
*
* @property {String}
*/
basePath: (function() {
// ATTENTION: fixes to this code must be ported to
// var basePath in "core/loader.js".
// Find out the editor directory path, based on its <script> tag.
var path = window.CKEDITOR_BASEPATH || '';
if ( !path ) {
var scripts = document.getElementsByTagName( 'script' );
for ( var i = 0; i < scripts.length; i++ ) {
var match = scripts[ i ].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i );
if ( match ) {
path = match[ 1 ];
break;
}
}
}
// In IE (only) the script.src string is the raw value entered in the
// HTML source. Other browsers return the full resolved URL instead.
if ( path.indexOf( ':/' ) == -1 ) {
// Absolute path.
if ( path.indexOf( '/' ) === 0 )
path = location.href.match( /^.*?:\/\/[^\/]*/ )[ 0 ] + path;
// Relative path.
else
path = location.href.match( /^[^\?]*\/(?:)/ )[ 0 ] + path;
}
if ( !path )
throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';
return path;
})(),
/**
* Gets the full URL for CKEditor resources. By default, URLs
* returned by this function contain a querystring parameter ("t")
* set to the {@link CKEDITOR#timestamp} value.
*
* It is possible to provide a custom implementation of this
* function by setting a global variable named `CKEDITOR_GETURL`.
* This global variable must be set **before** the editor script
* loading. If the custom implementation returns nothing (`==null`), the
* default implementation is used.
*
* // e.g. 'http://www.example.com/ckeditor/skins/default/editor.css?t=87dm'
* alert( CKEDITOR.getUrl( 'skins/default/editor.css' ) );
*
* // e.g. 'http://www.example.com/skins/default/editor.css?t=87dm'
* alert( CKEDITOR.getUrl( '/skins/default/editor.css' ) );
*
* // e.g. 'http://www.somesite.com/skins/default/editor.css?t=87dm'
* alert( CKEDITOR.getUrl( 'http://www.somesite.com/skins/default/editor.css' ) );
*
* @param {String} resource The resource whose full URL we want to get.
* It may be a full, absolute, or relative URL.
* @returns {String} The full URL.
*/
getUrl: function( resource ) {
// If this is not a full or absolute path.
if ( resource.indexOf( ':/' ) == -1 && resource.indexOf( '/' ) !== 0 )
resource = this.basePath + resource;
// Add the timestamp, except for directories.
if ( this.timestamp && resource.charAt( resource.length - 1 ) != '/' && !( /[&?]t=/ ).test( resource ) )
resource += ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) + 't=' + this.timestamp;
return resource;
},
/**
* Specify a function to execute when the DOM is fully loaded.
*
* If called after the DOM has been initialized, the function passed in will
* be executed immediately.
*
* @method
* @todo
*/
domReady: (function() {
// Based on the original jQuery code.
var callbacks = [];
function onReady() {
try {
// Cleanup functions for the document ready method
if ( document.addEventListener ) {
document.removeEventListener( 'DOMContentLoaded', onReady, false );
executeCallbacks();
}
// Make sure body exists, at least, in case IE gets a little overzealous.
else if ( document.attachEvent && document.readyState === 'complete' ) {
document.detachEvent( 'onreadystatechange', onReady );
executeCallbacks();
}
} catch ( er ) {}
}
function executeCallbacks() {
var i;
while ( ( i = callbacks.shift() ) )
i();
}
return function( fn ) {
callbacks.push( fn );
// Catch cases where this is called after the
// browser event has already occurred.
if ( document.readyState === 'complete' )
// Handle it asynchronously to allow scripts the opportunity to delay ready
setTimeout( onReady, 1 );
// Run below once on demand only.
if ( callbacks.length != 1 )
return;
// For IE>8, Firefox, Opera and Webkit.
if ( document.addEventListener ) {
// Use the handy event callback
document.addEventListener( 'DOMContentLoaded', onReady, false );
// A fallback to window.onload, that will always work
window.addEventListener( 'load', onReady, false );
}
// If old IE event model is used
else if ( document.attachEvent ) {
// ensure firing before onload,
// maybe late but safe also for iframes
document.attachEvent( 'onreadystatechange', onReady );
// A fallback to window.onload, that will always work
window.attachEvent( 'onload', onReady );
// If IE and not a frame
// continually check to see if the document is ready
// use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
var toplevel = false;
try {
toplevel = !window.frameElement;
} catch ( e ) {}
if ( document.documentElement.doScroll && toplevel ) {
function scrollCheck() {
try {
document.documentElement.doScroll( 'left' );
} catch ( e ) {
setTimeout( scrollCheck, 1 );
return;
}
onReady();
}
scrollCheck();
}
}
};
})()
};
// Make it possible to override the "url" function with a custom
// implementation pointing to a global named CKEDITOR_GETURL.
var newGetUrl = window.CKEDITOR_GETURL;
if ( newGetUrl ) {
var originalGetUrl = CKEDITOR.getUrl;
CKEDITOR.getUrl = function( resource ) {
return newGetUrl.call( CKEDITOR, resource ) || originalGetUrl.call( CKEDITOR, resource );
};
}
return CKEDITOR;
})();
}
/**
* Function called upon loading a custom configuration file that can
* modify the editor instance configuration ({@link CKEDITOR.editor#config}).
* It is usually defined inside the custom configuration files that can
* include developer defined settings.
*
* // This is supposed to be placed in the config.js file.
* CKEDITOR.editorConfig = function( config ) {
* // Define changes to default configuration here. For example:
* config.language = 'fr';
* config.uiColor = '#AADC6E';
* };
*
* @method editorConfig
* @param {CKEDITOR.config} config A configuration object containing the
* settings defined for a {@link CKEDITOR.editor} instance up to this
* function call. Note that not all settings may still be available. See
* [Configuration Loading Order](http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Setting_Configurations#Configuration_Loading_Order)
* for details.
*/
// PACKAGER_RENAME( CKEDITOR )

View File

@ -0,0 +1,94 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Contains the second part of the {@link CKEDITOR} object
* definition, which defines the basic editor features to be available in
* the root ckeditor_basic.js file.
*/
if ( CKEDITOR.status == 'unloaded' ) {
(function() {
CKEDITOR.event.implementOn( CKEDITOR );
/**
* Forces the full CKEditor core code, in the case only the basic code has been
* loaded (`ckeditor_basic.js`). This method self-destroys (becomes undefined) in
* the first call or as soon as the full code is available.
*
* // Check if the full core code has been loaded and load it.
* if ( CKEDITOR.loadFullCore )
* CKEDITOR.loadFullCore();
*
* @member CKEDITOR
*/
CKEDITOR.loadFullCore = function() {
// If the basic code is not ready, just mark it to be loaded.
if ( CKEDITOR.status != 'basic_ready' ) {
CKEDITOR.loadFullCore._load = 1;
return;
}
// Destroy this function.
delete CKEDITOR.loadFullCore;
// Append the script to the head.
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = CKEDITOR.basePath + 'ckeditor.js';
script.src = CKEDITOR.basePath + 'ckeditor_source.js'; // %REMOVE_LINE%
document.getElementsByTagName( 'head' )[ 0 ].appendChild( script );
};
/**
* The time to wait (in seconds) to load the full editor code after the
* page load, if the "ckeditor_basic" file is used. If set to zero, the
* editor is loaded on demand, as soon as an instance is created.
*
* This value must be set on the page before the page load completion.
*
* // Loads the full source after five seconds.
* CKEDITOR.loadFullCoreTimeout = 5;
*
* @property
* @member CKEDITOR
*/
CKEDITOR.loadFullCoreTimeout = 0;
// Documented at ckeditor.js.
CKEDITOR.add = function( editor ) {
// For now, just put the editor in the pending list. It will be
// processed as soon as the full code gets loaded.
var pending = this._.pending || ( this._.pending = [] );
pending.push( editor );
};
(function() {
var onload = function() {
var loadFullCore = CKEDITOR.loadFullCore,
loadFullCoreTimeout = CKEDITOR.loadFullCoreTimeout;
if ( !loadFullCore )
return;
CKEDITOR.status = 'basic_ready';
if ( loadFullCore && loadFullCore._load )
loadFullCore();
else if ( loadFullCoreTimeout ) {
setTimeout( function() {
if ( CKEDITOR.loadFullCore )
CKEDITOR.loadFullCore();
}, loadFullCoreTimeout * 1000 );
}
};
CKEDITOR.domReady( onload );
})();
CKEDITOR.status = 'basic_loaded';
})();
}

View File

@ -0,0 +1,271 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Represents a command that can be executed on an editor instance.
*
* var command = new CKEDITOR.command( editor, {
* exec: function( editor ) {
* alert( editor.document.getBody().getHtml() );
* }
* } );
*
* @class
* @mixins CKEDITOR.event
* @constructor Creates a command class instance.
* @param {CKEDITOR.editor} editor The editor instance this command will be
* related to.
* @param {CKEDITOR.commandDefinition} commandDefinition The command
* definition.
*/
CKEDITOR.command = function( editor, commandDefinition ) {
/**
* Lists UI items that are associated to this command. This list can be
* used to interact with the UI on command execution (by the execution code
* itself, for example).
*
* alert( 'Number of UI items associated to this command: ' + command.uiItems.length );
*/
this.uiItems = [];
/**
* Executes the command.
*
* command.exec(); // The command gets executed.
*
* @param {Object} [data] Any data to pass to the command. Depends on the
* command implementation and requirements.
* @returns {Boolean} A boolean indicating that the command has been successfully executed.
*/
this.exec = function( data ) {
if ( this.state == CKEDITOR.TRISTATE_DISABLED || !this.checkAllowed() )
return false;
if ( this.editorFocus ) // Give editor focus if necessary (#4355).
editor.focus();
if ( this.fire( 'exec' ) === false )
return true;
return ( commandDefinition.exec.call( this, editor, data ) !== false );
};
/**
* Explicitly update the status of the command, by firing the {@link CKEDITOR.command#event-refresh} event,
* as well as invoke the {@link CKEDITOR.commandDefinition#refresh} method if defined, this method
* is to allow different parts of the editor code to contribute in command status resolution.
*
* @param {CKEDITOR.editor} editor The editor instance.
* @param {CKEDITOR.dom.elementPath} path
*/
this.refresh = function( editor, path ) {
// Do nothing is we're on read-only and this command doesn't support it.
// We don't need to disabled the command explicitely here, because this
// is already done by the "readOnly" event listener.
if ( !this.readOnly && editor.readOnly )
return true;
// Disable commands that are not allowed in the current selection path context.
if ( this.context && !path.isContextFor( this.context ) ) {
this.disable();
return true;
}
// Disable commands that are not allowed by the active filter.
if ( !this.checkAllowed( true ) ) {
this.disable();
return true;
}
// Make the "enabled" state a default for commands enabled from start.
if ( !this.startDisabled )
this.enable();
// Disable commands which shouldn't be enabled in this mode.
if ( this.modes && !this.modes[ editor.mode ] )
this.disable();
if ( this.fire( 'refresh', { editor: editor, path: path } ) === false )
return true;
return ( commandDefinition.refresh && commandDefinition.refresh.apply( this, arguments ) !== false );
};
var allowed;
/**
* Checks whether this command is allowed by the active allowed
* content filter ({@link CKEDITOR.editor#activeFilter}). This means
* that if command implements {@link CKEDITOR.feature} interface it will be tested
* by the {@link CKEDITOR.filter#checkFeature} method.
*
* @since 4.1
* @param {Boolean} [noCache] Skip cache for example due to active filter change. Since CKEditor 4.2.
* @returns {Boolean} Whether this command is allowed.
*/
this.checkAllowed = function( noCache ) {
if ( !noCache && typeof allowed == 'boolean' )
return allowed;
return allowed = editor.activeFilter.checkFeature( this );
};
CKEDITOR.tools.extend( this, commandDefinition, {
/**
* The editor modes within which the command can be executed. The
* execution will have no action if the current mode is not listed
* in this property.
*
* // Enable the command in both WYSIWYG and Source modes.
* command.modes = { wysiwyg:1,source:1 };
*
* // Enable the command in Source mode only.
* command.modes = { source:1 };
*
* @see CKEDITOR.editor#mode
*/
modes: { wysiwyg:1 },
/**
* Indicates that the editor will get the focus before executing
* the command.
*
* // Do not force the editor to have focus when executing the command.
* command.editorFocus = false;
*
* @property {Boolean} [=true]
*/
editorFocus: 1,
/**
* Indicates that this command is sensible to the selection context.
* If `true`, the {@link CKEDITOR.command#method-refresh} method will be
* called for this command on the {@link CKEDITOR.editor#event-selectionChange} event.
*
* @property {Boolean} [=false]
*/
contextSensitive: !!commandDefinition.context,
/**
* Indicates the editor state. Possible values are:
*
* * {@link CKEDITOR#TRISTATE_DISABLED}: the command is
* disabled. It's execution will have no effect. Same as {@link #disable}.
* * {@link CKEDITOR#TRISTATE_ON}: the command is enabled
* and currently active in the editor (for context sensitive commands, for example).
* * {@link CKEDITOR#TRISTATE_OFF}: the command is enabled
* and currently inactive in the editor (for context sensitive commands, for example).
*
* Do not set this property directly, using the {@link #setState} method instead.
*
* if ( command.state == CKEDITOR.TRISTATE_DISABLED )
* alert( 'This command is disabled' );
*
* @property {Number} [=CKEDITOR.TRISTATE_DISABLED]
*/
state: CKEDITOR.TRISTATE_DISABLED
});
// Call the CKEDITOR.event constructor to initialize this instance.
CKEDITOR.event.call( this );
};
CKEDITOR.command.prototype = {
/**
* Enables the command for execution. The command state (see
* {@link CKEDITOR.command#property-state}) available before disabling it is restored.
*
* command.enable();
* command.exec(); // Execute the command.
*/
enable: function() {
if ( this.state == CKEDITOR.TRISTATE_DISABLED && this.checkAllowed() )
this.setState( ( !this.preserveState || ( typeof this.previousState == 'undefined' ) ) ? CKEDITOR.TRISTATE_OFF : this.previousState );
},
/**
* Disables the command for execution. The command state (see
* {@link CKEDITOR.command#property-state}) will be set to {@link CKEDITOR#TRISTATE_DISABLED}.
*
* command.disable();
* command.exec(); // "false" - Nothing happens.
*/
disable: function() {
this.setState( CKEDITOR.TRISTATE_DISABLED );
},
/**
* Sets the command state.
*
* command.setState( CKEDITOR.TRISTATE_ON );
* command.exec(); // Execute the command.
* command.setState( CKEDITOR.TRISTATE_DISABLED );
* command.exec(); // 'false' - Nothing happens.
* command.setState( CKEDITOR.TRISTATE_OFF );
* command.exec(); // Execute the command.
*
* @param {Number} newState The new state. See {@link #property-state}.
* @returns {Boolean} Returns `true` if the command state changed.
*/
setState: function( newState ) {
// Do nothing if there is no state change.
if ( this.state == newState )
return false;
if ( newState != CKEDITOR.TRISTATE_DISABLED && !this.checkAllowed() )
return false;
this.previousState = this.state;
// Set the new state.
this.state = newState;
// Fire the "state" event, so other parts of the code can react to the
// change.
this.fire( 'state' );
return true;
},
/**
* Toggles the on/off (active/inactive) state of the command. This is
* mainly used internally by context sensitive commands.
*
* command.toggleState();
*/
toggleState: function() {
if ( this.state == CKEDITOR.TRISTATE_OFF )
this.setState( CKEDITOR.TRISTATE_ON );
else if ( this.state == CKEDITOR.TRISTATE_ON )
this.setState( CKEDITOR.TRISTATE_OFF );
}
};
CKEDITOR.event.implementOn( CKEDITOR.command.prototype );
/**
* Indicates the previous command state.
*
* alert( command.previousState );
*
* @property {Number} previousState
* @see #state
*/
/**
* Fired when the command state changes.
*
* command.on( 'state', function() {
* // Alerts the new state.
* alert( this.state );
* } );
*
* @event state
*/
/**
* @event refresh
* @todo
*/

View File

@ -0,0 +1,139 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class,
* which contains the defintion of a command. This file is for
* documentation purposes only.
*/
/**
* Virtual class that illustrates the features of command objects to be
* passed to the {@link CKEDITOR.editor#addCommand} function.
*
* @class CKEDITOR.commandDefinition
* @abstract
*/
/**
* The function to be fired when the commend is executed.
*
* editorInstance.addCommand( 'sample', {
* exec: function( editor ) {
* alert( 'Executing a command for the editor name "' + editor.name + '"!' );
* }
* } );
*
* @method exec
* @param {CKEDITOR.editor} editor The editor within which run the command.
* @param {Object} [data] Additional data to be used to execute the command.
* @returns {Boolean} Whether the command has been successfully executed.
* Defaults to `true`, if nothing is returned.
*/
/**
* Whether the command need to be hooked into the redo/undo system.
*
* editorInstance.addCommand( 'alertName', {
* exec: function( editor ) {
* alert( editor.name );
* },
* canUndo: false // No support for undo/redo.
* } );
*
* @property {Boolean} [canUndo=true]
*/
/**
* Whether the command is asynchronous, which means that the
* {@link CKEDITOR.editor#event-afterCommandExec} event will be fired by the
* command itself manually, and that the return value of this command is not to
* be returned by the {@link #exec} function.
*
* editorInstance.addCommand( 'loadOptions', {
* exec: function( editor ) {
* // Asynchronous operation below.
* CKEDITOR.ajax.loadXml( 'data.xml', function() {
* editor.fire( 'afterCommandExec' );
* } );
* },
* async: true // The command need some time to complete after exec function returns.
* } );
*
* @property {Boolean} [async=false]
*/
/**
* Whether the command should give focus to the editor before execution.
*
* editorInstance.addCommand( 'maximize', {
* exec: function( editor ) {
* // ...
* },
* editorFocus: false // The command doesn't require focusing the editing document.
* } );
*
* @property {Boolean} [editorFocus=true]
* @see CKEDITOR.command#editorFocus
*/
/**
* Whether the command state should be set to {@link CKEDITOR#TRISTATE_DISABLED} on startup.
*
* editorInstance.addCommand( 'unlink', {
* exec: function( editor ) {
* // ...
* },
* startDisabled: true // Command is unavailable until selection is inside a link.
* } );
*
* @property {Boolean} [startDisabled=false]
*/
/**
* Indicates that this command is sensible to the selection context.
* If `true`, the {@link CKEDITOR.command#method-refresh} method will be
* called for this command on selection changes, with a single parameter
* representing the current elements path.
*
* @property {Boolean} [contextSensitive=true]
*/
/**
* Defined by command definition a function to determinate the command state, it will be invoked
* when editor has it's `states` or `selection` changed.
*
* **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstance,
* if it is intended to update the command state.
*
* @method refresh
* @param {CKEDITOR.editor} editor
* @param {CKEDITOR.dom.elementPath} path
*/
/**
* Sets the element name used to reflect the command state on selection changes.
* If the selection is in a place where the element is not allowed, the command
* will be disabled.
* Setting this property overrides {@link #contextSensitive} to `true`.
*
* @property {Boolean} [context=true]
*/
/**
* The editor modes within which the command can be executed. The execution
* will have no action if the current mode is not listed in this property.
*
* editorInstance.addCommand( 'link', {
* exec: function( editor ) {
* // ...
* },
* modes: { wysiwyg:1 } // Command is available in wysiwyg mode only.
* } );
*
* @property {Object} [modes={ wysiwyg:1 }]
* @see CKEDITOR.command#modes
*/

View File

@ -0,0 +1,363 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.config} object that stores the
* default configuration settings.
*/
/**
* Used in conjunction with {@link CKEDITOR.config#enterMode}
* and {@link CKEDITOR.config#shiftEnterMode} configuration
* settings to make the editor produce `<p>` tags when
* using the *Enter* key.
*
* @readonly
* @property {Number} [=1]
* @member CKEDITOR
*/
CKEDITOR.ENTER_P = 1;
/**
* Used in conjunction with {@link CKEDITOR.config#enterMode}
* and {@link CKEDITOR.config#shiftEnterMode} configuration
* settings to make the editor produce `<br>` tags when
* using the *Enter* key.
*
* @readonly
* @property {Number} [=2]
* @member CKEDITOR
*/
CKEDITOR.ENTER_BR = 2;
/**
* Used in conjunction with {@link CKEDITOR.config#enterMode}
* and {@link CKEDITOR.config#shiftEnterMode} configuration
* settings to make the editor produce `<div>` tags when
* using the *Enter* key.
*
* @readonly
* @property {Number} [=3]
* @member CKEDITOR
*/
CKEDITOR.ENTER_DIV = 3;
/**
* Stores default configuration settings. Changes to this object are
* reflected in all editor instances, if not specified otherwise for a particular
* instance.
*
* @class
* @singleton
*/
CKEDITOR.config = {
/**
* The URL path for the custom configuration file to be loaded. If not
* overloaded with inline configuration, it defaults to the `config.js`
* file present in the root of the CKEditor installation directory.
*
* CKEditor will recursively load custom configuration files defined inside
* other custom configuration files.
*
* // Load a specific configuration file.
* CKEDITOR.replace( 'myfield', { customConfig: '/myconfig.js' } );
*
* // Do not load any custom configuration file.
* CKEDITOR.replace( 'myfield', { customConfig: '' } );
*
* @cfg {String} [="<CKEditor folder>/config.js"]
*/
customConfig: 'config.js',
/**
* Whether the replaced element (usually a `<textarea>`)
* is to be updated automatically when posting the form containing the editor.
*
* @cfg
*/
autoUpdateElement: true,
/**
* The user interface language localization to use. If left empty, the editor
* will automatically be localized to the user language. If the user language is not supported,
* the language specified in the {@link CKEDITOR.config#defaultLanguage}
* configuration setting is used.
*
* // Load the German interface.
* config.language = 'de';
*
* @cfg
*/
language: '',
/**
* The language to be used if the {@link CKEDITOR.config#language}
* setting is left empty and it is not possible to localize the editor to the user language.
*
* config.defaultLanguage = 'it';
*
* @cfg
*/
defaultLanguage: 'en',
/**
* The writting direction of the language used to write the editor
* contents. Allowed values are:
*
* * `''` (empty string) - indicate content direction will be the same with either the editor
* UI direction or page element direction depending on the creators:
* * Themed UI: The same with user interface language direction;
* * Inline: The same with the editable element text direction;
* * `'ltr'` - for Left-To-Right language (like English);
* * `'rtl'` - for Right-To-Left languages (like Arabic).
*
* Example:
*
* config.contentsLangDirection = 'rtl';
*
* @cfg
*/
contentsLangDirection: '',
/**
* Sets the behavior of the *Enter* key. It also determines other behavior
* rules of the editor, like whether the `<br>` element is to be used
* as a paragraph separator when indenting text.
* The allowed values are the following constants that cause the behavior outlined below:
*
* * {@link CKEDITOR#ENTER_P} (1) &ndash; new `<p>` paragraphs are created;
* * {@link CKEDITOR#ENTER_BR} (2) &ndash; lines are broken with `<br>` elements;
* * {@link CKEDITOR#ENTER_DIV} (3) &ndash; new `<div>` blocks are created.
*
* **Note**: It is recommended to use the {@link CKEDITOR#ENTER_P} setting because of
* its semantic value and correctness. The editor is optimized for this setting.
*
* // Not recommended.
* config.enterMode = CKEDITOR.ENTER_BR;
*
* @cfg {Number} [=CKEDITOR.ENTER_P]
*/
enterMode: CKEDITOR.ENTER_P,
/**
* Force the use of {@link CKEDITOR.config#enterMode} as line break regardless
* of the context. If, for example, {@link CKEDITOR.config#enterMode} is set
* to {@link CKEDITOR#ENTER_P}, pressing the *Enter* key inside a
* `<div>` element will create a new paragraph with `<p>`
* instead of a `<div>`.
*
* // Not recommended.
* config.forceEnterMode = true;
*
* @since 3.2.1
* @cfg
*/
forceEnterMode: false,
/**
* Similarly to the {@link CKEDITOR.config#enterMode} setting, it defines the behavior
* of the *Shift+Enter* key combination.
*
* The allowed values are the following constants the behavior outlined below:
*
* * {@link CKEDITOR#ENTER_P} (1) &ndash; new `<p>` paragraphs are created;
* * {@link CKEDITOR#ENTER_BR} (2) &ndash; lines are broken with `<br>` elements;
* * {@link CKEDITOR#ENTER_DIV} (3) &ndash; new `<div>` blocks are created.
*
* Example:
*
* config.shiftEnterMode = CKEDITOR.ENTER_P;
*
* @cfg {Number} [=CKEDITOR.ENTER_BR]
*/
shiftEnterMode: CKEDITOR.ENTER_BR,
/**
* Sets the `DOCTYPE` to be used when loading the editor content as HTML.
*
* // Set the DOCTYPE to the HTML 4 (Quirks) mode.
* config.docType = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
*
* @cfg
*/
docType: '<!DOCTYPE html>',
/**
* Sets the `id` attribute to be used on the `body` element
* of the editing area. This can be useful when you intend to reuse the original CSS
* file you are using on your live website and want to assign the editor the same ID
* as the section that will include the contents. In this way ID-specific CSS rules will
* be enabled.
*
* config.bodyId = 'contents_id';
*
* @since 3.1
* @cfg
*/
bodyId: '',
/**
* Sets the `class` attribute to be used on the `body` element
* of the editing area. This can be useful when you intend to reuse the original CSS
* file you are using on your live website and want to assign the editor the same class
* as the section that will include the contents. In this way class-specific CSS rules will
* be enabled.
*
* config.bodyClass = 'contents';
*
* @since 3.1
* @cfg
*/
bodyClass: '',
/**
* Indicates whether the contents to be edited are being input as a full HTML page.
* A full page includes the `<html>`, `<head>`, and `<body>` elements.
* The final output will also reflect this setting, including the
* `<body>` contents only if this setting is disabled.
*
* config.fullPage = true;
*
* @since 3.1
* @cfg
*/
fullPage: false,
/**
* The height of the editing area (that includes the editor content). This
* can be an integer, for pixel sizes, or any CSS-defined length unit.
*
* **Note:** Percent units (%) are not supported.
*
* config.height = 500; // 500 pixels.
* config.height = '25em'; // CSS length.
* config.height = '300px'; // CSS length.
*
* @cfg {Number/String}
*/
height: 200,
/**
* Comma separated list of plugins to be used for an editor instance,
* besides, the actual plugins that to be loaded could be still affected by two other settings:
* {@link CKEDITOR.config#extraPlugins} and {@link CKEDITOR.config#removePlugins}.
*
* @cfg {String} [="<default list of plugins>"]
*/
plugins: '', // %REMOVE_LINE%
/**
* A list of additional plugins to be loaded. This setting makes it easier
* to add new plugins without having to touch {@link CKEDITOR.config#plugins} setting.
*
* config.extraPlugins = 'myplugin,anotherplugin';
*
* @cfg
*/
extraPlugins: '',
/**
* A list of plugins that must not be loaded. This setting makes it possible
* to avoid loading some plugins defined in the {@link CKEDITOR.config#plugins}
* setting, without having to touch it.
*
* **Note:** Plugin required by other plugin cannot be removed (error will be thrown).
* So e.g. if `contextmenu` is required by `tabletools`, then it can be removed
* only if `tabletools` isn't loaded.
*
* config.removePlugins = 'elementspath,save,font';
*
* @cfg
*/
removePlugins: '',
/**
* List of regular expressions to be executed on input HTML,
* indicating HTML source code that when matched, must **not** be available in the WYSIWYG
* mode for editing.
*
* config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP code
* config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP code
* config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net code
*
* @cfg
*/
protectedSource: [],
/**
* The editor `tabindex` value.
*
* config.tabIndex = 1;
*
* @cfg
*/
tabIndex: 0,
/**
* The editor UI outer width. This can be an integer, for pixel sizes, or
* any CSS-defined unit.
*
* Unlike the {@link CKEDITOR.config#height} setting, this
* one will set the outer width of the entire editor UI, not for the
* editing area only.
*
* config.width = 850; // 850 pixels wide.
* config.width = '75%'; // CSS unit.
*
* @cfg {String/Number}
*/
width: '',
/**
* The base Z-index for floating dialog windows and popups.
*
* config.baseFloatZIndex = 2000;
*
* @cfg
*/
baseFloatZIndex: 10000,
/**
* The keystrokes that are blocked by default as the browser implementation
* is buggy. These default keystrokes are handled by the editor.
*
* @cfg {Array} [=[ CKEDITOR.CTRL + 66, CKEDITOR.CTRL + 73, CKEDITOR.CTRL + 85 ] // CTRL+B,I,U]
*/
blockedKeystrokes: [
CKEDITOR.CTRL + 66, // CTRL+B
CKEDITOR.CTRL + 73, // CTRL+I
CKEDITOR.CTRL + 85 // CTRL+U
]
};
/**
* Indicates that some of the editor features, like alignment and text
* direction, should use the "computed value" of the feature to indicate its
* on/off state instead of using the "real value".
*
* If enabled in a Left-To-Right written document, the "Left Justify"
* alignment button will be shown as active, even if the alignment style is not
* explicitly applied to the current paragraph in the editor.
*
* config.useComputedState = false;
*
* @since 3.4
* @cfg {Boolean} [useComputedState=true]
*/
/**
* The base user interface color to be used by the editor. Not all skins are
* compatible with this setting.
*
* // Using a color code.
* config.uiColor = '#AADC6E';
*
* // Using an HTML color name.
* config.uiColor = 'Gold';
*
* @cfg {String} uiColor
*/
// PACKAGER_RENAME( CKEDITOR.config )

View File

@ -0,0 +1,153 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function() {
/** @class CKEDITOR */
/**
* Turns a DOM element with `contenteditable` attribute set to `true` into a
* CKEditor instance. Check {@link CKEDITOR.dtd#$editable} for the list of
* allowed element names.
*
* <div contenteditable="true" id="content">...</div>
* ...
* CKEDITOR.inline( 'content' );
*
* It is also possible to create an inline editor from the `<textarea>` element.
* If you do so, an additional `<div>` element with editable content will be created
* directly after the `<textarea>` element and the `<textarea>` element will be hidden.
*
* @param {Object/String} element The DOM element or its ID.
* @param {Object} [instanceConfig] The specific configurations to apply to this editor instance.
* See {@link CKEDITOR.config}.
* @returns {CKEDITOR.editor} The editor instance created.
*/
CKEDITOR.inline = function( element, instanceConfig ) {
if ( !CKEDITOR.env.isCompatible )
return null;
element = CKEDITOR.dom.element.get( element );
// Avoid multiple inline editor instances on the same element.
if ( element.getEditor() )
throw 'The editor instance "' + element.getEditor().name + '" is already attached to the provided element.';
var editor = new CKEDITOR.editor( instanceConfig, element, CKEDITOR.ELEMENT_MODE_INLINE ),
textarea = element.is( 'textarea' ) ? element : null;
if ( textarea ) {
editor.setData( textarea.getValue(), null, true );
//Change element from textarea to div
element = CKEDITOR.dom.element.createFromHtml(
'<div contenteditable="' + !!editor.readOnly + '" class="cke_textarea_inline">' +
textarea.getValue() +
'</div>',
CKEDITOR.document );
element.insertAfter( textarea );
textarea.hide();
// Attaching the concrete form.
if ( textarea.$.form )
editor._attachToForm();
} else {
// Initial editor data is simply loaded from the page element content to make
// data retrieval possible immediately after the editor creation.
editor.setData( element.getHtml(), null, true );
}
// Once the editor is loaded, start the UI.
editor.on( 'loaded', function() {
editor.fire( 'uiReady' );
// Enable editing on the element.
editor.editable( element );
// Editable itself is the outermost element.
editor.container = element;
// Load and process editor data.
editor.setData( editor.getData( 1 ) );
// Clean on startup.
editor.resetDirty();
editor.fire( 'contentDom' );
// Inline editing defaults to "wysiwyg" mode, so plugins don't
// need to make special handling for this "mode-less" environment.
editor.mode = 'wysiwyg';
editor.fire( 'mode' );
// The editor is completely loaded for interaction.
editor.status = 'ready';
editor.fireOnce( 'instanceReady' );
CKEDITOR.fire( 'instanceReady', null, editor );
// give priority to plugins that relay on editor#loaded for bootstrapping.
}, null, null, 10000 );
// Handle editor destroying.
editor.on( 'destroy', function() {
// Remove container from DOM if inline-textarea editor.
// Show <textarea> back again.
if ( textarea ) {
editor.container.clearCustomData();
editor.container.remove();
textarea.show();
}
editor.element.clearCustomData();
delete editor.element;
} );
return editor;
};
/**
* Calls {@link CKEDITOR#inline} for all page elements with
* `contenteditable` attribute set to `true`.
*
*/
CKEDITOR.inlineAll = function() {
var el, data;
for ( var name in CKEDITOR.dtd.$editable ) {
var elements = CKEDITOR.document.getElementsByTag( name );
for ( var i = 0, len = elements.count(); i < len; i++ ) {
el = elements.getItem( i );
if ( el.getAttribute( 'contenteditable' ) == 'true' ) {
// Fire the "inline" event, making it possible to customize
// the instance settings and eventually cancel the creation.
data = {
element: el,
config: {}
};
if ( CKEDITOR.fire( 'inline', data ) !== false )
CKEDITOR.inline( el, data.config );
}
}
}
};
CKEDITOR.domReady( function() {
!CKEDITOR.disableAutoInline && CKEDITOR.inlineAll();
} );
})();
/**
* Disables creating the inline editor automatically for elements with
* `contenteditable` attribute set to the `true`.
*
* CKEDITOR.disableAutoInline = true;
*
* @cfg {Boolean} [disableAutoInline=false]
*/

View File

@ -0,0 +1,458 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/** @class CKEDITOR */
/**
* The class name used to identify `<textarea>` elements to be replaced
* by CKEditor instances. Set it to empty/`null` to disable this feature.
*
* CKEDITOR.replaceClass = 'rich_editor';
*
* @cfg {String} [replaceClass='ckeditor']
*/
CKEDITOR.replaceClass = 'ckeditor';
(function() {
/**
* Replaces a `<textarea>` or a DOM element (`<div>`) with a CKEditor
* instance. For textareas, the initial value in the editor will be the
* textarea value. For DOM elements, their `innerHTML` will be used
* instead. We recommend using `<textarea>` and `<div>` elements only.
*
* <textarea id="myfield" name="myfield"></textarea>
* ...
* CKEDITOR.replace( 'myfield' );
*
* var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
* CKEDITOR.replace( textarea );
*
* @param {Object/String} element The DOM element (textarea), its ID, or name.
* @param {Object} [config] The specific configuration to apply to this
* editor instance. Configuration set here will override the global CKEditor settings
* (see {@link CKEDITOR.config}).
* @returns {CKEDITOR.editor} The editor instance created.
*/
CKEDITOR.replace = function( element, config ) {
return createInstance( element, config, null, CKEDITOR.ELEMENT_MODE_REPLACE );
};
/**
* Creates a new editor instance at the end of a specific DOM element.
*
* <div id="editorSpace"></div>
* ...
* CKEDITOR.appendTo( 'editorSpace' );
*
* @param {Object/String} element The DOM element, its ID, or name.
* @param {Object} [config] The specific configuration to apply to this
* editor instance. Configuration set here will override the global CKEditor settings
* (see {@link CKEDITOR.config}).
* @param {String} [data] Since 3.3. Initial value for the instance.
* @returns {CKEDITOR.editor} The editor instance created.
*/
CKEDITOR.appendTo = function( element, config, data )
{
return createInstance( element, config, data, CKEDITOR.ELEMENT_MODE_APPENDTO );
};
/**
* Replaces all `<textarea>` elements available in the document with
* editor instances.
*
* // Replace all <textarea> elements in the page.
* CKEDITOR.replaceAll();
*
* // Replace all <textarea class="myClassName"> elements in the page.
* CKEDITOR.replaceAll( 'myClassName' );
*
* // Selectively replace <textarea> elements, based on custom assertions.
* CKEDITOR.replaceAll( function( textarea, config ) {
* // An assertion function that needs to be evaluated for the <textarea>
* // to be replaced. It must explicitely return "false" to ignore a
* // specific <textarea>.
* // You can also customize the editor instance by having the function
* // modify the "config" parameter.
* } );
*
* @param {String} [className] The `<textarea>` class name.
* @param {Function} [function] An assertion function that must return `true` for a `<textarea>`
* to be replaced with the editor. If the function returns `false`, the `<textarea>` element
* will not be replaced.
*/
CKEDITOR.replaceAll = function() {
var textareas = document.getElementsByTagName( 'textarea' );
for ( var i = 0; i < textareas.length; i++ ) {
var config = null,
textarea = textareas[ i ];
// The "name" and/or "id" attribute must exist.
if ( !textarea.name && !textarea.id )
continue;
if ( typeof arguments[ 0 ] == 'string' ) {
// The textarea class name could be passed as the function
// parameter.
var classRegex = new RegExp( '(?:^|\\s)' + arguments[ 0 ] + '(?:$|\\s)' );
if ( !classRegex.test( textarea.className ) )
continue;
} else if ( typeof arguments[ 0 ] == 'function' ) {
// An assertion function could be passed as the function parameter.
// It must explicitly return "false" to ignore a specific <textarea>.
config = {};
if ( arguments[ 0 ]( textarea, config ) === false )
continue;
}
this.replace( textarea, config );
}
};
/** @class CKEDITOR.editor */
/**
* Registers an editing mode. This function is to be used mainly by plugins.
*
* @param {String} mode The mode name.
* @param {Function} exec The function that performs the actual mode change.
*/
CKEDITOR.editor.prototype.addMode = function( mode, exec ) {
( this._.modes || ( this._.modes = {} ) )[ mode ] = exec;
};
/**
* Changes the editing mode of this editor instance.
*
* **Note:** The mode switch could be asynchronous depending on the mode provider.
* Use the `callback` to hook subsequent code.
*
* // Switch to "source" view.
* CKEDITOR.instances.editor1.setMode( 'source' );
* // Switch to "wysiwyg" view and be notified on completion.
* CKEDITOR.instances.editor1.setMode( 'wysiwyg', function() { alert( 'wysiwyg mode loaded!' ); } );
*
* @param {String} [newMode] If not specified, the {@link CKEDITOR.config#startupMode} will be used.
* @param {Function} [callback] Optional callback function which is invoked once the mode switch has succeeded.
*/
CKEDITOR.editor.prototype.setMode = function( newMode, callback ) {
var editor = this;
var modes = this._.modes;
// Mode loading quickly fails.
if ( newMode == editor.mode || !modes || !modes[ newMode ] )
return;
editor.fire( 'beforeSetMode', newMode );
if ( editor.mode ) {
var isDirty = editor.checkDirty();
editor._.previousMode = editor.mode;
editor.fire( 'beforeModeUnload' );
// Detach the current editable.
editor.editable( 0 );
// Clear up the mode space.
editor.ui.space( 'contents' ).setHtml( '' );
editor.mode = '';
}
// Fire the mode handler.
this._.modes[ newMode ]( function() {
// Set the current mode.
editor.mode = newMode;
if ( isDirty !== undefined ) {
!isDirty && editor.resetDirty();
}
// Delay to avoid race conditions (setMode inside setMode).
setTimeout( function() {
editor.fire( 'mode' );
callback && callback.call( editor );
}, 0);
});
};
/**
* Resizes the editor interface.
*
* editor.resize( 900, 300 );
*
* editor.resize( '100%', 450, true );
*
* @param {Number/String} width The new width. It can be an integer denoting a value
* in pixels or a CSS size value with unit.
* @param {Number/String} height The new height. It can be an integer denoting a value
* in pixels or a CSS size value with unit.
* @param {Boolean} [isContentHeight] Indicates that the provided height is to
* be applied to the editor content area, and not to the entire editor
* interface. Defaults to `false`.
* @param {Boolean} [resizeInner] Indicates that it is the inner interface
* element that must be resized, not the outer element. The default theme
* defines the editor interface inside a pair of `<span>` elements
* (`<span><span>...</span></span>`). By default the first,
* outer `<span>` element receives the sizes. If this parameter is set to
* `true`, the second, inner `<span>` is resized instead.
*/
CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, resizeInner ) {
var container = this.container,
contents = this.ui.space( 'contents' ),
contentsFrame = CKEDITOR.env.webkit && this.document && this.document.getWindow().$.frameElement,
outer = resizeInner ? container.getChild( 1 ) : container;
// Set as border box width. (#5353)
outer.setSize( 'width', width, true );
// WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (#8348)
contentsFrame && ( contentsFrame.style.width = '1%' );
// Get the height delta between the outer table and the content area.
// If we're setting the content area's height, then we don't need the delta.
var delta = isContentHeight ? 0 : ( outer.$.offsetHeight || 0 ) - ( contents.$.clientHeight || 0 );
contents.setStyle( 'height', Math.max( height - delta, 0 ) + 'px' );
// WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (#8348)
contentsFrame && ( contentsFrame.style.width = '100%' );
// Emit a resize event.
this.fire( 'resize' );
};
/**
* Gets the element that can be used to check the editor size. This method
* is mainly used by the `resize` plugin, which adds a UI handle that can be used
* to resize the editor.
*
* @param {Boolean} forContents Whether to return the "contents" part of the theme instead of the container.
* @returns {CKEDITOR.dom.element} The resizable element.
*/
CKEDITOR.editor.prototype.getResizable = function( forContents ) {
return forContents ? this.ui.space( 'contents' ) : this.container;
};
function createInstance( element, config, data, mode ) {
if ( !CKEDITOR.env.isCompatible )
return null;
element = CKEDITOR.dom.element.get( element );
// Avoid multiple inline editor instances on the same element.
if ( element.getEditor() )
throw 'The editor instance "' + element.getEditor().name + '" is already attached to the provided element.';
// Create the editor instance.
var editor = new CKEDITOR.editor( config, element, mode );
if ( mode == CKEDITOR.ELEMENT_MODE_REPLACE ) {
// Do not replace the textarea right now, just hide it. The effective
// replacement will be done later in the editor creation lifecycle.
element.setStyle( 'visibility', 'hidden' );
// #8031 Remember if textarea was required and remove the attribute.
editor._.required = element.hasAttribute( 'required' );
element.removeAttribute( 'required' );
}
data && editor.setData( data, null, true );
// Once the editor is loaded, start the UI.
editor.on( 'loaded', function() {
loadTheme( editor );
if ( mode == CKEDITOR.ELEMENT_MODE_REPLACE && editor.config.autoUpdateElement && element.$.form )
editor._attachToForm();
editor.setMode( editor.config.startupMode, function() {
// Clean on startup.
editor.resetDirty();
// Editor is completely loaded for interaction.
editor.status = 'ready';
editor.fireOnce( 'instanceReady' );
CKEDITOR.fire( 'instanceReady', null, editor );
});
});
editor.on( 'destroy', destroy );
return editor;
}
function destroy() {
var editor = this,
container = editor.container,
element = editor.element;
if ( container ) {
container.clearCustomData();
container.remove();
}
if ( element ) {
element.clearCustomData();
if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) {
element.show();
if ( editor._.required )
element.setAttribute( 'required', 'required' );
}
delete editor.element;
}
}
var themedTpl;
function loadTheme( editor ) {
var name = editor.name,
element = editor.element,
elementMode = editor.elementMode;
// Get the HTML for the predefined spaces.
var topHtml = editor.fire( 'uiSpace', { space: 'top', html: '' } ).html;
var bottomHtml = editor.fire( 'uiSpace', { space: 'bottom', html: '' } ).html;
if ( !themedTpl ) {
themedTpl = 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">' +
'<span id="cke_{name}_arialbl" class="cke_voice_label">{voiceLabel}</span>' +
'<{outerEl} class="cke_inner cke_reset" role="presentation">' +
'{topHtml}' +
'<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation"></{outerEl}>' +
'{bottomHtml}' +
'</{outerEl}>' +
'</{outerEl}>' );
}
var container = CKEDITOR.dom.element.createFromHtml( themedTpl.output({
id: editor.id,
name: name,
langDir: editor.lang.dir,
langCode: editor.langCode,
voiceLabel: [ editor.lang.editor, editor.name ].join( ', ' ),
topHtml: topHtml ? '<span id="' + editor.ui.spaceId( 'top' ) + '" class="cke_top cke_reset_all" role="presentation" style="height:auto">' + topHtml + '</span>' : '',
contentId: editor.ui.spaceId( 'contents' ),
bottomHtml: bottomHtml ? '<span id="' + editor.ui.spaceId( 'bottom' ) + '" class="cke_bottom cke_reset_all" role="presentation">' + bottomHtml + '</span>' : '',
outerEl: CKEDITOR.env.ie ? 'span' : 'div' // #9571
}));
if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) {
element.hide();
container.insertAfter( element );
} else
element.append( container );
editor.container = container;
// Make top and bottom spaces unelectable, but not content space,
// otherwise the editable area would be affected.
topHtml && editor.ui.space( 'top' ).unselectable();
bottomHtml && editor.ui.space( 'bottom' ).unselectable();
var width = editor.config.width, height = editor.config.height;
if ( width )
container.setStyle( 'width', CKEDITOR.tools.cssLength( width ) );
// The editor height is applied to the contents space.
if ( height )
editor.ui.space( 'contents' ).setStyle( 'height', CKEDITOR.tools.cssLength( height ) );
// Disable browser context menu for editor's chrome.
container.disableContextMenu();
// Redirect the focus into editor for webkit. (#5713)
CKEDITOR.env.webkit && container.on( 'focus', function() {
editor.focus();
});
editor.fireOnce( 'uiReady' );
}
// Replace all textareas with the default class name.
CKEDITOR.domReady( function() {
CKEDITOR.replaceClass && CKEDITOR.replaceAll( CKEDITOR.replaceClass );
});
})();
/**
* The current editing mode. An editing mode basically provides
* different ways of editing or viewing the contents.
*
* alert( CKEDITOR.instances.editor1.mode ); // (e.g.) 'wysiwyg'
*
* @readonly
* @property {String} mode
*/
/**
* The mode to load at the editor startup. It depends on the plugins
* loaded. By default, the `wysiwyg` and `source` modes are available.
*
* config.startupMode = 'source';
*
* @cfg {String} [startupMode='wysiwyg']
* @member CKEDITOR.config
*/
CKEDITOR.config.startupMode = 'wysiwyg';
/**
* Fired after the editor instance is resized through
* the {@link CKEDITOR.editor#method-resize CKEDITOR.resize} method.
*
* @event resize
* @param {CKEDITOR.editor} editor This editor instance.
*/
/**
* Fired before changing the editing mode. See also
* {@link #beforeSetMode} and {@link #event-mode}.
*
* @event beforeModeUnload
* @param {CKEDITOR.editor} editor This editor instance.
*/
/**
* Fired before the editor mode is set. See also
* {@link #event-mode} and {@link #beforeModeUnload}.
*
* @since 3.5.3
* @event beforeSetMode
* @param {CKEDITOR.editor} editor This editor instance.
* @param {String} data The name of the mode which is about to be set.
*/
/**
* Fired after setting the editing mode. See also {@link #beforeSetMode} and {@link #beforeModeUnload}
*
* @event mode
* @param {CKEDITOR.editor} editor This editor instance.
*/
/**
* Fired when the editor (replacing a `<textarea>` which has a `required` attribute) is empty during form submission.
*
* This event replaces native required fields validation that the browsers cannot
* perform when CKEditor replaces `<textarea>` elements.
*
* You can cancel this event to prevent the page from submitting data.
*
* editor.on( 'required', function( evt ) {
* alert( 'Article content is required.' );
* evt.cancel();
* } );
*
* @event required
* @param {CKEDITOR.editor} editor This editor instance.
*/

View File

@ -0,0 +1,70 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the "virtual" {@link CKEDITOR.dataProcessor} class, which
* defines the basic structure of data processor objects to be
* set to {@link CKEDITOR.editor.dataProcessor}.
*/
/**
* If defined, points to the data processor which is responsible to translate
* and transform the editor data on input and output.
* Generaly it will point to an instance of {@link CKEDITOR.htmlDataProcessor},
* which handles HTML data. The editor may also handle other data formats by
* using different data processors provided by specific plugins.
*
* @property {CKEDITOR.dataProcessor} dataProcessor
* @member CKEDITOR.editor
*/
/**
* Represents a data processor, which is responsible to translate and
* transform the editor data on input and output.
*
* This class is here for documentation purposes only and is not really part of
* the API. It serves as the base ("interface") for data processors implementation.
*
* @class CKEDITOR.dataProcessor
* @abstract
*/
/**
* Transforms input data into HTML to be loaded in the editor.
* While the editor is able to handle non HTML data (like BBCode), at runtime
* it can handle HTML data only. The role of the data processor is transforming
* the input data into HTML through this function.
*
* // Tranforming BBCode data, having a custom BBCode data processor.
* var data = 'This is [b]an example[/b].';
* var html = editor.dataProcessor.toHtml( data ); // '<p>This is <b>an example</b>.</p>'
*
* @method toHtml
* @param {String} data The input data to be transformed.
* @param {String} [fixForBody] The tag name to be used if the data must be
* fixed because it is supposed to be loaded direcly into the `<body>`
* tag. This is generally not used by non-HTML data processors.
* @todo fixForBody type - compare to htmlDataProcessor.
*/
/**
* Transforms HTML into data to be outputted by the editor, in the format
* expected by the data processor.
*
* While the editor is able to handle non HTML data (like BBCode), at runtime
* it can handle HTML data only. The role of the data processor is transforming
* the HTML data containined by the editor into a specific data format through
* this function.
*
* // Tranforming into BBCode data, having a custom BBCode data processor.
* var html = '<p>This is <b>an example</b>.</p>';
* var data = editor.dataProcessor.toDataFormat( html ); // 'This is [b]an example[/b].'
*
* @method toDataFormat
* @param {String} html The HTML to be transformed.
* @param {String} fixForBody The tag name to be used if the output data is
* coming from `<body>` and may be eventually fixed for it. This is
* generally not used by non-HTML data processors.
*/

View File

@ -0,0 +1,13 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom} object, which contains DOM
* manipulation objects and function.
*/
CKEDITOR.dom = {};
// PACKAGER_RENAME( CKEDITOR.dom )

View File

@ -0,0 +1,53 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom.comment} class, which represents
* a DOM comment node.
*/
/**
* Represents a DOM comment node.
*
* var nativeNode = document.createComment( 'Example' );
* var comment = new CKEDITOR.dom.comment( nativeNode );
*
* var comment = new CKEDITOR.dom.comment( 'Example' );
*
* @class
* @extends CKEDITOR.dom.node
* @constructor Creates a comment class instance.
* @param {Object/String} comment A native DOM comment node or a string containing
* the text to use to create a new comment node.
* @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
* the node in case of new node creation. Defaults to the current document.
*/
CKEDITOR.dom.comment = function( comment, ownerDocument ) {
if ( typeof comment == 'string' )
comment = ( ownerDocument ? ownerDocument.$ : document ).createComment( comment );
CKEDITOR.dom.domObject.call( this, comment );
};
CKEDITOR.dom.comment.prototype = new CKEDITOR.dom.node();
CKEDITOR.tools.extend( CKEDITOR.dom.comment.prototype, {
/**
* The node type. This is a constant value set to {@link CKEDITOR#NODE_COMMENT}.
*
* @readonly
* @property {Number} [=CKEDITOR.NODE_COMMENT]
*/
type: CKEDITOR.NODE_COMMENT,
/**
* Gets the outer HTML of this comment.
*
* @returns {String} The HTML `<!-- comment value -->`.
*/
getOuterHtml: function() {
return '<!--' + this.$.nodeValue + '-->';
}
});

View File

@ -0,0 +1,317 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
* represents a DOM document.
*/
/**
* Represents a DOM document.
*
* var document = new CKEDITOR.dom.document( document );
*
* @class
* @extends CKEDITOR.dom.domObject
* @constructor Creates a document class instance.
* @param {Object} domDocument A native DOM document.
*/
CKEDITOR.dom.document = function( domDocument ) {
CKEDITOR.dom.domObject.call( this, domDocument );
};
// PACKAGER_RENAME( CKEDITOR.dom.document )
CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject();
CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype, {
/**
* The node type. This is a constant value set to {@link CKEDITOR#NODE_DOCUMENT}.
*
* @readonly
* @property {Number} [=CKEDITOR.NODE_DOCUMENT]
*/
type: CKEDITOR.NODE_DOCUMENT,
/**
* Appends a CSS file to the document.
*
* CKEDITOR.document.appendStyleSheet( '/mystyles.css' );
*
* @param {String} cssFileUrl The CSS file URL.
*/
appendStyleSheet: function( cssFileUrl ) {
if ( this.$.createStyleSheet )
this.$.createStyleSheet( cssFileUrl );
else {
var link = new CKEDITOR.dom.element( 'link' );
link.setAttributes({
rel: 'stylesheet',
type: 'text/css',
href: cssFileUrl
});
this.getHead().append( link );
}
},
/**
* Creates a CSS style sheet and inserts it into the document.
*
* @param cssStyleText {String} CSS style text.
* @returns {Object} The created DOM native style sheet object.
*/
appendStyleText: function( cssStyleText ) {
if ( this.$.createStyleSheet ) {
var styleSheet = this.$.createStyleSheet( "" );
styleSheet.cssText = cssStyleText;
} else {
var style = new CKEDITOR.dom.element( 'style', this );
style.append( new CKEDITOR.dom.text( cssStyleText, this ) );
this.getHead().append( style );
}
return styleSheet || style.$.sheet;
},
/**
* Creates {@link CKEDITOR.dom.element} instance in this document.
*
* @returns {CKEDITOR.dom.element}
* @todo
*/
createElement: function( name, attribsAndStyles ) {
var element = new CKEDITOR.dom.element( name, this );
if ( attribsAndStyles ) {
if ( attribsAndStyles.attributes )
element.setAttributes( attribsAndStyles.attributes );
if ( attribsAndStyles.styles )
element.setStyles( attribsAndStyles.styles );
}
return element;
},
/**
* Creates {@link CKEDITOR.dom.text} instance in this document.
*
* @param {String} text Value of the text node.
* @returns {CKEDITOR.dom.element}
*/
createText: function( text ) {
return new CKEDITOR.dom.text( text, this );
},
/**
* Moves the selection focus to this document's window.
*/
focus: function() {
this.getWindow().focus();
},
/**
* Returns the element that is currently designated as the active element in the document.
*
* **Note:** Only one element can be active at a time in a document.
* An active element does not necessarily have focus,
* but an element with focus is always the active element in a document.
*
* @returns {CKEDITOR.dom.element}
*/
getActive: function() {
return new CKEDITOR.dom.element( this.$.activeElement );
},
/**
* Gets an element based on its id.
*
* var element = CKEDITOR.document.getById( 'myElement' );
* alert( element.getId() ); // 'myElement'
*
* @param {String} elementId The element id.
* @returns {CKEDITOR.dom.element} The element instance, or null if not found.
*/
getById: function( elementId ) {
var $ = this.$.getElementById( elementId );
return $ ? new CKEDITOR.dom.element( $ ) : null;
},
/**
* Gets a node based on its address. See {@link CKEDITOR.dom.node#getAddress}.
*
* @param {Array} address
* @param {Boolean} [normalized=false]
*/
getByAddress: function( address, normalized ) {
var $ = this.$.documentElement;
for ( var i = 0; $ && i < address.length; i++ ) {
var target = address[ i ];
if ( !normalized ) {
$ = $.childNodes[ target ];
continue;
}
var currentIndex = -1;
for ( var j = 0; j < $.childNodes.length; j++ ) {
var candidate = $.childNodes[ j ];
if ( normalized === true && candidate.nodeType == 3 && candidate.previousSibling && candidate.previousSibling.nodeType == 3 ) {
continue;
}
currentIndex++;
if ( currentIndex == target ) {
$ = candidate;
break;
}
}
}
return $ ? new CKEDITOR.dom.node( $ ) : null;
},
/**
* Gets elements list based on given tag name.
*
* @param {String} tagName The element tag name.
* @returns {CKEDITOR.dom.nodeList} The nodes list.
*/
getElementsByTag: function( tagName, namespace ) {
if ( !( CKEDITOR.env.ie && !( document.documentMode > 8 ) ) && namespace )
tagName = namespace + ':' + tagName;
return new CKEDITOR.dom.nodeList( this.$.getElementsByTagName( tagName ) );
},
/**
* Gets the `<head>` element for this document.
*
* var element = CKEDITOR.document.getHead();
* alert( element.getName() ); // 'head'
*
* @returns {CKEDITOR.dom.element} The `<head>` element.
*/
getHead: function() {
var head = this.$.getElementsByTagName( 'head' )[ 0 ];
if ( !head )
head = this.getDocumentElement().append( new CKEDITOR.dom.element( 'head' ), true );
else
head = new CKEDITOR.dom.element( head );
return head;
},
/**
* Gets the `<body>` element for this document.
*
* var element = CKEDITOR.document.getBody();
* alert( element.getName() ); // 'body'
*
* @returns {CKEDITOR.dom.element} The `<body>` element.
*/
getBody: function() {
return new CKEDITOR.dom.element( this.$.body );
},
/**
* Gets the DOM document element for this document.
*
* @returns {CKEDITOR.dom.element} The DOM document element.
*/
getDocumentElement: function() {
return new CKEDITOR.dom.element( this.$.documentElement );
},
/**
* Gets the window object that holds this document.
*
* @returns {CKEDITOR.dom.window} The window object.
*/
getWindow: function() {
return new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
},
/**
* Defines the document contents through document.write. Note that the
* previous document contents will be lost (cleaned).
*
* document.write(
* '<html>' +
* '<head><title>Sample Doc</title></head>' +
* '<body>Document contents created by code</body>' +
* '</html>'
* );
*
* @since 3.5
* @param {String} html The HTML defining the document contents.
*/
write: function( html ) {
// Don't leave any history log in IE. (#5657)
this.$.open( 'text/html', 'replace' );
// Support for custom document.domain in IE.
//
// The script must be appended because if placed before the
// doctype, IE will go into quirks mode and mess with
// the editable, e.g. by changing its default height.
if ( CKEDITOR.env.ie )
html = html.replace( /(?:^\s*<!DOCTYPE[^>]*?>)|^/i, '$&\n<script data-cke-temp="1">(' + CKEDITOR.tools.fixDomain + ')();</script>' );
this.$.write( html );
this.$.close();
},
/**
* Wrapper for `querySelectorAll`. Returns a list of elements within this document that match
* specified `selector`.
*
* **Note:** returned list is not a live collection (like a result of native `querySelectorAll`).
*
* @since 4.3
* @param {String} selector
* @returns {CKEDITOR.dom.nodeList}
*/
find: function( selector ) {
return new CKEDITOR.dom.nodeList( this.$.querySelectorAll( selector ) );
},
/**
* Wrapper for `querySelector`. Returns first element within this document that matches
* specified `selector`.
*
* @since 4.3
* @param {String} selector
* @returns {CKEDITOR.dom.element}
*/
findOne: function( selector ) {
var el = this.$.querySelector( selector );
return el ? new CKEDITOR.dom.element( el ) : null;
},
/**
* IE8 only method. It returns document fragment which has all HTML5 elements enabled.
*
* @since 4.3
* @private
* @returns DocumentFragment
*/
_getHtml5ShivFrag: function() {
var $frag = this.getCustomData( 'html5ShivFrag' );
if ( !$frag ) {
$frag = this.$.createDocumentFragment();
CKEDITOR.tools.enableHtml5Elements( $frag, true );
this.setCustomData( 'html5ShivFrag', $frag );
}
return $frag;
}
});

View File

@ -0,0 +1,45 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* DocumentFragment is a "lightweight" or "minimal" Document object. It is
* commonly used to extract a portion of a document's tree or to create a new
* fragment of a document. Various operations may take DocumentFragment objects
* as arguments and results in all the child nodes of the DocumentFragment being
* moved to the child list of this node.
*
* @class
* @constructor Creates a document fragment class instance.
* @param {Object} nodeOrDoc
* @todo example and param doc
*/
CKEDITOR.dom.documentFragment = function( nodeOrDoc ) {
nodeOrDoc = nodeOrDoc || CKEDITOR.document;
if ( nodeOrDoc.type == CKEDITOR.NODE_DOCUMENT )
this.$ = nodeOrDoc.$.createDocumentFragment();
else
this.$ = nodeOrDoc;
};
CKEDITOR.tools.extend( CKEDITOR.dom.documentFragment.prototype, CKEDITOR.dom.element.prototype, {
/**
* The node type. This is a constant value set to {@link CKEDITOR#NODE_DOCUMENT_FRAGMENT}.
*
* @readonly
* @property {Number} [=CKEDITOR.NODE_DOCUMENT_FRAGMENT]
*/
type: CKEDITOR.NODE_DOCUMENT_FRAGMENT,
/**
* Inserts document fragment's contents after specified node.
*
* @param {CKEDITOR.dom.node} node
*/
insertAfterNode: function( node ) {
node = node.$;
node.parentNode.insertBefore( this.$, node.nextSibling );
}
}, true, { 'append':1,'appendBogus':1,'getFirst':1,'getLast':1,'getParent':1,'getNext':1,'getPrevious':1,'appendTo':1,'moveChildren':1,'insertBefore':1,'insertAfterNode':1,'replace':1,'trim':1,'type':1,'ltrim':1,'rtrim':1,'getDocument':1,'getChildCount':1,'getChild':1,'getChildren':1 } );

View File

@ -0,0 +1,258 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.editor} class, which is the base
* for other classes representing DOM objects.
*/
/**
* Represents a DOM object. This class is not intended to be used directly. It
* serves as the base class for other classes representing specific DOM
* objects.
*
* @class
* @mixins CKEDITOR.event
* @constructor Creates a domObject class instance.
* @param {Object} nativeDomObject A native DOM object.
*/
CKEDITOR.dom.domObject = function( nativeDomObject ) {
if ( nativeDomObject ) {
/**
* The native DOM object represented by this class instance.
*
* var element = new CKEDITOR.dom.element( 'span' );
* alert( element.$.nodeType ); // '1'
*
* @readonly
* @property {Object}
*/
this.$ = nativeDomObject;
}
};
CKEDITOR.dom.domObject.prototype = (function() {
// Do not define other local variables here. We want to keep the native
// listener closures as clean as possible.
var getNativeListener = function( domObject, eventName ) {
return function( domEvent ) {
// In FF, when reloading the page with the editor focused, it may
// throw an error because the CKEDITOR global is not anymore
// available. So, we check it here first. (#2923)
if ( typeof CKEDITOR != 'undefined' )
domObject.fire( eventName, new CKEDITOR.dom.event( domEvent ) );
};
};
return {
/**
* Get the private `_` object which is bound to the native
* DOM object using {@link #getCustomData}.
*
* var elementA = new CKEDITOR.dom.element( nativeElement );
* elementA.getPrivate().value = 1;
* ...
* var elementB = new CKEDITOR.dom.element( nativeElement );
* elementB.getPrivate().value; // 1
*
* @returns {Object} The private object.
*/
getPrivate: function() {
var priv;
// Get the main private object from the custom data. Create it if not defined.
if ( !( priv = this.getCustomData( '_' ) ) )
this.setCustomData( '_', ( priv = {} ) );
return priv;
},
// Docs inherited from event.
on: function( eventName ) {
// We customize the "on" function here. The basic idea is that we'll have
// only one listener for a native event, which will then call all listeners
// set to the event.
// Get the listeners holder object.
var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
if ( !nativeListeners ) {
nativeListeners = {};
this.setCustomData( '_cke_nativeListeners', nativeListeners );
}
// Check if we have a listener for that event.
if ( !nativeListeners[ eventName ] ) {
var listener = nativeListeners[ eventName ] = getNativeListener( this, eventName );
if ( this.$.addEventListener )
this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture );
else if ( this.$.attachEvent )
this.$.attachEvent( 'on' + eventName, listener );
}
// Call the original implementation.
return CKEDITOR.event.prototype.on.apply( this, arguments );
},
// Docs inherited from event.
removeListener: function( eventName ) {
// Call the original implementation.
CKEDITOR.event.prototype.removeListener.apply( this, arguments );
// If we don't have listeners for this event, clean the DOM up.
if ( !this.hasListeners( eventName ) ) {
var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
var listener = nativeListeners && nativeListeners[ eventName ];
if ( listener ) {
if ( this.$.removeEventListener )
this.$.removeEventListener( eventName, listener, false );
else if ( this.$.detachEvent )
this.$.detachEvent( 'on' + eventName, listener );
delete nativeListeners[ eventName ];
}
}
},
/**
* Removes any listener set on this object.
*
* To avoid memory leaks we must assure that there are no
* references left after the object is no longer needed.
*/
removeAllListeners: function() {
var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
for ( var eventName in nativeListeners ) {
var listener = nativeListeners[ eventName ];
if ( this.$.detachEvent )
this.$.detachEvent( 'on' + eventName, listener );
else if ( this.$.removeEventListener )
this.$.removeEventListener( eventName, listener, false );
delete nativeListeners[ eventName ];
}
}
};
})();
(function( domObjectProto ) {
var customData = {};
CKEDITOR.on( 'reset', function() {
customData = {};
});
/**
* Determines whether the specified object is equal to the current object.
*
* var doc = new CKEDITOR.dom.document( document );
* alert( doc.equals( CKEDITOR.document ) ); // true
* alert( doc == CKEDITOR.document ); // false
*
* @param {Object} object The object to compare with the current object.
* @returns {Boolean} `true` if the object is equal.
*/
domObjectProto.equals = function( object ) {
// Try/Catch to avoid IE permission error when object is from different document.
try {
return ( object && object.$ === this.$ );
} catch ( er ) {
return false;
}
};
/**
* Sets a data slot value for this object. These values are shared by all
* instances pointing to that same DOM object.
*
* **Note:** The created data slot is only guarantied to be available on this unique dom node,
* thus any wish to continue access it from other element clones (either created by
* clone node or from `innerHtml`) will fail, for such usage, please use
* {@link CKEDITOR.dom.element#setAttribute} instead.
*
* var element = new CKEDITOR.dom.element( 'span' );
* element.setCustomData( 'hasCustomData', true );
*
* @param {String} key A key used to identify the data slot.
* @param {Object} value The value to set to the data slot.
* @returns {CKEDITOR.dom.domObject} This DOM object instance.
* @chainable
*/
domObjectProto.setCustomData = function( key, value ) {
var expandoNumber = this.getUniqueId(),
dataSlot = customData[ expandoNumber ] || ( customData[ expandoNumber ] = {} );
dataSlot[ key ] = value;
return this;
};
/**
* Gets the value set to a data slot in this object.
*
* var element = new CKEDITOR.dom.element( 'span' );
* alert( element.getCustomData( 'hasCustomData' ) ); // e.g. 'true'
* alert( element.getCustomData( 'nonExistingKey' ) ); // null
*
* @param {String} key The key used to identify the data slot.
* @returns {Object} This value set to the data slot.
*/
domObjectProto.getCustomData = function( key ) {
var expandoNumber = this.$[ 'data-cke-expando' ],
dataSlot = expandoNumber && customData[ expandoNumber ];
return ( dataSlot && key in dataSlot ) ? dataSlot[ key ] : null;
};
/**
* Removes the value in data slot under given `key`.
*
* @param {String} key
* @returns {Object} Removed value or `null` if not found.
*/
domObjectProto.removeCustomData = function( key ) {
var expandoNumber = this.$[ 'data-cke-expando' ],
dataSlot = expandoNumber && customData[ expandoNumber ],
retval, hadKey;
if ( dataSlot ) {
retval = dataSlot[ key ];
hadKey = key in dataSlot;
delete dataSlot[ key ];
}
return hadKey ? retval : null;
};
/**
* Removes any data stored on this object.
* To avoid memory leaks we must assure that there are no
* references left after the object is no longer needed.
*/
domObjectProto.clearCustomData = function() {
// Clear all event listeners
this.removeAllListeners();
var expandoNumber = this.$[ 'data-cke-expando' ];
expandoNumber && delete customData[ expandoNumber ];
};
/**
* Gets an ID that can be used to identiquely identify this DOM object in
* the running session.
*
* @returns {Number} A unique ID.
*/
domObjectProto.getUniqueId = function() {
return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() );
};
// Implement CKEDITOR.event.
CKEDITOR.event.implementOn( domObjectProto );
})( CKEDITOR.dom.domObject.prototype );

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,251 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
'use strict';
(function() {
var pathBlockLimitElements = {},
pathBlockElements = {},
tag;
// Elements that are considered the "Block limit" in an element path.
for ( tag in CKEDITOR.dtd.$blockLimit ) {
// Exclude from list roots.
if ( !( tag in CKEDITOR.dtd.$list ) )
pathBlockLimitElements[ tag ] = 1;
}
// Elements that are considered the "End level Block" in an element path.
for ( tag in CKEDITOR.dtd.$block ) {
// Exclude block limits, and empty block element, e.g. hr.
if ( !( tag in CKEDITOR.dtd.$blockLimit || tag in CKEDITOR.dtd.$empty ) )
pathBlockElements[ tag ] = 1;
}
// Check if an element contains any block element.
function checkHasBlock( element ) {
var childNodes = element.getChildren();
for ( var i = 0, count = childNodes.count(); i < count; i++ ) {
var child = childNodes.getItem( i );
if ( child.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$block[ child.getName() ] )
return true;
}
return false;
}
/**
* Retrieve the list of nodes walked from the start node up to the editable element of the editor.
*
* @class
* @constructor Creates an element path class instance.
* @param {CKEDITOR.dom.element} startNode From which the path should start.
* @param {CKEDITOR.dom.element} root To which element the path should stop, defaults to the `body` element.
*/
CKEDITOR.dom.elementPath = function( startNode, root ) {
var block = null,
blockLimit = null,
elements = [],
e = startNode,
elementName;
// Backward compact.
root = root || startNode.getDocument().getBody();
do {
if ( e.type == CKEDITOR.NODE_ELEMENT ) {
elements.push( e );
if ( !this.lastElement ) {
this.lastElement = e;
// If a table is fully selected at the end of the element path,
// it must not become the block limit.
if ( e.is( CKEDITOR.dtd.$object ) )
continue;
}
if ( e.equals( root ) )
break;
if ( !blockLimit ) {
elementName = e.getName();
// First editable element becomes a block limit, because it cannot be split.
if ( e.getAttribute( 'contenteditable' ) == 'true' )
blockLimit = e;
// "Else" because element cannot be both - block and block levelimit.
else if ( !block && pathBlockElements[ elementName ] )
block = e;
if ( pathBlockLimitElements[ elementName ] ) {
// End level DIV is considered as the block, if no block is available. (#525)
// But it must NOT be the root element (checked above).
if ( !block && elementName == 'div' && !checkHasBlock( e ) )
block = e;
else
blockLimit = e;
}
}
}
}
while ( ( e = e.getParent() ) );
// Block limit defaults to root.
if ( !blockLimit )
blockLimit = root;
/**
* First non-empty block element which:
*
* * is not a {@link CKEDITOR.dtd#$blockLimit},
* * or is a `div` which does not contain block elements and is not a `root`.
*
* This means a first, splittable block in elements path.
*
* @readonly
* @property {CKEDITOR.dom.element}
*/
this.block = block;
/**
* See the {@link CKEDITOR.dtd#$blockLimit} description.
*
* @readonly
* @property {CKEDITOR.dom.element}
*/
this.blockLimit = blockLimit;
/**
* The root of the elements path - `root` argument passed to class constructor or a `body` element.
*
* @readonly
* @property {CKEDITOR.dom.element}
*/
this.root = root;
/**
* An array of elements (from `startNode` to `root`) in the path.
*
* @readonly
* @property {CKEDITOR.dom.element[]}
*/
this.elements = elements;
/**
* The last element of the elements path - `startNode` or its parent.
*
* @readonly
* @property {CKEDITOR.dom.element} lastElement
*/
};
})();
CKEDITOR.dom.elementPath.prototype = {
/**
* Compares this element path with another one.
*
* @param {CKEDITOR.dom.elementPath} otherPath The elementPath object to be
* compared with this one.
* @returns {Boolean} `true` if the paths are equal, containing the same
* number of elements and the same elements in the same order.
*/
compare: function( otherPath ) {
var thisElements = this.elements;
var otherElements = otherPath && otherPath.elements;
if ( !otherElements || thisElements.length != otherElements.length )
return false;
for ( var i = 0; i < thisElements.length; i++ ) {
if ( !thisElements[ i ].equals( otherElements[ i ] ) )
return false;
}
return true;
},
/**
* Search the path elements that meets the specified criteria.
*
* @param {String/Array/Function/Object/CKEDITOR.dom.element} query The criteria that can be
* either a tag name, list (array and object) of tag names, element or an node evaluator function.
* @param {Boolean} [excludeRoot] Not taking path root element into consideration.
* @param {Boolean} [fromTop] Search start from the topmost element instead of bottom.
* @returns {CKEDITOR.dom.element} The first matched dom element or `null`.
*/
contains: function( query, excludeRoot, fromTop ) {
var evaluator;
if ( typeof query == 'string' )
evaluator = function( node ) {
return node.getName() == query;
};
if ( query instanceof CKEDITOR.dom.element )
evaluator = function( node ) {
return node.equals( query );
};
else if ( CKEDITOR.tools.isArray( query ) )
evaluator = function( node ) {
return CKEDITOR.tools.indexOf( query, node.getName() ) > -1;
};
else if ( typeof query == 'function' )
evaluator = query;
else if ( typeof query == 'object' )
evaluator = function( node ) {
return node.getName() in query;
};
var elements = this.elements,
length = elements.length;
excludeRoot && length--;
if ( fromTop ) {
elements = Array.prototype.slice.call( elements, 0 );
elements.reverse();
}
for ( var i = 0; i < length; i++ ) {
if ( evaluator( elements[ i ] ) )
return elements[ i ];
}
return null;
},
/**
* Check whether the elements path is the proper context for the specified
* tag name in the DTD.
*
* @param {String} tag The tag name.
* @returns {Boolean}
*/
isContextFor: function( tag ) {
var holder;
// Check for block context.
if ( tag in CKEDITOR.dtd.$block ) {
// Indeterminate elements which are not subjected to be splitted or surrounded must be checked first.
var inter = this.contains( CKEDITOR.dtd.$intermediate );
holder = inter || ( this.root.equals( this.block ) && this.block ) || this.blockLimit;
return !!holder.getDtd()[ tag ];
}
return true;
},
/**
* Retrieve the text direction for this elements path.
*
* @returns {'ltr'/'rtl'}
*/
direction: function() {
var directionNode = this.block || this.blockLimit || this.root;
return directionNode.getDirection( 1 );
}
};

View File

@ -0,0 +1,208 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom.event} class, which
* represents the a native DOM event object.
*/
/**
* Represents a native DOM event object.
*
* @class
* @constructor Creates an event class instance.
* @param {Object} domEvent A native DOM event object.
*/
CKEDITOR.dom.event = function( domEvent ) {
/**
* The native DOM event object represented by this class instance.
*
* @readonly
*/
this.$ = domEvent;
};
CKEDITOR.dom.event.prototype = {
/**
* Gets the key code associated to the event.
*
* alert( event.getKey() ); // '65' is 'a' has been pressed
*
* @returns {Number} The key code.
*/
getKey: function() {
return this.$.keyCode || this.$.which;
},
/**
* Gets a number represeting the combination of the keys pressed during the
* event. It is the sum with the current key code and the {@link CKEDITOR#CTRL},
* {@link CKEDITOR#SHIFT} and {@link CKEDITOR#ALT} constants.
*
* alert( event.getKeystroke() == 65 ); // 'a' key
* alert( event.getKeystroke() == CKEDITOR.CTRL + 65 ); // CTRL + 'a' key
* alert( event.getKeystroke() == CKEDITOR.CTRL + CKEDITOR.SHIFT + 65 ); // CTRL + SHIFT + 'a' key
*
* @returns {Number} The number representing the keys combination.
*/
getKeystroke: function() {
var keystroke = this.getKey();
if ( this.$.ctrlKey || this.$.metaKey )
keystroke += CKEDITOR.CTRL;
if ( this.$.shiftKey )
keystroke += CKEDITOR.SHIFT;
if ( this.$.altKey )
keystroke += CKEDITOR.ALT;
return keystroke;
},
/**
* Prevents the original behavior of the event to happen. It can optionally
* stop propagating the event in the event chain.
*
* var element = CKEDITOR.document.getById( 'myElement' );
* element.on( 'click', function( ev ) {
* // The DOM event object is passed by the 'data' property.
* var domEvent = ev.data;
* // Prevent the click to chave any effect in the element.
* domEvent.preventDefault();
* } );
*
* @param {Boolean} [stopPropagation=false] Stop propagating this event in the
* event chain.
*/
preventDefault: function( stopPropagation ) {
var $ = this.$;
if ( $.preventDefault )
$.preventDefault();
else
$.returnValue = false;
if ( stopPropagation )
this.stopPropagation();
},
/**
* Stops this event propagation in the event chain.
*/
stopPropagation: function() {
var $ = this.$;
if ( $.stopPropagation )
$.stopPropagation();
else
$.cancelBubble = true;
},
/**
* Returns the DOM node where the event was targeted to.
*
* var element = CKEDITOR.document.getById( 'myElement' );
* element.on( 'click', function( ev ) {
* // The DOM event object is passed by the 'data' property.
* var domEvent = ev.data;
* // Add a CSS class to the event target.
* domEvent.getTarget().addClass( 'clicked' );
* } );
*
* @returns {CKEDITOR.dom.node} The target DOM node.
*/
getTarget: function() {
var rawNode = this.$.target || this.$.srcElement;
return rawNode ? new CKEDITOR.dom.node( rawNode ) : null;
},
/**
* Returns an integer value that indicates the current processing phase of an event.
* For browsers that doesn't support event phase, {@link CKEDITOR#EVENT_PHASE_AT_TARGET} is always returned.
*
* @returns {Number} One of {@link CKEDITOR#EVENT_PHASE_CAPTURING},
* {@link CKEDITOR#EVENT_PHASE_AT_TARGET}, or {@link CKEDITOR#EVENT_PHASE_BUBBLING}.
*/
getPhase: function() {
return this.$.eventPhase || 2;
},
/**
* Retrieves the coordinates of the mouse pointer relative to the top-left
* corner of the document, in mouse related event.
*
* element.on( 'mousemouse', function( ev ) {
* var pageOffset = ev.data.getPageOffset();
* alert( pageOffset.x ); // page offset X
* alert( pageOffset.y ); // page offset Y
* } );
*
* @returns {Object} The object contains the position.
* @returns {Number} return.x
* @returns {Number} return.y
*/
getPageOffset : function() {
var doc = this.getTarget().getDocument().$;
var pageX = this.$.pageX || this.$.clientX + ( doc.documentElement.scrollLeft || doc.body.scrollLeft );
var pageY = this.$.pageY || this.$.clientY + ( doc.documentElement.scrollTop || doc.body.scrollTop );
return { x : pageX, y : pageY };
}
};
// For the followind constants, we need to go over the Unicode boundaries
// (0x10FFFF) to avoid collision.
/**
* CTRL key (0x110000).
*
* @readonly
* @property {Number} [=0x110000]
* @member CKEDITOR
*/
CKEDITOR.CTRL = 0x110000;
/**
* SHIFT key (0x220000).
*
* @readonly
* @property {Number} [=0x220000]
* @member CKEDITOR
*/
CKEDITOR.SHIFT = 0x220000;
/**
* ALT key (0x440000).
*
* @readonly
* @property {Number} [=0x440000]
* @member CKEDITOR
*/
CKEDITOR.ALT = 0x440000;
/**
* Capturing phase.
*
* @readonly
* @property {Number} [=1]
* @member CKEDITOR
*/
CKEDITOR.EVENT_PHASE_CAPTURING = 1;
/**
* Event at target.
*
* @readonly
* @property {Number} [=2]
* @member CKEDITOR
*/
CKEDITOR.EVENT_PHASE_AT_TARGET = 2;
/**
* Bubbling phase.
*
* @readonly
* @property {Number} [=3]
* @member CKEDITOR
*/
CKEDITOR.EVENT_PHASE_BUBBLING = 3;

View File

@ -0,0 +1,335 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @ignore
* File overview: DOM iterator, which iterates over list items, lines and paragraphs.
*/
(function() {
/**
* Represents iterator class.
*
* @class CKEDITOR.dom.iterator
* @constructor Creates an iterator class instance.
* @param {CKEDITOR.dom.range} range
* @todo
*/
function iterator( range ) {
if ( arguments.length < 1 )
return;
this.range = range;
this.forceBrBreak = 0;
// Whether include <br>s into the enlarged range.(#3730).
this.enlargeBr = 1;
this.enforceRealBlocks = 0;
this._ || ( this._ = {} );
}
var beginWhitespaceRegex = /^[\r\n\t ]+$/,
// Ignore bookmark nodes.(#3783)
bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
skipGuard = function( node ) {
return bookmarkGuard( node ) && whitespacesGuard( node );
};
// Get a reference for the next element, bookmark nodes are skipped.
function getNextSourceNode( node, startFromSibling, lastNode ) {
var next = node.getNextSourceNode( startFromSibling, null, lastNode );
while ( !bookmarkGuard( next ) )
next = next.getNextSourceNode( startFromSibling, null, lastNode );
return next;
}
iterator.prototype = {
/**
* @todo
*/
getNextParagraph: function( blockTag ) {
blockTag = blockTag || 'p';
// Block-less range should be checked first.
if ( !CKEDITOR.dtd[ this.range.root.getName() ][ blockTag ] )
return null;
// The block element to be returned.
var block;
// The range object used to identify the paragraph contents.
var range;
// Indicats that the current element in the loop is the last one.
var isLast;
// Indicate at least one of the range boundaries is inside a preformat block.
var touchPre;
// Instructs to cleanup remaining BRs.
var removePreviousBr, removeLastBr;
// This is the first iteration. Let's initialize it.
if ( !this._.started ) {
range = this.range.clone();
// Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
range.shrink( CKEDITOR.NODE_ELEMENT, true );
touchPre = range.endContainer.hasAscendant( 'pre', true ) || range.startContainer.hasAscendant( 'pre', true );
range.enlarge( this.forceBrBreak && !touchPre || !this.enlargeBr ? CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
if ( !range.collapsed ) {
var walker = new CKEDITOR.dom.walker( range.clone() ),
ignoreBookmarkTextEvaluator = CKEDITOR.dom.walker.bookmark( true, true );
// Avoid anchor inside bookmark inner text.
walker.evaluator = ignoreBookmarkTextEvaluator;
this._.nextNode = walker.next();
// TODO: It's better to have walker.reset() used here.
walker = new CKEDITOR.dom.walker( range.clone() );
walker.evaluator = ignoreBookmarkTextEvaluator;
var lastNode = walker.previous();
this._.lastNode = lastNode.getNextSourceNode( true );
// We may have an empty text node at the end of block due to [3770].
// If that node is the lastNode, it would cause our logic to leak to the
// next block.(#3887)
if ( this._.lastNode && this._.lastNode.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim( this._.lastNode.getText() ) && this._.lastNode.getParent().isBlockBoundary() ) {
var testRange = this.range.clone();
testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
if ( testRange.checkEndOfBlock() ) {
var path = new CKEDITOR.dom.elementPath( testRange.endContainer, testRange.root );
var lastBlock = path.block || path.blockLimit;
this._.lastNode = lastBlock.getNextSourceNode( true );
}
}
// Probably the document end is reached, we need a marker node.
if ( !this._.lastNode ) {
this._.lastNode = this._.docEndMarker = range.document.createText( '' );
this._.lastNode.insertAfter( lastNode );
}
// Let's reuse this variable.
range = null;
}
this._.started = 1;
}
var currentNode = this._.nextNode;
lastNode = this._.lastNode;
this._.nextNode = null;
while ( currentNode ) {
// closeRange indicates that a paragraph boundary has been found,
// so the range can be closed.
var closeRange = 0,
parentPre = currentNode.hasAscendant( 'pre' );
// includeNode indicates that the current node is good to be part
// of the range. By default, any non-element node is ok for it.
var includeNode = ( currentNode.type != CKEDITOR.NODE_ELEMENT ),
continueFromSibling = 0;
// If it is an element node, let's check if it can be part of the
// range.
if ( !includeNode ) {
var nodeName = currentNode.getName();
if ( currentNode.isBlockBoundary( this.forceBrBreak && !parentPre && { br:1 } ) ) {
// <br> boundaries must be part of the range. It will
// happen only if ForceBrBreak.
if ( nodeName == 'br' )
includeNode = 1;
else if ( !range && !currentNode.getChildCount() && nodeName != 'hr' ) {
// If we have found an empty block, and haven't started
// the range yet, it means we must return this block.
block = currentNode;
isLast = currentNode.equals( lastNode );
break;
}
// The range must finish right before the boundary,
// including possibly skipped empty spaces. (#1603)
if ( range ) {
range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
// The found boundary must be set as the next one at this
// point. (#1717)
if ( nodeName != 'br' )
this._.nextNode = currentNode;
}
closeRange = 1;
} else {
// If we have child nodes, let's check them.
if ( currentNode.getFirst() ) {
// If we don't have a range yet, let's start it.
if ( !range ) {
range = this.range.clone();
range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
}
currentNode = currentNode.getFirst();
continue;
}
includeNode = 1;
}
} else if ( currentNode.type == CKEDITOR.NODE_TEXT ) {
// Ignore normal whitespaces (i.e. not including &nbsp; or
// other unicode whitespaces) before/after a block node.
if ( beginWhitespaceRegex.test( currentNode.getText() ) )
includeNode = 0;
}
// The current node is good to be part of the range and we are
// starting a new range, initialize it first.
if ( includeNode && !range ) {
range = this.range.clone();
range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
}
// The last node has been found.
isLast = ( ( !closeRange || includeNode ) && currentNode.equals( lastNode ) );
// If we are in an element boundary, let's check if it is time
// to close the range, otherwise we include the parent within it.
if ( range && !closeRange ) {
while ( !currentNode.getNext( skipGuard ) && !isLast ) {
var parentNode = currentNode.getParent();
if ( parentNode.isBlockBoundary( this.forceBrBreak && !parentPre && { br:1 } ) ) {
closeRange = 1;
includeNode = 0;
isLast = isLast || ( parentNode.equals( lastNode ) );
// Make sure range includes bookmarks at the end of the block. (#7359)
range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
break;
}
currentNode = parentNode;
includeNode = 1;
isLast = ( currentNode.equals( lastNode ) );
continueFromSibling = 1;
}
}
// Now finally include the node.
if ( includeNode )
range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
currentNode = getNextSourceNode( currentNode, continueFromSibling, lastNode );
isLast = !currentNode;
// We have found a block boundary. Let's close the range and move out of the
// loop.
if ( isLast || ( closeRange && range ) )
break;
}
// Now, based on the processed range, look for (or create) the block to be returned.
if ( !block ) {
// If no range has been found, this is the end.
if ( !range ) {
this._.docEndMarker && this._.docEndMarker.remove();
this._.nextNode = null;
return null;
}
var startPath = new CKEDITOR.dom.elementPath( range.startContainer, range.root );
var startBlockLimit = startPath.blockLimit,
checkLimits = { div:1,th:1,td:1 };
block = startPath.block;
if ( !block && startBlockLimit && !this.enforceRealBlocks && checkLimits[ startBlockLimit.getName() ] && range.checkStartOfBlock() && range.checkEndOfBlock() && !startBlockLimit.equals( range.root ) )
block = startBlockLimit;
else if ( !block || ( this.enforceRealBlocks && block.getName() == 'li' ) ) {
// Create the fixed block.
block = this.range.document.createElement( blockTag );
// Move the contents of the temporary range to the fixed block.
range.extractContents().appendTo( block );
block.trim();
// Insert the fixed block into the DOM.
range.insertNode( block );
removePreviousBr = removeLastBr = true;
} else if ( block.getName() != 'li' ) {
// If the range doesn't includes the entire contents of the
// block, we must split it, isolating the range in a dedicated
// block.
if ( !range.checkStartOfBlock() || !range.checkEndOfBlock() ) {
// The resulting block will be a clone of the current one.
block = block.clone( false );
// Extract the range contents, moving it to the new block.
range.extractContents().appendTo( block );
block.trim();
// Split the block. At this point, the range will be in the
// right position for our intents.
var splitInfo = range.splitBlock();
removePreviousBr = !splitInfo.wasStartOfBlock;
removeLastBr = !splitInfo.wasEndOfBlock;
// Insert the new block into the DOM.
range.insertNode( block );
}
} else if ( !isLast ) {
// LIs are returned as is, with all their children (due to the
// nested lists). But, the next node is the node right after
// the current range, which could be an <li> child (nested
// lists) or the next sibling <li>.
this._.nextNode = ( block.equals( lastNode ) ? null : getNextSourceNode( range.getBoundaryNodes().endNode, 1, lastNode ) );
}
}
if ( removePreviousBr ) {
var previousSibling = block.getPrevious();
if ( previousSibling && previousSibling.type == CKEDITOR.NODE_ELEMENT ) {
if ( previousSibling.getName() == 'br' )
previousSibling.remove();
else if ( previousSibling.getLast() && previousSibling.getLast().$.nodeName.toLowerCase() == 'br' )
previousSibling.getLast().remove();
}
}
if ( removeLastBr ) {
var lastChild = block.getLast();
if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.getName() == 'br' ) {
// Take care not to remove the block expanding <br> in non-IE browsers.
if ( CKEDITOR.env.ie || lastChild.getPrevious( bookmarkGuard ) || lastChild.getNext( bookmarkGuard ) )
lastChild.remove();
}
}
// Get a reference for the next element. This is important because the
// above block can be removed or changed, so we can rely on it for the
// next interation.
if ( !this._.nextNode ) {
this._.nextNode = ( isLast || block.equals( lastNode ) || !lastNode ) ? null : getNextSourceNode( block, 1, lastNode );
}
return block;
}
};
/**
* Creates {CKEDITOR.dom.iterator} instance for this range.
*
* @member CKEDITOR.dom.range
* @returns {CKEDITOR.dom.iterator}
*/
CKEDITOR.dom.range.prototype.createIterator = function() {
return new iterator( this );
};
})();

View File

@ -0,0 +1,741 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom.node} class which is the base
* class for classes that represent DOM nodes.
*/
/**
* Base class for classes representing DOM nodes. This constructor may return
* an instance of a class that inherits from this class, like
* {@link CKEDITOR.dom.element} or {@link CKEDITOR.dom.text}.
*
* @class
* @extends CKEDITOR.dom.domObject
* @constructor Creates a node class instance.
* @param {Object} domNode A native DOM node.
* @see CKEDITOR.dom.element
* @see CKEDITOR.dom.text
*/
CKEDITOR.dom.node = function( domNode ) {
if ( domNode ) {
var type = domNode.nodeType == CKEDITOR.NODE_DOCUMENT ? 'document' : domNode.nodeType == CKEDITOR.NODE_ELEMENT ? 'element' : domNode.nodeType == CKEDITOR.NODE_TEXT ? 'text' : domNode.nodeType == CKEDITOR.NODE_COMMENT ? 'comment' : domNode.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT ? 'documentFragment' : 'domObject'; // Call the base constructor otherwise.
return new CKEDITOR.dom[ type ]( domNode );
}
return this;
};
CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject();
/**
* Element node type.
*
* @readonly
* @property {Number} [=1]
* @member CKEDITOR
*/
CKEDITOR.NODE_ELEMENT = 1;
/**
* Document node type.
*
* @readonly
* @property {Number} [=9]
* @member CKEDITOR
*/
CKEDITOR.NODE_DOCUMENT = 9;
/**
* Text node type.
*
* @readonly
* @property {Number} [=3]
* @member CKEDITOR
*/
CKEDITOR.NODE_TEXT = 3;
/**
* Comment node type.
*
* @readonly
* @property {Number} [=8]
* @member CKEDITOR
*/
CKEDITOR.NODE_COMMENT = 8;
/**
* Document fragment node type.
*
* @readonly
* @property {Number} [=11]
* @member CKEDITOR
*/
CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11;
CKEDITOR.POSITION_IDENTICAL = 0;
CKEDITOR.POSITION_DISCONNECTED = 1;
CKEDITOR.POSITION_FOLLOWING = 2;
CKEDITOR.POSITION_PRECEDING = 4;
CKEDITOR.POSITION_IS_CONTAINED = 8;
CKEDITOR.POSITION_CONTAINS = 16;
CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
/**
* Makes this node a child of another element.
*
* var p = new CKEDITOR.dom.element( 'p' );
* var strong = new CKEDITOR.dom.element( 'strong' );
* strong.appendTo( p );
*
* // Result: '<p><strong></strong></p>'.
*
* @param {CKEDITOR.dom.element} element The target element to which this node will be appended.
* @returns {CKEDITOR.dom.element} The target element.
*/
appendTo: function( element, toStart ) {
element.append( this, toStart );
return element;
},
/**
* Clone this node.
*
* **Note**: Values set by {#setCustomData} won't be available in the clone.
*
* @param {Boolean} [includeChildren=false] If `true` then all node's
* children will be cloned recursively.
* @param {Boolean} [cloneId=false] Whether ID attributes should be cloned too.
* @returns {CKEDITOR.dom.node} Clone of this node.
*/
clone: function( includeChildren, cloneId ) {
var $clone = this.$.cloneNode( includeChildren );
var removeIds = function( node ) {
// Reset data-cke-expando only when has been cloned (IE and only for some types of objects).
if ( node['data-cke-expando'] )
node['data-cke-expando'] = false;
if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
return;
if ( !cloneId )
node.removeAttribute( 'id', false );
if ( includeChildren ) {
var childs = node.childNodes;
for ( var i = 0; i < childs.length; i++ )
removeIds( childs[ i ] );
}
};
// The "id" attribute should never be cloned to avoid duplication.
removeIds( $clone );
return new CKEDITOR.dom.node( $clone );
},
/**
* Check if node is preceded by any sibling.
*
* @returns {Boolean}
*/
hasPrevious: function() {
return !!this.$.previousSibling;
},
/**
* Check if node is succeeded by any sibling.
*
* @returns {Boolean}
*/
hasNext: function() {
return !!this.$.nextSibling;
},
/**
* Inserts this element after a node.
*
* var em = new CKEDITOR.dom.element( 'em' );
* var strong = new CKEDITOR.dom.element( 'strong' );
* strong.insertAfter( em );
*
* // Result: '<em></em><strong></strong>'
*
* @param {CKEDITOR.dom.node} node The node that will precede this element.
* @returns {CKEDITOR.dom.node} The node preceding this one after insertion.
*/
insertAfter: function( node ) {
node.$.parentNode.insertBefore( this.$, node.$.nextSibling );
return node;
},
/**
* Inserts this element before a node.
*
* var em = new CKEDITOR.dom.element( 'em' );
* var strong = new CKEDITOR.dom.element( 'strong' );
* strong.insertBefore( em );
*
* // result: '<strong></strong><em></em>'
*
* @param {CKEDITOR.dom.node} node The node that will succeed this element.
* @returns {CKEDITOR.dom.node} The node being inserted.
*/
insertBefore: function( node ) {
node.$.parentNode.insertBefore( this.$, node.$ );
return node;
},
/**
* Inserts node before this node.
*
* var em = new CKEDITOR.dom.element( 'em' );
* var strong = new CKEDITOR.dom.element( 'strong' );
* strong.insertBeforeMe( em );
*
* // result: '<em></em><strong></strong>'
*
* @param {CKEDITOR.dom.node} node The node that will preceed this element.
* @returns {CKEDITOR.dom.node} The node being inserted.
*/
insertBeforeMe: function( node ) {
this.$.parentNode.insertBefore( node.$, this.$ );
return node;
},
/**
* Retrieves a uniquely identifiable tree address for this node.
* The tree address returned is an array of integers, with each integer
* indicating a child index of a DOM node, starting from
* `document.documentElement`.
*
* For example, assuming `<body>` is the second child
* of `<html>` (`<head>` being the first),
* and we would like to address the third child under the
* fourth child of `<body>`, the tree address returned would be:
* `[1, 3, 2]`.
*
* The tree address cannot be used for finding back the DOM tree node once
* the DOM tree structure has been modified.
*
* @param {Boolean} [normalized=false] See {@link #getIndex}.
* @returns {Array} The address.
*/
getAddress: function( normalized ) {
var address = [];
var $documentElement = this.getDocument().$.documentElement;
var node = this.$;
while ( node && node != $documentElement ) {
var parentNode = node.parentNode;
if ( parentNode ) {
// Get the node index. For performance, call getIndex
// directly, instead of creating a new node object.
address.unshift( this.getIndex.call({ $: node }, normalized ) );
}
node = parentNode;
}
return address;
},
/**
* Gets the document containing this element.
*
* var element = CKEDITOR.document.getById( 'example' );
* alert( element.getDocument().equals( CKEDITOR.document ) ); // true
*
* @returns {CKEDITOR.dom.document} The document.
*/
getDocument: function() {
return new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument );
},
/**
* Get index of a node in an array of its parent.childNodes.
*
* Let's assume having childNodes array:
*
* [ emptyText, element1, text, text, element2 ]
* element1.getIndex(); // 1
* element1.getIndex( true ); // 0
* element2.getIndex(); // 4
* element2.getIndex( true ); // 2
*
* @param {Boolean} normalized When `true` empty text nodes and one followed
* by another one text node are not counted in.
* @returns {Number} Index of a node.
*/
getIndex: function( normalized ) {
// Attention: getAddress depends on this.$
// getIndex is called on a plain object: { $ : node }
var current = this.$,
index = -1,
isNormalizing;
if ( !this.$.parentNode )
return index;
do {
// Bypass blank node and adjacent text nodes.
if ( normalized && current != this.$ && current.nodeType == CKEDITOR.NODE_TEXT && ( isNormalizing || !current.nodeValue ) ) {
continue;
}
index++;
isNormalizing = current.nodeType == CKEDITOR.NODE_TEXT;
}
while ( ( current = current.previousSibling ) )
return index;
},
/**
* @todo
*/
getNextSourceNode: function( startFromSibling, nodeType, guard ) {
// If "guard" is a node, transform it in a function.
if ( guard && !guard.call ) {
var guardNode = guard;
guard = function( node ) {
return !node.equals( guardNode );
};
}
var node = ( !startFromSibling && this.getFirst && this.getFirst() ),
parent;
// Guarding when we're skipping the current element( no children or 'startFromSibling' ).
// send the 'moving out' signal even we don't actually dive into.
if ( !node ) {
if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
return null;
node = this.getNext();
}
while ( !node && ( parent = ( parent || this ).getParent() ) ) {
// The guard check sends the "true" paramenter to indicate that
// we are moving "out" of the element.
if ( guard && guard( parent, true ) === false )
return null;
node = parent.getNext();
}
if ( !node )
return null;
if ( guard && guard( node ) === false )
return null;
if ( nodeType && nodeType != node.type )
return node.getNextSourceNode( false, nodeType, guard );
return node;
},
/**
* @todo
*/
getPreviousSourceNode: function( startFromSibling, nodeType, guard ) {
if ( guard && !guard.call ) {
var guardNode = guard;
guard = function( node ) {
return !node.equals( guardNode );
};
}
var node = ( !startFromSibling && this.getLast && this.getLast() ),
parent;
// Guarding when we're skipping the current element( no children or 'startFromSibling' ).
// send the 'moving out' signal even we don't actually dive into.
if ( !node ) {
if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
return null;
node = this.getPrevious();
}
while ( !node && ( parent = ( parent || this ).getParent() ) ) {
// The guard check sends the "true" paramenter to indicate that
// we are moving "out" of the element.
if ( guard && guard( parent, true ) === false )
return null;
node = parent.getPrevious();
}
if ( !node )
return null;
if ( guard && guard( node ) === false )
return null;
if ( nodeType && node.type != nodeType )
return node.getPreviousSourceNode( false, nodeType, guard );
return node;
},
/**
* Gets the node that preceed this element in its parent's child list.
*
* var element = CKEDITOR.dom.element.createFromHtml( '<div><i>prev</i><b>Example</b></div>' );
* var first = element.getLast().getPrev();
* alert( first.getName() ); // 'i'
*
* @param {Function} [evaluator] Filtering the result node.
* @returns {CKEDITOR.dom.node} The previous node or null if not available.
*/
getPrevious: function( evaluator ) {
var previous = this.$,
retval;
do {
previous = previous.previousSibling;
// Avoid returning the doc type node.
// http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-412266927
retval = previous && previous.nodeType != 10 && new CKEDITOR.dom.node( previous );
}
while ( retval && evaluator && !evaluator( retval ) )
return retval;
},
/**
* Gets the node that follows this element in its parent's child list.
*
* var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b><i>next</i></div>' );
* var last = element.getFirst().getNext();
* alert( last.getName() ); // 'i'
*
* @param {Function} [evaluator] Filtering the result node.
* @returns {CKEDITOR.dom.node} The next node or null if not available.
*/
getNext: function( evaluator ) {
var next = this.$,
retval;
do {
next = next.nextSibling;
retval = next && new CKEDITOR.dom.node( next );
}
while ( retval && evaluator && !evaluator( retval ) )
return retval;
},
/**
* Gets the parent element for this node.
*
* var node = editor.document.getBody().getFirst();
* var parent = node.getParent();
* alert( node.getName() ); // 'body'
*
* @param {Boolean} [allowFragmentParent=false] Consider also parent node that is of
* fragment type {@link CKEDITOR#NODE_DOCUMENT_FRAGMENT}.
* @returns {CKEDITOR.dom.element} The parent element.
*/
getParent: function( allowFragmentParent ) {
var parent = this.$.parentNode;
return ( parent && ( parent.nodeType == CKEDITOR.NODE_ELEMENT || allowFragmentParent && parent.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT ) ) ? new CKEDITOR.dom.node( parent ) : null;
},
/**
* @todo
*/
getParents: function( closerFirst ) {
var node = this;
var parents = [];
do {
parents[ closerFirst ? 'push' : 'unshift' ]( node );
}
while ( ( node = node.getParent() ) )
return parents;
},
/**
* @todo
*/
getCommonAncestor: function( node ) {
if ( node.equals( this ) )
return this;
if ( node.contains && node.contains( this ) )
return node;
var start = this.contains ? this : this.getParent();
do {
if ( start.contains( node ) ) return start;
}
while ( ( start = start.getParent() ) );
return null;
},
/**
* @todo
*/
getPosition: function( otherNode ) {
var $ = this.$;
var $other = otherNode.$;
if ( $.compareDocumentPosition )
return $.compareDocumentPosition( $other );
// IE and Safari have no support for compareDocumentPosition.
if ( $ == $other )
return CKEDITOR.POSITION_IDENTICAL;
// Only element nodes support contains and sourceIndex.
if ( this.type == CKEDITOR.NODE_ELEMENT && otherNode.type == CKEDITOR.NODE_ELEMENT ) {
if ( $.contains ) {
if ( $.contains( $other ) )
return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING;
if ( $other.contains( $ ) )
return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
}
if ( 'sourceIndex' in $ ) {
return ( $.sourceIndex < 0 || $other.sourceIndex < 0 ) ? CKEDITOR.POSITION_DISCONNECTED : ( $.sourceIndex < $other.sourceIndex ) ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
}
}
// For nodes that don't support compareDocumentPosition, contains
// or sourceIndex, their "address" is compared.
var addressOfThis = this.getAddress(),
addressOfOther = otherNode.getAddress(),
minLevel = Math.min( addressOfThis.length, addressOfOther.length );
// Determinate preceed/follow relationship.
for ( var i = 0; i <= minLevel - 1; i++ ) {
if ( addressOfThis[ i ] != addressOfOther[ i ] ) {
if ( i < minLevel ) {
return addressOfThis[ i ] < addressOfOther[ i ] ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
}
break;
}
}
// Determinate contains/contained relationship.
return ( addressOfThis.length < addressOfOther.length ) ? CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
},
/**
* Gets the closest ancestor node of this node, specified by its name.
*
* // Suppose we have the following HTML structure:
* // <div id="outer"><div id="inner"><p><b>Some text</b></p></div></div>
* // If node == <b>
* ascendant = node.getAscendant( 'div' ); // ascendant == <div id="inner">
* ascendant = node.getAscendant( 'b' ); // ascendant == null
* ascendant = node.getAscendant( 'b', true ); // ascendant == <b>
* ascendant = node.getAscendant( { div:1,p:1 } ); // Searches for the first 'div' or 'p': ascendant == <div id="inner">
*
* @since 3.6.1
* @param {String} reference The name of the ancestor node to search or
* an object with the node names to search for.
* @param {Boolean} [includeSelf] Whether to include the current
* node in the search.
* @returns {CKEDITOR.dom.node} The located ancestor node or null if not found.
*/
getAscendant: function( reference, includeSelf ) {
var $ = this.$,
name;
if ( !includeSelf )
$ = $.parentNode;
while ( $ ) {
if ( $.nodeName && ( name = $.nodeName.toLowerCase(), ( typeof reference == 'string' ? name == reference : name in reference ) ) )
return new CKEDITOR.dom.node( $ );
try {
$ = $.parentNode;
} catch( e ) {
$ = null;
}
}
return null;
},
/**
* @todo
*/
hasAscendant: function( name, includeSelf ) {
var $ = this.$;
if ( !includeSelf )
$ = $.parentNode;
while ( $ ) {
if ( $.nodeName && $.nodeName.toLowerCase() == name )
return true;
$ = $.parentNode;
}
return false;
},
/**
* @todo
*/
move: function( target, toStart ) {
target.append( this.remove(), toStart );
},
/**
* Removes this node from the document DOM.
*
* var element = CKEDITOR.document.getById( 'MyElement' );
* element.remove();
*
* @param {Boolean} [preserveChildren=false] Indicates that the children
* elements must remain in the document, removing only the outer tags.
*/
remove: function( preserveChildren ) {
var $ = this.$;
var parent = $.parentNode;
if ( parent ) {
if ( preserveChildren ) {
// Move all children before the node.
for ( var child;
( child = $.firstChild ); ) {
parent.insertBefore( $.removeChild( child ), $ );
}
}
parent.removeChild( $ );
}
return this;
},
/**
* @todo
*/
replace: function( nodeToReplace ) {
this.insertBefore( nodeToReplace );
nodeToReplace.remove();
},
/**
* @todo
*/
trim: function() {
this.ltrim();
this.rtrim();
},
/**
* @todo
*/
ltrim: function() {
var child;
while ( this.getFirst && ( child = this.getFirst() ) ) {
if ( child.type == CKEDITOR.NODE_TEXT ) {
var trimmed = CKEDITOR.tools.ltrim( child.getText() ),
originalLength = child.getLength();
if ( !trimmed ) {
child.remove();
continue;
} else if ( trimmed.length < originalLength ) {
child.split( originalLength - trimmed.length );
// IE BUG: child.remove() may raise JavaScript errors here. (#81)
this.$.removeChild( this.$.firstChild );
}
}
break;
}
},
/**
* @todo
*/
rtrim: function() {
var child;
while ( this.getLast && ( child = this.getLast() ) ) {
if ( child.type == CKEDITOR.NODE_TEXT ) {
var trimmed = CKEDITOR.tools.rtrim( child.getText() ),
originalLength = child.getLength();
if ( !trimmed ) {
child.remove();
continue;
} else if ( trimmed.length < originalLength ) {
child.split( trimmed.length );
// IE BUG: child.getNext().remove() may raise JavaScript errors here.
// (#81)
this.$.lastChild.parentNode.removeChild( this.$.lastChild );
}
}
break;
}
if ( !CKEDITOR.env.ie && !CKEDITOR.env.opera ) {
child = this.$.lastChild;
if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' ) {
// Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
child.parentNode.removeChild( child );
}
}
},
/**
* Checks if this node is read-only (should not be changed).
*
* **Note:** When `attributeCheck` is not used, this method only work for elements
* that are already presented in the document, otherwise the result
* is not guaranteed, it's mainly for performance consideration.
*
* // For the following HTML:
* // <div contenteditable="false">Some <b>text</b></div>
*
* // If "ele" is the above <div>
* element.isReadOnly(); // true
*
* @since 3.5
* @returns {Boolean}
*/
isReadOnly: function() {
var element = this;
if ( this.type != CKEDITOR.NODE_ELEMENT )
element = this.getParent();
if ( element && typeof element.$.isContentEditable != 'undefined' )
return !( element.$.isContentEditable || element.data( 'cke-editable' ) );
else {
// Degrade for old browsers which don't support "isContentEditable", e.g. FF3
while ( element ) {
if ( element.data( 'cke-editable' ) )
break;
if ( element.getAttribute( 'contentEditable' ) == 'false' )
return true;
else if ( element.getAttribute( 'contentEditable' ) == 'true' )
break;
element = element.getParent();
}
// Reached the root of DOM tree, no editable found.
return !element;
}
}
});

View File

@ -0,0 +1,43 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* Represents a list of {@link CKEDITOR.dom.node} objects.
* It's a wrapper for native nodes list.
*
* var nodeList = CKEDITOR.document.getBody().getChildren();
* alert( nodeList.count() ); // number [0;N]
*
* @class
* @constructor Creates a document class instance.
* @param {Object} nativeList
*/
CKEDITOR.dom.nodeList = function( nativeList ) {
this.$ = nativeList;
};
CKEDITOR.dom.nodeList.prototype = {
/**
* Get count of nodes in this list.
*
* @returns {Number}
*/
count: function() {
return this.$.length;
},
/**
* Get node from the list.
*
* @returns {CKEDITOR.dom.node}
*/
getItem: function( index ) {
if ( index < 0 || index >= this.$.length )
return null;
var $node = this.$[ index ];
return $node ? new CKEDITOR.dom.node( $node ) : null;
}
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,201 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function() {
/**
* Represents a list os CKEDITOR.dom.range objects, which can be easily
* iterated sequentially.
*
* @class
* @extends Array
* @constructor Creates a rangeList class instance.
* @param {CKEDITOR.dom.range/CKEDITOR.dom.range[]} [ranges] The ranges contained on this list.
* Note that, if an array of ranges is specified, the range sequence
* should match its DOM order. This class will not help to sort them.
*/
CKEDITOR.dom.rangeList = function( ranges ) {
if ( ranges instanceof CKEDITOR.dom.rangeList )
return ranges;
if ( !ranges )
ranges = [];
else if ( ranges instanceof CKEDITOR.dom.range )
ranges = [ ranges ];
return CKEDITOR.tools.extend( ranges, mixins );
};
var mixins = {
/**
* Creates an instance of the rangeList iterator, it should be used
* only when the ranges processing could be DOM intrusive, which
* means it may pollute and break other ranges in this list.
* Otherwise, it's enough to just iterate over this array in a for loop.
*
* @returns {CKEDITOR.dom.rangeListIterator}
*/
createIterator: function() {
var rangeList = this,
bookmark = CKEDITOR.dom.walker.bookmark(),
guard = function( node ) {
return !( node.is && node.is( 'tr' ) );
},
bookmarks = [],
current;
return {
/**
* Retrieves the next range in the list.
*
* @member CKEDITOR.dom.rangeListIterator
* @param {Boolean} [mergeConsequent=false] Whether join two adjacent
* ranges into single, e.g. consequent table cells.
*/
getNextRange: function( mergeConsequent ) {
current = current == undefined ? 0 : current + 1;
var range = rangeList[ current ];
// Multiple ranges might be mangled by each other.
if ( range && rangeList.length > 1 ) {
// Bookmarking all other ranges on the first iteration,
// the range correctness after it doesn't matter since we'll
// restore them before the next iteration.
if ( !current ) {
// Make sure bookmark correctness by reverse processing.
for ( var i = rangeList.length - 1; i >= 0; i-- )
bookmarks.unshift( rangeList[ i ].createBookmark( true ) );
}
if ( mergeConsequent ) {
// Figure out how many ranges should be merged.
var mergeCount = 0;
while ( rangeList[ current + mergeCount + 1 ] ) {
var doc = range.document,
found = 0,
left = doc.getById( bookmarks[ mergeCount ].endNode ),
right = doc.getById( bookmarks[ mergeCount + 1 ].startNode ),
next;
// Check subsequent range.
while ( 1 ) {
next = left.getNextSourceNode( false );
if ( !right.equals( next ) ) {
// This could be yet another bookmark or
// walking across block boundaries.
if ( bookmark( next ) || ( next.type == CKEDITOR.NODE_ELEMENT && next.isBlockBoundary() ) ) {
left = next;
continue;
}
} else
found = 1;
break;
}
if ( !found )
break;
mergeCount++;
}
}
range.moveToBookmark( bookmarks.shift() );
// Merge ranges finally after moving to bookmarks.
while ( mergeCount-- ) {
next = rangeList[ ++current ];
next.moveToBookmark( bookmarks.shift() );
range.setEnd( next.endContainer, next.endOffset );
}
}
return range;
}
};
},
/**
* Create bookmarks for all ranges. See {@link CKEDITOR.dom.range#createBookmark}.
*
* @param {Boolean} [serializable=false] See {@link CKEDITOR.dom.range#createBookmark}.
* @returns {Array} Array of bookmarks.
*/
createBookmarks: function( serializable ) {
var retval = [],
bookmark;
for ( var i = 0; i < this.length; i++ ) {
retval.push( bookmark = this[ i ].createBookmark( serializable, true ) );
// Updating the container & offset values for ranges
// that have been touched.
for ( var j = i + 1; j < this.length; j++ ) {
this[ j ] = updateDirtyRange( bookmark, this[ j ] );
this[ j ] = updateDirtyRange( bookmark, this[ j ], true );
}
}
return retval;
},
/**
* Create "unobtrusive" bookmarks for all ranges. See {@link CKEDITOR.dom.range#createBookmark2}.
*
* @param {Boolean} [normalized=false] See {@link CKEDITOR.dom.range#createBookmark2}.
* @returns {Array} Array of bookmarks.
*/
createBookmarks2: function( normalized ) {
var bookmarks = [];
for ( var i = 0; i < this.length; i++ )
bookmarks.push( this[ i ].createBookmark2( normalized ) );
return bookmarks;
},
/**
* Move each range in the list to the position specified by a list of bookmarks.
*
* @param {Array} bookmarks The list of bookmarks, each one matching a range in the list.
*/
moveToBookmarks: function( bookmarks ) {
for ( var i = 0; i < this.length; i++ )
this[ i ].moveToBookmark( bookmarks[ i ] );
}
};
// Update the specified range which has been mangled by previous insertion of
// range bookmark nodes.(#3256)
function updateDirtyRange( bookmark, dirtyRange, checkEnd ) {
var serializable = bookmark.serializable,
container = dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ],
offset = checkEnd ? 'endOffset' : 'startOffset';
var bookmarkStart = serializable ? dirtyRange.document.getById( bookmark.startNode ) : bookmark.startNode;
var bookmarkEnd = serializable ? dirtyRange.document.getById( bookmark.endNode ) : bookmark.endNode;
if ( container.equals( bookmarkStart.getPrevious() ) ) {
dirtyRange.startOffset = dirtyRange.startOffset - container.getLength() - bookmarkEnd.getPrevious().getLength();
container = bookmarkEnd.getNext();
} else if ( container.equals( bookmarkEnd.getPrevious() ) ) {
dirtyRange.startOffset = dirtyRange.startOffset - container.getLength();
container = bookmarkEnd.getNext();
}
container.equals( bookmarkStart.getParent() ) && dirtyRange[ offset ]++;
container.equals( bookmarkEnd.getParent() ) && dirtyRange[ offset ]++;
// Update and return this range.
dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ] = container;
return dirtyRange;
}
})();
/**
* (Virtual Class) Do not call this constructor. This class is not really part
* of the API. It just describes the return type of {@link CKEDITOR.dom.rangeList#createIterator}.
*
* @class CKEDITOR.dom.rangeListIterator
*/

View File

@ -0,0 +1,139 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* @fileOverview Defines the {@link CKEDITOR.dom.text} class, which represents
* a DOM text node.
*/
/**
* Represents a DOM text node.
*
* var nativeNode = document.createTextNode( 'Example' );
* var text = CKEDITOR.dom.text( nativeNode );
*
* var text = CKEDITOR.dom.text( 'Example' );
*
* @class
* @extends CKEDITOR.dom.node
* @constructor Creates a text class instance.
* @param {Object/String} text A native DOM text node or a string containing
* the text to use to create a new text node.
* @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
* the node in case of new node creation. Defaults to the current document.
*/
CKEDITOR.dom.text = function( text, ownerDocument ) {
if ( typeof text == 'string' )
text = ( ownerDocument ? ownerDocument.$ : document ).createTextNode( text );
// Theoretically, we should call the base constructor here
// (not CKEDITOR.dom.node though). But, IE doesn't support expando
// properties on text node, so the features provided by domObject will not
// work for text nodes (which is not a big issue for us).
//
// CKEDITOR.dom.domObject.call( this, element );
this.$ = text;
};
CKEDITOR.dom.text.prototype = new CKEDITOR.dom.node();
CKEDITOR.tools.extend( CKEDITOR.dom.text.prototype, {
/**
* The node type. This is a constant value set to {@link CKEDITOR#NODE_TEXT}.
*
* @readonly
* @property {Number} [=CKEDITOR.NODE_TEXT]
*/
type: CKEDITOR.NODE_TEXT,
/**
* Gets length of node's value.
*
* @returns {Number}
*/
getLength: function() {
return this.$.nodeValue.length;
},
/**
* Gets node's value.
*
* @returns {String}
*/
getText: function() {
return this.$.nodeValue;
},
/**
* Sets node's value.
*
* @param {String} text
*/
setText: function( text ) {
this.$.nodeValue = text;
},
/**
* Breaks this text node into two nodes at the specified offset,
* keeping both in the tree as siblings. This node then only contains
* all the content up to the offset point. A new text node, which is
* inserted as the next sibling of this node, contains all the content
* at and after the offset point. When the offset is equal to the
* length of this node, the new node has no data.
*
* @param {Number} The position at which to split, starting from zero.
* @returns {CKEDITOR.dom.text} The new text node.
*/
split: function( offset ) {
// Saved the children count and text length beforehand.
var parent = this.$.parentNode,
count = parent.childNodes.length,
length = this.getLength();
var doc = this.getDocument();
var retval = new CKEDITOR.dom.text( this.$.splitText( offset ), doc );
if ( parent.childNodes.length == count )
{
// If the offset is after the last char, IE creates the text node
// on split, but don't include it into the DOM. So, we have to do
// that manually here.
if ( offset >= length )
{
retval = doc.createText( '' );
retval.insertAfter( this );
}
else
{
// IE BUG: IE8+ does not update the childNodes array in DOM after splitText(),
// we need to make some DOM changes to make it update. (#3436)
var workaround = doc.createText( '' );
workaround.insertAfter( retval );
workaround.remove();
}
}
return retval;
},
/**
* Extracts characters from indexA up to but not including `indexB`.
*
* @param {Number} indexA An integer between `0` and one less than the
* length of the text.
* @param {Number} [indexB] An integer between `0` and the length of the
* string. If omitted, extracts characters to the end of the text.
*/
substring: function( indexA, indexB ) {
// We need the following check due to a Firefox bug
// https://bugzilla.mozilla.org/show_bug.cgi?id=458886
if ( typeof indexB != 'number' )
return this.$.nodeValue.substr( indexA );
else
return this.$.nodeValue.substring( indexA, indexB );
}
});

View File

@ -0,0 +1,598 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function() {
// This function is to be called under a "walker" instance scope.
function iterate( rtl, breakOnFalse ) {
var range = this.range;
// Return null if we have reached the end.
if ( this._.end )
return null;
// This is the first call. Initialize it.
if ( !this._.start ) {
this._.start = 1;
// A collapsed range must return null at first call.
if ( range.collapsed ) {
this.end();
return null;
}
// Move outside of text node edges.
range.optimize();
}
var node,
startCt = range.startContainer,
endCt = range.endContainer,
startOffset = range.startOffset,
endOffset = range.endOffset,
guard,
userGuard = this.guard,
type = this.type,
getSourceNodeFn = ( rtl ? 'getPreviousSourceNode' : 'getNextSourceNode' );
// Create the LTR guard function, if necessary.
if ( !rtl && !this._.guardLTR ) {
// The node that stops walker from moving up.
var limitLTR = endCt.type == CKEDITOR.NODE_ELEMENT ? endCt : endCt.getParent();
// The node that stops the walker from going to next.
var blockerLTR = endCt.type == CKEDITOR.NODE_ELEMENT ? endCt.getChild( endOffset ) : endCt.getNext();
this._.guardLTR = function( node, movingOut ) {
return ( ( !movingOut || !limitLTR.equals( node ) ) && ( !blockerLTR || !node.equals( blockerLTR ) ) && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || !node.equals( range.root ) ) );
};
}
// Create the RTL guard function, if necessary.
if ( rtl && !this._.guardRTL ) {
// The node that stops walker from moving up.
var limitRTL = startCt.type == CKEDITOR.NODE_ELEMENT ? startCt : startCt.getParent();
// The node that stops the walker from going to next.
var blockerRTL = startCt.type == CKEDITOR.NODE_ELEMENT ? startOffset ? startCt.getChild( startOffset - 1 ) : null : startCt.getPrevious();
this._.guardRTL = function( node, movingOut ) {
return ( ( !movingOut || !limitRTL.equals( node ) ) && ( !blockerRTL || !node.equals( blockerRTL ) ) && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || !node.equals( range.root ) ) );
};
}
// Define which guard function to use.
var stopGuard = rtl ? this._.guardRTL : this._.guardLTR;
// Make the user defined guard function participate in the process,
// otherwise simply use the boundary guard.
if ( userGuard ) {
guard = function( node, movingOut ) {
if ( stopGuard( node, movingOut ) === false )
return false;
return userGuard( node, movingOut );
};
} else
guard = stopGuard;
if ( this.current )
node = this.current[ getSourceNodeFn ]( false, type, guard );
else {
// Get the first node to be returned.
if ( rtl ) {
node = endCt;
if ( node.type == CKEDITOR.NODE_ELEMENT ) {
if ( endOffset > 0 )
node = node.getChild( endOffset - 1 );
else
node = ( guard( node, true ) === false ) ? null : node.getPreviousSourceNode( true, type, guard );
}
} else {
node = startCt;
if ( node.type == CKEDITOR.NODE_ELEMENT ) {
if ( !( node = node.getChild( startOffset ) ) )
node = ( guard( startCt, true ) === false ) ? null : startCt.getNextSourceNode( true, type, guard );
}
}
if ( node && guard( node ) === false )
node = null;
}
while ( node && !this._.end ) {
this.current = node;
if ( !this.evaluator || this.evaluator( node ) !== false ) {
if ( !breakOnFalse )
return node;
} else if ( breakOnFalse && this.evaluator )
return false;
node = node[ getSourceNodeFn ]( false, type, guard );
}
this.end();
return this.current = null;
}
function iterateToLast( rtl ) {
var node,
last = null;
while ( ( node = iterate.call( this, rtl ) ) )
last = node;
return last;
}
/**
* Utility class to "walk" the DOM inside a range boundaries. If
* necessary, partially included nodes (text nodes) are broken to
* reflect the boundaries limits, so DOM and range changes may happen.
* Outside changes to the range may break the walker.
*
* The walker may return nodes that are not totaly included into the
* range boundaires. Let's take the following range representation,
* where the square brackets indicate the boundaries:
*
* [<p>Some <b>sample] text</b>
*
* While walking forward into the above range, the following nodes are
* returned: `<p>`, `"Some "`, `<b>` and `"sample"`. Going
* backwards instead we have: `"sample"` and `"Some "`. So note that the
* walker always returns nodes when "entering" them, but not when
* "leaving" them. The guard function is instead called both when
* entering and leaving nodes.
*
* @class
*/
CKEDITOR.dom.walker = CKEDITOR.tools.createClass({
/**
* Creates a walker class instance.
*
* @constructor
* @param {CKEDITOR.dom.range} range The range within which walk.
*/
$: function( range ) {
this.range = range;
/**
* A function executed for every matched node, to check whether
* it's to be considered into the walk or not. If not provided, all
* matched nodes are considered good.
*
* If the function returns `false` the node is ignored.
*
* @property {Function} evaluator
*/
// this.evaluator = null;
/**
* A function executed for every node the walk pass by to check
* whether the walk is to be finished. It's called when both
* entering and exiting nodes, as well as for the matched nodes.
*
* If this function returns `false`, the walking ends and no more
* nodes are evaluated.
* @property {Function} guard
*/
// this.guard = null;
/** @private */
this._ = {};
},
// statics :
// {
// /* Creates a CKEDITOR.dom.walker instance to walk inside DOM boundaries set by nodes.
// * @param {CKEDITOR.dom.node} startNode The node from wich the walk
// * will start.
// * @param {CKEDITOR.dom.node} [endNode] The last node to be considered
// * in the walk. No more nodes are retrieved after touching or
// * passing it. If not provided, the walker stops at the
// * &lt;body&gt; closing boundary.
// * @returns {CKEDITOR.dom.walker} A DOM walker for the nodes between the
// * provided nodes.
// */
// createOnNodes : function( startNode, endNode, startInclusive, endInclusive )
// {
// var range = new CKEDITOR.dom.range();
// if ( startNode )
// range.setStartAt( startNode, startInclusive ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_END ) ;
// else
// range.setStartAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_AFTER_START ) ;
//
// if ( endNode )
// range.setEndAt( endNode, endInclusive ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START ) ;
// else
// range.setEndAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_BEFORE_END ) ;
//
// return new CKEDITOR.dom.walker( range );
// }
// },
//
proto: {
/**
* Stops walking. No more nodes are retrieved if this function gets called.
*/
end: function() {
this._.end = 1;
},
/**
* Retrieves the next node (at right).
*
* @returns {CKEDITOR.dom.node} The next node or null if no more
* nodes are available.
*/
next: function() {
return iterate.call( this );
},
/**
* Retrieves the previous node (at left).
*
* @returns {CKEDITOR.dom.node} The previous node or null if no more
* nodes are available.
*/
previous: function() {
return iterate.call( this, 1 );
},
/**
* Check all nodes at right, executing the evaluation function.
*
* @returns {Boolean} `false` if the evaluator function returned
* `false` for any of the matched nodes. Otherwise `true`.
*/
checkForward: function() {
return iterate.call( this, 0, 1 ) !== false;
},
/**
* Check all nodes at left, executing the evaluation function.
*
* @returns {Boolean} `false` if the evaluator function returned
* `false` for any of the matched nodes. Otherwise `true`.
*/
checkBackward: function() {
return iterate.call( this, 1, 1 ) !== false;
},
/**
* Executes a full walk forward (to the right), until no more nodes
* are available, returning the last valid node.
*
* @returns {CKEDITOR.dom.node} The last node at the right or null
* if no valid nodes are available.
*/
lastForward: function() {
return iterateToLast.call( this );
},
/**
* Executes a full walk backwards (to the left), until no more nodes
* are available, returning the last valid node.
*
* @returns {CKEDITOR.dom.node} The last node at the left or null
* if no valid nodes are available.
*/
lastBackward: function() {
return iterateToLast.call( this, 1 );
},
/**
* Resets walker.
*/
reset: function() {
delete this.current;
this._ = {};
}
}
});
// Anything whose display computed style is block, list-item, table,
// table-row-group, table-header-group, table-footer-group, table-row,
// table-column-group, table-column, table-cell, table-caption, or whose node
// name is hr, br (when enterMode is br only) is a block boundary.
var blockBoundaryDisplayMatch = { block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1 };
/**
* @member CKEDITOR.dom.element
* @todo
*/
CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames ) {
var nodeNameMatches = customNodeNames ? CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$block, customNodeNames ) : CKEDITOR.dtd.$block;
// Don't consider floated formatting as block boundary, fall back to dtd check in that case. (#6297)
return this.getComputedStyle( 'float' ) == 'none' && blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] || nodeNameMatches[ this.getName() ];
};
/**
* @static
* @todo
*/
CKEDITOR.dom.walker.blockBoundary = function( customNodeNames ) {
return function( node, type ) {
return !( node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary( customNodeNames ) );
};
};
/**
* @static
* @todo
*/
CKEDITOR.dom.walker.listItemBoundary = function() {
return this.blockBoundary( { br:1 } );
};
/**
* Whether the to-be-evaluated node is a bookmark node OR bookmark node
* inner contents.
*
* @static
* @param {Boolean} [contentOnly=false] Whether only test against the text content of
* bookmark node instead of the element itself (default).
* @param {Boolean} [isReject=false] Whether should return `false` for the bookmark
* node instead of `true` (default).
* @returns {Function}
*/
CKEDITOR.dom.walker.bookmark = function( contentOnly, isReject ) {
function isBookmarkNode( node ) {
return ( node && node.getName && node.getName() == 'span' && node.data( 'cke-bookmark' ) );
}
return function( node ) {
var isBookmark, parent;
// Is bookmark inner text node?
isBookmark = ( node && node.type != CKEDITOR.NODE_ELEMENT && ( parent = node.getParent() ) && isBookmarkNode( parent ) );
// Is bookmark node?
isBookmark = contentOnly ? isBookmark : isBookmark || isBookmarkNode( node );
return !!( isReject ^ isBookmark );
};
};
/**
* Whether the node is a text node containing only whitespaces characters.
*
* @static
* @param {Boolean} [isReject=false]
* @returns {Function}
*/
CKEDITOR.dom.walker.whitespaces = function( isReject ) {
return function( node ) {
var isWhitespace;
if ( node && node.type == CKEDITOR.NODE_TEXT ) {
// whitespace, as well as the text cursor filler node we used in Webkit. (#9384)
isWhitespace = !CKEDITOR.tools.trim( node.getText() ) ||
CKEDITOR.env.webkit && node.getText() == '\u200b';
}
return !! ( isReject ^ isWhitespace );
};
};
/**
* Whether the node is invisible in wysiwyg mode.
*
* @static
* @param {Boolean} [isReject=false]
* @returns {Function}
*/
CKEDITOR.dom.walker.invisible = function( isReject ) {
var whitespace = CKEDITOR.dom.walker.whitespaces();
return function( node ) {
var invisible;
if ( whitespace( node ) )
invisible = 1;
else {
// Visibility should be checked on element.
if ( node.type == CKEDITOR.NODE_TEXT )
node = node.getParent();
// Nodes that take no spaces in wysiwyg:
// 1. White-spaces but not including NBSP;
// 2. Empty inline elements, e.g. <b></b> we're checking here
// 'offsetHeight' instead of 'offsetWidth' for properly excluding
// all sorts of empty paragraph, e.g. <br />.
invisible = !node.$.offsetHeight;
}
return !!( isReject ^ invisible );
};
};
/**
* @static
* @param {Number} type
* @param {Boolean} [isReject=false]
* @returns {Function}
* @todo
*/
CKEDITOR.dom.walker.nodeType = function( type, isReject ) {
return function( node ) {
return !!( isReject ^ ( node.type == type ) );
};
};
/**
* @static
* @param {Boolean} [isReject=false]
* @returns {Function}
* @todo
*/
CKEDITOR.dom.walker.bogus = function( isReject ) {
function nonEmpty( node ) {
return !isWhitespaces( node ) && !isBookmark( node );
}
return function( node ) {
var isBogus = !CKEDITOR.env.ie ? node.is && node.is( 'br' ) : node.getText && tailNbspRegex.test( node.getText() );
if ( isBogus ) {
var parent = node.getParent(),
next = node.getNext( nonEmpty );
isBogus = parent.isBlockBoundary() && ( !next || next.type == CKEDITOR.NODE_ELEMENT && next.isBlockBoundary() );
}
return !!( isReject ^ isBogus );
};
};
/**
* Whether the to-be-evaluated node is a temporary element
* (element with `data-cke-temp` attribute) or its child.
*
* @since 4.3
* @static
* @param {Boolean} [isReject=false] Whether should return `false` for the
* temporary element instead of `true` (default).
* @returns {Function}
*/
CKEDITOR.dom.walker.temp = function( isReject ) {
return function( node ) {
if ( node.type != CKEDITOR.NODE_ELEMENT )
node = node.getParent();
var isTemp = node && node.hasAttribute( 'data-cke-temp' );
return !!( isReject ^ isTemp );
};
};
var tailNbspRegex = /^[\t\r\n ]*(?:&nbsp;|\xa0)$/,
isWhitespaces = CKEDITOR.dom.walker.whitespaces(),
isBookmark = CKEDITOR.dom.walker.bookmark(),
isTemp = CKEDITOR.dom.walker.temp(),
toSkip = function( node ) {
return isBookmark( node ) ||
isWhitespaces( node ) ||
node.type == CKEDITOR.NODE_ELEMENT && node.is( CKEDITOR.dtd.$inline ) && !node.is( CKEDITOR.dtd.$empty );
};
/**
* Whether the to-be-evaluated node should be ignored in terms of "editability".
*
* This includes:
*
* * whitespaces (see {@link CKEDITOR.dom.walker.whitespaces}),
* * bookmarks (see {@link CKEDITOR.dom.walker.bookmark}),
* * temporary elements (see {@link CKEDITOR.dom.walker.temp}).
*
* @since 4.3
* @static
* @param {Boolean} [isReject=false] Whether should return `false` for the
* ignored element instead of `true` (default).
* @returns {Function}
*/
CKEDITOR.dom.walker.ignored = function( isReject ) {
return function( node ) {
var isIgnored = isWhitespaces( node ) || isBookmark( node ) || isTemp( node );
return !!( isReject ^ isIgnored );
};
};
var isIgnored = CKEDITOR.dom.walker.ignored();
function isEmpty( node ) {
var i = 0,
l = node.getChildCount();
for ( ; i < l; ++i ) {
if ( !isIgnored( node.getChild( i ) ) )
return false;
}
return true;
}
function filterTextContainers( dtd ) {
var hash = {},
name;
for ( name in dtd ) {
if ( CKEDITOR.dtd[ name ][ '#' ] )
hash[ name ] = 1;
}
return hash;
}
// Block elements which can contain text nodes (without ul, ol, dl, etc.).
var dtdTextBlock = filterTextContainers( CKEDITOR.dtd.$block );
function isEditable( node ) {
// Skip temporary elements, bookmarks and whitespaces.
if ( isIgnored( node ) )
return false;
if ( node.type == CKEDITOR.NODE_TEXT )
return true;
if ( node.type == CKEDITOR.NODE_ELEMENT ) {
// All inline and non-editable elements are valid editable places.
// Note: non-editable block has to be treated differently (should be selected entirely).
if ( node.is( CKEDITOR.dtd.$inline ) || node.getAttribute( 'contenteditable' ) == 'false' )
return true;
// Empty blocks are editable on IE.
if ( CKEDITOR.env.ie && node.is( dtdTextBlock ) && isEmpty( node ) )
return true;
}
// Skip all other nodes.
return false;
}
/**
* Whether the to-be-evaluated node can be a container or a sibling
* of selection end.
*
* This includes:
*
* * text nodes (but not whitespaces),
* * inline elements,
* * non-editable blocks (special case - such blocks cannot be containers nor
* siblings, they need to be selected entirely),
* * empty blocks which can contain text (IE only).
*
* @since 4.3
* @static
* @param {Boolean} [isReject=false] Whether should return `false` for the
* ignored element instead of `true` (default).
* @returns {Function}
*/
CKEDITOR.dom.walker.editable = function( isReject ) {
return function( node ) {
return !!( isReject ^ isEditable( node ) );
};
};
/**
* Check if there's a filler node at the end of an element, and return it.
*
* @member CKEDITOR.dom.element
* @returns {CKEDITOR.dom.node/Boolean} Bogus node or `false`.
*/
CKEDITOR.dom.element.prototype.getBogus = function() {
// Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (#7070).
var tail = this;
do {
tail = tail.getPreviousSourceNode();
}
while ( toSkip( tail ) )
if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' ) : tail.getText && tailNbspRegex.test( tail.getText() ) ) ) {
return tail;
}
return false;
};
})();

Some files were not shown because too many files have changed in this diff Show More